From c7841ea55d2bc81c827bcf7ac0da55adef34bf10 Mon Sep 17 00:00:00 2001 From: Yihui Xiong Date: Mon, 29 Jan 2018 17:25:22 +0800 Subject: [PATCH 1/4] add realtime kws example using audio from stm32f4xx's adc & a microphone --- .../Examples/stm32f4_realtime_test/README.md | 40 +++ .../Examples/stm32f4_realtime_test/main.cpp | 252 ++++++++++++++++++ 2 files changed, 292 insertions(+) create mode 100644 Deployment/Examples/stm32f4_realtime_test/README.md create mode 100644 Deployment/Examples/stm32f4_realtime_test/main.cpp diff --git a/Deployment/Examples/stm32f4_realtime_test/README.md b/Deployment/Examples/stm32f4_realtime_test/README.md new file mode 100644 index 00000000..9460a979 --- /dev/null +++ b/Deployment/Examples/stm32f4_realtime_test/README.md @@ -0,0 +1,40 @@ +DNN KWS on STM32F4 +================== + +Use STM32F407's 12 bit ADC to get audio data from a microphone, and then run DNN KWS to detect speech command. + +### Hardware ++ [Arch Max (STM32F407)](https://www.seeedstudio.com/Arch-Max-v1.1-p-2632.html) ++ Grove Sound Sensor (must add a bias for the microphone) + +``` + TIM3 (16K) + \ +Microphone -> ADC (PC0) -> DMA +``` + +![](https://statics3.seeedstudio.com/images/product/102080004%200.jpg) + + +### Build & Run + +In this example, the KWS inference is run on the audio data from ADC. +First create a new project and install any python dependencies prompted when project is created for the first time after the installation of mbed-cli. +```bash +mbed new kws_simple_test --mbedlib +``` +Fetch the required mbed libraries for compilation. +```bash +cd kws_simple_test +mbed deploy +``` +Compile the code for the mbed board (for example Arch Max STM32F407). +```bash +mbed compile -m ARCH_MAX -t GCC_ARM --source . --source ../Source --source ../Examples/stm32f4_realtime_test --source ../CMSIS_5/CMSIS/NN/Include --source ../CMSIS_5/CMSIS/NN/Source --source ../CMSIS_5/CMSIS/DSP/Include --source ../CMSIS_5/CMSIS/DSP/Source --source ../CMSIS_5/CMSIS/Core/Include --profile ../release_O3.json +``` + +Copy the binary (.bin) to the board (Make sure the board is detected and mounted). Open a serial terminal (e.g. putty or minicom) and see the final classification output on screen. +```bash +cp ./BUILD/ARCH_MAX/GCC_ARM/kws_simple_test.bin /media/$USER/MBED +sudo minicom -D /dev/ttyACM0 -b 576000 +``` \ No newline at end of file diff --git a/Deployment/Examples/stm32f4_realtime_test/main.cpp b/Deployment/Examples/stm32f4_realtime_test/main.cpp new file mode 100644 index 00000000..b768e913 --- /dev/null +++ b/Deployment/Examples/stm32f4_realtime_test/main.cpp @@ -0,0 +1,252 @@ +/* + * Copyright (C) 2018 Arm Limited or its affiliates. All rights reserved. + * + * SPDX-License-Identifier: Apache-2.0 + * + * Licensed under the Apache License, Version 2.0 (the License); you may + * not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an AS IS BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +/* + * Description: Example code for running keyword spotting on Cortex-M boards + */ + +// How to use STM32F4xx ADC - https://visualgdb.com/tutorials/arm/stm32/adc/ +// Timer 3 (16000 fs) -> ADC -> DMA + +#include "kws.h" + +#define AUDIO_BLOCK_SIZE (1 * FRAME_LEN) +#define ADC_BUFFER_LENGTH (AUDIO_BLOCK_SIZE * 2) + +uint32_t audio_input_buffer[ADC_BUFFER_LENGTH]; // 2 for ping-pong buffer +int16_t audio_buffer[AUDIO_BLOCK_SIZE]; + +volatile uint32_t sample_count = 0; +q7_t scratch_buffer[SCRATCH_BUFFER_SIZE]; +char output_class[12][8] = {"Silence", "Unknown","yes","no","up","down","left","right","on","off","stop","go"}; + +Serial pc(USBTX, USBRX); +Timer T; + +ADC_HandleTypeDef g_AdcHandle; +DMA_HandleTypeDef g_DmaHandle; + + +void ConfigureTIM(void) +{ + __TIM3_CLK_ENABLE(); + + TIM_HandleTypeDef s_TimerInstance = { + .Instance = TIM3 + }; + + s_TimerInstance.Init.Prescaler = 0; + s_TimerInstance.Init.CounterMode = TIM_COUNTERMODE_UP; + + // 16 KHz, from 84 MHz TIM2CLK (TIM2CLK = HCLK/2) + s_TimerInstance.Init.Period = (84000000 / 16000) - 1; + s_TimerInstance.Init.ClockDivision = TIM_CLOCKDIVISION_DIV1; + s_TimerInstance.Init.RepetitionCounter = 0; + + TIM_MasterConfigTypeDef sMasterConfig; + // sMasterConfig.MasterOutputTrigger = TIM_TRGO_RESET; + sMasterConfig.MasterOutputTrigger = TIM_TRGO_UPDATE; + sMasterConfig.MasterSlaveMode = TIM_MASTERSLAVEMODE_DISABLE; + HAL_TIMEx_MasterConfigSynchronization(&s_TimerInstance, &sMasterConfig); + + HAL_TIM_Base_Init(&s_TimerInstance); + HAL_TIM_Base_Start(&s_TimerInstance); +} + +void ConfigureADC() +{ + GPIO_InitTypeDef gpioInit; + + __GPIOC_CLK_ENABLE(); + __ADC1_CLK_ENABLE(); + + gpioInit.Pin = GPIO_PIN_0; + gpioInit.Mode = GPIO_MODE_ANALOG; + gpioInit.Pull = GPIO_NOPULL; + HAL_GPIO_Init(GPIOC, &gpioInit); + + HAL_NVIC_SetPriority(ADC_IRQn, 0, 0); + HAL_NVIC_EnableIRQ(ADC_IRQn); + + ADC_ChannelConfTypeDef adcChannel; + + g_AdcHandle.Instance = ADC1; + + g_AdcHandle.Init.ClockPrescaler = ADC_CLOCKPRESCALER_PCLK_DIV2; + g_AdcHandle.Init.Resolution = ADC_RESOLUTION_12B; + g_AdcHandle.Init.ScanConvMode = DISABLE; + g_AdcHandle.Init.ContinuousConvMode = DISABLE; + g_AdcHandle.Init.DiscontinuousConvMode = DISABLE; + g_AdcHandle.Init.NbrOfDiscConversion = 0; + g_AdcHandle.Init.ExternalTrigConvEdge = ADC_EXTERNALTRIGCONVEDGE_RISING; + g_AdcHandle.Init.ExternalTrigConv = ADC_EXTERNALTRIGCONV_T3_TRGO; + g_AdcHandle.Init.DataAlign = ADC_DATAALIGN_RIGHT; + g_AdcHandle.Init.NbrOfConversion = 1; + g_AdcHandle.Init.DMAContinuousRequests = ENABLE; + g_AdcHandle.Init.EOCSelection = DISABLE; + + HAL_ADC_Init(&g_AdcHandle); + + adcChannel.Channel = ADC_CHANNEL_10; + adcChannel.Rank = 1; + adcChannel.SamplingTime = ADC_SAMPLETIME_480CYCLES; + adcChannel.Offset = 0; + + if (HAL_ADC_ConfigChannel(&g_AdcHandle, &adcChannel) != HAL_OK) + { + asm("bkpt 255"); + } +} + +void ConfigureDMA() +{ + __DMA2_CLK_ENABLE(); + g_DmaHandle.Instance = DMA2_Stream4; + + g_DmaHandle.Init.Channel = DMA_CHANNEL_0; + g_DmaHandle.Init.Direction = DMA_PERIPH_TO_MEMORY; + g_DmaHandle.Init.PeriphInc = DMA_PINC_DISABLE; + g_DmaHandle.Init.MemInc = DMA_MINC_ENABLE; + g_DmaHandle.Init.PeriphDataAlignment = DMA_PDATAALIGN_WORD; + g_DmaHandle.Init.MemDataAlignment = DMA_MDATAALIGN_WORD; + g_DmaHandle.Init.Mode = DMA_CIRCULAR; + g_DmaHandle.Init.Priority = DMA_PRIORITY_HIGH; + g_DmaHandle.Init.FIFOMode = DMA_FIFOMODE_DISABLE; + g_DmaHandle.Init.FIFOThreshold = DMA_FIFO_THRESHOLD_HALFFULL; + g_DmaHandle.Init.MemBurst = DMA_MBURST_SINGLE; + g_DmaHandle.Init.PeriphBurst = DMA_PBURST_SINGLE; + + HAL_DMA_Init(&g_DmaHandle); + + __HAL_LINKDMA(&g_AdcHandle, DMA_Handle, g_DmaHandle); + + HAL_NVIC_SetPriority(DMA2_Stream4_IRQn, 0, 0); + HAL_NVIC_EnableIRQ(DMA2_Stream4_IRQn); +} + +extern "C" { + +void HAL_ADC_ConvCpltCallback(ADC_HandleTypeDef *AdcHandle) +{ + // copy the new recording data + for (int i = 0; i < AUDIO_BLOCK_SIZE; i++) + { + audio_buffer[i] = audio_input_buffer[AUDIO_BLOCK_SIZE + i] - 1024 - 335; + } + sample_count++; +} + +void HAL_ADC_ConvHalfCpltCallback(ADC_HandleTypeDef *AdcHandle) +{ + // copy the new recording data + for (int i = 0; i < AUDIO_BLOCK_SIZE; i++) + { + audio_buffer[i] = audio_input_buffer[i] - 1024 - 335; + } + sample_count++; +} + +void DMA2_Stream4_IRQHandler() +{ + HAL_DMA_IRQHandler(&g_DmaHandle); +} + +void ADC_IRQHandler() +{ + HAL_ADC_IRQHandler(&g_AdcHandle); +} +} + +int main() +{ + KWS kws(audio_buffer,scratch_buffer); + + pc.baud(576000); + pc.printf("---- KWS ----\r\n"); + + ConfigureADC(); + ConfigureDMA(); + HAL_ADC_Start_DMA(&g_AdcHandle, audio_input_buffer, ADC_BUFFER_LENGTH); + + ConfigureTIM(); + + uint32_t detect_count = 0; + uint32_t start; + uint32_t end; + uint32_t last = 0; + + T.start(); + while (1) { + if (detect_count < sample_count) { + detect_count++; + + int32_t sum = 0; + int16_t max = 0; + int16_t min = 0; + for (int i=0; i max) { + max = audio_buffer[i]; + } else if (audio_buffer[i] < min) { + min = audio_buffer[i]; + } + } + + + start = T.read_us(); + + //Averaging window for smoothing out the output predictions + int averaging_window_len = 6; //i.e. average over 6 inferences or 240ms + int detection_threshold = 80; //in percent + + kws.extract_features(1); //extract mfcc features + kws.classify(); //classify using dnn + + kws.average_predictions(averaging_window_len); + + int max_ind = kws.get_top_detection(kws.averaged_output); + + + end = T.read_us(); + + if ((max_ind) != 0 && (kws.averaged_output[max_ind] >= detection_threshold*128/100)) + { + printf("Detected %s (%d%%)\r\n",output_class[max_ind],((int)kws.averaged_output[max_ind]*100/128)); + } + + + if ((detect_count & 0x1F) == 0) + { + pc.printf("sum: %d, avg: %d, max: %d, min: %d\r\n", sum, sum / AUDIO_BLOCK_SIZE, max, min); + pc.printf("processing time: %d us, period: %d @ %d, %d\r\n", end - start, end - last, sample_count, detect_count); + } + + + last = end; + } else { + // TODO: sleep + } + + } + + T.stop(); + + + return 0; +} From 89ebf3b3f20adde5e311f882f4271d321b9e8e11 Mon Sep 17 00:00:00 2001 From: Yihui Xiong Date: Thu, 3 May 2018 09:54:40 +0800 Subject: [PATCH 2/4] Update README.md --- Deployment/Examples/stm32f4_realtime_test/README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Deployment/Examples/stm32f4_realtime_test/README.md b/Deployment/Examples/stm32f4_realtime_test/README.md index 9460a979..c33508e5 100644 --- a/Deployment/Examples/stm32f4_realtime_test/README.md +++ b/Deployment/Examples/stm32f4_realtime_test/README.md @@ -5,7 +5,7 @@ Use STM32F407's 12 bit ADC to get audio data from a microphone, and then run DNN ### Hardware + [Arch Max (STM32F407)](https://www.seeedstudio.com/Arch-Max-v1.1-p-2632.html) -+ Grove Sound Sensor (must add a bias for the microphone) ++ [Grove Sound Sensor (must add a bias for the microphone)](https://github.com/xiongyihui/ML-KWS-for-MCU/issues/1) ``` TIM3 (16K) @@ -37,4 +37,4 @@ Copy the binary (.bin) to the board (Make sure the board is detected and mounted ```bash cp ./BUILD/ARCH_MAX/GCC_ARM/kws_simple_test.bin /media/$USER/MBED sudo minicom -D /dev/ttyACM0 -b 576000 -``` \ No newline at end of file +``` From eaae3351a51c542581703434bfb5a0842bbb9b70 Mon Sep 17 00:00:00 2001 From: Yihui Xiong Date: Thu, 24 May 2018 15:57:05 +0800 Subject: [PATCH 3/4] replace pc.printf() with printf(), as pc.printf() may cause stack overflow-_-! --- Deployment/Examples/stm32f4_realtime_test/main.cpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/Deployment/Examples/stm32f4_realtime_test/main.cpp b/Deployment/Examples/stm32f4_realtime_test/main.cpp index b768e913..5fa2cff7 100644 --- a/Deployment/Examples/stm32f4_realtime_test/main.cpp +++ b/Deployment/Examples/stm32f4_realtime_test/main.cpp @@ -177,7 +177,7 @@ int main() KWS kws(audio_buffer,scratch_buffer); pc.baud(576000); - pc.printf("---- KWS ----\r\n"); + printf("---- KWS ----\r\n"); ConfigureADC(); ConfigureDMA(); @@ -233,8 +233,8 @@ int main() if ((detect_count & 0x1F) == 0) { - pc.printf("sum: %d, avg: %d, max: %d, min: %d\r\n", sum, sum / AUDIO_BLOCK_SIZE, max, min); - pc.printf("processing time: %d us, period: %d @ %d, %d\r\n", end - start, end - last, sample_count, detect_count); + printf("sum: %d, avg: %d, max: %d, min: %d\r\n", sum, sum / AUDIO_BLOCK_SIZE, max, min); + printf("processing time: %d us, period: %d @ %d, %d\r\n", end - start, end - last, sample_count, detect_count); } From 42609da5943f0ea64032abc316a5ccefe4bd21f9 Mon Sep 17 00:00:00 2001 From: Yihui Xiong Date: Mon, 4 Jun 2018 14:51:47 +0800 Subject: [PATCH 4/4] use WAVE_DATA to initialize kws, may have stack overflow issue --- .../Examples/stm32f4_realtime_test/main.cpp | 45 ++++++++++--------- .../Examples/stm32f4_realtime_test/wav_data.h | 1 + 2 files changed, 26 insertions(+), 20 deletions(-) create mode 100644 Deployment/Examples/stm32f4_realtime_test/wav_data.h diff --git a/Deployment/Examples/stm32f4_realtime_test/main.cpp b/Deployment/Examples/stm32f4_realtime_test/main.cpp index 5fa2cff7..c1cb7d06 100644 --- a/Deployment/Examples/stm32f4_realtime_test/main.cpp +++ b/Deployment/Examples/stm32f4_realtime_test/main.cpp @@ -24,12 +24,14 @@ // Timer 3 (16000 fs) -> ADC -> DMA #include "kws.h" +#include "wav_data.h" #define AUDIO_BLOCK_SIZE (1 * FRAME_LEN) #define ADC_BUFFER_LENGTH (AUDIO_BLOCK_SIZE * 2) uint32_t audio_input_buffer[ADC_BUFFER_LENGTH]; // 2 for ping-pong buffer -int16_t audio_buffer[AUDIO_BLOCK_SIZE]; +int16_t audio_buffer[16000] = WAVE_DATA; +// int16_t audio_buffer[AUDIO_BLOCK_SIZE]; volatile uint32_t sample_count = 0; q7_t scratch_buffer[SCRATCH_BUFFER_SIZE]; @@ -179,6 +181,8 @@ int main() pc.baud(576000); printf("---- KWS ----\r\n"); + kws.extract_features(); + ConfigureADC(); ConfigureDMA(); HAL_ADC_Start_DMA(&g_AdcHandle, audio_input_buffer, ADC_BUFFER_LENGTH); @@ -195,27 +199,28 @@ int main() if (detect_count < sample_count) { detect_count++; - int32_t sum = 0; - int16_t max = 0; - int16_t min = 0; - for (int i=0; i max) { - max = audio_buffer[i]; - } else if (audio_buffer[i] < min) { - min = audio_buffer[i]; - } - } + // int32_t sum = 0; + // int16_t max = 0; + // int16_t min = 0; + // for (int i=0; i max) { + // max = audio_buffer[i]; + // } else if (audio_buffer[i] < min) { + // min = audio_buffer[i]; + // } + // } start = T.read_us(); //Averaging window for smoothing out the output predictions - int averaging_window_len = 6; //i.e. average over 6 inferences or 240ms + int averaging_window_len = 3; //i.e. average over 6 inferences or 240ms int detection_threshold = 80; //in percent kws.extract_features(1); //extract mfcc features + kws.classify(); //classify using dnn kws.average_predictions(averaging_window_len); @@ -225,17 +230,17 @@ int main() end = T.read_us(); - if ((max_ind) != 0 && (kws.averaged_output[max_ind] >= detection_threshold*128/100)) + // if ((max_ind) != 0 && (kws.averaged_output[max_ind] >= detection_threshold*128/100)) { printf("Detected %s (%d%%)\r\n",output_class[max_ind],((int)kws.averaged_output[max_ind]*100/128)); } - if ((detect_count & 0x1F) == 0) - { - printf("sum: %d, avg: %d, max: %d, min: %d\r\n", sum, sum / AUDIO_BLOCK_SIZE, max, min); - printf("processing time: %d us, period: %d @ %d, %d\r\n", end - start, end - last, sample_count, detect_count); - } + // if ((detect_count & 0x1F) == 0) + // { + // printf("sum: %d, avg: %d, max: %d, min: %d\r\n", sum, sum / AUDIO_BLOCK_SIZE, max, min); + // printf("processing time: %d us, period: %d @ %d, %d\r\n", end - start, end - last, sample_count, detect_count); + // } last = end; diff --git a/Deployment/Examples/stm32f4_realtime_test/wav_data.h b/Deployment/Examples/stm32f4_realtime_test/wav_data.h new file mode 100644 index 00000000..a9519db6 --- /dev/null +++ b/Deployment/Examples/stm32f4_realtime_test/wav_data.h @@ -0,0 +1 @@ +#define WAVE_DATA {9,25,10,-11,1,-5,-3,24,24,10,-51,-76,10,47,18,27,96,30,-73,-48,-46,25,39,1,48,57,3,-3,55,66,53,4,-32,-16,8,-9,-74,-77,-41,-46,-17,47,85,6,-23,71,6,-65,-41,-6,-20,-80,-54,-30,15,119,88,5,10,53,48,4,17,-17,-69,-28,19,40,37,28,48,69,69,18,-38,-120,-123,23,71,-16,-80,-16,85,42,5,95,94,54,12,-4,-21,-75,-80,-111,-24,15,-5,11,-22,9,35,16,-78,-92,-29,-8,42,49,20,69,89,-7,-38,11,42,12,-9,9,0,-45,-54,-11,-68,-83,-34,-30,25,4,-19,10,-8,-12,-14,16,29,1,-2,-24,-46,-2,36,17,-28,-6,14,-33,-11,2,-9,-7,45,38,7,70,10,-58,-10,54,17,-12,44,21,27,74,49,3,-36,-109,-75,-25,-50,-4,20,21,-2,12,1,-27,31,3,-27,37,70,-27,-103,-64,-1,44,-11,-45,-5,44,58,24,31,11,65,100,20,-6,-10,43,36,0,17,21,35,29,6,7,8,-37,-71,-80,-31,-13,-78,-69,-1,12,18,34,-5,-54,-55,-28,4,36,-8,-31,-24,0,44,12,0,28,46,38,44,17,-77,-74,-25,-17,6,19,33,13,-36,7,72,58,27,-12,-29,6,21,28,50,-9,-104,-32,13,-5,17,33,51,5,-4,43,30,-62,-95,-7,-20,-103,-31,16,-7,14,18,-43,-75,12,39,-2,-26,-74,-117,-13,85,30,-40,-51,-64,-47,16,40,73,18,47,100,49,87,96,-4,-81,-61,8,71,47,-43,-94,-42,-1,29,45,48,-2,-14,29,-21,50,15,-39,-34,-52,34,25,-1,70,93,-4,-18,31,21,-5,28,25,-52,-46,-24,-27,-26,-21,-10,-4,-10,-15,21,53,39,37,44,-1,-38,-32,-13,-6,-37,-38,8,40,24,57,42,-63,-79,-68,24,46,-29,-36,-64,-51,20,29,-10,10,12,70,102,28,-11,-46,-26,-53,-72,1,0,-44,-45,-4,-4,-69,-39,8,-87,-39,79,21,-1,44,39,7,33,36,-23,-76,-38,54,29,16,50,43,38,0,-82,-27,129,113,44,33,-27,-68,5,29,-13,5,-3,9,44,6,-18,36,67,33,4,35,32,-58,-107,-104,-78,-72,-67,-30,-21,-13,3,-24,-42,-49,-42,10,13,15,-16,-26,24,37,40,-9,6,65,-5,-40,41,60,26,25,47,44,74,96,30,-1,-20,-31,19,73,27,-6,52,32,25,43,7,-11,-19,-42,-68,-29,49,50,-33,-71,-4,-10,-64,-75,-59,4,17,-4,-63,-105,-72,-51,-19,7,10,19,-24,-80,-13,19,1,35,-1,-40,-38,-31,19,89,86,50,39,4,-7,64,69,1,0,-58,-28,23,-41,-31,16,62,12,-18,-3,-80,-110,-51,-17,71,125,11,-61,-64,21,92,31,-52,-14,-9,-36,28,25,55,36,8,-29,-40,86,93,56,39,64,98,33,-24,-11,3,-5,24,54,3,-56,-75,-97,-108,-60,41,39,12,11,-12,1,-65,-122,-66,1,55,54,-13,-45,-47,-88,-67,2,52,44,10,-5,-51,-9,-3,-32,21,33,56,48,-14,-8,57,58,15,6,-3,1,9,-4,30,32,-1,19,39,4,-69,-24,26,-23,-9,14,-60,-81,-14,-24,-18,24,20,53,44,-7,0,15,46,81,63,15,-11,-40,-71,-75,-76,-38,10,31,-1,-22,-7,17,49,2,5,47,17,-41,-64,-22,-7,-4,3,31,32,-4,-28,-38,-14,-15,24,56,47,49,18,18,-10,-16,-3,-5,16,14,33,6,-35,-94,-75,-26,11,67,4,32,51,-30,-87,-87,3,36,-11,-38,-1,48,35,25,37,-7,-8,0,-19,-56,-36,49,6,-34,-70,-58,-25,-88,-39,34,75,50,-9,65,23,-15,53,13,16,-6,-47,26,73,69,24,-26,-7,37,76,96,85,29,-21,0,-17,10,5,-57,-9,-3,24,32,-5,-2,-36,-32,-41,-51,-49,-56,-8,-24,-50,-48,-44,-20,-9,24,29,-4,-81,-72,11,28,39,41,39,31,28,11,-8,-13,40,60,42,47,-13,5,7,-15,0,-42,-67,-45,-46,-61,0,24,4,55,87,8,-32,-10,-52,-81,-49,-6,-38,-31,29,-20,-34,34,48,29,51,58,6,-23,-18,-8,-12,-31,21,66,1,-42,-3,14,23,-5,-40,55,43,-26,11,86,127,43,-4,4,3,-7,32,66,-39,-121,-43,30,-7,-13,18,37,13,-66,-81,-6,37,2,20,67,13,-27,-31,-55,-36,10,42,35,-31,-29,48,41,-13,5,61,25,-40,-37,-3,-20,-31,-9,-49,-56,-6,43,51,26,1,-31,-71,-86,-23,41,55,32,9,-24,-8,78,46,10,16,-65,-86,-36,-16,-44,-43,-16,24,9,-52,-7,42,88,43,-13,16,14,9,-3,12,-14,-58,-60,-7,21,7,21,-17,-22,-43,4,86,10,-20,-9,17,19,-24,-4,15,-42,-61,24,22,15,27,-9,36,36,6,35,26,-2,-32,-46,-19,-27,-33,-30,31,95,53,29,12,22,52,54,9,3,18,-21,6,11,-50,-71,34,101,27,19,56,55,50,-33,-125,-117,-93,-21,-7,-71,-34,-3,-8,-28,-22,-16,-36,-14,-35,-32,-18,-38,-51,-49,43,98,78,67,20,8,70,80,62,63,10,-41,-57,-26,4,7,40,4,-36,-23,2,-13,-35,-22,-3,29,16,56,39,-46,-61,-23,20,-14,-57,-117,-85,-1,-7,61,117,83,30,-53,-51,27,51,51,89,100,17,-77,-36,-26,-63,7,26,-10,-6,1,-50,-62,-4,29,-5,-86,-121,-99,6,47,22,-16,-53,53,84,17,26,72,9,-21,81,16,-3,15,-101,-122,-26,43,29,64,66,59,42,-41,-55,-13,48,23,8,-19,-71,1,30,41,52,69,79,2,-18,3,53,25,-30,11,-27,-38,-24,-7,56,53,48,8,-30,-60,-102,-52,-54,-54,-53,-36,-7,-38,3,-10,-37,-13,-10,-58,-1,109,48,24,74,-25,-107,-36,-10,-29,-37,18,30,20,52,77,63,4,12,35,83,16,-24,6,-61,-67,-29,2,11,7,-74,-34,98,87,44,-18,-33,-38,-4,-8,-58,-3,8,-30,-65,-30,13,-9,9,26,0,-33,-44,-27,15,26,20,14,76,147,46,19,39,-16,11,-1,4,57,6,-82,-80,0,21,-24,-22,-7,-39,-34,-18,-37,-27,-15,-60,-49,8,-20,-29,-79,-124,-64,-30,75,107,65,96,90,84,70,89,92,104,66,-51,-42,-78,-94,27,69,51,36,11,27,75,70,-20,-25,35,-27,-68,-47,-24,1,-26,-23,-14,-24,-53,-29,20,-6,17,-26,-69,-75,-59,-26,-55,-74,-124,-58,43,-18,-46,30,53,50,11,-50,-106,-73,-12,-63,41,136,118,64,0,13,53,64,21,43,28,-18,17,28,79,73,0,54,52,-13,-34,25,42,-1,17,-22,-39,-46,-40,12,47,7,-50,-40,-5,-9,-15,-13,-64,-39,-66,-75,6,-22,-91,-76,59,49,-23,4,19,95,67,-32,-39,20,75,9,-51,-20,45,30,7,35,39,-18,-107,-64,21,28,10,-9,-50,-7,12,-4,114,160,81,8,36,47,-5,-8,28,25,-47,-78,-41,7,-6,-25,-39,-25,3,-26,-33,-38,-74,-107,-38,65,42,-17,-28,-13,14,49,51,-3,43,56,-57,-56,-38,-44,-44,-44,-29,-1,19,34,33,10,51,28,36,89,36,15,6,-10,23,27,22,2,-23,-1,-17,-29,-4,40,89,19,-8,41,-35,-97,-105,-54,10,2,-26,-38,12,-4,-26,-11,-90,-114,-31,22,4,-36,-44,-9,6,-8,46,97,105,50,-9,-3,5,-7,16,86,3,-16,25,-16,16,54,78,35,-13,-41,4,61,45,46,-10,-37,3,-12,-23,8,-13,-38,3,30,-9,23,11,-48,31,7,-62,-49,-5,43,60,60,0,8,7,-36,-29,-78,-50,-1,-12,-5,-38,3,24,-33,20,-10,-94,-13,22,-29,-44,-45,-13,-3,-12,-43,-63,14,32,40,51,63,53,-37,-20,19,-1,-27,4,16,-34,-29,-13,34,51,40,60,42,15,-32,-51,-16,-26,-46,-38,-4,25,21,15,28,17,-17,-25,0,68,65,29,46,57,63,-32,-67,18,1,-30,-44,19,56,-8,47,62,22,-5,-44,-16,27,23,25,20,-35,-28,-17,-68,-61,-10,23,22,-15,-36,-33,-56,-49,6,38,17,-39,-55,-5,63,76,77,98,47,-44,-86,-77,-72,-61,-13,4,-27,-40,-44,-39,-31,17,28,-36,-54,-24,22,-2,-3,16,24,68,75,65,3,5,49,15,-11,20,75,43,-42,-71,-42,32,112,65,2,17,-14,-10,-5,18,61,0,-26,9,32,-1,-78,-87,-74,-54,-7,-54,-44,37,-3,-19,26,46,-6,-37,7,83,93,32,42,-49,-103,14,35,-18,-4,-15,-90,-45,29,16,-15,7,18,14,28,-39,-35,-15,-14,21,-9,-40,-19,13,-27,-15,33,37,106,159,75,-9,-15,-54,-48,-1,-1,-15,45,83,55,12,-39,-2,-6,-37,-22,-40,-50,-24,-25,-38,-20,-18,-43,-5,68,46,60,45,-58,-32,0,-53,-15,21,42,91,46,-3,-27,-10,-7,-27,3,19,-52,-66,14,-33,-73,-7,7,-16,37,60,1,-27,-4,1,42,44,-9,-10,-37,30,78,19,21,48,-47,-119,-94,-80,-8,54,27,-16,12,19,49,56,26,-8,-31,40,5,-24,6,26,-4,-51,47,135,60,-55,-51,-8,44,45,-33,-79,-95,-9,62,33,9,-56,-60,-32,-21,-4,-2,57,8,-53,-47,10,64,12,-3,19,-20,-87,1,67,32,60,96,17,-30,26,-23,-47,-39,-18,-43,-92,-7,-4,-24,34,58,1,-40,27,62,21,-15,14,67,43,40,74,15,-33,-36,-6,40,-17,-47,-33,-4,-19,-34,-2,-29,7,38,-7,-66,-47,-25,-48,-2,11,-17,-12,61,144,90,24,16,-57,-35,40,11,-48,-51,-32,-52,-19,4,20,56,21,-34,0,17,-57,-46,-7,-17,-33,-10,79,104,45,43,67,33,25,-8,-37,-53,-89,-29,-20,-32,-31,-62,-22,13,-42,-119,-58,34,15,-10,-37,-26,55,48,102,129,-5,1,-1,-11,105,110,74,56,15,-13,-67,-51,-1,14,-27,-77,-87,-72,-63,-65,5,22,2,18,14,12,51,97,113,42,9,16,-24,10,48,76,-16,-86,-15,3,16,41,22,-21,-37,-9,20,-23,-65,-81,0,50,8,33,40,4,-33,19,31,-61,-89,-57,-23,-9,36,62,-4,-20,4,24,42,-4,-64,-85,-72,-65,-25,10,19,39,23,10,8,-3,-18,21,28,-31,-5,22,-16,-23,6,30,62,92,84,-9,-102,-75,27,48,-22,-22,-35,-54,-37,-52,-15,6,2,2,-21,-13,-3,13,25,45,21,-83,-76,23,37,39,52,23,11,15,38,32,9,16,17,10,21,-21,-62,-28,-23,1,35,41,1,57,150,96,55,27,-6,-25,15,99,41,-82,-55,29,-10,-80,-55,-2,42,46,5,-87,-117,-62,-29,30,14,-1,-35,-39,-46,-63,39,39,46,-14,-22,26,-7,46,-6,-68,-61,-33,3,0,-59,-74,-20,-52,-8,-29,-65,-16,-63,-1,52,25,-19,13,90,55,83,94,68,84,88,46,-1,8,-29,29,92,42,-7,-45,20,19,-26,-13,-17,-56,-100,-76,-67,-83,-52,-8,-27,-14,46,67,64,51,29,20,-3,-33,-64,-81,-45,-45,-56,-38,-8,-12,-10,-1,42,143,61,-76,-55,-5,8,10,53,55,41,68,3,-25,87,164,60,-13,28,41,14,-62,-90,-19,48,8,-25,-10,60,79,21,-1,-65,-53,-36,-48,-19,-4,9,-7,26,-8,-70,-3,-24,-46,-15,37,105,59,44,48,-8,-36,-12,-24,-71,-56,-84,-82,-27,-6,8,-47,1,23,-41,-35,-53,21,35,11,-16,-81,-46,3,20,7,61,94,96,27,-68,-77,-44,57,52,2,2,47,109,73,43,67,83,28,-76,-90,-50,-3,-3,-89,-100,-32,37,9,-9,-2,-4,59,58,54,-11,-69,-14,31,-29,-80,34,72,-5,-12,-29,-59,12,5,-55,-32,15,16,-12,5,25,85,61,-82,-67,9,-49,-53,30,45,50,79,53,-23,12,67,-25,0,47,-18,1,10,-62,-117,-26,78,47,-7,-10,-9,46,112,62,28,-6,-38,-27,-27,-3,10,0,-38,-91,-40,55,73,50,-14,-19,43,19,-33,-11,-4,-86,-182,-159,-53,-49,-42,15,54,81,56,78,65,-20,-68,-34,-17,-101,-58,15,44,51,27,50,55,64,-29,-75,16,63,66,64,90,27,-25,2,-1,12,25,32,29,0,-3,13,-30,-126,-110,-29,-13,37,40,15,4,-11,-61,-124,11,131,81,19,44,36,-3,-17,-79,-58,-68,-106,-78,-74,-17,27,35,7,-43,33,16,-34,9,26,34,-34,-45,-10,41,80,-18,-29,77,103,36,43,65,4,-12,-27,-61,-60,-31,-31,-4,20,13,58,111,89,-29,-47,2,-3,-79,-118,-11,66,60,76,43,8,40,-4,-1,41,59,45,19,36,12,-98,-105,62,59,2,50,18,-49,27,57,-21,-35,-74,-49,-20,-92,-103,13,50,-21,-39,-4,-2,-54,-60,-34,-65,-94,-50,-41,-9,47,44,0,-9,-5,-3,4,-24,18,25,22,-8,-44,-8,29,90,81,41,16,-15,-29,-48,-78,-27,46,39,22,26,-3,-34,25,50,61,17,14,14,-77,9,55,6,49,69,1,-30,15,56,20,-13,9,13,-3,-63,-44,9,9,-19,13,-2,-103,-8,23,-53,-13,18,8,8,55,25,-34,-1,47,53,-22,-37,-44,-61,-3,-14,3,35,61,81,19,6,33,42,41,22,15,17,-31,-9,46,9,-20,-47,-71,0,82,45,-17,-59,-36,-12,-94,-116,-46,-18,-40,-11,-9,-65,-64,-33,-1,19,16,-27,-31,-19,0,56,-1,16,106,44,-58,-18,66,52,55,45,1,-18,-16,-29,-23,-31,-60,-21,25,114,129,24,-27,-44,36,83,13,-31,-59,-41,-5,-11,-73,-21,30,-70,2,87,-21,-49,-7,-16,-8,41,93,55,-19,-17,-37,-59,6,53,49,61,62,18,-21,-3,19,3,5,21,35,58,3,-46,-50,-61,-51,-36,46,45,-38,-12,15,21,18,-13,-36,-59,-45,-35,-29,9,62,71,-17,-18,24,-8,-16,20,79,48,51,26,-50,-10,-56,-32,0,-103,-85,-45,17,81,7,-29,-16,-51,-29,14,16,55,62,54,50,-6,22,59,31,-30,-68,0,36,12,20,36,-45,-75,-73,-96,-44,4,70,39,11,-2,-70,-16,-4,-5,-8,-39,-3,-12,-12,47,76,-21,-78,-17,-23,8,67,83,63,0,16,11,-32,-27,-17,39,40,7,29,45,62,30,-74,-34,69,39,1,-69,-112,-136,-117,-58,-44,61,117,67,3,-2,14,-4,-26,-18,19,-7,-4,30,8,-31,-52,-13,36,31,48,84,90,35,-1,8,19,8,-35,-38,-11,25,10,18,-17,-48,-18,-58,-90,-116,-13,34,-8,37,33,4,-47,-1,42,-18,-5,-9,1,74,116,108,25,-95,-114,-29,17,39,12,-59,-21,45,15,-63,-52,25,15,-4,52,64,52,27,-34,-61,-75,-19,36,42,41,51,66,-30,-110,-106,-60,-59,-56,15,1,8,-9,-40,11,33,24,21,28,-19,-7,17,-12,36,68,44,58,51,-58,-93,-10,27,-53,-117,-66,-40,-25,70,139,121,64,42,35,-1,9,15,12,19,-21,-72,-98,-85,-37,-21,-30,-23,-60,-8,75,47,46,57,53,44,7,-25,-13,1,-21,-8,28,-1,1,-14,-75,-56,-20,53,60,-9,-25,-73,-61,-24,18,55,14,67,80,21,14,-14,11,51,-2,-26,2,-56,-45,12,6,73,38,-64,-34,63,98,19,43,71,23,4,-46,-43,-40,-106,-125,-36,25,19,43,14,-57,23,17,-71,-41,-70,-29,-37,-41,-36,-91,11,25,60,127,75,-12,-64,0,22,-10,-43,-61,-1,9,-32,-41,-16,75,83,77,103,66,-5,-91,-60,12,71,89,52,50,-1,-70,-83,-32,45,55,50,70,7,-84,-79,-57,-68,-56,-51,-25,8,-3,5,-12,-7,29,-5,-12,26,38,11,5,-18,-32,3,-14,10,64,75,45,56,71,38,29,-22,-105,-73,48,9,-50,-16,42,62,50,60,-45,-123,-69,-28,-38,-14,-29,-29,48,83,60,13,-7,-7,0,-30,30,25,-56,-27,-4,54,46,18,-8,-65,-28,26,40,7,-30,-37,-45,-37,-15,51,91,14,-38,-39,6,18,-24,12,-20,-102,-78,9,64,45,32,15,-18,-7,-55,-46,-12,-24,14,-41,-91,-50,10,18,20,26,27,35,24,50,63,98,77,64,64,-18,3,36,-9,-4,49,9,-91,-108,-60,-16,14,8,-16,-7,17,13,-6,8,25,8,-27,-26,-21,-42,-49,-33,-53,-57,-77,-95,40,95,46,-17,8,26,-75,-14,37,-34,-33,44,61,46,68,83,51,70,137,74,15,0,0,-14,-17,22,-28,-31,17,-3,-19,11,51,50,3,3,-7,-90,-101,-34,-7,4,22,-5,-31,-66,-35,-34,-93,-79,-60,-14,-6,11,7,6,36,14,13,36,43,24,52,46,3,2,-65,-62,-17,-51,-10,6,-6,23,-5,-36,-15,-29,-51,22,31,15,48,22,-12,-29,77,110,-49,-70,-32,-20,-18,13,-10,-61,12,30,15,60,113,14,-12,44,11,5,6,90,68,9,47,31,-16,-23,-24,-39,5,62,9,-101,-99,-13,66,42,17,48,-2,-51,-9,-6,-121,-156,-67,8,9,-26,2,96,118,13,-40,-19,16,-55,-127,-8,54,28,16,-50,-125,-44,75,49,32,44,23,-5,1,21,18,39,63,19,10,67,46,-43,-53,-25,-62,27,72,-31,-43,-49,-26,17,-8,6,-5,-15,23,2,-6,1,5,-10,-8,-9,-31,-68,-58,61,25,-10,35,0,-24,-36,33,25,-47,43,52,-18,26,24,-7,-7,14,75,43,43,67,-5,-17,-57,-22,-10,-38,47,31,48,12,-76,-105,-80,-19,-9,10,-8,11,-25,-51,6,9,-12,-58,-77,-81,-39,-3,4,35,-6,-10,43,13,-18,-39,36,131,92,70,11,-47,-64,1,82,58,85,27,-28,16,61,124,76,4,-15,-13,-29,-70,-31,-81,-149,-30,34,6,-35,-48,17,39,-1,-46,-32,-17,-40,-5,30,5,9,30,62,98,78,45,7,17,53,30,-21,-57,-50,-36,-60,-53,9,14,8,38,12,-11,7,-18,-100,-45,-7,-63,10,-20,-65,9,76,31,6,60,-18,-28,-7,-16,-18,64,83,-45,35,96,-18,-31,108,53,-18,52,-61,-99,-90,-117,-149,-158,-54,16,44,-32,25,62,36,104,89,-17,7,145,114,163,23,-99,-35,51,19,-33,31,-122,-29,19,-42,-20,-38,-21,20,68,34,-28,-19,43,-26,-126,-130,1,-48,-112,20,103,91,35,5,-29,-45,-45,-23,22,60,24,19,9,42,58,36,31,28,59,-26,-45,-24,29,-16,-121,-24,14,76,88,-41,-37,8,-18,-33,-10,-18,-66,-65,-8,33,34,38,29,45,95,37,-31,-2,-30,-12,65,23,-1,24,95,124,-24,-65,-18,10,38,3,2,1,21,10,-17,-17,-69,-39,-32,-54,-46,-43,-2,-46,-71,-71,-71,-69,15,35,-64,34,-29,-104,-26,9,74,32,-64,-63,-3,-43,-55,31,15,-15,-58,-75,19,-19,-11,82,123,92,64,123,102,101,33,-26,40,85,78,89,126,60,16,-28,-120,-67,5,-1,18,-4,-17,-7,27,14,-53,51,75,-63,-43,29,39,29,-37,-80,-88,-121,-114,-106,-124,-40,20,49,95,37,36,108,77,-27,-89,-63,-53,-26,9,-31,-28,-58,-79,-38,17,69,45,102,119,-7,-13,35,-11,-25,-8,-69,-46,41,5,40,58,-16,-27,0,96,87,42,33,-15,-17,-101,-121,-57,-18,0,-27,16,53,87,95,63,9,-62,-83,-84,-99,-102,-76,-12,84,53,36,4,20,48,-48,-23,6,-3,8,90,111,63,31,14,41,-49,-68,-15,9,62,41,-3,-35,-28,26,23,29,26,-32,-38,-1,33,-27,-49,-7,-53,-7,39,11,13,36,23,-68,-17,39,-65,-135,-87,49,108,94,74,16,-36,-128,-105,-32,-93,-60,-40,-14,3,-21,48,36,-11,-30,37,56,20,51,14,38,50,-43,-19,41,12,4,56,86,88,29,-109,-86,-22,-38,-67,-91,-26,12,76,155,103,29,79,83,11,-41,-42,70,58,-63,-55,-18,-83,-114,-50,-14,-47,30,72,28,20,20,46,-1,-25,-102,-144,-48,33,24,52,127,50,-4,19,-28,-99,-63,-59,-82,-71,-43,3,7,7,8,14,22,27,51,124,79,31,51,38,74,-4,-145,-136,-55,-16,60,79,52,102,59,-30,-40,-67,-114,-53,77,79,30,0,-43,-88,-85,9,13,24,22,-20,117,185,53,-35,-54,-130,-129,-49,-6,75,75,-28,-13,23,-24,15,73,24,-9,-21,-54,-42,-32,-31,43,75,25,-7,-9,-3,-37,-49,-51,-9,37,-12,-23,3,22,4,15,30,-19,-28,33,16,-84,-94,-46,14,51,100,123,78,-14,-64,-9,-39,-76,9,22,-81,-66,48,119,74,59,55,-66,-94,-17,55,72,87,43,-58,-97,-75,12,36,-33,-36,-27,-42,-5,3,27,37,-2,-38,-36,-51,-55,15,-3,2,-7,-18,31,61,110,53,13,69,70,-26,-52,12,24,-30,-83,-41,-5,5,12,68,157,120,-53,-98,46,69,-11,-43,-44,-70,-43,17,34,1,-78,-68,-29,-52,0,82,89,101,25,-87,-130,-77,21,5,-28,-4,-15,-31,43,28,-3,-26,-85,-56,-108,-99,-4,45,78,55,55,43,-25,24,88,-1,-88,-106,12,99,93,16,-113,-51,-12,6,109,168,100,-40,-82,-100,-111,-68,-20,30,53,-7,-25,-19,40,153,165,104,-67,-142,41,137,21,-12,-3,23,35,-34,-67,-33,52,7,-19,25,38,69,19,-52,-134,-165,-96,-34,54,148,121,40,-66,-135,-42,-28,-37,29,40,0,-104,-99,-40,2,20,-24,-28,51,176,141,94,108,38,-46,-134,-137,-29,55,18,-23,19,1,-41,-12,92,154,26,-113,-123,-11,89,59,-10,-83,-171,-124,7,52,118,46,-52,-5,45,129,149,51,-50,-79,-90,-82,-5,129,82,-33,-22,-75,-100,-88,13,45,-63,-59,-34,-34,-57,72,161,-37,-140,-131,-72,24,125,189,46,-122,-166,-113,71,223,191,75,-58,-65,29,71,110,86,-33,-137,-107,-35,95,212,141,29,-153,-233,-102,61,225,205,-14,-206,-239,-96,96,141,16,-106,-163,-215,-156,86,318,311,66,-192,-253,-67,151,203,206,138,-34,-188,-211,-40,140,135,-83,-183,-95,-42,73,198,211,122,-72,-268,-193,28,107,40,-82,-91,-58,-14,151,307,193,-69,-188,-193,-75,121,178,88,-43,-189,-245,-82,153,235,155,-18,-242,-269,-76,132,210,48,-128,-173,-130,-47,37,110,74,-64,-175,-199,-21,180,159,85,-47,-218,-231,-41,201,312,160,-83,-196,-165,60,258,285,163,0,-136,-162,-48,121,222,57,-188,-260,-169,-38,174,249,59,-42,-98,-93,175,346,171,-65,-207,-303,-275,-38,155,154,69,-74,-179,-102,61,166,247,190,-66,-298,-271,-23,206,248,66,-115,-221,-235,61,301,279,206,8,-181,-177,-44,92,139,26,-165,-290,-247,26,272,212,35,-81,-172,-126,19,148,179,91,-111,-312,-204,38,141,161,-21,-230,-196,-146,41,323,325,63,-197,-268,-191,22,226,274,173,-1,-230,-287,-14,187,241,196,-39,-287,-317,-28,287,313,139,-112,-281,-205,-7,176,251,27,-216,-248,-140,55,216,238,26,-113,-181,-246,-29,248,231,-27,-213,-249,-154,56,257,287,69,-169,-206,-114,57,234,190,-28,-138,-159,-146,30,276,274,-19,-242,-279,-155,56,250,288,88,-98,-156,-71,97,216,218,35,-205,-198,-81,48,231,218,33,-146,-204,-138,61,176,118,11,-165,-226,-110,117,193,100,35,-96,-85,91,191,176,59,-96,-219,-244,-94,119,216,217,10,-260,-239,-49,121,157,74,-13,-167,-258,-154,17,196,228,23,-236,-297,-126,110,189,108,-36,-216,-203,-97,38,131,56,-29,-104,-104,-52,91,260,256,39,-180,-176,-80,63,142,89,-4,-144,-176,-79,96,279,185,-58,-164,-122,-37,56,230,225,-3,-156,-173,-63,131,292,199,-20,-154,-188,-56,86,164,124,-23,-142,-179,-72,138,229,155,1,-158,-134,-4,185,295,144,-62,-198,-243,-131,48,149,84,-93,-164,-133,-68,0,149,191,-35,-217,-187,77,248,153,39,-53,-148,-136,14,188,171,-63,-187,-185,-197,-100,74,175,129,-19,-192,-254,-77,89,146,145,38,-61,-103,-60,26,113,55,-92,-71,-12,59,157,167,91,14,-35,-40,39,162,164,17,-146,-287,-245,-45,140,221,62,-159,-164,-32,49,79,76,-12,-74,-160,-219,-37,125,114,14,-102,-181,-117,68,213,225,82,-65,-123,-43,1,-15,54,131,120,-47,-118,62,185,112,-8,-57,-78,-102,-63,35,167,104,-120,-163,3,204,205,92,41,-29,-158,-156,23,131,163,48,-202,-258,-181,-81,71,206,205,24,-130,-125,-7,123,123,-18,-144,-194,-179,-64,145,239,78,-152,-236,-82,75,113,162,120,-81,-239,-199,-12,177,227,103,-75,-199,-138,106,239,197,62,-82,-131,-94,-8,73,111,42,-76,-127,-116,-65,37,118,120,5,-213,-238,-14,199,193,13,-116,-130,-11,40,73,171,36,-208,-281,-155,35,165,179,68,-67,-159,-141,6,233,296,34,-177,-157,-45,67,112,89,38,17,-86,-117,7,27,8,-15,-47,-39,-76,14,229,309,153,-126,-213,-152,-33,159,250,90,-164,-193,-80,67,184,163,113,-27,-174,-127,-3,134,138,-6,-123,-187,-105,67,187,203,58,-172,-252,-121,96,179,55,-51,-123,-241,-241,-46,173,181,26,-63,-127,-163,-97,37,140,96,-85,-280,-246,26,196,120,-36,-107,-76,-6,129,208,120,-18,-96,-77,-4,89,142,152,94,27,-9,-70,-4,100,115,63,-98,-135,-36,72,154,100,14,-102,-162,-65,89,127,44,30,-17,-142,-111,42,139,204,78,-149,-246,-194,-7,202,250,38,-142,-130,-56,-10,47,91,31,-33,-111,-156,-47,50,63,66,72,13,-114,-98,7,84,43,-65,-121,-137,-12,74,47,-35,-122,-126,-68,72,171,123,17,-119,-204,-73,111,199,165,36,-76,-197,-117,99,130,87,44,-9,-93,-135,-33,79,146,139,39,-100,-67,157,134,13,-39,-170,-140,-5,52,106,189,97,-96,-179,-152,-12,50,116,79,-57,-76,-90,-46,-21,53,71,-40,-31,22,42,18,37,69,-31,-75,-34,-5,52,48,-33,-100,-102,-31,40,128,168,60,-64,-142,-56,95,146,157,14,-146,-104,-4,42,115,133,-37,-170,-129,-104,-39,145,184,-6,-135,-116,-54,96,155,29,-84,-109,-88,-51,1,65,92,-15,-128,-101,-39,49,143,89,-40,-96,-89,-58,-11,37,57,-5,-41,24,46,33,35,3,-31,-62,-105,-25,102,134,61,47,7,-129,-45,51,94,82,-16,-41,-79,-76,62,165,32,-93,-39,-27,-31,19,49,22,-70,-90,-62,1,51,40,89,49,-48,-80,-73,-20,43,94,45,-55,-90,-76,27,156,135,38,5,1,21,76,98,11,-104,-110,-6,62,28,30,-15,-46,-13,2,35,50,49,-61,-104,-38,-63,-100,-3,99,4,-65,-60,-38,-13,20,99,88,-49,-132,-113,-43,128,203,141,15,-52,-69,-95,26,104,78,-3,-99,-121,-62,-33,-46,-37,-49,9,23,32,51,-15,-30,-54,-90,-75,1,112,118,0,-58,-25,-19,2,66,107,36,-45,-23,-24,40,63,-14,-28,19,71,1,-16,50,55,-7,-56,-26,-58,-8,112,82,15,-16,-73,-129,-33,94,113,104,-6,-117,-134,-102,-12,48,23,-3,-1,-14,-23,4,42,21,8,14,-8,4,64,53,-19,-52,-99,-47,49,73,95,84,21,-80,-70,2,61,125,28,-99,-152,-129,-1,20,39,106,70,0,-9,13,18,57,35,-47,-22,23,7,20,49,68,46,-25,-131,-144,-41,32,12,-60,-40,-72,-92,-20,16,32,25,14,-2,24,45,43,15,-32,-63,-85,19,87,-8,-62,-49,-46,-66,-51,9,97,48,-21,18,-15,-29,17,134,84,-36,-52,-33,51,-4,23,32,-54,-80,-133,-58,80,162,92,-68,-140,-134,-29,80,150,147,45,-15,-29,19,60,123,141,-27,-133,-94,-11,48,50,61,25,-43,-40,6,88,65,60,-5,-153,-92,-66,-6,86,59,-12,-63,-13,9,24,51,-7,-148,-201,-50,78,45,59,-14,-184,-123,23,113,142,102,-71,-170,-60,-9,33,151,186,21,-139,-110,-66,-10,126,120,-11,-34,-36,-23,9,-28,-20,2,89,86,20,75,2,-15,-25,-69,-17,15,52,128,139,-58,-147,-114,-107,-33,44,55,-69,-164,-122,-60,5,53,74,56,-7,-27,1,83,160,102,-54,-123,-130,-57,148,143,22,-32,-95,-57,18,93,116,28,-67,-140,-89,43,137,145,40,-71,-97,-48,-17,87,148,22,-44,-87,-109,33,117,70,19,-19,-78,-123,-30,67,31,-65,-128,-181,-153,25,117,106,36,-42,-14,58,134,120,4,-25,-32,-78,-19,81,114,75,-3,-106,-120,-30,24,51,99,15,-67,-40,-37,31,93,44,-26,-7,-69,-143,-87,49,73,-50,-79,-95,8,168,230,132,24,-9,-91,-70,51,149,134,45,-68,-110,-83,-48,61,96,-36,-112,-69,1,-9,13,67,2,-60,-140,-100,10,84,62,-108,-172,-99,-25,12,67,79,25,-41,-44,11,66,82,35,-57,-152,-99,49,139,84,-45,-23,-21,-76,17,113,86,-26,-83,-88,-35,28,77,173,128,2,-56,-26,63,125,104,32,-32,-88,-104,-58,12,48,42,-32,-94,-93,-9,120,112,7,-77,-77,-32,15,137,85,-53,-85,-97,-10,89,140,46,-88,-115,-91,-9,39,61,39,-23,-68,-74,-50,-43,38,86,39,-3,-49,25,97,19,-28,-14,-6,-2,4,11,61,86,11,-18,-13,-13,67,60,-17,-69,-103,-79,-40,4,3,34,-4,-96,-45,-10,-2,79,131,47,-70,-41,23,22,71,46,-18,-65,-86,-76,-50,66,54,-13,-60,-30,50,-9,38,79,-109,-184,-71,-66,-17,63,-36,-109,-59,33,79,103,152,58,-41,-64,-82,11,36,70,83,-38,-33,40,27,32,40,33,60,63,39,14,74,67,3,2,0,-15,-25,104,103,10,-35,-82,-9,-30,-57,-5,31,38,-7,-32,-17,80,96,5,-56,-99,-74,-59,-90,-112,-62,-21,-76,-70,2,58,71,9,-96,-96,-11,1,-16,-10,-28,-65,-77,-18,98,163,128,33,-39,-128,-107,-9,45,91,7,-13,12,1,52,125,134,85,17,-89,-12,103,86,39,-15,-65,-65,-6,-5,35,81,49,19,-67,-74,-28,-35,-26,-38,-42,4,62,16,-95,-80,-25,-69,-41,52,52,16,0,-3,-51,-75,-1,45,78,103,0,-57,-18,-6,49,61,39,49,10,-53,-27,14,-50,-49,-10,26,47,22,100,105,43,21,-15,-42,-51,0,39,7,-25,-13,-49,-77,-26,-3,-10,-4,-8,-59,-85,-31,30,12,1,36,10,4,-37,-105,-64,-42,36,70,-17,44,48,-9,-3,-15,62,94,17,20,18,-56,-35,-5,-2,-18,-22,27,10,16,-4,-66,-32,-3,15,17,-40,-40,28,98,94,83,22,-49,-11,68,79,-26,7,10,-100,-83,-33,1,6,-20,-16,10,6,-7,16,23,-19,-30,-27,-45,39,94,61,119,92,9,-7,-24,-85,-98,3,32,1,-7,-52,-145,-20,102,20,-24,-54,-25,-17,21,35,-24,-11,5,-8,-56,-24,39,57,81,78,73,34,-11,-22,-9,-31,-111,-28,81,20,-11,39,8,-64,-78,-68,-1,7,-36,-39,-49,-50,-30,10,57,37,-53,-73,-35,43,25,-87,-16,36,-44,-37,18,18,18,73,141,137,52,-3,18,71,46,20,41,-54,-70,25,-3,-22,44,14,3,44,2,-28,-36,-35,-15,47,18,-34,-8,-42,-21,3,17,-14,-114,-64,19,28,-3,-24,2,28,99,117,73,44,4,-13,-11,18,-13,-81,-86,-26,11,-23,23,12,-49,-22,-2,44,6,-33,37,49,66,38,-53,-89,-97,-33,39,53,-15,-54,-52,-56,31,84,41,-12,27,30,-34,-52,-37,1,-41,-48,0,-29,-49,-43,-15,44,59,16,-42,-5,36,-19,-22,17,10,-6,41,36,-42,-41,31,-17,-63,76,119,33,-68,-50,28,56,62,-17,-36,-42,-59,14,76,104,113,62,0,-41,-16,54,87,78,0,-46,-17,-5,9,69,78,-32,-173,-159,-54,8,92,53,-30,-57,-136,-116,-3,84,141,126,43,-60,-38,21,4,-1,18,-13,-54,-1,-64,-117,-66,-69,-25,-11,-13,65,90,62,24,-60,-50,16,59,39,-43,-49,-47,-46,-9,10,51,76,22,-24,-19,47,28,-11,63,-4,-88,-46,42,111,107,78,3,-65,-94,-67,-12,41,51,-17,-42,-29,-34,-2,17,-5,-15,-108,-112,17,67,104,107,35,-42,-98,-61,49,56,25,-16,-97,-102,-27,90,96,-3,-69,-71,-23,17,84,105,41,-24,-162,-153,31,88,79,55,19,-25,-63,-5,82,60,65,55,-50,-105,-52,88,82,23,-41,-79,-48,-86,-6,89,44,-13,-90,-84,51,124,128,52,-47,-66,-48,-4,47,71,65,15,-51,-15,71,100,13,-55,-56,-116,-121,-42,45,86,53,-13,-45,-35,-1,56,59,9,-33,-73,-20,77,112,57,-9,-22,-71,-14,11,-46,-4,-11,-11,1,-60,-47,23,34,32,2,-49,-76,-89,-88,-42,11,2,-68,-71,55,96,70,-44,-118,-73,-81,17,108,81,-1,-38,-60,-65,-19,54,160,65,-13,27,22,10,40,55,11,23,2,-2,30,39,-7,-37,-28,-68,52,113,30,33,-23,-49,-40,-11,73,85,74,41,-20,-134,-145,18,71,42,2,-1,53,13,-15,9,-1,-13,-28,-22,-7,7,78,106,35,-41,-83,-83,-53,-7,10,-9,-7,8,-14,1,14,-1,-3,-66,-35,7,48,106,32,-12,-77,-137,-58,73,123,59,-27,-39,33,32,-10,8,-4,-38,-12,14,-31,-36,15,-6,-48,-36,-63,-84,-9,62,20,-6,10,-41,6,22,-31,-27,-36,-39,-35,-40,-58,0,2,-1,38,-17,23,68,37,3,-66,-17,59,28,56,79,18,-38,21,69,55,63,35,-1,-2,-5,-56,0,34,14,94,61,-1,-3,-32,-35,-2,17,14,21,39,42,9,-31,-35,-35,-18,-4,-21,2,3,-13,-14,-22,-44,-80,-21,37,47,95,52,-46,-87,-45,-24,-73,-49,-14,40,64,65,96,-30,-109,-44,-38,31,87,63,48,-11,-7,-9,-51,-46,-41,-11,-60,-108,-48,36,122,62,7,11,-25,-46,-65,29,111,84,-8,-68,-61,-40,20,43,57,39,-29,-54,-11,69,65,20,33,3,-14,2,-52,-60,-16,21,-25,-70,-12,-19,-6,-20,-78,-72,-79,-17,14,-15,40,-3,-104,-67,4,68,109,155,96,-36,-28,-1,-2,-18,-21,35,112,81,95,159,64,77,87,12,13,-27,-103,-18,144,105,6,-79,-91,-73,-27,82,38,2,-54,-151,-177,-209,-201,-135,-88,-68,-79,-52,49,77,84,60,13,70,92,46,86,64,72,72,-67,-64,14,50,63,117,167,135,63,39,0,-114,-111,-85,-81,-43,-60,-83,-45,-23,-55,-18,23,-53,-45,-18,-67,-34,-3,56,144,167,88,-36,-62,-98,-73,-34,-60,57,106,45,12,12,71,102,101,30,-50,-26,14,32,-15,-109,-132,-105,-60,40,122,78,44,8,-89,-122,-131,-145,-157,-170,-174,-129,-57,44,83,54,80,61,4,-28,5,101,144,85,78,147,103,53,55,42,15,-18,75,175,133,66,135,140,16,14,23,67,42,-51,-61,-101,-134,-163,-102,-8,8,-39,-89,-76,-57,32,93,76,61,-49,-135,-98,-8,48,5,-8,-1,-20,-41,-83,-70,0,62,35,-22,-10,1,-38,-75,-46,-31,-31,-39,-39,-8,-32,-39,-7,-24,-80,-67,-41,-11,38,14,8,-62,-80,6,-46,-31,70,85,68,32,-17,-57,-2,49,10,5,85,150,157,155,110,80,46,12,34,17,17,25,6,29,51,61,105,143,13,-87,-36,-23,-6,25,44,18,12,10,19,26,-1,2,-35,-49,-58,-26,-22,-35,-47,-124,-140,-117,-69,-68,-50,-11,-23,-50,-26,5,-8,-3,-85,-120,-75,-74,-32,-24,-82,-54,60,107,59,30,-7,-55,2,138,169,55,14,-20,-43,7,28,-8,-76,-68,-24,-19,11,50,74,162,156,65,124,205,137,80,72,-14,-86,-86,-37,-45,-76,36,117,90,93,79,25,-66,-97,-79,-122,-163,-199,-263,-289,-267,-257,-192,-81,0,-23,-27,105,131,115,141,94,117,164,72,42,101,129,130,136,183,119,59,154,128,94,135,109,101,37,-32,-44,-24,-107,-213,-193,-266,-314,-270,-203,-128,-90,-71,-56,-20,21,57,85,109,58,27,-12,-31,-17,-113,-2,60,-34,21,110,149,80,119,104,57,143,131,96,45,51,-2,-37,64,86,105,117,169,182,102,112,135,45,-57,-125,-215,-236,-317,-391,-386,-405,-427,-510,-448,-300,-193,-123,-133,-119,-9,123,127,83,108,163,143,82,132,202,237,330,348,257,270,412,480,476,478,454,368,216,131,35,-68,-122,-157,-188,-240,-239,-293,-334,-320,-266,-108,-50,-117,-94,-19,-88,-159,-127,-127,-197,-250,-241,-249,-182,-36,18,41,99,124,135,94,103,204,188,163,137,47,-41,-89,-84,-97,-72,-81,-91,-49,-63,-7,31,36,149,90,-26,-64,-85,-67,-119,-141,-92,5,106,152,150,229,340,368,386,377,299,225,215,134,3,-139,-223,-214,-237,-305,-395,-471,-432,-296,-252,-196,-117,-78,-19,15,33,22,2,37,84,80,66,63,64,90,245,365,378,454,491,515,487,400,379,312,199,132,-25,-250,-356,-447,-506,-416,-370,-443,-468,-419,-326,-323,-316,-157,-74,-96,-147,-203,-245,-224,-183,-175,-133,-131,-64,77,198,254,287,373,312,283,375,346,291,248,241,204,123,132,75,-5,-25,-69,-35,51,39,7,-5,-23,40,40,14,-40,-168,-98,-32,-49,59,187,281,292,231,185,212,219,75,-34,-188,-408,-521,-696,-864,-914,-951,-981,-828,-601,-427,-151,59,186,301,370,448,527,572,560,533,448,375,447,502,492,576,668,668,625,646,682,688,644,461,305,91,-149,-266,-464,-696,-855,-878,-905,-979,-972,-907,-710,-599,-515,-304,-198,-102,-42,-87,-98,-6,42,4,81,148,120,138,179,211,341,563,611,537,565,567,449,360,273,110,2,-147,-318,-364,-368,-384,-436,-425,-359,-331,-319,-276,-151,-110,-124,-108,-85,-16,10,84,211,326,411,451,505,498,488,483,486,488,375,177,-76,-257,-389,-522,-618,-776,-924,-945,-823,-695,-501,-274,-159,-41,45,169,266,326,437,491,453,419,495,524,510,560,680,783,831,860,799,755,717,589,436,262,73,-131,-303,-450,-573,-699,-885,-957,-958,-958,-945,-865,-717,-636,-585,-503,-383,-315,-258,-186,-167,-146,-99,-96,-34,118,247,354,416,495,569,589,647,727,699,625,519,376,239,82,-23,-126,-221,-261,-295,-356,-407,-357,-239,-174,-119,-142,-273,-293,-238,-267,-247,-44,74,99,220,348,428,504,595,681,589,351,153,-99,-375,-602,-744,-818,-897,-906,-819,-628,-323,-84,113,308,365,439,574,599,524,464,349,262,255,271,331,423,452,486,570,599,638,570,553,589,499,376,215,18,-177,-323,-538,-745,-834,-954,-1117,-1151,-1105,-1036,-893,-693,-452,-260,-109,33,141,148,170,233,119,-8,-52,-104,-82,39,201,295,447,616,652,730,728,670,640,519,274,72,-25,-220,-338,-397,-389,-364,-451,-380,-239,-125,-98,-155,-211,-341,-378,-359,-357,-156,19,58,179,387,607,699,717,651,526,369,56,-279,-585,-844,-1068,-1205,-1208,-1149,-989,-711,-305,42,300,571,706,784,906,892,797,731,568,422,419,436,399,392,436,497,600,614,547,584,628,533,472,367,202,112,-59,-225,-420,-698,-940,-1103,-1205,-1245,-1242,-1277,-1166,-950,-749,-516,-246,-48,50,182,305,315,196,46,-98,-194,-208,-94,125,287,426,586,675,677,728,744,713,673,439,115,-31,-109,-236,-206,-92,-80,-110,-128,-169,-172,-168,-216,-250,-348,-463,-494,-423,-242,-64,129,367,534,621,673,663,479,100,-283,-632,-964,-1197,-1339,-1360,-1219,-979,-689,-319,59,400,763,970,1023,1067,1001,864,772,676,469,280,220,180,235,353,459,574,699,785,710,657,607,510,408,232,157,34,-203,-365,-578,-858,-1085,-1281,-1410,-1431,-1312,-1205,-1131,-897,-661,-429,-92,194,309,348,284,154,75,-3,-28,-11,7,39,83,183,428,648,822,989,920,762,625,479,310,88,-43,-109,-177,-186,-207,-208,-135,-191,-303,-321,-420,-524,-512,-535,-461,-317,-189,79,283,422,529,560,537,300,-27,-311,-595,-883,-1125,-1234,-1211,-1159,-972,-566,-173,210,574,760,1001,1213,1145,1030,926,733,569,508,437,330,325,384,409,520,603,624,657,620,595,574,513,448,284,42,-112,-228,-426,-672,-822,-983,-1161,-1268,-1357,-1235,-1101,-1050,-849,-661,-473,-258,-164,-90,-19,-10,-42,-21,-30,-53,90,133,111,246,391,421,466,592,586,496,533,534,421,392,390,306,247,231,158,84,72,31,-63,-161,-285,-382,-429,-394,-279,-181,-17,129,247,417,475,382,290,132,-194,-495,-854,-1162,-1267,-1351,-1361,-1283,-1089,-781,-455,-125,212,570,883,1022,1040,995,919,887,787,743,697,521,380,320,352,352,407,483,468,562,620,581,553,519,468,373,271,118,-107,-384,-589,-758,-938,-1043,-1069,-1051,-1022,-911,-828,-682,-487,-349,-261,-245,-189,-164,-220,-282,-238,-158,-78,8,36,128,327,428,465,472,467,498,399,345,346,257,164,235,318,335,485,499,403,284,39,-158,-281,-420,-544,-589,-547,-453,-242,-31,186,455,563,518,335,79,-256,-653,-1062,-1438,-1634,-1683,-1605,-1336,-866,-376,92,558,941,1186,1260,1287,1230,992,717,554,448,345,335,466,673,809,859,846,771,648,508,389,251,122,-29,-131,-173,-168,-125,-144,-186,-287,-509,-751,-842,-924,-1044,-1016,-914,-829,-696,-455,-223,-68,46,124,147,97,-29,-177,-227,-210,-228,-177,-11,134,277,338,337,430,436,331,235,196,123,40,41,7,64,172,183,196,207,147,-35,-221,-299,-297,-223,-164,-46,180,403,483,379,319,210,-83,-476,-893,-1243,-1527,-1720,-1653,-1358,-927,-364,167,691,1148,1382,1384,1293,1180,934,641,450,316,141,123,268,425,592,701,783,795,691,611,496,303,118,-67,-148,-165,-198,-283,-357,-399,-477,-612,-819,-879,-946,-979,-892,-762,-509,-271,-49,93,274,387,319,207,47,-92,-245,-317,-328,-279,-198,-135,-37,113,358,489,517,445,273,52,-187,-287,-343,-294,-218,-74,125,170,253,278,236,134,-61,-149,-205,-232,-196,-60,182,314,417,487,384,155,-128,-478,-1000,-1460,-1711,-1774,-1619,-1306,-762,-123,495,1145,1541,1664,1681,1549,1200,836,612,311,146,125,195,407,654,859,985,1110,1037,842,563,281,64,-226,-442,-569,-640,-693,-721,-728,-740,-755,-795,-875,-924,-855,-793,-688,-458,-285,-99,151,333,444,471,448,331,148,-28,-242,-389,-414,-333,-190,-59,126,225,303,403,377,339,163,-12,-161,-346,-390,-385,-359,-231,-37,61,106,85,36,-5,-54,-135,-227,-125,49,203,363,514,530,396,193,-226,-777,-1252,-1584,-1780,-1740,-1487,-1090,-457,235,880,1546,2013,2112,1952,1635,1222,689,232,26,-63,-34,149,461,826,1132,1288,1364,1348,1121,770,360,-68,-386,-643,-943,-1056,-1045,-1107,-1144,-1136,-1105,-1148,-1157,-1141,-1141,-917,-640,-393,-110,100,358,571,685,710,632,586,367,116,-23,-169,-256,-249,-92,119,280,374,471,509,420,319,181,-53,-358,-574,-646,-675,-582,-428,-281,-96,93,203,148,96,35,-98,-162,-128,-59,-4,-37,-72,-188,-475,-753,-1073,-1455,-1793,-1818,-1573,-1202,-641,92,932,1619,2196,2620,2658,2382,1922,1351,718,154,-225,-414,-329,-10,422,870,1254,1536,1653,1587,1352,949,386,-111,-514,-854,-1144,-1297,-1323,-1391,-1339,-1227,-1124,-1122,-1135,-1102,-1085,-899,-592,-393,-216,111,368,541,613,545,510,403,165,17,-22,-80,-101,-12,86,151,329,489,589,593,390,142,-54,-228,-432,-588,-654,-635,-496,-320,-133,99,335,478,489,429,272,129,-44,-285,-394,-517,-646,-761,-934,-1136,-1377,-1610,-1831,-1893,-1640,-1219,-681,70,903,1622,2166,2642,2835,2676,2217,1522,907,323,-123,-372,-316,41,438,955,1482,1846,1926,1707,1390,932,341,-237,-762,-1117,-1296,-1413,-1505,-1406,-1313,-1332,-1309,-1309,-1208,-1044,-891,-626,-296,-34,205,419,569,619,582,480,279,78,-132,-314,-325,-218,-121,14,244,446,606,785,826,675,428,142,-161,-442,-602,-709,-785,-699,-479,-250,3,215,344,540,691,673,567,404,151,-138,-366,-590,-890,-1334,-1798,-2127,-2382,-2453,-2358,-2088,-1604,-916,64,1012,1826,2417,2743,2817,2472,1906,1184,448,-173,-523,-489,-248,145,791,1530,2149,2634,2824,2627,2078,1396,578,-261,-857,-1306,-1590,-1637,-1577,-1422,-1179,-1020,-959,-950,-933,-1107,-1227,-1109,-993,-710,-382,1,427,707,834,846,807,644,402,149,-27,-123,-177,-182,-153,-38,96,184,211,195,157,-48,-218,-234,-330,-410,-367,-197,-75,63,323,455,555,661,620,556,425,119,-221,-624,-1068,-1452,-1832,-2236,-2468,-2558,-2468,-2096,-1566,-812,75,1007,1869,2466,2815,2915,2627,2136,1460,649,-38,-600,-894,-888,-462,155,850,1631,2190,2513,2525,2132,1330,433,-434,-1255,-1899,-2289,-2250,-1839,-1275,-713,-87,454,617,557,380,45,-341,-714,-957,-976,-814,-564,-172,365,743,896,925,931,830,478,201,99,-31,-230,-331,-289,-330,-348,-306,-362,-406,-416,-432,-463,-390,-220,-91,70,306,522,659,855,974,977,915,567,80,-498,-1180,-1854,-2508,-3080,-3453,-3537,-3309,-2690,-1828,-801,359,1376,2285,2957,3216,3205,2880,2335,1619,852,272,-111,-211,-94,236,852,1543,2117,2516,2677,2570,2074,1174,53,-1169,-2312,-3269,-3906,-3953,-3491,-2737,-1816,-887,-6,731,1071,1009,751,411,134,-164,-335,-278,-43,436,815,1279,1743,1942,2037,1918,1714,1429,1051,637,143,-385,-924,-1348,-1663,-1884,-1982,-1868,-1569,-1221,-887,-578,-209,14,176,285,334,475,485,614,877,1053,1012,680,246,-382,-1213,-2165,-3160,-3871,-4211,-4180,-3615,-2542,-1084,388,1776,3060,3931,4248,4032,3505,2676,1691,683,-201,-697,-792,-516,34,914,1915,2760,3418,3666,3512,2875,1577,-89,-1822,-3321,-4622,-5461,-5569,-5064,-3902,-2550,-1140,176,1188,1688,1656,1380,835,347,-68,-271,-128,178,734,1276,1702,2040,2139,2090,2004,1829,1450,1009,631,176,-350,-828,-1262,-1620,-1798,-1823,-1633,-1272,-867,-412,42,272,220,119,-6,-120,-131,55,312,655,1063,1236,1098,620,-120,-1339,-2680,-3869,-4918,-5417,-5447,-4724,-3303,-1461,501,2265,3916,5093,5576,5287,4563,3625,2428,1055,-262,-1086,-1288,-1015,-430,566,1797,2960,3776,4138,3940,3061,1519,-543,-2676,-4572,-6035,-6957,-6901,-5849,-4328,-2464,-650,822,1876,2265,2050,1340,543,-96,-523,-575,-279,488,1317,2098,2741,3128,3285,3050,2748,2162,1314,480,-249,-896,-1615,-2181,-2407,-2337,-2048,-1574,-923,-161,490,969,1058,779,414,73,-232,-360,-156,303,1073,1867,2440,2518,1969,912,-700,-2526,-4451,-6204,-7302,-7631,-7038,-5565,-3334,-815,1599,3962,5775,6674,6531,5551,4221,2725,1177,-373,-1245,-1377,-904,96,1172,2563,3914,4905,5243,4755,3561,1553,-903,-3628,-6092,-7703,-8523,-8366,-7109,-5003,-2609,-361,1579,2736,3061,2611,1534,339,-731,-1186,-1079,-465,701,1911,3065,3881,4292,4222,3706,2967,1865,614,-586,-1551,-2374,-3059,-3362,-3304,-2788,-1877,-820,228,1082,1589,1554,1167,615,-56,-571,-873,-630,156,1341,2693,3766,4462,4386,3256,1199,-1324,-3989,-6571,-8727,-10098,-10191,-8791,-6227,-2978,411,3631,6543,8298,8674,7684,5884,3946,1878,-85,-1743,-2298,-1874,-561,1081,2591,4352,5747,6411,5990,4623,2428,-483,-3602,-6774,-9265,-10443,-10422,-9151,-6946,-3955,-641,2075,3839,4396,4130,2967,1390,-83,-1045,-1016,-386,770,2060,3540,4781,5261,4978,3889,2471,810,-1033,-2810,-4296,-5120,-5217,-4758,-3866,-2570,-832,821,2172,2953,3034,2606,1490,190,-1018,-1868,-2082,-1565,-214,1602,3724,5797,7148,7377,6132,3599,185,-3538,-7128,-10617,-13024,-13932,-12910,-9989,-5973,-1164,3310,7382,10276,11389,10724,8339,5588,2636,109,-1899,-2929,-2350,-783,1453,3511,5179,6360,6942,6471,4623,2003,-1429,-5237,-8788,-11834,-13286,-12992,-11128,-7793,-3738,546,4118,6573,7371,6611,4901,2552,518,-1001,-1389,-423,1342,3392,5125,6362,6866,6292,4341,1319,-1721,-4385,-6689,-8410,-9337,-8892,-7259,-4979,-2364,553,3379,5434,6479,6018,4682,2775,330,-1798,-3316,-3622,-2616,-635,2000,4910,7851,9640,9736,7857,3999,-365,-5138,-9834,-13997,-17307,-18251,-16539,-12087,-6667,-641,5407,10574,14555,15654,14261,10596,6351,2273,-973,-3247,-4474,-3370,-1013,1998,4462,6085,7273,7824,7039,4618,958,-3648,-8441,-12608,-15527,-16629,-15446,-12466,-7343,-1225,4444,9000,11561,12071,10346,7060,2679,-720,-2499,-2889,-1655,258,2806,5067,6363,6521,5564,3265,-120,-3617,-6723,-9196,-10682,-11171,-10297,-7804,-4387,-582,3102,6430,8553,9208,7966,5258,2136,-1249,-3718,-4993,-4746,-2457,1037,4719,8011,10749,11937,10814,7429,1714,-4233,-9757,-14834,-18889,-21915,-22114,-18705,-11762,-4031,3673,10768,16399,20517,20898,17767,11794,5438,248,-3303,-5584,-6399,-4631,-1255,2622,5426,6407,6398,6237,4960,2111,-2235,-7553,-12570,-16163,-18047,-17742,-14762,-9528,-2163,5616,11908,15983,16996,15106,11128,5677,-74,-4255,-5979,-5636,-3413,-700,1824,4189,5415,5390,4028,1349,-2157,-5403,-8086,-10345,-11336,-11186,-9566,-6112,-1743,3097,7673,10792,11785,10566,7396,3108,-1252,-5216,-7341,-7043,-4860,-887,3702,7795,10934,12940,12813,10142,5174,-1657,-8136,-13679,-18336,-21534,-23155,-21995,-16865,-8508,581,9080,15921,20700,23399,22241,17068,9782,2696,-2335,-5125,-6716,-6888,-5132,-2017,1303,3672,4183,3619,3055,1984,-53,-3759,-8753,-13136,-15320,-15570,-13796,-9846,-3853,4186,11862,16646,18101,16608,12758,7424,1214,-4460,-7664,-8130,-6793,-4265,-1523,846,3024,4374,4665,3847,1466,-1690,-4640,-7370,-9575,-10657,-10357,-8134,-3993,872,5658,9544,11400,11042,8548,4248,-361,-4153,-6769,-7369,-5853,-2715,1696,6005,9096,11057,11922,11293,8680,3630,-3233,-9971,-15337,-19106,-21367,-21899,-19756,-13983,-5194,4139,12064,17608,20869,22164,20580,15411,8136,1305,-3339,-5412,-6461,-6754,-5801,-3654,-946,1103,1551,899,628,487,-90,-2229,-6123,-10009,-12152,-12069,-10009,-6422,-1343,5313,11790,15752,16360,14227,10150,5384,291,-4475,-7252,-7640,-6254,-3982,-1863,-353,1139,2705,3889,4001,2372,-401,-3191,-5647,-7784,-9401,-9553,-7446,-3504,955,4722,7339,8359,7824,5721,2380,-829,-3190,-4345,-4085,-2791,-591,2307,4978,6847,7770,7884,7445,6260,3418,-1288,-6795,-11695,-14751,-16273,-16932,-16206,-13065,-7118,490,7508,12624,15714,17444,17986,16374,12227,6725,1916,-1174,-2827,-4319,-5988,-6900,-6739,-5770,-4432,-3433,-2392,-632,1485,2863,1992,-1324,-4993,-7143,-7843,-7111,-5245,-2016,2818,7714,10892,11745,10592,8206,5430,2071,-1327,-3623,-4757,-5040,-4959,-4723,-3847,-2121,93,2219,3679,3778,2439,574,-1622,-4018,-6366,-7859,-7319,-4934,-1664,1452,3644,4569,4746,4472,3702,2531,1134,105,-221,-358,-307,301,1118,1827,2439,3388,4496,5207,4299,1440,-2620,-7074,-10573,-13171,-14938,-15401,-13871,-9579,-2985,4059,9732,14019,17289,19260,19140,16086,11002,5362,185,-3875,-7044,-9409,-10960,-11212,-9921,-7373,-3966,-547,2638,5292,6635,5607,1780,-3516,-7984,-10239,-10317,-8439,-4705,753,6856,11510,13573,13315,11303,8267,4525,141,-4029,-7096,-8999,-9723,-9079,-7160,-3871,261,4390,7545,8370,6591,3592,406,-3292,-7152,-9936,-10386,-8229,-4686,-1003,2347,4781,6420,7773,8203,7139,4877,2234,-140,-2042,-3472,-4091,-3692,-2732,-1161,1111,3513,5514,6364,5330,2585,-1479,-6302,-10196,-12526,-13961,-14131,-12567,-8482,-1876,4751,9796,13726,16691,18635,18791,15821,10556,4428,-1593,-6015,-9054,-11682,-12897,-12271,-10048,-5978,-1530,2468,6029,7748,7374,5339,943,-4766,-9328,-11601,-10733,-7387,-3106,2529,8694,12968,14682,14061,11498,7830,3123,-2320,-6958,-10318,-12605,-13116,-11376,-7391,-1973,3545,8267,11110,10968,8205,4250,-531,-5492,-9319,-11046,-10490,-8633,-5828,-2064,1959,5313,8131,10532,11236,9412,5789,1952,-1544,-5084,-7704,-7881,-5895,-3054,-80,2778,5082,6287,6512,5861,3588,-587,-5458,-9251,-11474,-12738,-13157,-12029,-8760,-3518,2547,7834,12093,15559,18171,19233,17090,11705,4846,-1621,-6477,-9644,-11780,-12557,-11527,-9366,-5977,-1531,2582,5527,6857,6554,5190,2168,-2841,-7763,-10654,-10776,-8001,-3589,1798,8020,12973,15379,15268,12595,8411,3128,-3320,-9238,-13317,-15647,-15605,-12906,-8027,-1369,5147,10032,13275,13662,10825,6287,1134,-4111,-8690,-11802,-12792,-11430,-8400,-3974,1285,5863,9571,12577,13633,11530,6410,377,-4313,-7540,-9336,-8736,-5950,-2334,1301,3847,4986,5307,4695,3872,3268,1739,-818,-3780,-7306,-10173,-11389,-11390,-9741,-6712,-2834,2260,7184,10191,12109,13419,14042,13890,11031,5846,627,-3974,-7356,-9355,-10650,-10542,-8627,-6223,-3276,21,2597,4435,5295,5144,4123,1048,-3873,-7975,-9509,-7832,-3831,928,6353,11672,15044,15417,12861,7884,1613,-4566,-10119,-14361,-16680,-16437,-13369,-8035,-1035,6184,11956,15183,15607,13289,8277,1368,-5626,-10831,-13720,-14255,-12446,-8678,-3135,3194,8574,12154,13628,12706,9403,4418,-827,-5381,-9057,-10865,-9544,-5615,-1105,2841,5847,7500,7388,5570,2970,-7,-2870,-4568,-5360,-6391,-7413,-7836,-6614,-3338,77,2172,2541,1686,1727,3156,4016,4516,5495,7548,10103,9944,6442,1679,-2691,-5162,-6166,-7706,-8885,-8709,-7662,-5221,-2092,881,3939,6229,7010,6042,2318,-3147,-6989,-7799,-5861,-1696,3512,8751,12669,13761,11891,7343,978,-4840,-9090,-12593,-14891,-14539,-11664,-6832,-980,4698,9764,12917,13612,12265,8536,2579,-3766,-8684,-11406,-11926,-10591,-7286,-2877,1707,5995,9163,10615,9681,6455,2044,-2326,-5901,-8109,-8261,-6001,-2025,2432,6419,8788,8397,5618,2216,-1328,-5207,-8552,-9722,-7827,-3781,699,4439,6814,6959,5855,4302,1042,-3843,-9501,-13358,-12747,-8653,-3000,3562,10439,16936,21383,19933,12823,3318,-5961,-11955,-14581,-15445,-14402,-11060,-5758,810,6063,9004,10667,10394,7784,3698,-1871,-7941,-11904,-12408,-8762,-2367,4115,10376,15583,17214,14404,7990,-92,-7226,-12801,-17242,-18700,-16285,-10805,-3652,3242,9436,14123,15796,14484,11165,5627,-1246,-6995,-10184,-10763,-9906,-7996,-4464,-384,3192,6559,8747,8104,4824,878,-2498,-5179,-7199,-7547,-5587,-2302,1811,6104,9240,9911,7867,4498,1367,-1645,-4767,-7488,-9179,-8664,-5656,-913,4489,8658,9840,8395,4666,-122,-4455,-8843,-12035,-13257,-12347,-8083,-1005,5961,11480,15268,16443,15096,9467,906,-6546,-11528,-13027,-10585,-6378,-1380,4152,7580,8597,7881,5412,2253,-1239,-5554,-8822,-10381,-10677,-8466,-3802,2203,8543,13677,15799,14419,9016,1074,-6207,-11582,-14568,-14526,-12128,-7637,-1381,4518,8598,10870,11507,10690,8554,4471,-559,-5280,-8758,-9686,-8181,-5820,-3248,-456,1654,2934,3180,2537,1361,-191,-1362,-1699,-1797,-1877,-1553,-627,1133,3934,7379,10129,10817,8803,4886,-147,-5258,-9445,-12454,-13592,-12463,-9176,-4453,798,6264,11322,14500,14643,11416,5346,-2347,-9209,-14012,-16244,-15733,-12846,-6611,1556,9215,14014,15814,15119,12503,7665,-701,-9523,-15050,-14201,-8025,-605,4875,8161,9658,8771,5667,654,-4084,-6079,-5249,-3683,-2900,-3572,-3762,-2643,-577,1630,3079,4044,4494,4396,2414,-612,-3435,-4312,-2658,-536,851,1420,1737,1792,1276,799,680,408,-150,-1036,-1926,-3206,-4471,-5018,-3829,-1522,453,2134,2909,2970,2341,1976,2346,2891,3254,3023,2226,728,-1104,-2683,-3500,-2791,-813,1744,3758,3656,1803,-1051,-3271,-4337,-4666,-4436,-4088,-2884,-1589,-740,301,2111,4952,8387,10974,10252,5499,-1590,-7649,-9511,-8976,-7890,-6770,-5458,-2365,1469,4505,4395,2084,298,472,1267,495,-284,463,3980,8691,10924,8880,4101,-1346,-6108,-9408,-10037,-7505,-2632,2042,4292,4204,1099,-2913,-6097,-6803,-5157,-1801,2871,6632,8735,7725,5065,2181,-570,-2067,-3215,-4808,-5550,-4079,-1080,1816,3630,3557,2697,1576,-562,-2782,-5278,-5966,-3542,254,3672,5537,5903,4562,2649,704,-931,-1714,-2420,-2633,-2183,-1659,-1243,-1012,-338,573,1477,2094,2525,2982,2153,254,-1916,-3340,-3449,-3011,-2457,-2136,-2059,-1898,-677,1391,2343,2512,3052,4098,5295,5424,4033,1287,-1594,-3943,-4064,-2658,-2382,-3169,-5386,-6570,-5687,-3251,-1036,-464,28,975,2505,2721,1944,2554,5016,8210,9478,7190,3575,617,-1112,-2211,-2620,-1687,45,1458,-135,-3218,-7158,-10759,-11278,-8560,-3068,3021,7671,8905,7173,4131,906,-1452,-3012,-3676,-2640,-497,2575,6056,8372,8328,5957,2637,-1013,-3887,-5956,-6669,-6164,-4683,-1862,443,552,-1305,-2887,-3310,-2650,-875,1710,4628,6200,5413,3194,465,-1852,-2752,-1941,-294,1241,2516,3252,3377,1750,-1731,-5087,-6407,-5163,-3050,-1602,-822,149,1328,1912,1422,-332,-1931,-1482,605,2811,4288,5191,6125,6688,5444,2278,-2106,-6721,-9037,-7470,-3976,-1804,-2475,-5258,-6933,-5704,-2604,773,3682,6553,8511,7841,4550,924,-695,13,1652,2496,2358,2487,2762,2591,1746,604,419,197,-1779,-4943,-7370,-8034,-7265,-4959,-1034,3771,7996,9204,6631,1608,-3590,-6672,-6782,-4393,-959,2212,3543,2982,2158,1253,166,-492,1,1722,3586,4660,4231,1847,-1634,-4795,-6699,-7020,-5656,-3168,-425,2028,3709,4493,4112,2094,-860,-3195,-4383,-3969,-1813,1062,3361,4469,4471,3146,1295,-871,-2999,-3604,-2498,-240,1413,1066,-494,-2252,-3628,-3786,-2610,-761,645,867,222,-400,-1031,-1558,-668,1029,3249,6045,8970,11281,11275,8354,2356,-5096,-11206,-13369,-10405,-5527,-2865,-3441,-6077,-7230,-4920,-1246,1538,2114,2514,4185,5504,5954,6073,6821,8367,8950,6811,3108,477,139,494,484,425,-180,-2100,-5845,-9512,-10476,-8425,-4988,-1839,595,2497,3226,1617,-1654,-4134,-4549,-3576,-1414,2050,5708,7908,7102,4089,1786,934,407,-111,-531,220,1744,1905,710,-1622,-4113,-4993,-4234,-2572,-547,1129,2256,2396,1055,-1452,-4416,-6069,-6266,-5143,-2461,660,3952,6237,6139,4919,3063,1039,156,-243,-555,-609,-4,1251,1837,1794,1407,331,-596,-1831,-3371,-3591,-3004,-1888,-1465,-2172,-2062,-1580,-632,545,1038,1821,2911,4334,6263,6949,5788,3466,1488,1126,1080,543,-867,-3219,-5377,-6589,-6160,-4067,-3237,-4816,-7562,-8435,-4292,1713,5492,5527,3487,2749,3142,3150,3678,5653,8680,9405,5202,-1240,-5494,-5308,-3331,-1642,1103,3925,3464,-1273,-7645,-9517,-6203,-2607,-484,1089,3572,5044,2626,-2027,-4813,-4096,-1269,759,1877,2876,2688,344,-3507,-4883,-2232,1241,2919,2581,1686,1332,299,-840,-859,114,1988,3251,3358,2781,1738,787,69,38,494,128,-1174,-3448,-5960,-7142,-6939,-4971,-1806,1319,4219,5348,4409,2815,1491,1012,765,415,464,572,563,857,1400,1888,1525,721,543,164,-1483,-4030,-5597,-4943,-3436,-2021,-2,2322,3961,3927,2353,1083,690,537,476,382,72,-174,-82,495,1201,839,-633,-2650,-4707,-5211,-2786,1558,4506,3326,-986,-4485,-4375,-1753,824,1960,1790,1361,1223,727,-449,-259,1781,3974,3519,-392,-4107,-4047,-664,2996,4860,4519,2540,-1097,-4425,-4814,-2089,915,1717,1580,2299,2730,872,-2235,-3659,-2087,343,1350,241,-1886,-3922,-5361,-4938,-2020,2218,5070,4559,1923,-207,-898,-590,-623,-768,-339,639,1950,2685,2716,2440,2038,2062,2461,2280,820,-2100,-4517,-4460,-2431,-246,398,-224,-715,-922,-865,-373,60,-85,-1384,-3420,-4549,-3751,-1629,741,2659,4471,6218,6773,4909,862,-3028,-4956,-4510,-2443,400,2774,3481,2623,1361,696,443,225,-483,-1374,-2040,-2447,-2579,-2316,-1202,128,857,1120,1040,1204,1644,1683,1106,-366,-1830,-2058,-829,748,323,-3213,-6879,-6728,-1720,4819,7560,5111,828,-1455,-1687,-1371,-831,1250,3728,3892,1278,-2039,-3518,-3060,-1338,1128,4269,5741,3307,-1479,-3950,-1639,2800,4955,3929,2748,2309,696,-3179,-5799,-3921,16,890,-1790,-3572,-2276,-663,-1483,-2696,-1440,399,-1161,-5274,-6720,-2808,2664,5213,5230,5182,4884,3091,343,-1327,-1000,-73,599,994,1381,1501,1299,807,220,206,360,-512,-2426,-3695,-2938,-1402,-1689,-3253,-3542,-1809,204,1259,2136,3762,4907,3510,-10,-3112,-3838,-2757,-1099,655,2008,2502,2343,1498,82,-1318,-1199,992,3020,2692,38,-2478,-3131,-2462,-1847,-1808,-1790,-1262,-98,1423,2364,2648,2526,2106,1625,764,-95,-426,-54,929,2579,3231,1388,-2839,-6866,-6562,-1582,3905,5088,1937,-2203,-4354,-5225,-5705,-4710,-1512,2201,3413,2038,103,140,2242,4757,6492,7247,6046,2288,-2858,-5846,-3601,1224,3568,1308,-2450,-3935,-3060,-2056,-962,1354,3303,2106,-1669,-4095,-3190,-1470,-1361,-891,1462,3379,1792,-1801,-2760,76,2752,2256,-283,-2307,-2699,-2547,-1989,-368,1440,1841,1120,432,908,2251,2864,2358,1268,250,-825,-2425,-3895,-3342,-986,862,443,-1026,-851,880,1979,1869,2313,3685,3479,-11,-3950,-4676,-2111,702,1764,1855,1859,1365,-290,-2111,-2667,-1963,-1151,-715,-335,209,308,-298,-880,-1541,-2061,-1771,-380,2267,4725,5273,3729,1258,-265,-546,-419,-265,36,559,1019,1209,1630,1974,1035,-1431,-4479,-5485,-3722,-832,1262,1433,-51,-2263,-3740,-3570,-1794,-22,738,748,1126,2018,2330,1668,872,1166,1740,1718,964,163,216,1273,2327,2187,440,-1914,-2648,-1217,674,1127,410,-674,-1859,-2828,-2452,-452,1342,1538,1037,1381,1976,1592,763,949,1748,1294,-1031,-3274,-3611,-2673,-1896,-1154,72,1197,787,-1715,-4215,-5315,-4671,-2569,-518,562,1296,2072,2504,2342,2030,2719,3664,3444,1777,223,187,884,1274,896,306,22,-369,-983,-1419,-1442,-878,-248,66,55,-201,-689,-1537,-2301,-2200,-704,1227,2490,2852,2761,2191,672,-1400,-2930,-2857,-1433,-94,178,-582,-1640,-1602,-408,861,1289,1174,1590,2240,1810,98,-1170,-702,683,1287,764,-140,-323,665,1861,1996,685,-1449,-2839,-2369,-797,522,684,13,-511,-484,-646,-1328,-1872,-1224,1129,3265,2762,-266,-3130,-3451,-1071,1533,1814,-121,-2031,-1856,-56,1735,2732,3134,2668,860,-1304,-1766,-93,1721,1801,386,-790,-1014,-880,-699,-424,-423,-988,-1627,-1422,-323,888,1423,1103,485,-154,-852,-1434,-1605,-1204,-396,354,955,1059,774,188,-1084,-2483,-3168,-2517,-1401,-862,-566,330,1958,2960,2340,1519,1585,1675,1565,1371,1438,1562,837,-400,-1034,-570,753,2000,2494,2092,852,-778,-2628,-3726,-3421,-2797,-2757,-2914,-2141,28,2290,2974,1821,320,2,398,514,92,-134,349,844,650,-259,-1379,-1944,-1649,-679,705,2026,2621,2060,686,-573,-820,-510,-223,-95,125,600,695,151,-776,-960,-577,-624,-979,-919,191,1500,1663,533,-1026,-1825,-1714,-1374,-641,751,2237,2574,1356,-308,-1207,-1177,-695,-298,27,583,1146,1445,1000,-13,-827,-1076,-868,-439,77,472,559,519,722,985,1151,1044,748,486,277,182,-30,-401,-897,-1442,-1635,-1509,-1445,-1083,-384,-70,-875,-2460,-3337,-2758,-1331,-385,-172,164,1102,2243,2765,2337,1735,1371,870,590,551,471,27,-876,-1308,-457,1294,2573,2284,781,-739,-1367,-1163,-995,-977,-812,-224,682,1506,1859,888,-867,-1842,-1356,-179,204,-330,-621,6,950,1319,863,-12,-857,-1494,-1613,-1139,-53,1437,2448,2343,1287,-61,-717,-576,-684,-1151,-1413,-905,148,1212,1758,1002,-458,-1337,-768,429,657,-379,-1408,-1281,-406,240,339,331,498,967,1319,1325,796,-271,-1074,-1310,-1079,-421,190,310,235,-39,-347,-636,-888,-546,288,830,842,1179,2061,2578,1660,-358,-1805,-1950,-1478,-1079,-535,251,544,-108,-993,-1073,-231,676,628,-306,-1151,-1505,-1370,-1133,-918,-320,585,1221,1076,596,692,1149,804,-372,-1269,-1142,-572,-696,-1125,-531,1102,2470,2732,2039,1093,174,-989,-1910,-1645,-519,451,724,481,387,623,1018,935,185,-393,-490,-562,-819,-1002,-627,634,1617,1400,636,-84,-557,-1176,-1690,-1196,88,1185,1260,911,1070,1078,34,-1563,-1994,-916,175,33,-1277,-2299,-2010,-911,10,359,570,1030,1421,1283,620,270,887,1877,2248,1906,1493,1306,901,-426,-1924,-2311,-1402,182,1349,1287,-43,-1953,-3380,-3137,-1535,-195,42,-505,-541,539,1853,2458,2130,1334,666,284,181,325,408,169,-149,-179,-169,-416,-1038,-1877,-2363,-2343,-1889,-1237,-552,-455,-1335,-1972,-1450,41,1494,1982,1691,1336,1358,1709,1829,1325,648,372,468,174,-678,-1352,-1274,-563,110,242,-366,-1382,-2369,-2773,-1935,-201,1261,1854,2058,2557,3080,3003,2571,2075,1364,-36,-1643,-2067,-1214,-102,245,-131,-374,-414,-885,-1914,-2702,-2591,-1897,-1055,-358,175,858,1419,1465,1193,1249,1718,2149,2183,1572,641,-98,-343,-222,-134,-632,-1649,-2092,-1193,599,1837,1593,59,-1648,-2528,-2394,-1505,-530,51,91,-44,57,427,811,1119,1364,1330,1015,145,-928,-1384,-1117,-184,747,869,340,-94,169,797,953,366,-462,-989,-1263,-1343,-1209,-861,-364,-5,388,883,1247,1291,866,368,71,21,246,573,501,-179,-884,-1005,-921,-1506,-2287,-2169,-920,396,785,401,62,69,-224,-707,-840,-233,525,522,41,-105,574,1596,2100,1615,943,774,879,1090,1132,973,440,-612,-1396,-1283,-675,-388,-1040,-1724,-1178,377,1585,1224,109,-457,-453,-835,-1555,-1473,-376,991,1209,524,310,707,840,150,-502,-437,159,534,434,232,-48,-227,-48,653,1619,2006,1209,-24,-717,-517,292,823,770,37,-1179,-2130,-2082,-1215,-177,466,461,63,-492,-695,-589,-245,280,623,429,-359,-1188,-1278,-392,471,494,-233,-536,136,887,934,408,-65,-388,-548,-613,-607,-773,-1308,-1579,-785,852,2313,2758,1973,777,-87,-527,-700,-597,-132,511,886,604,-66,-920,-1496,-1412,-954,-277,276,589,709,475,-218,-1004,-1276,-979,-353,115,-19,-286,186,1299,2452,2682,1667,418,-307,-147,537,1053,854,-13,-694,-552,164,393,-337,-1159,-1231,-888,-684,-1026,-1617,-1801,-1663,-1245,-714,-167,284,643,1181,1913,2625,2664,1938,1051,660,813,687,28,-693,-1124,-1162,-956,-635,-209,368,650,108,-844,-1549,-1564,-1254,-1061,-733,-273,247,767,1225,1731,2219,2178,1274,104,-611,-570,39,475,473,317,-83,-1110,-2214,-2504,-1800,-495,248,-2,-601,-1071,-1125,-685,-39,519,634,377,365,695,1024,1131,1290,1619,2008,2089,1457,366,-634,-1235,-1776,-2212,-2275,-1873,-1133,-544,-250,-194,-36,233,1,-657,-1014,-749,-55,781,1399,1414,760,152,431,1387,1894,1013,-530,-1214,-473,812,1157,242,-1015,-1853,-2116,-1665,-692,407,1091,986,641,700,1034,876,48,-457,-180,181,71,-253,-55,805,1668,1533,466,-552,-782,-101,471,431,-123,-716,-931,-1199,-1299,-933,-428,-290,-464,-395,124,848,1114,956,767,511,124,-205,-212,113,492,661,746,672,326,-240,-652,-534,-96,272,225,-20,-171,-423,-900,-1302,-1219,-692,-275,-221,-300,-252,-42,106,116,126,82,-201,-472,-365,-74,-86,-368,-466,46,991,1655,1824,1417,528,-385,-965,-963,-460,81,175,-323,-883,-805,-298,-56,-140,14,354,285,-459,-1233,-880,486,1721,1891,1143,432,112,-35,-168,-280,-271,-318,-408,-248,16,240,162,-349,-717,-675,-393,-183,-338,-894,-1519,-1554,-569,1085,2062,1773,1242,1448,2219,2403,1561,580,272,401,329,-83,-521,-796,-1184,-1599,-1547,-854,-21,77,-724,-1663,-1769,-1107,-446,-207,-231,136,688,837,804,1010,1554,1970,1701,1012,631,466,-35,-779,-1189,-1079,-1062,-1447,-1680,-1151,-99,868,1466,1599,1553,1078,-222,-1628,-2111,-1341,-85,708,711,129,-337,-467,-312,104,371,105,-766,-1469,-1488,-1000,-608,-647,-548,147,1265,1874,1581,843,278,285,535,482,122,-373,-785,-897,-733,-520,-475,-344,-28,313,368,342,793,1282,1128,251,-714,-930,-520,-103,157,427,929,1321,1163,545,-34,-402,-756,-1166,-1440,-1331,-965,-724,-901,-778,-33,714,1206,1467,1668,1673,1202,487,96,178,283,-6,-610,-1121,-1193,-813,89,1354,2274,2358,1514,37,-1285,-1876,-1813,-1404,-1026,-838,-769,-740,-613,-27,919,1533,1333,449,-214,-155,16,-178,-359,-461,-635,-651,-351,69,195,54,143,724,1317,1348,695,-227,-869,-1086,-1153,-1243,-1235,-1186,-957,-161,1024,1693,1422,738,389,497,673,740,472,-126,-694,-942,-898,-654,-275,-112,-155,-256,-315,-303,-308,-277,-376,-635,-777,-565,-288,-156,31,231,504,943,1432,1625,1382,1004,849,1032,1210,906,78,-826,-1495,-1782,-1507,-802,60,735,802,387,-138,-495,-669,-827,-793,-426,150,602,507,85,246,766,869,456,-14,78,353,443,289,-29,-382,-659,-785,-806,-644,-479,-203,66,212,298,256,207,-164,-807,-975,-295,751,1130,673,218,48,4,350,1032,1361,914,13,-464,-202,99,-107,-682,-1282,-1588,-1553,-1168,-354,435,679,416,39,-131,-32,-17,-277,-549,-546,32,727,1025,963,845,1033,1051,602,-61,-544,-520,-291,-59,86,202,267,-86,-839,-1565,-1649,-1072,-407,14,348,576,522,239,-76,-24,314,560,360,38,-53,-91,-25,115,430,700,699,532,135,-339,-457,-163,7,-360,-992,-1259,-1137,-943,-692,-246,354,930,1365,1578,1557,1290,753,-65,-643,-518,-138,8,-31,67,203,145,-75,-215,-139,-98,-350,-703,-599,-351,-527,-903,-863,-224,305,328,234,466,866,1007,641,-88,-573,-396,150,236,-154,-422,-284,-14,-53,6,625,1580,1909,1007,-361,-1135,-994,-640,-659,-849,-776,-324,138,436,576,784,1020,723,-111,-1006,-1271,-807,-213,237,476,520,302,-72,-438,-720,-619,-209,88,147,333,739,834,431,-134,-508,-640,-746,-952,-900,-345,293,627,767,840,653,64,-492,-290,380,712,431,-27,-119,-77,-165,-331,-238,163,429,236,-197,-201,274,615,353,-239,-748,-935,-733,-378,-14,172,199,38,-265,-259,21,288,434,389,280,274,232,-50,-456,-520,34,728,959,693,239,7,61,128,119,-21,-282,-628,-989,-1159,-887,-172,384,519,471,397,363,74,-537,-894,-592,-15,248,199,359,835,1153,1072,720,439,81,-544,-1024,-1064,-820,-668,-674,-563,-93,467,734,659,424,406,463,262,28,47,115,-29,-124,-29,118,55,-431,-942,-794,0,600,506,-116,-717,-897,-603,-113,167,351,539,684,587,85,-374,-340,-158,-303,-565,-550,-192,293,598,585,507,560,404,-236,-1042,-1416,-1073,-334,385,897,1120,1168,1023,498,41,30,66,-125,-492,-665,-390,-19,173,210,59,-257,-514,-498,-66,447,393,-19,-147,-33,16,-98,-332,-261,138,245,31,-202,-217,-33,-12,-3,222,383,258,42,-130,-226,-168,-123,49,321,442,518,474,131,-468,-989,-1067,-702,-328,-169,83,573,882,843,641,209,-233,-381,-100,497,930,910,470,-71,-497,-619,-389,-81,84,49,-118,-386,-650,-813,-727,-514,-370,-337,-466,-507,-385,-41,533,1030,1174,976,672,368,250,269,265,226,149,89,-71,-412,-887,-1063,-771,-438,-112,224,394,337,254,272,369,335,-63,-513,-691,-569,-287,132,548,615,375,-8,-439,-868,-1071,-685,182,1030,1265,869,186,-390,-533,-535,-304,53,156,141,281,633,762,563,59,-331,-431,-514,-416,-112,277,377,97,-175,-94,178,236,97,90,297,334,-23,-504,-489,24,433,334,-115,-455,-541,-396,-234,-220,-326,-279,-197,-452,-766,-821,-379,489,1237,1388,918,366,-16,-193,23,488,823,697,60,-621,-815,-530,-62,217,141,-209,-398,-206,8,151,194,202,78,-230,-545,-639,-249,348,720,628,198,-278,-567,-525,-149,301,566,565,241,-149,-446,-546,-458,-200,133,310,294,117,-104,-359,-353,-77,144,226,93,77,380,523,314,-71,-537,-811,-825,-450,201,700,826,440,138,115,7,-91,-138,-54,103,72,-188,-559,-683,-316,288,823,980,496,-283,-773,-784,-356,185,527,594,365,-3,-254,-278,-160,-69,-26,97,249,246,-38,-297,-280,-71,62,-51,-262,-435,-409,-294,-31,275,404,367,181,71,-54,-151,-60,217,516,625,506,86,-332,-332,-24,286,313,-93,-528,-569,-328,-1,203,158,-167,-586,-650,-295,224,475,492,419,210,-8,-255,-313,-97,277,437,274,-6,-310,-540,-739,-656,-260,207,516,493,308,206,161,65,-144,-240,-83,45,174,297,343,424,447,183,-341,-646,-316,292,531,301,-114,-491,-669,-555,-196,327,624,468,-1,-486,-655,-546,-374,-215,132,479,540,301,-121,-415,-535,-453,-180,119,308,371,435,535,549,331,-50,-361,-420,-178,133,299,368,234,-50,-229,-267,-173,-9,120,94,-15,-72,-192,-266,-181,37,338,469,368,-22,-535,-664,-321,136,388,348,99,-134,-197,-158,-199,-245,-290,-318,-128,122,258,201,-27,-221,-190,181,674,782,401,-99,-343,-244,32,257,374,385,156,-70,-151,-258,-372,-400,-400,-336,-4,357,449,214,-161,-443,-516,-392,-130,343,711,747,579,202,-140,-235,-289,-317,-135,66,39,-89,-307,-495,-311,41,207,82,-147,-255,-288,-390,-425,-141,219,357,288,231,397,605,637,546,421,351,210,-18,-115,-68,28,-45,-137,-198,-307,-244,-309,-449,-399,-399,-437,-433,-366,-128,204,386,385,308,206,131,177,341,530,572,324,-80,-357,-389,-345,-300,-345,-472,-497,-419,-242,-130,-151,-36,106,105,138,227,275,373,585,750,842,822,659,316,-64,-216,-224,-223,-426,-648,-509,-148,200,269,-11,-356,-689,-905,-826,-569,-212,121,313,494,598,563,381,53,-275,-459,-336,-84,202,449,488,282,45,51,91,176,302,243,7,-214,-428,-556,-452,-291,-61,228,471,499,360,164,-63,-134,-53,139,276,120,-247,-487,-374,-69,144,172,-80,-387,-442,-265,74,265,241,-7,-368,-423,-152,183,316,320,271,43,-268,-477,-396,-111,176,361,294,141,94,126,222,347,389,193,-114,-273,-199,37,261,277,32,-221,-249,-105,45,67,-52,-182,-177,-136,-182,-274,-301,-193,93,368,305,44,-181,-267,-158,22,112,112,0,-160,-95,176,460,700,696,362,-62,-368,-441,-508,-615,-482,-115,176,237,169,31,57,234,340,170,-153,-439,-648,-588,-246,309,758,903,725,381,30,-130,-108,-172,-145,-231,-431,-455,-355,-171,-41,-86,-212,-225,-176,-35,253,484,517,290,-76,-280,-195,122,365,250,108,164,95,1,30,-45,-156,-180,-193,-166,-81,-34,40,91,32,-7,-10,-87,-132,-33,117,280,293,237,272,302,269,13,-419,-730,-647,-355,-37,258,300,181,-38,-179,-148,-124,-212,-296,-263,-60,339,608,681,474,138,-56,-135,-200,-369,-323,0,301,272,-112,-538,-703,-495,-66,293,347,203,129,188,355,558,537,276,-54,-400,-561,-340,-26,79,-11,-186,-188,-23,111,146,5,-234,-395,-436,-342,-191,71,349,318,209,212,275,458,586,404,164,90,-24,-152,-265,-450,-575,-535,-346,-133,49,201,273,206,106,220,396,349,70,-307,-511,-287,121,354,387,225,33,-23,-94,-343,-466,-359,-291,-194,-44,23,39,-5,-102,-106,-43,72,149,144,254,553,768,619,298,-137,-581,-780,-729,-442,3,406,677,617,247,-43,-217,-212,-238,-332,-338,-320,-128,103,173,156,210,129,-60,-55,-3,92,105,-140,-315,-299,-65,215,311,233,78,37,80,203,159,56,57,41,-41,-180,-117,1,9,-141,-377,-368,-110,50,64,8,-78,-28,122,214,206,155,60,-39,-105,-144,-89,46,17,-253,-431,-242,216,606,601,313,59,-164,-344,-436,-437,-297,-177,-154,-42,279,701,971,965,592,49,-382,-621,-633,-577,-536,-432,-86,271,354,270,109,-31,-199,-274,-24,328,423,211,-160,-457,-383,-90,147,281,319,362,390,375,173,-135,-435,-642,-509,-263,-39,179,236,174,158,315,451,274,-52,-345,-437,-276,-142,-77,-16,24,-31,-130,-118,-59,-50,-98,-104,-50,-56,87,253,189,132,27,-94,-113,-7,107,127,204,264,227,121,68,36,89,254,319,269,148,-57,-391,-715,-1012,-1057,-669,-113,450,819,859,648,358,35,-421,-764,-702,-549,-276,121,351,557,608,464,213,-82,-133,-3,49,19,-56,-182,-246,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,} \ No newline at end of file