diff --git a/1.c b/1.c new file mode 100644 index 0000000..0a6f55b --- /dev/null +++ b/1.c @@ -0,0 +1,139 @@ +// Objective : quantify time and evaluate covering effect on timings +// between sync and async paradigm through MPI + +/* +Protocol : + - send array from rank 0 to each working process + - compute \sum_0^N 1 on each process to enforce computation on the cpu core + - send back the sum result + + - Array sending and sum computation can overlap because they are + independants. + - This is the sync example (without overlap between the 2 independant phases) + - Hypothesis : his sync implementation is less efficient than the async (1_I) +*/ + +#include +#include +#include +#include + +#define BASE 10 + + + +inline +unsigned long long sync_rdtscp(void) +{ + unsigned long long a, d; + __asm__ volatile ("cpuid"); + __asm__ volatile ("rdtsc" : "=a" (a), "=d" (d)); + + return (d << 32) | a; +} + +inline +unsigned long long rdtsc(void) +{ + unsigned long long a, d; + + __asm__ volatile ("rdtsc" : "=a" (a), "=d" (d)); + + return (d << 32) | a; +} + +int main(int argc, char** argv) +{ + + MPI_Init(&argc,&argv); + int world_rank; + MPI_Comm_rank(MPI_COMM_WORLD, &world_rank); + int world_size; + MPI_Comm_size(MPI_COMM_WORLD, &world_size); + + + unsigned long long size_array , i_max ; + + if (argc != 3){ + size_array = 100000; + i_max = 200000 ; + } + else{ + char *tmpstring ; + size_array = strtoul(argv[1], &tmpstring, BASE) ;//100000 + i_max = strtoul(argv[2], &tmpstring, BASE) ; //200000 + } + + if (world_rank == 0){ + if (argc != 3){ + + printf("size of array : %llu \n", size_array) ; + printf("number iterations of sum : %llu \n", i_max) ; + printf("Please use arguments : [size of array] [number of sums]\n"); + } + + if (size_array < world_size){ + printf("Please use size of array >= %d\n", world_size); + } + + } + + if (size_array < world_size){ + size_array = world_size + 1 ; + } + + double * array = malloc( size_array * sizeof(double)) ; + double a = 0.0 ; + + if (world_rank == 0) { + printf("The number of processes is %d\n" , world_size) ; + + // init array + for (unsigned long long i = 0 ; i < size_array ; i++){ + array[i] = 2.0 ; + } + + // timer + unsigned long long start = rdtsc(); + + for (int i = 1 ; i < world_size ; i++){ + MPI_Send(array, size_array, MPI_DOUBLE, i, i, MPI_COMM_WORLD); + } + + // time spend in Send execution + unsigned long long end = rdtsc(); + + + for (int i = 1 ; i < world_size ; i++){ + MPI_Recv(array+i, 1, MPI_DOUBLE, i, i, MPI_COMM_WORLD, MPI_STATUS_IGNORE); + } + + + //printf("value computed : %f \n" , array[1]) ; + + // time spend in Send execution + unsigned long long end2 = rdtsc(); + printf("%llu spend sharing array\n" , (end - start)) ; + printf("%llu spend sharing array & compute\n" , (end2 - start)) ; + + } else if (world_rank < world_size ) { + MPI_Recv(array, size_array, MPI_DOUBLE, 0, world_rank, MPI_COMM_WORLD, + MPI_STATUS_IGNORE); + + // computation \approx same time than recv + for (unsigned long long i = 0 ; i < i_max ; i++){ + a = a + 1.0 ; + } + //printf("Process %d received value %d from process 0\n", world_rank , number); + + for (int i = 1 ; i < world_size ; i++){ + MPI_Send(&a, 1, MPI_DOUBLE, 0, i, MPI_COMM_WORLD); + } + + + } + MPI_Finalize(); +} + + + diff --git a/1_I.c b/1_I.c new file mode 100644 index 0000000..f0ac904 --- /dev/null +++ b/1_I.c @@ -0,0 +1,151 @@ +// Objective : quantify time and evaluate covering effect on timings +// between sync and async paradigm through MPI + +/* +Protocol : + - send array from rank 0 to each working process + - compute \sum_0^N 1 on each process to enforce computation on the cpu core + - send back the sum result + + - Array sending and sum computation can overlap because they are + independants. + - This is the async example (without overlap between the 2 independant phases) + - Hypothesis : his sync implementation is more efficient than the async (1_I) +*/ + + +#include +#include +#include +#include + +#define BASE 10 + +inline +unsigned long long sync_rdtscp(void) +{ + unsigned long long a, d; + __asm__ volatile ("cpuid"); + __asm__ volatile ("rdtsc" : "=a" (a), "=d" (d)); + + return (d << 32) | a; +} + +inline +unsigned long long rdtsc(void) +{ + unsigned long long a, d; + + __asm__ volatile ("rdtsc" : "=a" (a), "=d" (d)); + + return (d << 32) | a; +} + + +int main(int argc, char** argv) +{ + MPI_Init(&argc,&argv); + + int world_rank; + MPI_Comm_rank(MPI_COMM_WORLD, &world_rank); + int world_size; + MPI_Comm_size(MPI_COMM_WORLD, &world_size); + MPI_Status special_status ; + MPI_Request special_request = MPI_REQUEST_NULL ; + + + unsigned long long size_array , i_max ; + + if (argc != 3){ + size_array = 100000; + i_max = 200000 ; + } + else{ + char *tmpstring ; + size_array = strtoul(argv[1], &tmpstring, BASE) ;//100000 + i_max = strtoul(argv[2], &tmpstring, BASE) ; //200000 + } + + if (world_rank == 0){ + if (argc != 3){ + + printf("size of array : %llu \n", size_array) ; + printf("number iterations of sum : %llu \n", i_max) ; + printf("Please use arguments : [size of array] [number of sums]\n"); + } + + if (size_array < world_size){ + printf("Please use size of array >= %d\n", world_size); + } + + } + + if (size_array < world_size){ + size_array = world_size + 1 ; + } + + double * array = malloc( size_array * sizeof(double)) ; + double a = 0.0 ; + + + if (world_rank == 0) { + printf("The number of processes is %d\n" , world_size) ; + + // init array + for (unsigned long long i = 0 ; i < size_array ; i++){ + array[i] = 2.0 ; + } + + // timer + unsigned long long start = rdtsc(); + + for (int i = 1 ; i < world_size ; i++){ + MPI_Isend(array, size_array, MPI_DOUBLE, i, i, MPI_COMM_WORLD, &special_request); + } + + for (int i = 1 ; i < world_size ; i++){ + MPI_Wait(&special_request , &special_status); + } + + unsigned long long end = rdtsc(); + + + for (int i = 1 ; i < world_size ; i++){ + MPI_Irecv(array+i, 1, MPI_DOUBLE, i, i, MPI_COMM_WORLD , &special_request); + } + + for (int i = 1 ; i < world_size ; i++){ + MPI_Wait(&special_request , &special_status); + } + + //printf("value computed : %f \n" , array[1]) ; + + // time spend in Send execution + unsigned long long end2 = rdtsc(); + printf("%llu spend sharing array\n" , (end - start)) ; + printf("%llu spend sharing array & compute\n" , (end2 - start)) ; + + } else if (world_rank < world_size ) { + MPI_Irecv(array, size_array, MPI_DOUBLE, 0, world_rank, MPI_COMM_WORLD, + &special_request); + + // computation \approx same time than recv + for (unsigned long long i = 0 ; i < i_max ; i++){ + a = a + 1.0 ; + } + + MPI_Wait(&special_request , &special_status ) ; + + for (int i = 1 ; i < world_size ; i++){ + MPI_Isend(&a, 1, MPI_DOUBLE, 0, i, MPI_COMM_WORLD, &special_request) ; + MPI_Wait(&special_request , &special_status) ; + } + + //printf("Process %d received value %d from process 0\n", world_rank , number); + + } + MPI_Finalize(); +} + + + diff --git a/2.c b/2.c new file mode 100644 index 0000000..254fd1a --- /dev/null +++ b/2.c @@ -0,0 +1,117 @@ +// this is an example of calculation of mathematical factorial +// n ! = (n-1)! x n +// idea : want to compute large factorial +// 10! = ( 1 x 2 ) x ( 3 x 4 ) x ( 5 x 6 ) .... in each cores + +#include +#include +#include +#include + +int main(int argc , char** argv){ + + int rank , size ; + MPI_Init(&argc, &argv); + MPI_Comm_rank(MPI_COMM_WORLD, &rank); + MPI_Comm_size(MPI_COMM_WORLD, &size); + + int width = 3 ; + unsigned long long tmp, debut, sdebut, fin , sfin; + unsigned long sword[20]; + unsigned long word[20]; + + for (int i = 0 ; i < 20 ; ++i){ + word[i] = 0 ; + sword[i] = 0 ; + } + + mpz_t result ; + mpz_init (result) ; + mpz_set_ui(result,1); + + mpz_t mpz_tmp ; + mpz_init (mpz_tmp) ; + mpz_set_ui(mpz_tmp,1); + + + mpz_t sresult ; + mpz_init (sresult) ; + mpz_set_ui(sresult,1); + + + + // main mpi process ; + if (rank == 0){ + //result = 1 ; + debut = 0 ; + fin = 0 ; + tmp = 0 ; + + for (int i = 0 ; i < size -1 ; ++i) + { + printf("i : %i\n", i); + debut = i * width +1; + fin = (i+1) * width ; + MPI_Send(&debut, 1, MPI_UNSIGNED_LONG_LONG, i+1, 0, MPI_COMM_WORLD); + MPI_Send(&fin, 1, MPI_UNSIGNED_LONG_LONG, i+1, 1, MPI_COMM_WORLD); + } + + // recieve the result + for (int i = 0 ; i < size -1 ; ++i) + { + for (int i = 0 ; i < 20 ; ++i){ + word[i] = 0 ; + } + MPI_Recv(&word, 20, MPI_UNSIGNED_LONG, i+1, 0, MPI_COMM_WORLD, MPI_STATUS_IGNORE); + printf("recieved word : %li %li\n", word[0], word[1] ); + mpz_set_ui(mpz_tmp,0); + mpz_import(mpz_tmp, 20, -1, sizeof(sword[0]), 0, 0, word); + + mpz_mul(result, result, mpz_tmp); + gmp_printf(" recieve : %Zd\n", mpz_tmp ) ; + //printf(" result : %lli\n", result ) ; + } + //printf(" result : %lli\n", result ) ; + gmp_printf(" result : %Zd\n", result ) ; + + // verfication + mpz_set_ui(mpz_tmp,1); + mpz_set_ui(result,1); + for (int i = 1 ; i <= fin; ++i){ + mpz_mul_ui(result, result, i); + } + gmp_printf(" verification result : %Zd\n", result ) ; + } + + + // compute p + else if (rank < size ) + { + printf("init rank : %i\n", rank); + mpz_set_ui(sresult,1); + MPI_Recv(&sdebut, 1, MPI_UNSIGNED_LONG_LONG, 0,0, MPI_COMM_WORLD, MPI_STATUS_IGNORE ); + MPI_Recv(&sfin, 1, MPI_UNSIGNED_LONG_LONG, 0,1, MPI_COMM_WORLD, MPI_STATUS_IGNORE ); + printf("rank : %i, debut : %lli, fin : %lli\n", rank, sdebut, sfin); + // calculation of the sub factoriel + + for (int i = sdebut; i <= sfin ; i++){ + mpz_mul_ui(sresult, sresult, i); + } + + for (int i = 0 ; i < 20 ; ++i){ + sword[i] = 0 ; + } + gmp_printf(" send result : %Zd\n", sresult ) ; + mpz_export(sword, NULL, -1, sizeof(sword[0]), 0, 0, sresult); + + printf("sword : %li %li\n", sword[0] , sword[1]); + + MPI_Send(&sword, 20, MPI_UNSIGNED_LONG, 0, 0, MPI_COMM_WORLD); + + + + } + MPI_Finalize(); + + +} diff --git a/3.c b/3.c new file mode 100644 index 0000000..bb4b998 --- /dev/null +++ b/3.c @@ -0,0 +1,370 @@ +// This is an optimized nbody code simulation without MPI multiprocessing +// This is the reference code to verifying results with and without MPI. Files named +// 3x.txt and 3v.txt are the positions and velocities of the first particule during the simulation. +// Theses solutions are coherents with a naive nbody simulation. + + + +#include +#include +#include +#include +#include +#include + +#define SAVE + +// +typedef float f32; +typedef double f64; +typedef unsigned long long u64; + +// +//typedef struct particle_s { +// +// f32 x, y, z; +// f32 vx, vy, vz; +// +//} particle_t; + +// +void init(float *x, float *y, float *z, float *vx, float *vy, float *vz, float *softening, float softening_value, float *dt, float dt_value, u64 n) +{ + for (u64 i = 0 ; i < 8 ; i++){ + x[i] = 0.0 ; + y[i] = 0.0 ; + z[i] = 0.0 ; + vx[i] = 0.0 ; + vy[i] = 0.0 ; + vz[i] = 0.0 ; + } + for (u64 i = 8; i < n + 8; i++) + { + // + u64 r1 = (u64)rand(); + u64 r2 = (u64)rand(); + f32 sign = (r1 > r2) ? 1 : -1; + + // + x[i] = sign * (f32)rand() / (f32)RAND_MAX; + y[i] = (f32)rand() / (f32)RAND_MAX; + z[i] = sign * (f32)rand() / (f32)RAND_MAX; + + // + vx[i] = (f32)rand() / (f32)RAND_MAX; + vy[i] = sign * (f32)rand() / (f32)RAND_MAX; + vz[i] = (f32)rand() / (f32)RAND_MAX; + } + for (u64 i = 0 ; i < 64 ; i++){ + softening[i] = softening_value; + dt[i] = dt_value ; + } + for (u64 i = n + 8 ; i < n + 16 ; i++){ + x[i] = 0.0 ; + y[i] = 0.0 ; + z[i] = 0.0 ; + vx[i] = 0.0 ; + vy[i] = 0.0 ; + vz[i] = 0.0 ; + } + for (int i = 0 ; i < n+16 ; i++){ + //printf("%f\n",vx[i]); + //sleep(1); + } + +} + +// +void move_particles(float *x, float *y, float *z, float *vx, float *vy, float *vz, float *softening, float *dt, u64 n){ + + float test ; + + //printf("valeur test : %f\n", x[n+8]) ; + // + __m256 rxi, ryi, rzi, rxj, ryj, rzj , rfx, rfy, rfz; + __m256 rvxi, rvyi, rvzi ; + __m256 rdx , rdy , rdz , rdxyz , rsoft, rt; + + rxi = _mm256_setzero_ps() ; + ryi = _mm256_setzero_ps() ; + rzi = _mm256_setzero_ps() ; + rvxi = _mm256_setzero_ps() ; + rvyi = _mm256_setzero_ps() ; + rvzi = _mm256_setzero_ps() ; + + rxj = _mm256_setzero_ps() ; + ryj = _mm256_setzero_ps() ; + rzj = _mm256_setzero_ps() ; + + + rdx = _mm256_setzero_ps() ; + rdy = _mm256_setzero_ps() ; + rzj = _mm256_setzero_ps() ; + rdz = _mm256_setzero_ps() ; + rdxyz = _mm256_setzero_ps() ; + rsoft = _mm256_load_ps(&softening[0]) ; + rt = _mm256_load_ps(&dt[0]) ; + + for (u64 i = 1; i < n + 8; i++) + { + // + + rfx = _mm256_setzero_ps() ; + rfy = _mm256_setzero_ps() ; + rfz = _mm256_setzero_ps() ; + // load i values + rxi = _mm256_loadu_ps(&x[i]); + ryi = _mm256_loadu_ps(&y[i]); + rzi = _mm256_loadu_ps(&z[i]); + for (u64 j = 8; j < n + 8; j+=8) + { + //printf("j ; %lld\n", j); + //printf("j : %lld\n", j); + + rxj = _mm256_load_ps(&x[j]); + ryj = _mm256_load_ps(&y[j]); + rzj = _mm256_load_ps(&z[j]); + + + + rdx = _mm256_sub_ps(rxj, rxi) ; + rdy = _mm256_sub_ps(ryj, ryi) ; + rdz = _mm256_sub_ps(rzj, rzi) ; + + + + rxj = _mm256_mul_ps(rdx, rdx) ; + rzj = _mm256_mul_ps(rdz, rdz) ; + + + + + rdxyz = _mm256_add_ps(rxj, rzj) ; + ryj = _mm256_mul_ps(rdy, rdy) ; + rdxyz = _mm256_add_ps(rdxyz, ryj) ; + //rdxyz = _mm256_mul_ps(ryj, rdxyz) ; + rdxyz = _mm256_add_ps(rsoft, rdxyz) ; + //rxj = _mm256_sqrt_ps(rdxyz) ; + //rdxyz = _mm256_mul_ps(rxj, rxj) ; + //rdxyz = _mm256_mul_ps(rdxyz, rxj) ; + + //rdx = _mm256_div_ps(rdx, rdxyz) ; + //rdy = _mm256_div_ps(rdy, rdxyz) ; + //rdz = _mm256_div_ps(rdz, rdxyz) ; + + rxj = _mm256_rsqrt_ps(rdxyz); + + + rdxyz = _mm256_mul_ps(rxj, rxj) ; + rdxyz = _mm256_mul_ps(rdxyz, rxj) ; + + rdx = _mm256_mul_ps(rdx, rdxyz) ; + rdy = _mm256_mul_ps(rdy, rdxyz) ; + rdz = _mm256_mul_ps(rdz, rdxyz) ; + /* + printf("valeur test0 : %f\n", rdx[0]) ; + printf("valeur test1 : %f\n", rdx[1]) ; + printf("valeur test2 : %f\n", rdx[2]) ; + printf("valeur test3 : %f\n", rdx[3]) ; + printf("valeur test4 : %f\n", rdx[4]) ; + printf("valeur test5 : %f\n", rdx[5]) ; + printf("valeur test6 : %f\n", rdx[6]) ; + printf("valeur test7 : %f\n", rdx[7]) ; + printf("---------------\n"); + */ + rfx = _mm256_add_ps(rfx, rdx) ; + rfy = _mm256_add_ps(rfy, rdy) ; + rfz = _mm256_add_ps(rfz, rdz) ; + + + } + + //sleep(1) ; + rfx = _mm256_mul_ps(rfx, rt) ; + rfy = _mm256_mul_ps(rfy, rt) ; + rfz = _mm256_mul_ps(rfz, rt) ; + + + rvxi = _mm256_loadu_ps(&vx[i]); + rvyi = _mm256_loadu_ps(&vy[i]); + rvzi = _mm256_loadu_ps(&vz[i]); + + + + rvxi = _mm256_add_ps(rvxi, rfx) ; + rvyi = _mm256_add_ps(rvyi, rfy) ; + rvzi = _mm256_add_ps(rvzi, rfz) ; + + + + _mm256_storeu_ps(&vx[i], rvxi) ; + _mm256_storeu_ps(&vy[i], rvyi) ; + _mm256_storeu_ps(&vz[i], rvzi) ; + + + rfx = _mm256_setzero_ps() ; + rfy = _mm256_setzero_ps() ; + rfz = _mm256_setzero_ps() ; + + + + + } + + + //3 floating-point operations + + for (u64 i = 0 ; i < 8 ; i++){ + x[i] = 0.0 ; + y[i] = 0.0 ; + z[i] = 0.0 ; + vx[i] = 0.0 ; + vy[i] = 0.0 ; + vz[i] = 0.0 ; + } + for (u64 i = n + 8 ; i < n + 16 ; i++){ + x[i] = 0.0 ; + y[i] = 0.0 ; + z[i] = 0.0 ; + vx[i] = 0.0 ; + vy[i] = 0.0 ; + vz[i] = 0.0 ; + } + + + for (u64 i = 8; i < n + 8; i++) + { + x[i] += dt[0] * vx[i]; + y[i] += dt[0] * vy[i]; + z[i] += dt[0] * vz[i]; + } +} + +// +int main(int argc, char **argv) +{ + // + const u64 n = (argc > 1) ? atoll(argv[1]) : 16384; + const u64 steps= 10; + const f32 dt_value = 0.01; + const f32 softening_value = 1e-20; + + + // declaration of file for saving 1st coordinates during time + #ifdef SAVE + FILE *xfilePtr = NULL ; + xfilePtr = fopen("3x.txt", "w"); + FILE *vfilePtr = NULL ; + vfilePtr = fopen("3v.txt", "w"); + if (xfilePtr == NULL || vfilePtr == NULL){ + printf("Issue in writing in file\n") ; + } + char buf[100] ; + #endif + + // + f64 rate = 0.0, drate = 0.0; + + //Steps to skip for warm up + const u64 warmup = 3; + + // + + float *x = aligned_alloc(64, sizeof(float) * (n+128)) ; + float *y = aligned_alloc(64, sizeof(float) * (n+128)) ; + float *z = aligned_alloc(64, sizeof(float) * (n+128)) ; + float *vx = aligned_alloc(64, sizeof(float) * (n+128)) ; + float *vy = aligned_alloc(64, sizeof(float) * (n+128)) ; + float *vz = aligned_alloc(64, sizeof(float) * (n+128)) ; + float *softening = aligned_alloc(64, sizeof(float) * 64) ; + float *dt = aligned_alloc(64, sizeof(float) * 64) ; + // + init(x, y,z, vx, vy, vz, softening, softening_value, dt, dt_value, n); + + const u64 sx = 6 * sizeof(double) * n; + + printf("\n\033[1mTotal memory size:\033[0m %llu B, %llu KiB, %llu MiB\n\n", sx, sx >> 10, sx >> 20); + + // + printf("\033[1m%5s %10s %10s %8s\033[0m\n", "Step", "Time, s", "Interact/s", "GFLOP/s"); fflush(stdout); + + // + for (u64 i = 0; i < steps; i++) + { + + + #ifdef SAVE + // write 1st trajectory particle for comparison + fputs(gcvt(x[8], 16, buf), xfilePtr) ; + fputs(" ", xfilePtr) ; + fputs(gcvt(y[8], 16, buf), xfilePtr) ; + fputs(" ", xfilePtr) ; + fputs(gcvt(z[8], 16, buf), xfilePtr) ; + fputs(" \n", xfilePtr) ; + + fputs(gcvt(vx[8], 16, buf), vfilePtr) ; + fputs(" ", vfilePtr) ; + fputs(gcvt(vy[8], 16, buf), vfilePtr) ; + fputs(" ", vfilePtr) ; + fputs(gcvt(vz[8], 16, buf), vfilePtr) ; + fputs(" \n", vfilePtr) ; + #endif + + + //Measure + const f64 start = omp_get_wtime(); + + move_particles(x, y, z, vx, vy, vz, softening, dt, n); + + const f64 end = omp_get_wtime(); + + //Number of interactions/iterations + const f32 h1 = (f32)(n) * (f32)(n - 1); + + //GFLOPS + const f32 h2 = (23.0 * h1 + 3.0 * (f32)n) * 1e-9; + + if (i >= warmup) + { + rate += h2 / (end - start); + drate += (h2 * h2) / ((end - start) * (end - start)); + } + + // + printf("%5llu %10.3e %10.3e %8.1f %s\n", + i, + (end - start), + h1 / (end - start), + h2 / (end - start), + (i < warmup) ? "*" : ""); + + fflush(stdout); + } + + // + rate /= (f64)(steps - warmup); + drate = sqrt(drate / (f64)(steps - warmup) - (rate * rate)); + + printf("-----------------------------------------------------\n"); + printf("\033[1m%s %4s \033[42m%10.1lf +- %.1lf GFLOP/s\033[0m\n", + "Average performance:", "", rate, drate); + printf("-----------------------------------------------------\n"); + + // + free(x); + free(y); + free(z); + free(vx); + free(vy); + free(vz); + free(softening); + free(dt); + + #ifdef SAVE + fclose(xfilePtr); + fclose(vfilePtr) ; + #endif + + // + return 0; +} diff --git a/3_mpi.c b/3_mpi.c new file mode 100644 index 0000000..a29f191 --- /dev/null +++ b/3_mpi.c @@ -0,0 +1,325 @@ +// This is an optimized nbody code simulation with MPI multiprocessing +// There is a reference code (without optimization, without multiprocessing) +// at https://github.com/sbstndbs/nbody3d (if public at the time) with "nbodyx.txt" and +// 'nbodyv.txt' files (reference). + + + +#include +#include +#include +#include +#include +#include +#include + +//#define SAVE + +// +typedef float f32; +typedef double f64; +typedef unsigned long long u64; + +// +//typedef struct particle_s { +// +// f32 x, y, z; +// f32 vx, vy, vz; +// +//} particle_t; + +// +void init(float *x, float *y, float *z, float *vx, float *vy, float *vz, float *softening, float softening_value, float *dt, float dt_value, u64 n) +{ + for (u64 i = 0 ; i < 8 ; i++){ + x[i] = 0.0 ; + y[i] = 0.0 ; + z[i] = 0.0 ; + vx[i] = 0.0 ; + vy[i] = 0.0 ; + vz[i] = 0.0 ; + } + for (u64 i = 8; i < n + 8; i++) + { + // + u64 r1 = (u64)rand(); + u64 r2 = (u64)rand(); + f32 sign = (r1 > r2) ? 1 : -1; + + // + x[i] = sign * (f32)rand() / (f32)RAND_MAX; + y[i] = (f32)rand() / (f32)RAND_MAX; + z[i] = sign * (f32)rand() / (f32)RAND_MAX; + + // + vx[i] = (f32)rand() / (f32)RAND_MAX; + vy[i] = sign * (f32)rand() / (f32)RAND_MAX; + vz[i] = (f32)rand() / (f32)RAND_MAX; + } + for (u64 i = 0 ; i < 64 ; i++){ + softening[i] = softening_value; + dt[i] = dt_value ; + } + for (u64 i = n + 8 ; i < n + 16 ; i++){ + x[i] = 0.0 ; + y[i] = 0.0 ; + z[i] = 0.0 ; + vx[i] = 0.0 ; + vy[i] = 0.0 ; + vz[i] = 0.0 ; + } + for (int i = 0 ; i < n+16 ; i++){ + //printf("%f\n",vx[i]); + //sleep(1); + } + +} + +// +void move_particles(float *x, float *y, float *z, float *vx, float *vy, float *vz, float *softening, float *dt, u64 n){ + + float test ; + + //printf("valeur test : %f\n", x[n+8]) ; + // + __m256 rxi, ryi, rzi, rxj, ryj, rzj , rfx, rfy, rfz; + __m256 rvxi, rvyi, rvzi ; + __m256 rdx , rdy , rdz , rdxyz , rsoft, rt; + + rxi = _mm256_setzero_ps() ; + ryi = _mm256_setzero_ps() ; + rzi = _mm256_setzero_ps() ; + rvxi = _mm256_setzero_ps() ; + rvyi = _mm256_setzero_ps() ; + rvzi = _mm256_setzero_ps() ; + + rxj = _mm256_setzero_ps() ; + ryj = _mm256_setzero_ps() ; + rzj = _mm256_setzero_ps() ; + + + rdx = _mm256_setzero_ps() ; + rdy = _mm256_setzero_ps() ; + rzj = _mm256_setzero_ps() ; + rdz = _mm256_setzero_ps() ; + rdxyz = _mm256_setzero_ps() ; + rsoft = _mm256_load_ps(&softening[0]) ; + rt = _mm256_load_ps(&dt[0]) ; + + for (u64 i = 1; i < n + 8; i++) + { + // + + rfx = _mm256_setzero_ps() ; + rfy = _mm256_setzero_ps() ; + rfz = _mm256_setzero_ps() ; + // load i values + rxi = _mm256_loadu_ps(&x[i]); + ryi = _mm256_loadu_ps(&y[i]); + rzi = _mm256_loadu_ps(&z[i]); + for (u64 j = 8; j < n + 8; j+=8) + { + + rxj = _mm256_load_ps(&x[j]); + ryj = _mm256_load_ps(&y[j]); + rzj = _mm256_load_ps(&z[j]); + rdx = _mm256_sub_ps(rxj, rxi) ; + rdy = _mm256_sub_ps(ryj, ryi) ; + rdz = _mm256_sub_ps(rzj, rzi) ; + rxj = _mm256_mul_ps(rdx, rdx) ; + rzj = _mm256_mul_ps(rdz, rdz) ; + rdxyz = _mm256_add_ps(rxj, rzj) ; + ryj = _mm256_mul_ps(rdy, rdy) ; + rdxyz = _mm256_add_ps(rdxyz, ryj) ; + rdxyz = _mm256_add_ps(rsoft, rdxyz) ; + rxj = _mm256_rsqrt_ps(rdxyz); + rdxyz = _mm256_mul_ps(rxj, rxj) ; + rdxyz = _mm256_mul_ps(rdxyz, rxj) ; + rdx = _mm256_mul_ps(rdx, rdxyz) ; + rdy = _mm256_mul_ps(rdy, rdxyz) ; + rdz = _mm256_mul_ps(rdz, rdxyz) ; + rfx = _mm256_add_ps(rfx, rdx) ; + rfy = _mm256_add_ps(rfy, rdy) ; + rfz = _mm256_add_ps(rfz, rdz) ; + + } + + rfx = _mm256_mul_ps(rfx, rt) ; + rfy = _mm256_mul_ps(rfy, rt) ; + rfz = _mm256_mul_ps(rfz, rt) ; + rvxi = _mm256_loadu_ps(&vx[i]); + rvyi = _mm256_loadu_ps(&vy[i]); + rvzi = _mm256_loadu_ps(&vz[i]); + rvxi = _mm256_add_ps(rvxi, rfx) ; + rvyi = _mm256_add_ps(rvyi, rfy) ; + rvzi = _mm256_add_ps(rvzi, rfz) ; + _mm256_storeu_ps(&vx[i], rvxi) ; + _mm256_storeu_ps(&vy[i], rvyi) ; + _mm256_storeu_ps(&vz[i], rvzi) ; + rfx = _mm256_setzero_ps() ; + rfy = _mm256_setzero_ps() ; + rfz = _mm256_setzero_ps() ; + + } + + + //3 floating-point operations + + for (u64 i = 0 ; i < 8 ; i++){ + x[i] = 0.0 ; + y[i] = 0.0 ; + z[i] = 0.0 ; + vx[i] = 0.0 ; + vy[i] = 0.0 ; + vz[i] = 0.0 ; + } + for (u64 i = n + 8 ; i < n + 16 ; i++){ + x[i] = 0.0 ; + y[i] = 0.0 ; + z[i] = 0.0 ; + vx[i] = 0.0 ; + vy[i] = 0.0 ; + vz[i] = 0.0 ; + } + + + for (u64 i = 8; i < n + 8; i++) + { + x[i] += dt[0] * vx[i]; + y[i] += dt[0] * vy[i]; + z[i] += dt[0] * vz[i]; + } +} + +// +int main(int argc, char **argv) +{ + // MPI init + + int rank , size ; + MPI_Init(&argc, &argv) ; + MPI_Comm_rank(MPI_COMM_WORLD , &rank) ; + MPI_Comm_size(MPI_COMM_WORLD , &size) ; + + + const u64 n = (argc > 1) ? atoll(argv[1]) : 16384; + const u64 steps= 10; + const f32 dt_value = 0.01; + const f32 softening_value = 1e-20; + + + // declaration of file for saving 1st coordinates during time + #ifdef SAVE + FILE *xfilePtr = NULL ; + xfilePtr = fopen("3x_mpi.txt", "w"); + FILE *vfilePtr = NULL ; + vfilePtr = fopen("3v_mpi.txt", "w"); + if (xfilePtr == NULL || vfilePtr == NULL){ + printf("Issue in writing in file\n") ; + } + char buf[100] ; + #endif + + // + f64 rate = 0.0, drate = 0.0; + + //Steps to skip for warm up + const u64 warmup = 3; + + // + if (rank == 0){ + float *x = aligned_alloc(64, sizeof(float) * (n+128)) ; + float *y = aligned_alloc(64, sizeof(float) * (n+128)) ; + float *z = aligned_alloc(64, sizeof(float) * (n+128)) ; + float *vx = aligned_alloc(64, sizeof(float) * (n+128)) ; + float *vy = aligned_alloc(64, sizeof(float) * (n+128)) ; + float *vz = aligned_alloc(64, sizeof(float) * (n+128)) ; + float *softening = aligned_alloc(64, sizeof(float) * 64) ; + float *dt = aligned_alloc(64, sizeof(float) * 64) ; + init(x, y,z, vx, vy, vz, softening, softening_value, dt, dt_value, n); + const u64 sx = 6 * sizeof(double) * n; + printf("\n\033[1mTotal memory size:\033[0m %llu B, %llu KiB, %llu MiB\n\n", sx, sx >> 10, sx >> 20); + // + printf("\033[1m%5s %10s %10s %8s\033[0m\n", "Step", "Time, s", "Interact/s", "GFLOP/s"); fflush(stdout); + + + for (u64 i = 0; i < steps; i++) + { + + + #ifdef SAVE + // write 1st trajectory particle for comparison + fputs(gcvt(x[8], 16, buf), xfilePtr) ; + fputs(" ", xfilePtr) ; + fputs(gcvt(y[8], 16, buf), xfilePtr) ; + fputs(" ", xfilePtr) ; + fputs(gcvt(z[8], 16, buf), xfilePtr) ; + fputs(" \n", xfilePtr) ; + + fputs(gcvt(vx[8], 16, buf), vfilePtr) ; + fputs(" ", vfilePtr) ; + fputs(gcvt(vy[8], 16, buf), vfilePtr) ; + fputs(" ", vfilePtr) ; + fputs(gcvt(vz[8], 16, buf), vfilePtr) ; + fputs(" \n", vfilePtr) ; + #endif + + + //Measure + const f64 start = omp_get_wtime(); + + move_particles(x, y, z, vx, vy, vz, softening, dt, n); + + const f64 end = omp_get_wtime(); + + //Number of interactions/iterations + const f32 h1 = (f32)(n) * (f32)(n - 1); + + //GFLOPS + const f32 h2 = (23.0 * h1 + 3.0 * (f32)n) * 1e-9; + + if (i >= warmup) + { + rate += h2 / (end - start); + drate += (h2 * h2) / ((end - start) * (end - start)); + } + + // + printf("%5llu %10.3e %10.3e %8.1f %s\n", + i, + (end - start), + h1 / (end - start), + h2 / (end - start), + (i < warmup) ? "*" : ""); + + fflush(stdout); + } + + // + rate /= (f64)(steps - warmup); + drate = sqrt(drate / (f64)(steps - warmup) - (rate * rate)); + + printf("-----------------------------------------------------\n"); + printf("\033[1m%s %4s \033[42m%10.1lf +- %.1lf GFLOP/s\033[0m\n", + "Average performance:", "", rate, drate); + printf("-----------------------------------------------------\n"); + + // + free(x); + free(y); + free(z); + free(vx); + free(vy); + free(vz); + free(softening); + free(dt); + + #ifdef SAVE + fclose(xfilePtr); + fclose(vfilePtr) ; + #endif + } + MPI_Finalize() ; + // + return 0; +} diff --git a/3_omp.c b/3_omp.c new file mode 100644 index 0000000..b85fe0a --- /dev/null +++ b/3_omp.c @@ -0,0 +1,371 @@ +// This is an optimized nbody code simulation with openMP +// There is a reference code (without optimization, without multiprocessing) +// at https://github.com/sbstndbs/nbody3d (if public at the time) with "nbodyx.txt" and +// 'nbodyv.txt' files (reference). + + + + +#include +#include +#include +#include +#include +#include + +#define SAVE + +// +typedef float f32; +typedef double f64; +typedef unsigned long long u64; + +// +//typedef struct particle_s { +// +// f32 x, y, z; +// f32 vx, vy, vz; +// +//} particle_t; + +// +void init(float *x, float *y, float *z, float *vx, float *vy, float *vz, float *softening, float softening_value, float *dt, float dt_value, u64 n) +{ + for (u64 i = 0 ; i < 8 ; i++){ + x[i] = 0.0 ; + y[i] = 0.0 ; + z[i] = 0.0 ; + vx[i] = 0.0 ; + vy[i] = 0.0 ; + vz[i] = 0.0 ; + } + for (u64 i = 8; i < n + 8; i++) + { + // + u64 r1 = (u64)rand(); + u64 r2 = (u64)rand(); + f32 sign = (r1 > r2) ? 1 : -1; + + // + x[i] = sign * (f32)rand() / (f32)RAND_MAX; + y[i] = (f32)rand() / (f32)RAND_MAX; + z[i] = sign * (f32)rand() / (f32)RAND_MAX; + + // + vx[i] = (f32)rand() / (f32)RAND_MAX; + vy[i] = sign * (f32)rand() / (f32)RAND_MAX; + vz[i] = (f32)rand() / (f32)RAND_MAX; + } + for (u64 i = 0 ; i < 64 ; i++){ + softening[i] = softening_value; + dt[i] = dt_value ; + } + for (u64 i = n + 8 ; i < n + 16 ; i++){ + x[i] = 0.0 ; + y[i] = 0.0 ; + z[i] = 0.0 ; + vx[i] = 0.0 ; + vy[i] = 0.0 ; + vz[i] = 0.0 ; + } + for (int i = 0 ; i < n+16 ; i++){ + //printf("%f\n",vx[i]); + //sleep(1); + } + +} + +// +void move_particles(float *x, float *y, float *z, float *vx, float *vy, float *vz, float *softening, float *dt, u64 n){ + + float test ; + + //printf("valeur test : %f\n", x[n+8]) ; + // + __m256 rxi, ryi, rzi, rxj, ryj, rzj , rfx, rfy, rfz; + __m256 rvxi, rvyi, rvzi ; + __m256 rdx , rdy , rdz , rdxyz , rsoft, rt; + + rxi = _mm256_setzero_ps() ; + ryi = _mm256_setzero_ps() ; + rzi = _mm256_setzero_ps() ; + rvxi = _mm256_setzero_ps() ; + rvyi = _mm256_setzero_ps() ; + rvzi = _mm256_setzero_ps() ; + + rxj = _mm256_setzero_ps() ; + ryj = _mm256_setzero_ps() ; + rzj = _mm256_setzero_ps() ; + + + rdx = _mm256_setzero_ps() ; + rdy = _mm256_setzero_ps() ; + rzj = _mm256_setzero_ps() ; + rdz = _mm256_setzero_ps() ; + rdxyz = _mm256_setzero_ps() ; + rsoft = _mm256_load_ps(&softening[0]) ; + rt = _mm256_load_ps(&dt[0]) ; + #pragma omp parallel for + for (u64 i = 1; i < n + 8; i++) + { + // + + rfx = _mm256_setzero_ps() ; + rfy = _mm256_setzero_ps() ; + rfz = _mm256_setzero_ps() ; + // load i values + rxi = _mm256_loadu_ps(&x[i]); + ryi = _mm256_loadu_ps(&y[i]); + rzi = _mm256_loadu_ps(&z[i]); + for (u64 j = 8; j < n + 8; j+=8) + { + //printf("j ; %lld\n", j); + //printf("j : %lld\n", j); + + rxj = _mm256_load_ps(&x[j]); + ryj = _mm256_load_ps(&y[j]); + rzj = _mm256_load_ps(&z[j]); + + + + rdx = _mm256_sub_ps(rxj, rxi) ; + rdy = _mm256_sub_ps(ryj, ryi) ; + rdz = _mm256_sub_ps(rzj, rzi) ; + + + + rxj = _mm256_mul_ps(rdx, rdx) ; + rzj = _mm256_mul_ps(rdz, rdz) ; + + + + + rdxyz = _mm256_add_ps(rxj, rzj) ; + ryj = _mm256_mul_ps(rdy, rdy) ; + rdxyz = _mm256_add_ps(rdxyz, ryj) ; + //rdxyz = _mm256_mul_ps(ryj, rdxyz) ; + rdxyz = _mm256_add_ps(rsoft, rdxyz) ; + //rxj = _mm256_sqrt_ps(rdxyz) ; + //rdxyz = _mm256_mul_ps(rxj, rxj) ; + //rdxyz = _mm256_mul_ps(rdxyz, rxj) ; + + //rdx = _mm256_div_ps(rdx, rdxyz) ; + //rdy = _mm256_div_ps(rdy, rdxyz) ; + //rdz = _mm256_div_ps(rdz, rdxyz) ; + + rxj = _mm256_rsqrt_ps(rdxyz); + + + rdxyz = _mm256_mul_ps(rxj, rxj) ; + rdxyz = _mm256_mul_ps(rdxyz, rxj) ; + + rdx = _mm256_mul_ps(rdx, rdxyz) ; + rdy = _mm256_mul_ps(rdy, rdxyz) ; + rdz = _mm256_mul_ps(rdz, rdxyz) ; + /* + printf("valeur test0 : %f\n", rdx[0]) ; + printf("valeur test1 : %f\n", rdx[1]) ; + printf("valeur test2 : %f\n", rdx[2]) ; + printf("valeur test3 : %f\n", rdx[3]) ; + printf("valeur test4 : %f\n", rdx[4]) ; + printf("valeur test5 : %f\n", rdx[5]) ; + printf("valeur test6 : %f\n", rdx[6]) ; + printf("valeur test7 : %f\n", rdx[7]) ; + printf("---------------\n"); + */ + rfx = _mm256_add_ps(rfx, rdx) ; + rfy = _mm256_add_ps(rfy, rdy) ; + rfz = _mm256_add_ps(rfz, rdz) ; + + + } + + //sleep(1) ; + rfx = _mm256_mul_ps(rfx, rt) ; + rfy = _mm256_mul_ps(rfy, rt) ; + rfz = _mm256_mul_ps(rfz, rt) ; + + + rvxi = _mm256_loadu_ps(&vx[i]); + rvyi = _mm256_loadu_ps(&vy[i]); + rvzi = _mm256_loadu_ps(&vz[i]); + + + + rvxi = _mm256_add_ps(rvxi, rfx) ; + rvyi = _mm256_add_ps(rvyi, rfy) ; + rvzi = _mm256_add_ps(rvzi, rfz) ; + + + + _mm256_storeu_ps(&vx[i], rvxi) ; + _mm256_storeu_ps(&vy[i], rvyi) ; + _mm256_storeu_ps(&vz[i], rvzi) ; + + + rfx = _mm256_setzero_ps() ; + rfy = _mm256_setzero_ps() ; + rfz = _mm256_setzero_ps() ; + + + + + } + + + //3 floating-point operations + + for (u64 i = 0 ; i < 8 ; i++){ + x[i] = 0.0 ; + y[i] = 0.0 ; + z[i] = 0.0 ; + vx[i] = 0.0 ; + vy[i] = 0.0 ; + vz[i] = 0.0 ; + } + for (u64 i = n + 8 ; i < n + 16 ; i++){ + x[i] = 0.0 ; + y[i] = 0.0 ; + z[i] = 0.0 ; + vx[i] = 0.0 ; + vy[i] = 0.0 ; + vz[i] = 0.0 ; + } + + #pragma omp parallel for + for (u64 i = 8; i < n + 8; i++) + { + x[i] += dt[0] * vx[i]; + y[i] += dt[0] * vy[i]; + z[i] += dt[0] * vz[i]; + } +} + +// +int main(int argc, char **argv) +{ + // + const u64 n = (argc > 1) ? atoll(argv[1]) : 16384; + const u64 steps= 10; + const f32 dt_value = 0.01; + const f32 softening_value = 1e-20; + + + // declaration of file for saving 1st coordinates during time + #ifdef SAVE + FILE *xfilePtr = NULL ; + xfilePtr = fopen("3x_omp.txt", "w"); + FILE *vfilePtr = NULL ; + vfilePtr = fopen("3v_omp.txt", "w"); + if (xfilePtr == NULL || vfilePtr == NULL){ + printf("Issue in writing in file\n") ; + } + char buf[100] ; + #endif + + // + f64 rate = 0.0, drate = 0.0; + + //Steps to skip for warm up + const u64 warmup = 3; + + // + + float *x = aligned_alloc(64, sizeof(float) * (n+128)) ; + float *y = aligned_alloc(64, sizeof(float) * (n+128)) ; + float *z = aligned_alloc(64, sizeof(float) * (n+128)) ; + float *vx = aligned_alloc(64, sizeof(float) * (n+128)) ; + float *vy = aligned_alloc(64, sizeof(float) * (n+128)) ; + float *vz = aligned_alloc(64, sizeof(float) * (n+128)) ; + float *softening = aligned_alloc(64, sizeof(float) * 64) ; + float *dt = aligned_alloc(64, sizeof(float) * 64) ; + // + init(x, y,z, vx, vy, vz, softening, softening_value, dt, dt_value, n); + + const u64 sx = 6 * sizeof(double) * n; + + printf("\n\033[1mTotal memory size:\033[0m %llu B, %llu KiB, %llu MiB\n\n", sx, sx >> 10, sx >> 20); + + // + printf("\033[1m%5s %10s %10s %8s\033[0m\n", "Step", "Time, s", "Interact/s", "GFLOP/s"); fflush(stdout); + + // + for (u64 i = 0; i < steps; i++) + { + + + #ifdef SAVE + // write 1st trajectory particle for comparison + fputs(gcvt(x[8], 16, buf), xfilePtr) ; + fputs(" ", xfilePtr) ; + fputs(gcvt(y[8], 16, buf), xfilePtr) ; + fputs(" ", xfilePtr) ; + fputs(gcvt(z[8], 16, buf), xfilePtr) ; + fputs(" \n", xfilePtr) ; + + fputs(gcvt(vx[8], 16, buf), vfilePtr) ; + fputs(" ", vfilePtr) ; + fputs(gcvt(vy[8], 16, buf), vfilePtr) ; + fputs(" ", vfilePtr) ; + fputs(gcvt(vz[8], 16, buf), vfilePtr) ; + fputs(" \n", vfilePtr) ; + #endif + + + //Measure + const f64 start = omp_get_wtime(); + + move_particles(x, y, z, vx, vy, vz, softening, dt, n); + + const f64 end = omp_get_wtime(); + + //Number of interactions/iterations + const f32 h1 = (f32)(n) * (f32)(n - 1); + + //GFLOPS + const f32 h2 = (23.0 * h1 + 3.0 * (f32)n) * 1e-9; + + if (i >= warmup) + { + rate += h2 / (end - start); + drate += (h2 * h2) / ((end - start) * (end - start)); + } + + // + printf("%5llu %10.3e %10.3e %8.1f %s\n", + i, + (end - start), + h1 / (end - start), + h2 / (end - start), + (i < warmup) ? "*" : ""); + + fflush(stdout); + } + + // + rate /= (f64)(steps - warmup); + drate = sqrt(drate / (f64)(steps - warmup) - (rate * rate)); + + printf("-----------------------------------------------------\n"); + printf("\033[1m%s %4s \033[42m%10.1lf +- %.1lf GFLOP/s\033[0m\n", + "Average performance:", "", rate, drate); + printf("-----------------------------------------------------\n"); + + // + free(x); + free(y); + free(z); + free(vx); + free(vy); + free(vz); + free(softening); + free(dt); + + #ifdef SAVE + fclose(xfilePtr); + fclose(vfilePtr) ; + #endif + + // + return 0; +} diff --git a/README.md b/README.md index c5c177e..1858e70 100644 --- a/README.md +++ b/README.md @@ -1 +1,2 @@ -# async-mpi-benchmarks \ No newline at end of file +# async-mpi-benchmarks +This is sbstndbs codes diff --git a/lib_interp/Makefile b/lib_interp/Makefile deleted file mode 100644 index e766b3c..0000000 --- a/lib_interp/Makefile +++ /dev/null @@ -1,14 +0,0 @@ -all: main libimpi.so - -main: main.c libbar.so liblol.so - gcc main.c -o $@ -llol -lbar -L. -Wl,-rpath=$(PWD) - -libbar.so: lib.c - gcc -fpic -shared $^ -o $@ - -liblol.so: a.c - gcc -fpic -shared $^ -o $@ - - -libimpi.so: impi.c - mpicc -fpic -shared $^ -o $@ diff --git a/lib_interp/a.c b/lib_interp/a.c deleted file mode 100644 index 944eb8b..0000000 --- a/lib_interp/a.c +++ /dev/null @@ -1,13 +0,0 @@ -#include - -//#pragma weak bar = foo - -int bar(int lol) -{ - printf("CICI %s", __FUNCTION__); -} - -int plop(int plot) -{ - -} diff --git a/lib_interp/impi.c b/lib_interp/impi.c deleted file mode 100644 index 4f40fe6..0000000 --- a/lib_interp/impi.c +++ /dev/null @@ -1,49 +0,0 @@ -#include -#include - -int MPI_Send( const void* buf , int count , MPI_Datatype datatype , int dest , int tag , MPI_Comm comm) -{ - printf("Coucou de %s count : %d\n", __FUNCTION__, count); - int ret = PMPI_Send( buf , count , datatype , dest , tag , comm); - - /* APRES */ - //stock() - - return ret; -} - -int MPI_Isend( const void* buf , int count , MPI_Datatype datatype , int dest , int tag , MPI_Comm comm , MPI_Request* request) -{ - printf("Coucou de %s count : %d\n", __FUNCTION__, count); - - return PMPI_Isend( buf , count , datatype , dest , tag , comm , request); -} - -int MPI_Wait( MPI_Request* request , MPI_Status* status) -{ - printf("Coucou de %s\n", __FUNCTION__); - - /* -MPI_Request MPI_Request_f2c(MPI_Fint request) -MPI_Fint MPI_Request_c2f(MPI_Request request) - */ - return PMPI_Wait( request , status); -} - -int MPI_Recv( void* buf , int count , MPI_Datatype datatype , int dest , int tag , MPI_Comm comm, MPI_Status * st) -{ - printf("Coucou de %s count : %d\n", __FUNCTION__, count); - return PMPI_Recv( buf , count , datatype , dest , tag , comm, st); -} - -MPI_Init( int* argc , char*** argv) -{ - /* MPI MARCHE */ - -} -// Faire correspondre un wait à un isend/irecv donné -// MPI_Request ? (hash(sizeof(MPI_Request))) - - - - diff --git a/lib_interp/lib.c b/lib_interp/lib.c deleted file mode 100644 index 9f61bbb..0000000 --- a/lib_interp/lib.c +++ /dev/null @@ -1,9 +0,0 @@ -int bar(int lol) -{ - printf("DANS LA LIB MAN : %s", __FUNCTION__); -} - -int barbar() -{ - printf("%s", __FUNCTION__); -} diff --git a/lib_interp/main.c b/lib_interp/main.c deleted file mode 100644 index 479bb74..0000000 --- a/lib_interp/main.c +++ /dev/null @@ -1,9 +0,0 @@ -int bar(int lol); -int barbar(); - -int main(int argc, char ** argv) -{ - barbar(); - bar(4); - plop(3); -} \ No newline at end of file diff --git a/makefile b/makefile new file mode 100644 index 0000000..3ef604f --- /dev/null +++ b/makefile @@ -0,0 +1,35 @@ +CC = mpicc +CFLAGS = -O2 -Wall + +all: 1 1_I 2 3 3_mpi 3_omp test_numa + +1 : 1.c + ${CC} ${CFLAGS} $^ -o $@ + +1_I : 1_I.c + ${CC} ${CFLAGS} $^ -o $@ + +2 : 2.c + ${CC} ${CFLAGS} $^ -o $@ -lgmp + +3 : 3.c + ${CC} ${CFLAGS} -march=native -mtune=native -funroll-loops -finline-functions -fpeel-loops -ftree-vectorize -ftree-loop-vectorize $^ -o $@ -lm -fopenmp + +3_mpi : 3_mpi.c + ${CC} ${CFLAGS} -march=native -mtune=native -funroll-loops -finline-functions -fpeel-loops -ftree-vectorize -ftree-loop-vectorize $^ -o $@ -lm -fopenmp + + +3_omp : 3_omp.c + ${CC} ${CFLAGS} -march=native -mtune=native -funroll-loops -finline-functions -fpeel-loops -ftree-vectorize -ftree-loop-vectorize $^ -o $@ -lm -fopenmp + + + +test_numa : test_numa.c + ${CC} ${CFLAGS} -march=native -mtune=native -funroll-loops -finline-functions -fpeel-loops -ftree-vectorize -ftree-loop-vectorize $^ -o $@ -lm -fopenmp + +clean : + rm 1 1_I 2 3 3_mpi 3_omp test_numa + +run : + mpirun ./1 && mpirun ./1_I && mpirun ./2 && ./3 && ./3_mpi && ./3_omp && mpirun ./test_numa + diff --git a/output_2.txt b/output_2.txt new file mode 100644 index 0000000..d2ce785 --- /dev/null +++ b/output_2.txt @@ -0,0 +1,114 @@ +init rank : 8 +init rank : 9 +init rank : 2 +rank : 2, debut : 11, fin : 20 +init rank : 6 +init rank : 10 +i : 0 +i : 1 +i : 2 +i : 3 +i : 4 +i : 5 +i : 6 +i : 7 +i : 8 +i : 9 +init rank : 1 +rank : 1, debut : 1, fin : 10 +init rank : 3 +rank : 3, debut : 21, fin : 30 +init rank : 5 +rank : 5, debut : 41, fin : 50 +init rank : 7 +rank : 7, debut : 61, fin : 70 +rank : 10, debut : 91, fin : 100 +recieve from 0 : 3628800 +recieve from 1 : 670442572800 +recieve from 2 : 109027350432000 +recieve from 3 : 3075990524006400 +recieve from 4 : 37276043023296000 +recieve from 5 : 273589847231500800 +recieve from 6 : 1439561377475020800 +recieve from 7 : 5974790569203456000 +recieve from 8 : 2312334251020054784 +recieve from 9 : 7475418734400817152 +rank : 9, debut : 81, fin : 90 +init rank : 4 +rank : 4, debut : 31, fin : 40 +rank : 8, debut : 71, fin : 80 +rank : 6, debut : 51, fin : 60 + result : 1237125786146705977742292979121229734035014624417260896619398927520253616750918366827857945532037091120527342901258007158362992035695165440000000000000000000 + verification result : 93326215443944152681699238856266700490715968264381621468592963895217599993229915608941463976156518286253697920827223758251185210916864000000000000000000000000 +i : 0 +i : 1 +i : 2 +init rank : 1 +rank : 1, debut : 1, fin : 100 +init rank : 8 +init rank : 10 +i : 3 +i : 4 +init rank : 2 +rank : 2, debut : 101, fin : 200 + send result : 8450550186924629495838157093855404565441366722012461965560414732385728621597296137876420884621412468214583850753160522570648517967532382305454834505647607520427964189812887040005874546880020480000000000000000000000000 +sword : 0 -3957588131611410432 +rank : 10, debut : 901, fin : 1000 + send result : 5958926632240478155489389057946132722598279588777288866613428027720091866834339557556406953783393337191792337384343797137527180562707601151082428455887739138152983603695993602780124665235348032787297990137398327480690965409929969664334240631387010833309096272433060469800960000000000000000000000000 +sword : 0 -26744847251537920 +i : 5 +i : 6 +i : 7 +i : 8 +i : 9 +recieved word : 0 2825382156216303616 + recieve : 93326215443944152681699238856266700490715968264381621468592963895217599993229915608941463976156518286253697920827223758251185210916864000000000000000000000000 +recieved word : 0 -3957588131611410432 + recieve : 8450550186924629495838157093855404565441366722012461965560414732385728621597296137876420884621412468214583850753160522570648517967532382305454834505647607520427964189812887040005874546880020480000000000000000000000000 +init rank : 3 +rank : 3, debut : 201, fin : 300 + send result : 388073871930164836456833719241672754395800230088084344989365493081608402429819987183923915365749209227783809215424452868912469966624757740910578635227970820611937899469540337072285732213325595760757119468974039367680000000000000000000000000 +sword : 0 6607376004539219968 +init rank : 4 +rank : 4, debut : 301, fin : 400 + send result : 209223823270638617358619201964832449059906628251873568264655716657865295297553093209479312349437367572479076071623911687381774865054766834597622676342069652308877784782385070730611632419370505415012574978156572812290993911475732480000000000000000000000000 +sword : 0 -4599697081077071872 +init rank : 5 +rank : 5, debut : 401, fin : 500 + send result : 19054359613385322234269048956226032795163441871435287654725236363826519006490653377600673270591687684455636676397163478261730664831176434410846934470862239340986203059325891401554006736445974864343373307437379088649370568530762376119666606080000000000000000000000000 +sword : 0 5105615340595838976 + send result : 93326215443944152681699238856266700490715968264381621468592963895217599993229915608941463976156518286253697920827223758251185210916864000000000000000000000000 +sword : 0 2825382156216303616 +init rank : 9 +rank : 9, debut : 801, fin : 900 +rank : 8, debut : 701, fin : 800 + send result : 318348570470064569508445601406351602968190694577069589038281824603661835016749890067789545136693057055243946216369553952355779066749887611604731730933616265990373085551988457684259383883447348281438473248513898254949269233329603054232671837416727434131293014589440000000000000000000000000 +sword : 0 -5529156453794840576 +init rank : 6 + send result : 87577379527636153943566695560374055358478694434350911445555049948970030504385483600910751406843299048084533233106189394953458907851956370527807745658861126679279485026414145135761379752215984873628516450724736991944978271393643629284116901915706746877528982389962833920000000000000000000000000 +sword : 0 -3340555709480697856 +init rank : 7 +rank : 7, debut : 601, fin : 700 +rank : 6, debut : 501, fin : 600 + send result : 10372380287738743469071640620604012340151668001286348029514792862581029490357620143488912016580726281464482648617893905550679162325174022151882221614181027215118952360279556045257214396997896972175847594131690999432137335594565792636061987549283876864000000000000000000000000 +sword : 0 -987316636644016128 +recieved word : 0 6607376004539219968 + recieve : 388073871930164836456833719241672754395800230088084344989365493081608402429819987183923915365749209227783809215424452868912469966624757740910578635227970820611937899469540337072285732213325595760757119468974039367680000000000000000000000000 +recieved word : 0 -4599697081077071872 + recieve : 209223823270638617358619201964832449059906628251873568264655716657865295297553093209479312349437367572479076071623911687381774865054766834597622676342069652308877784782385070730611632419370505415012574978156572812290993911475732480000000000000000000000000 +recieved word : 0 5105615340595838976 + recieve : 19054359613385322234269048956226032795163441871435287654725236363826519006490653377600673270591687684455636676397163478261730664831176434410846934470862239340986203059325891401554006736445974864343373307437379088649370568530762376119666606080000000000000000000000000 +recieved word : 0 -987316636644016128 + recieve : 10372380287738743469071640620604012340151668001286348029514792862581029490357620143488912016580726281464482648617893905550679162325174022151882221614181027215118952360279556045257214396997896972175847594131690999432137335594565792636061987549283876864000000000000000000000000 +recieved word : 0 5990795017831055360 + recieve : 191379038060346208876692337291713028627050218880590270361643512869403313214230532301989618533856051923300194763186514341003582327292021490887196904439582811705988253901608396069004871522436939876993662802818929864046381531809402751810925711227472901989990400000000000000000000000000 +recieved word : 0 -5529156453794840576 + send result : 191379038060346208876692337291713028627050218880590270361643512869403313214230532301989618533856051923300194763186514341003582327292021490887196904439582811705988253901608396069004871522436939876993662802818929864046381531809402751810925711227472901989990400000000000000000000000000 +sword : 0 5990795017831055360 + recieve : 318348570470064569508445601406351602968190694577069589038281824603661835016749890067789545136693057055243946216369553952355779066749887611604731730933616265990373085551988457684259383883447348281438473248513898254949269233329603054232671837416727434131293014589440000000000000000000000000 +recieved word : 0 -3340555709480697856 + recieve : 87577379527636153943566695560374055358478694434350911445555049948970030504385483600910751406843299048084533233106189394953458907851956370527807745658861126679279485026414145135761379752215984873628516450724736991944978271393643629284116901915706746877528982389962833920000000000000000000000000 +recieved word : 0 -26744847251537920 + recieve : 5958926632240478155489389057946132722598279588777288866613428027720091866834339557556406953783393337191792337384343797137527180562707601151082428455887739138152983603695993602780124665235348032787297990137398327480690965409929969664334240631387010833309096272433060469800960000000000000000000000000 + result : 402387260077093773543702433923003985719374864210714632543799910429938512398629020592044208486969404800479988610197196058631666872994808558901323829669944590997424504087073759918823627727188732519779505950995276120874975462497043601418278094646496291056393887437886487337119181045825783647849977012476632889835955735432513185323958463075557409114262417474349347553428646576611667797396668820291207379143853719588249808126867838374559731746136085379534524221586593201928090878297308431392844403281231558611036976801357304216168747609675871348312025478589320767169132448426236131412508780208000261683151027341827977704784635868170164365024153691398281264810213092761244896359928705114964975419909342221566832572080821333186116811553615836546984046708975602900950537616475847728421889679646244945160765353408198901385442487984959953319101723355556602139450399736280750137837615307127761926849034352625200015888535147331611702103968175921510907788019393178114194545257223865541461062892187960223838971476088506276862967146674697562911234082439208160153780889893964518263243671616762179168909779911903754031274622289988005195444414282012187361745992642956581746628302955570299024324153181617210465832036786906117260158783520751516284225540265170483304226143974286933061690897968482590125458327168226458066526769958652682272807075781391858178889652208164348344825993266043367660176999612831860788386150279465955131156552036093988180612138558600301435694527224206344631797460594682573103790084024432438465657245014402821885252470935190620929023136493273497565513958720559654228749774011413346962715422845862377387538230483865688976461927383814900140767310446640259899490222221765904339901886018566526485061799702356193897017860040811889729918311021171229845901641921068884387121855646124960798722908519296819372388642614839657382291123125024186649353143970137428531926649875337218940694281434118520158014123344828015051399694290153483077644569099073152433278288269864602789864321139083506217095002597389863554277196742822248757586765752344220207573630569498825087968928162753848863396909959826280956121450994871701244516461260379029309120889086942028510640182154399457156805941872748998094254742173582401063677404595741785160829230135358081840096996372524230560855903700624271243416909004153690105933983835777939410970027753472000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 + verification result : 402387260077093773543702433923003985719374864210714632543799910429938512398629020592044208486969404800479988610197196058631666872994808558901323829669944590997424504087073759918823627727188732519779505950995276120874975462497043601418278094646496291056393887437886487337119181045825783647849977012476632889835955735432513185323958463075557409114262417474349347553428646576611667797396668820291207379143853719588249808126867838374559731746136085379534524221586593201928090878297308431392844403281231558611036976801357304216168747609675871348312025478589320767169132448426236131412508780208000261683151027341827977704784635868170164365024153691398281264810213092761244896359928705114964975419909342221566832572080821333186116811553615836546984046708975602900950537616475847728421889679646244945160765353408198901385442487984959953319101723355556602139450399736280750137837615307127761926849034352625200015888535147331611702103968175921510907788019393178114194545257223865541461062892187960223838971476088506276862967146674697562911234082439208160153780889893964518263243671616762179168909779911903754031274622289988005195444414282012187361745992642956581746628302955570299024324153181617210465832036786906117260158783520751516284225540265170483304226143974286933061690897968482590125458327168226458066526769958652682272807075781391858178889652208164348344825993266043367660176999612831860788386150279465955131156552036093988180612138558600301435694527224206344631797460594682573103790084024432438465657245014402821885252470935190620929023136493273497565513958720559654228749774011413346962715422845862377387538230483865688976461927383814900140767310446640259899490222221765904339901886018566526485061799702356193897017860040811889729918311021171229845901641921068884387121855646124960798722908519296819372388642614839657382291123125024186649353143970137428531926649875337218940694281434118520158014123344828015051399694290153483077644569099073152433278288269864602789864321139083506217095002597389863554277196742822248757586765752344220207573630569498825087968928162753848863396909959826280956121450994871701244516461260379029309120889086942028510640182154399457156805941872748998094254742173582401063677404595741785160829230135358081840096996372524230560855903700624271243416909004153690105933983835777939410970027753472000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 diff --git a/output_2_large.txt b/output_2_large.txt new file mode 100644 index 0000000..125a295 --- /dev/null +++ b/output_2_large.txt @@ -0,0 +1,72 @@ +i : 0 +i : 1 +i : 2 +i : 3 +i : 4 +init rank : 6 +i : 5 +i : 6 +i : 7 +i : 8 +i : 9 +init rank : 8 +rank : 8, debut : 70001, fin : 80000 +rank : 6, debut : 50001, fin : 60000 +init rank : 7 +init rank : 9 +rank : 9, debut : 80001, fin : 90000 +init rank : 2 +rank : 7, debut : 60001, fin : 70000 +init rank : 1 +rank : 1, debut : 1, fin : 10000 +init rank : 4 +init rank : 5 +rank : 2, debut : 10001, fin : 20000 +rank : 5, debut : 40001, fin : 50000 +rank : 4, debut : 30001, fin : 40000 +init rank : 10 +rank : 10, debut : 90001, fin : 100000 +init rank : 3 +rank : 3, debut : 20001, fin : 30000 + send result : 15168907536941583372475630696209518960128637160004226911800773400575781963927889360667867273159384125725480411233984606974430601225902738312894732656696494682838519955808405357962034983223056986674447000274217973194942266574549635877465391372539194232772884157938380382707216901052034401026326283346598495657555324639162140801509773778103471002162137978894686181624131584502719051595699296376844350601449915986675829557222138182605557318430440174120826734882235665675169392670395276885891045265605210761713262414983905173323982144589734532310816561138568826964840494644376477554985424319713274575696753880335019521902919440587262930601655466740512704500132524122014603271655472236241671099812870371371319522632604400722317409841099403216023812972851157256314847336624135568496405698600827316421178189534536351546125319721107885135697990511000356168730792520964567455759699230681297173122572713255697218697824512843502657253205988001709254891055698971215136968974075053199148905018225915109906281551173159125611602468295306033624932053491082459835994859865782556197881748485875020206610788783842492705899392174552972922684119655510031992780106748466171002296475726564383311233401814174065490800857570380337567909764122354508004818503162681671601374356313790124558046396345831266325765101874749504018942091468918401607627628472824722848709406892317165882901315101795734796028396917828201511278730120092483149321844858731419696867754865149342980456945827351135419811793678420022146855563187218746714524817949600133187774866474297725716000152750300813739568672827703349763030159674229480101504474579528108938375000687540157223509166685651480792711466420949400786300993891065592383085295522748018863455259333135692600275295565295520010209369266938027436424753774465726867688707360555322593589977198637779824814498416432142176763136466607139498335580495721221235791664186618899405678817210012662311262846499807741976429116371708222343214173585439668170328677616456733299192076651253097800904029013619262564702420593656811532309166647168402790447339900620942267300783686659920923882101602600559133251792254593274121387807704793333876950065164817796806281577976575981017917394741115375290763107102992523616010279371018819544018253446349638471133572743508517178651192570888334078548597349331771972501447079284980888275645967824180487060088034320739320489555068400750575317925844105067608735333883501898863112616481849965184405199966542235312317544861071016664319814808486846536799237643502663979155493609986126267375461991002431459854082801045448696473835277784386269534276856198715806079591096882813720023429841949906663059379695069202741288564063967358384281408058010997256885387905623990679993538347797344374953784244098096813201959013774719056490353920993543054070768475429911364673755336349115677066622209049211268973346690369573749195343877286341355630293540324625737964546266554010897709989616358827535523235530870313394311874456980693467443380696131412355603043004725906646194825889938502004785586138787822356285443305086443638448988109490885359780441568510445969833825809866643840250683734463606945046012822234223586515360950039063601581202287137182534257322347702329544321211485692111654481214881538336102752651963958481758637820698573161945613123493705744504175069341705551291953957004069515572660539640739079865346143550918467234049528112417563300023288149834752436747230819658408470546021647573097554790312732456967572058030039228580174912299939412579031848110109240170005805446998850755739159391367971636802958029731368291497468061786110003322152614678130164152950299319274850238064394595971305281693959484450274397779810964695525629870757994979132494042152349614342459168544228053993324277247541338714827771165026901355718662808095171192224608478231977607139559610435338368853640708751191778315665615746854682352081434628898162203733040598455445601452866393907166588416718673764476053107135778394259024518900771224632179677434504145573504842812518301366021008361960091925781677001292316648133266897931716869691697898291246612536169553823559679394338445237163851657443928696103929158358839357237391880153995440656299744349109275494627354364217242111104575459074833241418725632444043883590318092336821588306744335457500265356473328679517609302738746677222656699853316725112261658390170972365785973279906650748863650366924105666118577217470868835178182349962969516303997182748882523189211853541513680571713700106328408495341506403379245524619391788296109811886983492103753098332939728748967324586557366781069854067121846219502171467744100421162519881680619832200663766737470391390970097079977742266607604226550228694611134734259412587914500631465546864497279969712317452643970186240306240435691413256274383358083969564143591637601418164417582846777342627582343290506029049661693142562771367115304748872267513491201845379667472212757526494606442043880356535320186703192732628394192994036774708974185499110848027279185765261429582571280589813483455116720706174043304489278370950244854289372024919108182572063318110641387096416522894122016855564060006532932608463787408665587457006330510741277638776552131380136874224269017718212102911392860855614762159501423987377860775271399296949247364055773908009320709647416160205606621875743500972517052209993061657048704848055268345298529856971207270239131680548848717166677752890298039420323986912045346589983166267632723593557742094198377410748631260387677146280135051686225415879261998981249846257167421549932689350859765102987020298663070550622699722604151545512662534207105727107866711642336442030657675712643325787221822892934238609530001253111100400521479974232534318534642051139018616968697603470509674458689266738548702296249575409010500001680258223840869893090986154405849556356630107281399484843953425204643416458538276669968763699891001534694403299454982244495746828792838298379884321960066014173854333925881459140876865743967592928518558106207492232597978786221444364698836297746170450519517799147988979147268439025484692214599848845923860570898960856299879560698731532511034050487201728688852219370857935554023431584427351082694672110913967514423882981581368261381753199893091613752522433786676651739633409351119088391276891649434081190326414406907957902521429686385558052762708998385478946733302307174598413244876057917979997814016775867125642505012098059774696182483260908554487484829785699079520419682777641268454503684640263262652457530003762106481001973898920119704126543093245633101565558016438310732742581362520893105808777892782239428024790539387141593408019553482729434046842159183031758898543187716421820953427648379432390137018866174853121166732445808597513000534394939227251427630674182271152354137204538117401419749372843295142280275859594709492869559339334451033113935670446864432987554522473704922471714297462201922777538998003044722565577567726204895802649974290307910674847262584030787683449161608452743848733067109475870766112594380097669212950731900847973161567706050875998364912637421985432121083953893334103819552093291102838012404396927352029503958424865881083748532426142350439540287309282036838444471316496931460046496719874822751112153502079591338655203855419502155171993680399220971675868071001429997037836454493496625336400819887960002006621389646220118951017281008361619273161198761842490787387681525587028764367310364392093180911784723192067375197968745377565084489255579599349641433508717455128721968471880133409350892742404510456593594488833244445130367359667157693617843189526878482368501748569587450895972959809263721569601439370884550859646000039059280857122595398235851980475596545496043014444680489079634270679761738159991288413060963134263654103072478416523452822864463849180622880177846620508646978534816752264374660369093076810228010757121004482974097184764118914805233643853117088842077238543554348845032668203688938668608734306720775106930322252584794647972182696138860006698628555966628787530750984672324161609748742545316526082998960059024352206918330451818478152868542899204998811201424555337024039574923704457928484822424422425149981335352016296630022367537669036613463690715879112306720015674571945592087466706510722231942301233880430427292893521156062945438277829070450769472639270165434972684705968250784772119362760645485568797077555936135884909231092349400522807728804095283255771951825247769582563631244283088854973800483155399547002918570320919479372045613665190007046615420955408467853059456579570784876164165234563058484305990351867961940491875550998995987130165726062978304266270964026089859879356118502635939377353516856609203052751964872311908572752249247207404228019702232592563041574809398397814686866656400127885202696109938832782750544645960411500651619606079733606263353739007117528154332530792072819643054880991985009157399502705804843674394483873675217746539755072288574631233232118687808886153299221133268005932341158275020246111846043825224587871597188810540053172920290032274893454846354582521653384135659628414748883867296652907658484003089437908113772519439349936529889482849230596687908560625170117607998665370534889814526577625297257103707588004029354816998732768752869157268512629940009499477266062381089659133427652463635977351503300190741264793856340864334739812568496702486635708667067279986180991569854008003551736362246082807687358475294888302479515936259828318354322111529881443058001391113462128599009131005835353282871937063950765972198295806816007896238992008207401403746295310711089682721455409527471153065402733791478536357880266492900322644743075880975099061752752832067011869558662667846463864970909858464667542914638317633940350533343328404551819478178329993883000737157364303287420698164747324695301751086406820171000580247802889979628547178714631419300201893919751966595966308708280081015150039678428508359524406372732744106137200402339754893131600069208352672336169676780689406486796791333874514546203843610977810220000495379150557354618810590305801261517248756355987287274298213622302663152779667916600619456882520545462986255756428355286108129732677514791763244925969142126990446934959231276928131086600191277590654205709460320232255558116805298937554022256216483155822006276576119721259234064362132817034007954744412013369310937001481994518041701266672382498993891321997499608228598183162272145899947906166492968741332633118115286624675712243231038570294900089263779256215004651666760733355142037353819506306451621053662737520217490128691524518474361596846197353592957236614430212265745910885268418454104211845833157538129799958822314245172785051240795607235143000382744661327495284160901044933694888787615781349274710553688111795294663073036056604126245796421378358250264419407331175718328996798315096992183941223368851559239877006693822952883095531523496593850066658558372689859590675949032442647615392702781354020201555465720864741012186605155451999572905674554348646577090235109517020527961215770222196359543673052570399622092971922000228932383420700963966286556559626581397834269712495461442263418832413992938640036022441811677945164346665875931013820358948882544502983085066250331941917580588448528616391478393903249004390232432632831166898477639575490589186742714969693136777852390615711844697953101936080561467204380720900622451571960785410782143689078414505811317671095380700156872197288599530956257021483735458789605744066562404212426129682157061046027616075027108480406481543453970463350847782822142681595195645768772144033339824553533512959644734424305233129682032232991584874628942070844052749202033235878035420213124788842300496751917295465881315131972115157206366172419924106465808721413112542070674772121454792348134656609193656161378506685969860275736429205130492115921666754965969715651728183821075018899501627145841041074477500618546610703679002521328303669476091181664665290037786079522633784320533291546162624373185082373629140015088937774450829522590772637594077605764480064637275757663357316662194699696938883858463766303362949407936301660016934683667471763015773477379058534388087506188813211812842350324686645652115148959160271774469515297300028171620657738944830452182373100798052835036678738374295010262576227768157109605037309647970027305400882394118456478299849314546634904749335835767060955895764547766818677394642976446153918449016307958562655671893587321459288755185265099173857583401481378789149775565736999981143482125727222168641264538507605583365525714753276376468547788963772897732245340675555104032669666746703324052658230629790178526487541272571432835783627166365441588739743040234428692550217440568780782312837798172503560593236831069948991556473043398118661676892358216053839113961492048287871952401510226640352130225191165149828989959010854611542208207003927973466269425047843902008783364704721389579731021652508322779115168575377817495629986537834754377392016096741034354129825299020848366828511064222057431969816260066629354038991781928458650556381321128673638406815145231543714805868678689174956740943480604137160155132924965483591998032544642064703536535530499145929555672067618243278289304018853990121075324632981468864224987306198868210547370712858533986543843516029580703841500698355655731456843727753574890212718746797364168730663320438842563898000201002095709944781603694260015947934647542441250573117985445583350035638582996286092436990016289885400994471583539918474508069522234862159966244337164598499011247406140787636530560460880662001772354529012049137313986480619804918399488346876153792079437480872782390893490507178538484950566130597933895430466885668606613838664493329189712694700252855758761566953785060673108219311263208196161120395051478771983607060851518337596795932574943538156114349364228088241614237452182983168351077712003799975185023972406958149387839153357242601187354381479593250567301072343405337186033227015719469444271511838913855843652726094367384306270769114128717985046118514812170691769731157362923704138166374217729425478586782740425581759447954221222750485675264179942672541991970815213349696977025501507785336156457483271321135012573483366635572095024226263072513178272630918340791151110064632370268879565627925858241755946478284747430300526900079401353323424617621641036261783789363481849853773922119382472013005497430528003183649192506921140582176601181797101121771635123599276057711068851918425185657132586096525333815293159282144596355124422748854949486591217980137650080533510707644401761607728677168331174399335176459559532415219834242433513731384343739455864607092054182862653476821587488392826505182355466903259148539232934964130409422858129529854148927783441153774256608423283717008547691133768749901735842743993014846606895362241952676821792737766119560146198890865938727949003514409268710004996262588645594448495384934685566136576265616721255638563317797983471235484348576952537923744332519309574417305725346067988972895518957569143671390999890747340782694530917410176002226328168033059435489651057790852831840601411748197581352506121476080282636165118536344258828714198415919192986324152865762990222367534550852651231934243821420101724525119637160047234850171115290110066659689126688328331301833050584512368404591020753194980434853291493057642657463144743388126340647224981259059817916354848911990805043478986300965062684921709547860989190751141714358311278320493427078476039300563038801088076454573890403715738940487901441260672659661796744361169878992726466911102689126735140293506383188171981380185358643645121225935067754076458424576917714841028717391655944213693184485143977531868937289757140368567198552564381077487941690243431901570928415817854259402537431549460405359294432330386367063611840643520233358049596441389219330600881120141389590269409827608238482518443083760516873651605714138253467208967645489411239656685116067996331769451208906797717099370988234539259415182643702312613971215750469043196628473804266659266233213423606874063782856564964516745798682791688478004516136760000608643272879695785754845157519745745374967318693568916761786506547133844308250201568787035180128839361958477948864520417290738316383328514749204597538001416076791379056659579987077115927908269440955450694466596190730599187817417380754550190012434831038515230126401976546685092481532860195775601420841505835310589288472896964073212991104010018415147251614580285116259991013029446945889463014964316488272877161099928253645641220661196049676179318695663765348279809116291832826506390863030868563897922117707636442803962648963555565078737304623049796455122850421304722715410074160114748259219863502811438543676941788807406041586701612616950439259549876539700402162305850016092804308319336237810127476014909923696831366922136184381112394568521887719942768482443449176586163772204108470270316030240286199504886931557862727879293500753121441388381693917672533793788042091036051062486754353664460061250285623669648050459054027099298500869546246494072522019941906355719109000959568978736654665821225453887331539998362398061418306316405075759466660726950123906698818435009596361668112810615016416410061406234825787782588471511476292803448765250435145663752129326551185438203040218996987409986226830612546840067202961743185519539795864497803749757524226178117404664623763071654148563776329993362182769543467127971332579362797825223335374873726328195297682553184938227505439337908221140615796502409808446938340519401593428614258254862184229060314391355884458674167341750661255637641043835466035704899261310541186519315981689134942174546408534959228363463101837719800060051514754054369607265537430061744611185080119160235487044269833885534816997204622215912073045886953715541062771318387714133047502938845506597220189976907155311294989990809980517542409230647360848122890025825425819032822180608542232622181771492088733212759612759695773675260315401189757391579398813816057615164390220695798765067837832524639872016851528214906502122107445151109827081887618697657315169165105032222938315790666919980776180103377987100438442953221084780937585910156588996044311856400992344613360739729141908050987000366703351720025853618687351448727270048871903465492318408940191567388853188569483796398385777773058959233127022450128959649022546493554815163608664573450961517249239303745396376996652694197945936785056785161073075335709040663727062710196259341199433424819844817737644742499979212908399583554980373015632018471390756682763619352558215148351889991972709185032791502624933193503073217171075850244103413435119648749535241566194754907976120211647761703379141033553409290199852312552795337775288796687184617722880058031235495858110939026865092756712977061909752148627728562743607708586227179786477193584448784016553367616868913220423982083907472283663649160936286459307066022601914013796528760475643294718920580102421789442622122368464425198646465450676448152002305103733112768825411569296246684163756767527673517512683883817408738342458771221335594973558461678776836718378353941127882165929261327735764804920753842823930246121251643853377947053064646640003898399897522102993834247109670185469199326324252670764740244023219811062789934910055865912623147561472977773980874879406198169878896324673553174600337313533587705834743647414509272029735116865907147835202748045031524357051568147738833735315613583751617344681903424798841228201952708684884688525364609297329851227006403015815193998436133750227519016344452225150992663970571321687882125148029578396419188381743987419119145008169253549942003701855753033825441834025483009342875211948356783724691372503007080289811653470023974640574355388861890605148232009998526867436961547072241739998215418677979119129540877453761447043305031313264012856617130680529746564842183290907712189481530398605578129497955598370358716992205712983041254737813880629449787248357787387308838438876908872329181608688594672424680900797831848418795211705225281809778606971189066731066770691485604855644081582982785462127553092617722316426144206969497029697399038315626450026161533403911061708568387916620136270514346557026527998944441680532884427120510649351771564390062441767924902300914943547445959764968048069659904833626751138244900622978028551451937006150687096156355667738204019577064409273636744095779952694282902411560363232046293540863788974035307509816598845934291290153200279337047544069324943936929138713786116999900133486749177152527799829802240713487605182108945459112514464764277993420989820430195263486744918716796236754131079810163910852543714053982386552081187757710051596383322583852531033206284426115673523982877277686247949526273992626077803961103415139454697354771391734376439036952985456317267760651626888068471003950082089100513934398354100922264892231753834683692594342571072687270440625328213570403698005351180061988148172012466666988279522860679256180955491554387398360502621473208404922500685720814108632782192682866134437858018795180416029219324581494572159422781017554914175399582232737557443703432317050985354132771913636056461549487531623776998148535188970610533670307436614934683840168712333267591411395317650349714428397682367619358293398795496388489362198976823440173469515608287175053395153006249627400189299968701878540583069063930212121395289668968405699184382740329742093543197654421227329464461104355531222089711364702139487412081109516104695891490016827913206532617068187192022861109074377646145249057256928509480325445280563071275305811445867201610061718053474057268020516538241908834324761488224696524506799887197935716085614355768062851722438908568797216299241740715862601429081201698113691220658373523901453188638097672941890898038882731774934706879198977152142617644107008855108703117023348186141700881400635795415945547377140046638015813356018569218754996804549365930102679097191265554324581852461764161044083075318996600092583349156350721640029220174493552964480119819156023465440159295766610286547392014070126608244245177372165647216367722455763935766391158707587783547822978171625383262273323368220605769311904677719285244179260421445062605661170608900583067953015457511765035392567974764145949056166352592055149074207318168856275080159599080632651471582452516291662027981745627456210961100930949563064463040259506488895794707106865338202161156052966679999870230225817838725966717603120061757488653255072572692243243765041038664201511067563180654744127041542175144796820291193934366377051080209093353750864485422241747132914828944705531141820926325432887720815451800258140850627491263084061303218708254766771132987806999470421208362375072440013911109905822287592512157210373813922561324543878833695602049781140300592501974640297249429393657606847836994955243112702395292727170431036287854798410889903254481147508338548979158469809041392622773730040279869596674757997923612384036894818030816685031896050684460020084737281571373390827463636736446218830917666281319997928051623594977093321187835421579841951986757183349408032585951532588771503803572361618844578242434940176273939911951984032875457832101285289835700064915260955239821666678044238019683857948774580717521567382444910401258082743624880553393203562195395537214373923598756843866289238702482012090948118726636377320361156709322796914950280535126163760725241122734601607368612644443000493805700553303632427333976120181314092911954775075274256376109342857805046239942123473635548782130154360150430444538188406769283129355386989685221766191477564404096290827457683755852053874291202109984351299081861717864878951591874477233443392662045102870703058305383909821387117194427522100079267177076561252672406307370724567999661711765654809245417105617112521519974758246110384945487680343119224288629835028278373910478209994288844234890743800416069954473048418726748501760983668523333425647747927695950020232645059966460031647409810808840163641946437603616695184282408220064104267139839998048932920768528478531788987792871767462699314268621587673553059931196767624576987182257542779144695722015805782220453575016815343922024090773802094726255492959021999134921308130725829572339605086485514866504792033560530828778357835733777225634338058765603487421629688238243937143697367921194922487075330539689084392778326014722975489040840992444713178374339590122818467081180837688556723629846894169121136603759214533902703829851432101946327037966443782519597531962199049312158201671843782004265595157643002750854766982999626357449727945947643818927915287277538603616296917243378481891913703115969930301665446754353743009313916594058655742532609818131994837926389219812259140876104748476403806829836788868502962788802161153588049881475689649907686613213314916489817326033781260894905229416606113127064587250237519558954105804665648210277541618774807431255298227587717418212172862475927930390542160567818301726936677189886134578152867274562946544014324186444646985405358375231329957054487524763875291229196510102643212604064365684233418712107373165303464422565252701395108018741155609622283565692902542927131332827038473617553708052619774527932437980066708434482670274887345833446666212698880239456671945926194424923436393037396540108699550896278828754924507690280718762985745327391203255709617621474209943718493232214788206226261203480831862587485491917241589714928495677812514234604457582870879302960541461464681072799326032532609911417565761561159253231421820299096099227751352655738966120106014835177240006569643237549534663165470696080972370114249791978571790823982680912415710811033868231378114279064698932741996245552556713439130337739790392574209415934311542271837763226724316060594524775360978944469299615366072745806890585420561445813257540432030398092466453547594125548409942112518629054588106775469426094282747061163507125046429282760936228392992557913786247346964474305603449213107657904178282132026238749050467792872180788163711044148140101815268543065986382368149102548276940700659871897670369510906597723304379877089125441169135216794348468298504264840629588415018095788410503113710125170172695995004551398261413165819360464128343862178932142706124056542645054436861543377542786796210242405461582864977172528848781839699661686905813098370656611615887827700109666633310318129447864518546393695233114989545496673954901896720735592913313870307244887990938506786503629771464587779892224609007399626135925083099694976478406453328273455052414989473755452975739414277957380572423322334386550175260350508865808128166363754134969220929384450563931466939786233805208170700217029316516081786333670639767743666556837278302630481263186779168239084899963631427938790831083709345151697906354490774254734976517889715318841819470353948042782722228322000774000180848419460724379327712652240051037859614992809206465489813872529874088902647986245070533604204041864439433130854883643061626570366444984032734935899986537503758140328596058072266396217201573202113409164390397261502396619315350507143355720717816691153382704929267380462162224893025471403742079776368016114221389595088270958681863370881657414354659330520159287821082889979232429713016033007959362888778628094221003615299587586317585634375443774963043564995697471831993978755719217293736651588747457582169864779268214586474544040539624566951690969202688783594969149577935814490723383649416757679250667025473267541236642335582919172971066941348668387490416819722083225578148576539712628618120868983376291681776045967301600386087901399392805852701386083916431161459350352214748730570200146260827853893469156054629379606547456527823538098412703522823615941459947415786278719299375902532977494022167404697307753649222463068506753398056656877074441016509579321247193695821666137886469498236295178301845880044528002399515629281855280239177384811324969486756847411965472155967969992758855958725638494429857571424995294541644095932220032744096186900840617217806384516459189215427983534655846547716460927991520482408952472624373877555943165151342443687839641694097029998590189957680310199675322940521310127426407065876490204156615926140545409397793063295418453878364885819094043100481634254845931559281731145978401780039134441157996734710914486855922174507849888348772362507647232569872914689727407651506501741611334700490861892496525116456621977033770214010141150071045711026636670017727810168453470993573117146086158240584422464380528819189705897109081501463646882729182693733686062654606611644492433670274320969827983212792893724730096587998196269353618082551033894401406389604299187579573826248698696451203602115060984665555523181251489957751221713838343929609158016721497349703709534179076262805978159559021569081260398868603798497437309972051543899503900052613216421928444307924656502396491087576974439302617254160602587695442237822940532159003657273688456768562999639923198718553412469340333714161867959175733711391686731289839976505339477534613107720387650713716556248706583236722550773548470645817883123663850284549652213898779836697636369748366732543111473130100788875660916464895185695937825965717297519761834904342310980550947779422866311965245760424265768549537480674527733947829967315420573511290342413875446021194833593889108934992068379841778007732112168473916161165129461539005560480718669189094550837245064484763014986118874061467822765806451062199734351885874788654855796338007649046331838699569398107806856331483485235631634122935603747370167444548462831395867936000010261034991931199087080219858443463105464155185897151992700651410923994325133257022374927343293304820491493681900205631380210763983077431545583082158923569386480306885436923738669636731672776614071107371136774617959222427472675093479216943249038301324860189982093002039855614651651964261788476714724210285237517639760756440420322722679594140352857387445596921701449407347736154930330235830076707219022347429332054833890556523956851131690137009458667022759441026818126903541249939767778548168911558903485164751305308645671320838828083188235715553497980666606124318735618542063696587763904814942708847301448927915315511126859890673519577508304498436894568776902715140663732332224232103099632857766546486792881611610315762183635752834401384292372478303231759137913299602608170959320515049710771218575596344695524382524595284063962804623322128595224117221951318772214549253241666072792935554489189375308535235871724028699747775128945951708848585575364018329499668403316988844171392547426419359740186737046855012166787089329598939325608313394751361408007696475174957995593644614615147375676045109663904161271245478399313045648301849601206375738436684012935982404394908079203105941211342017765779802980403668210232543480842855324907448555350084361470595659057437802554935224615983048211107861806130817281258514462943623818467162543015790538414018653953612148897138545056462470391330615628877853926151442163782048780714533687318609889756470365450531409795154431696707371816330202672463287692491055577981723253318783225680982721459990425515143039672815359212429808076311224449135762130074281333256518932377887895826691516901973904579980721091276817705152431436364447898321239149560795552683054410775540753594563087024933346502043552893839031267903280838534950168732893185153376483618131809430569763167655707077968058094402787743500644801993043650294368591167878333913285160704467189216000264818171644731985218489896418116466972080247010698096820181437272786422078901865529668562918621698629714431838257552144560243510939273820901960819493484592922486558637022982841177479663663343674507659025694887691569787919201933335525405126020636646042202766145178931637009093935959021525368614127090832673737759835415831365268138170519111479212093762505752550166513565249410391632987085096584287605691376375073025138555513339105492567047367596524482553042271952069819489339969469264932198738030513370120085550346956757412782056554559909324513465848417365796462874953862096929020323300239705505331942387016962078219073062814691613559371241666375270775901359066545995754890451998130914725110348780910984805456783732984353845198645302589670549390878277295653900734695319747717229635309317145143359055755042183098257186737479084382080098357676195260541623796725910246553423314411212471836112117678238533794819881249627875346532041077999399474351058480313532817163794383890978692709149239014056818044419471166850929100134655802172029925646792627686478764082753209877633650510083217731673205242813248888936781554308738189073036583906468217654266402421506461176030752279283646056789122644838765644176394447238826771450644171661443846636943841861088835098010303914938787675296144218464449255922762854819770249403746140738418239594246998834235201930688928595309925819527576114432527840143347317863339137534655740846360361690737377556318112989538414735724587849651493083577818816555419905937856508847736808488224166718654923274191633946680260832971303074222079616759833374154461438918881131971656607342710954000473371886959760811254172271234874952762958799842080820299729259539913960489719431134333194214584230975938963767827729009179158778378007666253185614501029650708341074562479231079740437236303503197909846768932812 send result : 2846259680917054518906413212119868890148051401702799230794179994274411340003764443772990786757784775815884062142317528830042339940153518739052421161382716174819824199827592418289259787898124253120594659962598670656016157203603239792632873671705574197596209947972034615369811989709261127750048419884541047554464244213657330307670362882580354896746111709736957860367019107151273058728104115864056128116538532596842582599558468814643042558983664931705925171720427659740744613340005419405246230343686915405940406622782824837151203832217864462718382292389963899282722187970245938769380309462733229257055545969002787528224254434802112755901916942542902891690721909708369053987374745248337289952180236328274121704026808676921045155584056717255537201585213282903427998981844931361064038148930449962159999935967089298019033699848440466541923625842494716317896119204123310826865107135451684554093603300960721034694437798234943078062606942230268188522759205702923084312618849760656074258627944882715595683153344053442544664841689458042570946167361318760523498228632645292152942347987060334429073715868849917893258069148316885425195600617237263632397442078692464295601230628872012265295296409150830133663098273380635397290150658182257429547589439976511386554120812578868370423920876448476156900126488927159070630640966162803878404448519164379080718611237062213341541506599184387596102392671327654698616365770662643863802984805195276953619525924093090861447190739076858575593478698172073437209310482547562856777769408156407496227525499338411280928963751699021987049240561753178634693979802461973707904186832993101655415074230839317687836692369484902599960772968429397742753626311982541668153189176323483919082100014717893218422780513518173492190114624687576983537344145601312261522139117875968836736408720793700299203827919803870237207803914031236899760815284030605111670948472222487038919999344207139583698306396223207911562404425080891991431983712044559834404755675948921210149815245454359428541439084356441998422485547853216362403009844285533182925315420655123707970581639346029624769701038874220644153662673371542870078912274934068433644288984710084064160009362393526124803797529334392876439831639031277645072247926785170082666959838952615075900734921519759265919270887320259406638211880198885474826604834225645770574397312225970067193606176351357952982179429079770532728326750148802444352868164502616566283754651900617187344226043891929850607151539003110668472736013581670643786175675743918437647965813610059963868955233464878174614324357322486432679848198145843270303589550842053478849336458248259203328808902578238823326577020524897093704721021424841334246526820680673231421448385407418213962184687010835958294696523563276487047571835161687923506836627174371191572336114307012112076760869785155972184648598591864364171685089962551682091079357023111851817477501080462258552131476489749066075287708289766751495100968232968973200062239288805665803614031128546592908407803397490066495320587316494809388381619865885082738246803489786475711667989042356801830350413387573197263089790943571068779730163391808786847494363353389337358690640584841782806519627582643442925805842221294764940294862267076183298822900407239040373316820741741325165668844307933944701920890562078838758534251282095735930701819770834016381763827856253951682542664461494104471157953326237281546879408042371858742302620026422182269418862621210729777665740101837618228013685758644218586301153984371229910701009406192941322320277319395946700671369537709789777811828824244292086481613417956201747183160968766104314049795819823644580736820940402221118153005143338707660706314961610777111744805955276434833338574404021275703185152729837743592187855855279559102866445791736200722185814330997729477892372071794285775627130092398239792195758119726474264287826668235391568785727162014619224426626670840076566562580710947439874011077281166991880626872662656558334566500789030905065607463307802715853081769122377281351058452732659162621964762057143488021563081525900534372114100030303924286645720732847348171203416818632896886504828736777571736686187602860982603472716965064101126804363974675451396152358217165078312343597156427753921243731968977346543428333838413045717911790173183767654711166972332409952431455933167728584759394921164297183439824911942141713729442827895173699453364374257413639486805737694737551764412785672671350896423102032245339283982502124199370524847902609497492153447762816357083256705864818563582149241450926437116781033388249782222485904202001722101268394358072841158870536491903357489916946790078913240125116666666648742140551000228989113364768607006025787937975460795732484579997815828535158041654412831609548028323876995988439812601688181796848234473266822812287431983415919264427858282855405818615905028306029188615887861930586525842612530778913253964250684956783388121233439580561992166676065701501497688250684233737319630528225112167875506567410403370106385686662708484499112094021416629793997347214807535041914518068895220336273580966081071934929954926793630207759721876843894651342797087145287459276067885241808924382955829323987647392902294374246485211487385222933399080417758490461531249187555100386111172740153863367343626446310082290281425869361597412796425510940667438938818411826179059352748761492149428830819100911447328456480102213616541064130894498217308652787068472449093866006627064511664643080731830297025763271545112532552107353872294307484376563983394663225930045520521327581548503036166762044534513023996633420121497325036003637825044414620587859881510313271187249954789510324524232969038583944085825790524181937705948169892799288932928793475432016130034265208924995839527176591809817262786542177739367594979611670791869864903032588317590435605650087644191839946289401753704500796749885797221956505447286867275098626693021353492826736035861548175712858458672646207525530129720756220960621563338739014625062674634824346267130097664930840750239086520317816545083646461210640175681527966560607567966699535301247716527103326994721163846693066082169506831173836055265420625708862803684995449305304860080101274358154833660950877832957031754853212117929582013151972294331597959271303058567113183991238625233063791603344899739120128459743553419940626241172140911690710443802403261829128602534200356067278547357018371693952053736852554042311182083604724608098159416187022267560318912025067107353655703101006948006735405435574482164999644414621418509574825330355005413631618893274618025117490963727796082054880082200806812155099197660814045636421931108727072482437412531713095555607945109352039006400171763051439942420879723966903037463117568847324996384231774309647573826712719922597356307751566087796702086501166316217499828191655040810285752531216806843020228251197638421839428622007115784169321511889884460672963553140940075795037189162778146988809405724475183623281492843521414518616549165696382525550443735729898843038949338576792274401492448036202349770134336394799492156123340469688981371391534306415087337058738444968848476955505288633631777889435321626370024066642583339451172094503313057036314272926047311462113256734483486487423237996506957216330287219055582339175474436399085903453952096420163655415964173648036064326505636204526800992328818324171510319845495203820402084199745787577624523717330057614696584564836179392832833707095817936203568536285081251576054466303825166310194328400240423425376236450918632710900693479539679569324450593990625076629198358663096979384982753220460708182411864766324207568777697190156967483738456402804050839084129992705316395552384319479086592536154087786470153541069616528676955599717312865789096527722883989308029786180750286977435717521773589928326241824597530708652360938180830279089758068101264403026531783353768753389739131307953182289869988700991809468403041297321751809925108081048455523669274653585116228878795408521721731255811193009242340889830339408216113378602824054277028759192476988917151185986421677004650830454302101925501500235232577783247977219438137813803341058037326789685758456794709524947584721454548960958376094688874800642697860162060765115482073884549849908509796455857812700409515545964935909722941138588136879098638874844845946378205480259443991614779535683212332369669416091318193838032331511837086393334887262938668155236877740569661391928256645807681735391453666364576860396218298723610349833289768868999288294400355978846582554820476728252888143252983390369065455341755378020015463268577290537720179687957855146576333508573373609726247300156980886440521013539531884982655395631746406270359667872080867597986982152609411507732191499048064160413996886998546974599049927039159691241559660792409059438469633735806315742406816933738401498703826538720092047298539818077700740539562366662775278886846896534045467889030840291173112687560072205417495557111355877242570889712868083548557548438623082874190730617579652070448725589762769639972632084860659266498498886603139115596758553153315072136325839596251395964435197292243045704266254381936990398553319538076482563739092361480831622008039867110920903835582077542058716098071043890576698320591558076702949704702782723455819809888707846976022668616560802379066808238218622546287871891895450281074329350881481004559803293676910299042490186012521511302651633218028904946494998209604378470630263042114697313322095231221438374046707161535243084226188637178855693449346135688846126865047505466299876994127409201689341744996542706432608354352490989908144081250146065461270349791145558472196149573045668687857943873775758821765892670238623879436814891055108053794100443339678785486498101073625321155705407480285911348305986600299323394497141912564384063080899305133744934510880282477388449331444002623735638232562086736925360002031902989237998470888665263765161921893757168712552226253687555944151482066958049626297720688466009127220161099517963471724774916539549496729400280069936448088983432622804485133748956977823977813398323510381736001888249227232838584459373999214522951898353416979473256538808155537212424735861710524517067413178352613647884931408176604067951211341713225612890279469092688912111417494450243833673669740801378899044531157157178982455143817835304961902378111652331983065403002267134861790653610732379702680412246731325165215998767026689981307088466219141536247467846948252004905718924440394994212289056169817663985085231359955147578804886420607566155750878991450241777151593353377336744359080689121523128483027283366735082468998731159922801531378220825864946767379436273113361612011696033028900789624005924781416035948503612218791473135983911988590663765325907626753073346616431819009412774861450111023105320922336529211967545612356758978828021234786268729583382153214881193291250372714790867125015041685707524640202805034752133060360218818836799860744640354403569674168416074462808483663915156713249617104926752497731953582778440468153079063316911699635091382865258841252918466528130314609463520849193677409135925529830837553091897674299051474625744964486523148780646588005497082233787202552202935156185393630213630008132809778812542952996253107878021013791984536573706747124375264087316080217885368932038322031020916550467825800941564636608502004234888515519636412524503851123307778941716645157449333517733115146679576129386957745945510691286809575809320849322601250196132158033708733628097614279105210545309021944863789325980976907291862710165872809731189491391913175182482861783347327710677152871855921935656776629348345790404708362750171895658895154716562091961466759660007055046833460224746342633931597830447275439484354704326481393173020454336616689551460058890837215432006830570295990338627546376841018734564071457279507530717177006909383488022063071317209775288533578105763709921898207929710009841464195550352456307514093863588819863358049833247402519082309873450368349484566696334011680294455487351137656617693072884239651303785497735536707763187632053021655207767078362286400734481185991058154423561366633700571362786286263657713887384287369839131043293343585438708752980691891941197340776413690034572867644637586604643061571237906078944419257475071021574112926327280545645786852781593211006061739418312248696850150034104844335904397421360260788244615224514628407605949448813456374174161102731654715281760338794494577340367679449811365531793339844397123673508452734019630942769765268417017499075694798275782583522999431563332210743913155012445900532470268031291239229797903041758782339862237353505464264691350250395100923928658510868208807066273473320035499572039708648806604092985460700633940988583634986546613672788074876470070245879011804651829611127709060901615202211146154315831766995706097461808535939040006789287854882785093863735370390404941268461899127287156265500127083303995025787993170543188275265922581494895074663997600731692731083173588305661261478299766318807006304463242911226069193127888156622159152327045769586751282199093894268660196390448971891859747292531032248021054384104432582847283058429780416240510811032691400190056878439634150269652104892027214023216023489858882737142869533968175510628747090747371818801422348724849855819843909465170836436899430618965024328835327966719018452762055108570762620424450962332320474470783119043449935144262550170177101737955112474615947173186270156557126629585512507771173833820841970589336732372445328045653717851496030880258028406784780941464183865922665280686797884325066053794304625028710510492934726747126749989263462735816714693506049511034075540465817039348104675848562596776795976829940933402638726937836532091228771807745115262264254877183546110888636084327280622777664309728387905672861803604863346489337143941525025945965250152095953615797713559579496572977565090269442808847976127666484700361964890604376193469427044407021531794358383105140491546260872848667875054167414673164899935638131286693142761686353730563458662695789456827506581023595081488877895507393936534193736570084831850447568221544406759920313807707353997803633926733454954929666875992253089389808643060653296179316402961249267308063803187391259615113189035935126648081856836677028653774239074658239091095551717977058079778928975249023073780175314268036391424472025772889178495007811788933662975043680421466819782427298069757939174222945668318581567681628879787062453124665172762275829549342148365886891929958740209569600024356030528982986638689207699283403054971026651432230612523191513184387690382370620539920693394371688046642971147674356448637502684769814885310535406332884506201217330263067648132293156104355194176105071244902487327727311209194586513749319096516249769165755381219856643220797866630039893866023860735785811439471587280089337416503379296583261843607313332752602360511552422722844725146386326936976376251019671438012569122778442842699944082915221590469443728249865808520518657629299277550883312867263841871327778087444664387535264473356244113944762878097465068395298210817496795883645227334469487379347179071006497823646601668057203429792920744682232284866583952221144685957285840386337727803022759153049786587391951365024627419589908837438733159428737202977062020712021303857217593321116241333042277374241635355358797706530964768588607730143277829032889479581840437885856777293209447677866935753746004814237674119418267163687048105691115621561435751629052735122435008060465366891745819654948260861226075029306276147881326895528073614902252581968281505103331813212965966495815903042123877564599097329672806668384916625794974792290536184556374103479143077156116865048429249028110299252967873529876782926904078877848026247922275073594840581743908625187794689004594206016860514277224448627246991114620014988066272353883780938062854438476305323507013202802948839200813213544645005613498701783427110615817728981929065649868808104556223370306725425127727733028349843359577257595622470370779338714659303308862969944031833266579751467650271734629888377739784821870071802674126599715872803544047843247867490712792167289852358848694354669225510133760637791516459725425711696847733995115899834908188828126398440050554621006698879261455821456531969690982725393451576040861347625877816586729441077535882416231577908253805474693354058246971767432452345149848302717039654388773763735819173658245427334749042426294601129988191656371384711184915691505476814041174980145426571239420442544102807580600138819865061375928853903892264432294799028648284009959867596358099911269536760152717308685275657214758350712229829652956491783507175083574136228254505562027096941747679925922977488862741131458767614753145689532809311705269648641018740767329698664923643738256547502281647192681555988319662984830777666684062231431588438491051905828181674076446303330011971029303645586659465186907447525083784198762299041591179368279976065418608872162665488649234439103092325691063377596973905178112276466848679173604940439370333935190060938726839729924647848372727477097746669359978485712015678900024194726922097498412732314740154998092038145982141648117635714780155423159966783853485448640693641055691353133523118405358134894093819182189869482538396098994282202759933963520621770534357207339625057421676946510160849560143930324430427157609952730868460920442222610315422998444480211009816133382482737521899873820531516492713449810595015997480057159191220215448774875010347324619063394130303089239941198500622590218416440998817321432442210855424862089625026060439818018902631778114661745499977144066523286384636384700165561815386109818811118173419130550502486034585675558563751172977429932907494423657966833270091836733897734790175924888566037995277154056908301731172389414032615961229291222519109594874380567338127853861649184278693841755689804710085986837203361517515809702256627520016095619222992540175987852203854591377178397638981119848580329104875166692119510451489667776159824946872742066343759320785261892268728552767132488326779415291283916540796834419023909480367668870783801136704275397139620142478493519673530144440403782352667443755674088302522574527380620998045123318810272901204299798900542312621796813523775804116251145917599327913417650729282676223689729196052828967522352142523421724784186931739746041187763460462563713530980159061773675871533680395855905482736187611215138467343288432509004564535818668190510873179134621573033954058098717201384437709927953279767553109938136584040355679573189414197651143632552627063974314652634812003272009675566770192624258505777061789379823109698678844854665952732706167030891827720643255191939367359134603775708319318084592956515887524459760172945572050559508592917550651011566507552163514231815354817688419603208505087149627049401768418398058259403818259398646126027595424743337622625628715391606902509898507079866062173220016359393861147539456140663567571852661703147145351675300749921386520776852382488460062373589660805495165240648054729586991869435881119783368014148807832121345715236012406592220850891295690783537057673467166786378090881128345039578481221210111725071838335908388618757466120131729821713107294473765626517231069488442549836951414738389247774232094020783120080723532628805390626601818605042493878867787249550325542428422659627105069264607176746750233780567189345011073737703411934611337403386536467513673366139473155021145710467116144525332485019790108343164198999841404504490113016375952067571556750948524358026910407763721099867162425479538531285288993095657072921867352321666609787498963536261052982147256948279999622082577584098845848425039118944760872968518498397636791824226657116716658015791450081165719220023375976531749592239788498281470550619068927562521046218566130580025560797460972671503332703231002527464042875555654688376583880254322740350743168427862063769705479172648437817444636152057093322858728431569075625556930555881882260359000673933995250437988747093507927618111627630977125798397599652661212031749588205943575488386228250840140888572058399240097121921254807409775297427877591256602644348271364723184912518086627870862611669998963481240580368479458736482012465366322888901163657227088775773615200345010226889018910167357205866141001172366476265783539636429781901164705617027963192233229422873930923333074825893762619899759653008413538324112589963962944512908280202322549893662750649953083892563224679469596066904690668629264500621974012178289987297970485902177506009289332895727239201958999447194514736085077040072571743931814846190940626954528503052634100056502222615230936488288712204645426770057714899433514716250425236517371026606864725345812018668327395368254745653655359754668578870005698836028668645074070919455659063740425886031073575564204637068223949348446034166622089113221540787335808276284836915709971327751666464980939558101721443814000357258013530379913803751570762218507614146367919525301299820178479133552549637678807723369298464108967510073620250917314728002345808047077311049340361529978852981794046436465869968534995235916222888457353479210870404249225396518249750940141289019356601033372251594809542934516167400591465940373171186875122280174057107996718221625304465217260962889037262456313829367218176000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +sword : 0 0 +256993087483441094086086303707908295240576731684941855810482475304758923392801571302824106234999945932390521409856559565661346003396150515164758852742214732517999548977992849522746029855666700811871200856155016457400484170210303038996339253337466556817824410737409336919294104632307731994759826307383499600770372410446285414648704116273895649834555162165685114551383822047005483996671706246467566101291382048909121117229386244253158913066987462045587244806052829378148302622164542280421757760762365459828223070815503469404938317755053305094698999476119419231280721807216964378433313606760676965187138394338772485493689061845700572043696666465080734495814495966306246698679832872586300064215220210171813917325275173672262621454945468506006334692713838311715849753092643252486960220059099802663765386225463265168414963306369548086551101256757717890616694758344043486218485369591602172030456183497524162039926441331651884768606830642004858557924473340290142588876403712518642229016333691585063273727199596362912783344786218887871009533753551054688980236378263714926913289564339440899470121452134572117715657591451734895195016800621353927175419843876163543479806920886666227099512371706241924914282576453125769939735341673046864585181979668232015693792684926999983992413571941496882273704022820805171808003400480615261792013978945186295290558440703738300533552421153903385185829366779190610116306233673144419202893857201855569596330833615450290424822309297087124788002017383072060482680156675397593789931793515799958929562156307338416294599900276730832827716595064217966523190439250543226753731811755315476780739470338931185107297724318378972674957455778183345495942317353558291046967315391275975687281861691161083156337232639968881490543943261197182274996791176628553401860198315809629981791107208804992292016062059067271273599461871634945774995805337947187105456452579396024210259136415528398395201773012712514892051061708228008339985665786646920737114269682301770416324829479409558694699089379165191006305185352102345189798127619143061864362703081977124992751056732909481202057747100687703379708934229207183903744167503493818836342229284946790660285674293251642569044363473087656797056595677285291081242733154406580199802711579126254172797452862574865921933293805915239524735518887119860391319654287576290190503964083560246277534314409155642181729459941596061979622633242715863425977947348682074802021538734729707999753332987785531053820162169791880380753006334350766147737135939362651905222242528141084747045295688647757913502160922040348449149950778743107189655725492651282693489515795075486172341394610365176616750329948642244039659511882264981315925080185126386635308622223491094629059317829408195640484702456538305432056506924422671863255307640761872086780391711356363501269525091291020496042823232628996502758951052844368177415730941874894428065427561430975828127698124936993313028946670560414084308942231140912722238148470364341019630413630736771060038159590829746410114421358321042574358350220737173219745089035573187350445827238770728271406162997919629357224104477155051652535867544109395079218369015261138440382680054150924346511711436477899444553993653667727589565713987505542990824585609510036934663100673714708029927656933435500927189854050109917474979991554392031908961967615444686048175400695689471463928245383807010444181045506171305160584355817521032338465829201071030061124283407458607006060194830551364867021020364708470807422704371893706965688795617928713045224516842027402021966415605280335061293558739079393524404092584248380607177444609964035221891022961909032569042381374492494906892314330884224399631396391545854065286326468807581148748371408284176455226386313520264894016262494802388568231599102952620337126449279901938211134518446387544516391239377974190576649911764237637722282802318465738050121277809680315691477264910257503508758792248110223544524410872448565700755187132146592093548504552829170749596775404450779494836371756062326925757412813110241910373338080434325310884694831555729402265394972913817581338619457057799561808755951413644907613109617155928376585840036489374076822257523935988731081689667688287403837192827690431514106997678303819085690713091931340846019511147482766350724676534922040058626677632935516631939622498979912708004465982264899125226813124300528104995058595676527123591494442612554437618645029202881358582871789577224116380815161831603129728796987480139828621645629196153096358337313619724773332353025466571196902611237380629030242904275794549030022660847446513161741691916851746464945459696005330885252792083472495235473110674109099223541055506299687642153951249355986311346661725116890785633328935569150449485189113488301876365100638502565916433021928565596263914382895068324838727165616560111531517055222955765944972454788815532316417453267167978861141165355597588331979638070962998880767303616940317736448140427867784251232449974693421348217179595190698204602997172001174857303889719205597414742453011135869766256607770970225633261701108463784795555258504578058879440756064974127974530918418405207558526462208821483646754652237609210787539190454684852349759986044943322828073120679922402477507514105890774627334319091255451352225329275913842047384603056163154236552935312278389759446515787337343463172280001031380425481404022090580405056003860937403435068863081434683848900708938565050027569059678069404698435184535134141031615133683043714786642925389717165978629010728400758939700388317742648163725113277369926827709465342583596111881955092462062153978121197244762623771534452048069819082524943963962251113831177428978535825590832490480497516047104257569753442551515779815600370847230603484753977513688390404316017486248871339311818523029425425676202485688393970836748788453789172574145155917919035398535077200900594979352939459631213445503368260690059828717723533375221941915547303742062343262892968397015058892191112049249864792053410872349115430987182160055762209075732304626106597744947658346313025598636315029959672352476943975462530206788193304372284800209305354155640664838569378144603138697563459200233462606995955513484754147891180830329816421587452922952678937925647752029052675349356673744293182673374571642465407748267901046778759085408130531447176455869894169668940436489952465247443988349583871206296485413357553813419500498743813369062703973874586604296871595820715766599826607317005624465541763024501349159567288942619746144496908671655859782729228702723774835097362901019130417812735773037781804081589136005207315806941034305003184349342360269244733060013861119781774472669608928321052543116496033420102032603863672532889648333405862204843616575362001468405476649666473566979572953394809138263703324220930839366954980688240491622063147911494642042500022450413425558561937442905257252436320054487441524307305215070491020434076572476865095751174125413729531644521765577235348601821566833352520532830000108344008762266843817023235605645158256954177359197813649975559601912567744942717986360045847405209290089397315276024304951653864431388147876977541478757432610159879709758855625806766197973098472460769484821127948427976536607055051639104415022554420329721292033009353356687294595912327965886376486894188433640548494009574965791657687213927330153555097865114767947399690623184878377515462613823651665956337209345708208301840482797005728071432925727577436229587047361641609731817241594204270366066404089740245521530725227388637241859646455223673260411164598464020010216920823315155388821071527191267876531795071908204525100447821291318544054814494151867114207103693891129125012750853466337717749376016543454696390042711129829255096830420665725364279472200020835313883708781649957189717629338794854271276882652003766325924561614868744897471519366219275665852462114457407010675380427564184440834805203838265052601698584060084788422421887856927897751810442805474427229455167420335686460609977973124950433321425205053675790499520783597650415379001132579536040655172654879022173595444151139429231648950663177813039057462082449171921311864129633704661406456900178942356738775523130952785912774533241855442484484493664210731348819180640189222317302156645813473186449997905781662091469870718039388885781280740226363602294114354869871402143572055947730892808653678920201935102605361567924483276749476117858316071865710310842200560259545115191391309119544447844361032741876102338843391687589233423790859841968266525610628751237572318491474951945985728897934981791761822652480408237128109790772638864286067917082288575852703470839714561619926247844794692794996845945632382702297364173503430783194115698247820013290851202878474805860188960045901745974055630732714487679085288867978809970695240681006625611440014983413580889737246844064948857074167687916413224205373654067330186392497910915474785959163865597507090581175924899502214799250945635582514315814464060134283490422798357939659258985200763845646681640732681928346007767285876284900068874564639274964415904034033672337814491597032941787294155061054129515400159393851663929325677429557549480046658273579653990940233543644649376827272541873627547532976808190325336141086433084237771738995221536763095302045902438694632702895293994483013577589081214884558493819874505920914067209522469096263076941753340983698859363700314973728977996360018626500174929290087931189997822963712306642297996163582572600112288983647651418045975770042120833949364659647336464289044499325396227091907373705772051322815957863227591912786054297862953188615559804728160710864132803585400160055575686855791785977899197902656592621283007225351401525973569300729015392211116868504740402172174442051738000251361000494534119324331668344243125963098812396962202358858395587831685194833126653577353244379935683215269177042249034574534858913812582681366908929476809052635560638119661306063936938411817713545929884317232912236262458868394202889981693561169865429884776513118227662526739978808816010470651542335015671353744817086234314662531190291040152262927104099285072418843329007277794754111637552176563589316326636049381218401837512818884771168975479483767664084842753623074019542183217985496260666590347925816342392670947839907062923166535037285019751324813803837070894638925470887039085723581006130628646664710006104352115778926613432214655311411882596942926284522109026688414975763341554921135581254616558078273470115814006008345762133130389987843270653719956709570847385786092649188858378739239165554263577301292243641604062551736892335636568854365851646207821875741724364525814143487632761341752707376754922276287782264765154315341585713773522730335403376364204258034257264749686217823666951353410677378421131371131987373222891805275062812277716412494412401207125954319991746574745892582613712825555535080404143944557295994554635608487251339462936358940832098964801619583130429720964794128539388996265368928263807677168759588502216464582430940165009688797366157733560316836710386895228270941509545222744002735499253670214715994056544813842186380128799900820933576320736369405991424263718294000613741900579513096298545330748197802568301089672873802234820488862973130369689882640657904781562389778485365025691064231795736025330908763271784911189748432246868086340383964176127605788646574472284824932687443062551220506955168464669477183681911432873544815836350548146411099960143390595799766290646881295025039150923633011076070632863317393378149693380247580035052789782755750928604039420506342939327064636161031822879248152679306862749237275631852225654266008556849497720285909150930495425967473648331437236349555448901598668408362176913559656039519670425368863482369587129462524759031776813184977588276576740482558136502103649585505703259219957675334264223783723586058509403583977103476670644788640831109650302565215607464019652716999732373465237173456595514559493098166644006211599349133180135150528651842178828026343325934755850761168697709125580056185683710540856081249519403148064618719402577663285267019698387567561524696759028106864896869293315954352097687527137201616160931174250199709289684940034696242325688410665113304377412256176258658941236728171145526423894512631717834790276921171452887352955019336759218908006048633737786728180610254782570436788449503518925787499836694785908612975543084122677060954347612133717433156783790162012337237023338316414706428592185977610158232721997915062871868186750981665537745013020880333904353639770263363809098526494532628146558065546504823486429495390613257400496912888340518222933644476683855037967975809619983575807027759535968788226194659612223044549275600274955168583542582295336042834426318478068825395450746691877897765406038432512843812811316856204608617289408229658626174420766920297427930088129519854678713548623236610413216581279267151545961594352593456757445992307889205519540082316409719591250025455237503106735639748835542480449681383030671851931491335789202123605308199952020584503423499932150962634977812456658304680581824563524814625849331926195406884818446445248429486063016169476663242625231476322371109695369483824482316410396224507675405614287468267835723704895606990652792688455844512046654853378534026646645042339638488257719874953611300494215593735545211926186721478265416885604094928290056616883807637656690510740892510549165222968878676968631652514917701499900066637344546120262780701925698706225540928945194718778004306130021828287425867048748480826948573444778244078734102710824870269523830804910960482013901294024631244800159336670212658317677879752965963472576894326540435889267293950687860830626266263287392087327302547910099932113388977807814336728791448768373686467748528777737403547472871644217767820712964506270880978637928144071192505141148004907055608097229299792441471062852247029870699869227676341773513258602908903875707454368077876422385333700692089616351009233587303986543906071880952557553380364725895007306772122528078179471056481171378557451057691044322925429024149433588396093679321361696954251299731031032804436954501929843820842383121265825740594509426942777307124802176915781835720087170538773256017987133005505911377823841791640280841409623820847637393013930778428554545222367559824666250608754284876104145661362227642405914304455580856318180935230407793891614902116292400515074914068443203230365609954878620999194306564455332547135557365318516011700321550690787716752062881527885897149410320986984083048966524351030502444679931779147659103428949129054120361601695671222140806369405940304552186212879933092856231022418446365289097444640151986623183881962444822590783585914043686193019041458962693878907034982169868696934448086213990534591792826654304798207219634134755646525483143771156678459077797196510772468000293581546267646310224279007313631352522067062951125935874473134186492497282784796644585448962932905262058065248588707020879389134476083344653170939242408249328008915731319541348311820927752486880548733943315867562666122179355051190609992911379445634995627391898459029021713155706096267881673302940198464237390445098028030948975981259252055850973537436556825780313681902007151675693827281818824587541710721180806556448039122504537089422695358382192535075692834095639859265599740391316709290043996275976830375217503360879028295673068862263077729733533853682668734519035709709687322323738300494090123239274318759046526327095178406267264828893646896593219169521106361729757074376148061601331104911692271318609404145014842866423634716982892418180484365230538864559809839273836490685480823014267803143937440431807822678779494006206489151248952516543005634448375046751754207043313372486870633237561645232360481932024377596890914783372179553676992603235715185513391098402739063753280702313301755754269396202629423910945323537910125948964941812563672992967084250667599803456273455598559628512281414582556024841783305645240508450065988755987518601335860624932784487772006842296591945516539562982960591610046578907214842054861830418175604559815168088031783080261445994444677918012432146400983610678683412974872596729258786806223080115822026289014364459002301645823666709265571264559925790622304745235625575111770791512002789380975775468546121017307522799241407026308137792971909461413145802081087738121624539858769697371425881836152605069380926917712087321915005831977113322793572385071940612761291872572099404930250277748156614021327434743881966413330052634229082906400927944924808556131183440161804801357032507836323938921567643159620442612809700944107776130638909071294456394056601559246025454204771186140420155233371270501377121034570009578009389265329385720478576508777149663403003562380595757191609382171312222810465858388943507176431939973012661591423837170284400120399485880996231859472474858776584355077006934099220340378772192728370301380838144394114984971730766162961342059105014814283949700695951676939041557902856356911055547312684571497449635320554677940775184056667637222969090346128706829887104278761090090999160443821794511763620835379716161833124364431267855435550800507986124664397724135502128238026726719914989727248512981287283697489276420792868666970177259794407858155909332508554131299946581118527691652464790819119384233275897699573012098103009171001695718791616942270079528915191912521053891838538959315167400505723817401030621004380243011187977704252328073236575129609372456053680037516596164236147709330391224409752871732067976128120428026739256557305675931512645750047875756531854825821411574030473147492511910835615765732002546109686701890307648531373832912682481741181359032826625082549313211431478953352317043989053928534946642886074268371824902498092479487226633686823799580875637040808655649321905489637785549531167397935270799470452399153297534358690514105864096534514182896474439367182852711843560799285895978176543950113088848419163516673213692860830956744502801800373716458009168082972708715609185038654053436660045504985624687376022557041595800250174095361839287643458003670864954057941720085136357127163768323493134230703821274484501440529541695374381945459456533165140990993722722801019654652726227831512103467686166826131471843610025517863247950150022953695466317739589344131481485834694374523981159954666071205997794363440185078360899108948073419633939259318973940943110042116729120199722626609871927014024105805515315100109804996044147291039451030312664114726736839973315035036742741546992633165270432940675237449075056739508929674779115800864399992564817208847429250821546279856079127768611946086210349405535850134472190244543824521089284409498132717010673966471114931896789977661595488186193176900175027901783824624387873831483279500879026433992577026588005849778984624295660321276945810824348129690840972550671054732471317254997191901039553305847040728081693158626093886019147689944137673621432083607375131574376316754666479186753896571555100850626810005119827486807780592667765654100834778571024250133253391587384761024129794736751001163498977803745930025457609870671092153597115178252014281216647543034075128600240297038428615984289816602143429849088917359682192284469123035904329877231843309914187264674607558318725713138832356015809009594182530207799397648462597901883341793830920965841463574411985878296475850943053008148341821747826603773762252997703468752903517310792083220038080809212164346586817989810504274375385786789186350517717501606531826406928883250135919517178537687865881752366421534010961295763074762648070312757365787762352859057153932484576503944390496668087711899192498933896524852395536795827530614167131757915756386606004839994179548705868209201195154952031294562451315422506574858629161606523796643010172693950282294667489681746821163996794950294284013099235901278250437428192557634533217576162292751110598368271567229778620053722932314082887058749444060116236521627717558503013451471452765841864277071769968435499620257547431811994883385806759692359580622165832464092095350648357935817742903018315351290014321495518177456908388719320697769695657771754499149911431368950836160692539606469893374870942933219185601299108564470256257163505508620689240297589684714283678684735455533583477652536156578189996983068654671736445996343136468195427420490472433064675001442697508322369013083895492637066778406531328664886080129513771720847581157719491012345141774941482773580041432667332379617716965698582785832300505265883502247868050648201444570593197343382923860072601696510903258980909912837652275381493529845099414966933862815568031306981064525192703818515872648691762563239441425216118427769145067718411735714396681005615483952443154944864238384298900399826113322468963346522104692545137969276009719645338955332105584245640recieved word : 0 0 +187448611050959111766828942711640054010503770420346052521318228045892998637903572350665108782350043349942391285236308896510989246641056331584171142885304143772286629832318970869030400301325951476774237516158840915838059151673504519131178193943428482922272304061422582078027829148070426761629302539228321084917759984200595105312164731818409493139800444072847325902609169730998153853939031280878823902948001579008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +sword : 0 0 + recieve : 28462596809170545189064132121198688901480514017027992307941799942744113400037644437729907867577847758158840621423175288300423399401535187390524211613827161748198241998275924182892597878981242531205946599625986706560161572036032397926328736717055741975962099479720346153698119897092611277500484198845410475544642442136573303076703628825803548967461117097369578603670191071512730587281041158640561281165385325968425825995584688146430425589836649317059251717204276597407446133400054194052462303436869154059404066227828248371512038322178644627183822923899638992827221879702459387693803094627332292570555459690027875282242544348021127559019169425429028916907219097083690539873747452483372899521802363282741217040268086769210451555840567172555372015852132829034279989818449313610640381489304499621599999359670892980190336998484404665419236258424947163178961192041233108268651071354516845540936033009607210346944377982349430780626069422302681885227592057029230843126188497606560742586279448827155956831533440534425446648416894580425709461673613187605234982286326452921529423479870603344290737158688499178932580691483168854251956006172372636323974420786924642956012306288720122652952964091508301336630982733806353972901506581822574295475894399765113865541208125788683704239208764484761569001264889271590706306409661628038784044485191643790807186112370622133415415065991843875961023926713276546986163657706626438638029848051952769536195259240930908614471907390768585755934786981720734372093104825475628567777694081564074962275254993384112809289637516990219870492405617531786346939798024619737079041868329931016554150742308393176878366923694849025999607729684293977427536263119825416681531891763234839190821000147178932184227805135181734921901146246875769835373441456013122615221391178759688367364087207937002992038279198038702372078039140312368997608152840306051116709484722224870389199993442071395836983063962232079115624044250808919914319837120445598344047556759489212101498152454543594285414390843564419984224855478532163624030098442855331829253154206551237079705816393460296247697010388742206441536626733715428700789122749340684336442889847100840641600093623935261248037975293343928764398316390312776450722479267851700826669598389526150759007349215197592659192708873202594066382118801988854748266048342256457705743973122259700671936061763513579529821794290797705327283267501488024443528681645026165662837546519006171873442260438919298506071515390031106684727360135816706437861756757439184376479658136100599638689552334648781746143243573224864326798481981458432703035895508420534788493364582482592033288089025782388233265770205248970937047210214248413342465268206806732314214483854074182139621846870108359582946965235632764870475718351616879235068366271743711915723361143070121120767608697851559721846485985918643641716850899625516820910793570231118518174775010804622585521314764897490660752877082897667514951009682329689732000622392888056658036140311285465929084078033974900664953205873164948093883816198658850827382468034897864757116679890423568018303504133875731972630897909435710687797301633918087868474943633533893373586906405848417828065196275826434429258058422212947649402948622670761832988229004072390403733168207417413251656688443079339447019208905620788387585342512820957359307018197708340163817638278562539516825426644614941044711579533262372815468794080423718587423026200264221822694188626212107297776657401018376182280136857586442185863011539843712299107010094061929413223202773193959467006713695377097897778118288242442920864816134179562017471831609687661043140497958198236445807368209404022211181530051433387076607063149616107771117448059552764348333385744040212757031851527298377435921878558552795591028664457917362007221858143309977294778923720717942857756271300923982397921957581197264742642878266682353915687857271620146192244266266708400765665625807109474398740110772811669918806268726626565583345665007890309050656074633078027158530817691223772813510584527326591626219647620571434880215630815259005343721141000303039242866457207328473481712034168186328968865048287367933398443971236735084527340196309427697652684170174990756947982757825835229994315633322107439131550124459005324702680312912392297979030417587823398622373535054642646913502503951009239286585108682088070662734733200354995720397086488066040929854607006339409885836349865466136727880748764700702458790118046518296111277090609016152022111461543158317669957060974618085359390400067892878548827850938637353703904049412684618991272871562655001270833039950257879931705431882752659225814948950746639976007316927310831735883056612614782997663188070063044632429112260691931278881566221591523270457695867512821990938942686601963904489718918597472925310322480210543841044325828472830584297804162405108110326914001900568784396341502696521048920272140232160234898588827371428695339681755106287470907473718188014223487248498558198439094651708364368994306189650243288353279667190184527620551085707626204244509623323204744707831190434499351442625501701771017379551124746159471731862701565571266295855125077711738338208419705893367323724453280456537178514960308802580284067847809414641838659226652806867978843250660537943046250287105104929347267471267499892634627358167146935060495110340755404658170393481046758485625967767959768299409334026387269378365320912287718077451152622642548771835461108886360843272806227776643097283879056728618036048633464893371439415250259459652501520959536157977135595794965729775650902694428088479761276664847003619648906043761934694270444070215317943583831051404915462608728486678750541674146731648999356381312866931427616863537305634586626957894568275065810235950814888778955073939365341937365700848318504475682215444067599203138077073539978036339267334549549296668759922530893898086430606532961793164029612492673080638031873912596151131890359351266480818568366770286537742390746582390910955517179770580797789289752490230737801753142680363914244720257728891784950078117889336629750436804214668197824272980697579391742229456683185815676816288797870624531246651727622758295493421483658868919299587402095696000243560305289829866386892076992834030549710266514322306125231915131843876903823706205399206933943716880466429711476743564486375026847698148853105354063328845062012173302630676481322931561043551941761050712449024873277273112091945865137493190965162497691657553812198566432207978666300398938660238607357858114394715872800893374165033792965832618436073133327526023605115524227228447251463863269369763762510196714380125691227784428426999440829152215904694437282498658085205186576292992775508833128672638418713277780874446643875352644733562441139447628780974650683952982108174967958836452273344694873793471790710064978236466016680572034297929207446822322848665839522211446859572858403863377278030227591530497865873919513650246274195899088374387331594287372029770620207120213038572175933211162413330422773742416353553587977065309647685886077301432778290328894795818404378858567772932094476778669357537460048142376741194182671636870481056911156215614357516290527351224350080604653668917458196549482608612260750293062761478813268955280736149022525819682815051033318132129659664958159030421238775645990973296728066683849166257949747922905361845563741034791430771561168650484292490281102992529678735298767829269040788778480262479222750735948405817439086251877946890045942060168605142772244486272469911146200149880662723538837809380628544384763053235070132028029488392008132135446450056134987017834271106158177289819290656498688081045562233703067254251277277330283498433595772575956224703707793387146593033088629699440318332665797514676502717346298883777397848218700718026741265997158728035440478432478674907127921672898523588486943546692255101337606377915164597254257116968477339951158998349081888281263984400505546210066988792614558214565319696909827253934515760408613476258778165867294410775358824162315779082538054746933540582469717674324523451498483027170396543887737637358191736582454273347490424262946011299881916563713847111849156915054768140411749801454265712394204425441028075806001388198650613759288539038922644322947990286482840099598675963580999112695367601527173086852756572147583507122298296529564917835071750835741362282545055620270969417476799259229774888627411314587676147531456895328093117052696486410187407673296986649236437382565475022816471926815559883196629848307776666840622314315884384910519058281816740764463033300119710293036455866594651869074475250837841987622990415911793682799760654186088721626654886492344391030923256910633775969739051781122764668486791736049404393703339351900609387268397299246478483727274770977466693599784857120156789000241947269220974984127323147401549980920381459821416481176357147801554231599667838534854486406936410556913531335231184053581348940938191821898694825383960989942822027599339635206217705343572073396250574216769465101608495601439303244304271576099527308684609204422226103154229984444802110098161333824827375218998738205315164927134498105950159974800571591912202154487748750103473246190633941303030892399411985006225902184164409988173214324422108554248620896250260604398180189026317781146617454999771440665232863846363847001655618153861098188111181734191305505024860345856755585637511729774299329074944236579668332700918367338977347901759248885660379952771540569083017311723894140326159612292912225191095948743805673381278538616491842786938417556898047100859868372033615175158097022566275200160956192229925401759878522038545913771783976389811198485803291048751666921195104514896677761598249468727420663437593207852618922687285527671324883267794152912839165407968344190239094803676688707838011367042753971396201424784935196735301444404037823526674437556740883025225745273806209980451233188102729012042997989005423126217968135237758041162511459175993279134176507292826762236897291960528289675223521425234217247841869317397460411877634604625637135309801590617736758715336803958559054827361876112151384673432884325090045645358186681905108731791346215730339540580987172013844377099279532797675531099381365840403556795731894141976511436325526270639743146526348120032720096755667701926242585057770617893798231096986788448546659527327061670308918277206432551919393673591346037757083193180845929565158875244597601729455720505595085929175506510115665075521635142318153548176884196032085050871496270494017684183980582594038182593986461260275954247433376226256287153916069025098985070798660621732200163593938611475394561406635675718526617031471453516753007499213865207768523824884600623735896608054951652406480547295869918694358811197833680141488078321213457152360124065922208508912956907835370576734671667863780908811283450395784812212101117250718383359083886187574661201317298217131072944737656265172310694884425498369514147383892477742320940207831200807235326288053906266018186050424938788677872495503255424284226596271050692646071767467502337805671893450110737377034119346113374033865364675136733661394731550211457104671161445253324850197901083431641989998414045044901130163759520675715567509485243580269104077637210998671624254795385312852889930956570729218673523216666097874989635362610529821472569482799996220825775840988458484250391189447608729685184983976367918242266571167166580157914500811657192200233759765317495922397884982814705506190689275625210462185661305800255607974609726715033327032310025274640428755556546883765838802543227403507431684278620637697054791726484378174446361520570933228587284315690756255569305558818822603590006739339952504379887470935079276181116276309771257983975996526612120317495882059435754883862282508401408885720583992400971219212548074097752974278775912566026443482713647231849125180866278708626116699989634812405803684794587364820124653663228889011636572270887757736152003450102268890189101673572058661410011723664762657835396364297819011647056170279631922332294228739309233330748258937626198997596530084135383241125899639629445129082802023225498936627506499530838925632246794695960669046906686292645006219740121782899872979704859021775060092893328957272392019589994471945147360850770400725717439318148461909406269545285030526341000565022226152309364882887122046454267700577148994335147162504252365173710266068647253458120186683273953682547456536553597546685788700056988360286686450740256993087483441094086086303707908295240576731684941855810482475304758923392801571302824106234999945932390521409856559565661346003396150515164758852742214732517999548977992849522746029855666700811871200856155016457400484170210303038996339253337466556817824410737409336919294104632307731994759826307383499600770372410446285414648704116273895649834555162165685114551383822047005483996671706246467566101291382048909121117229386244253158913066987462045587244806052829378148302622164542280421757760762365459828223070815503469404938317755053305094698999476119419231280721807216964378433313606760676965187138394338772485493689061845700572043696666465080734495814495966306246698679832872586300064215220210171813917325275173672262621454945468506006334692713838311715849753092643252486960220059099802663765386225463265168414963306369548086551101256757717890616694758344043486218485369591602172030456183497524162039926441331651884768606830642004858557924473340290142588876403712518642229016333691585063273727199596362912783344786218887871009533753551054688980236378263714926913289564339440899470121452134572117715657591451734895195016800621353927175419843876163543479806920886666227099512371706241924914282576453125769939735341673046864585181979668232015693792684926999983992413571941496882273704022820805171808003400480615261792013978945186295290558440703738300533552421153903385185829366779190610116306233673144419202893857201855569596330833615450290424822309297087124788002017383072060482680156675397593789931793515799958929562156307338416294599900276730832827716595064217966523190439250543226753731811755315476780739470338931185107297724318378972674957455778183345495942317353558291046967315391275975687281861691161083156337232639968881490543943261197182274996791176628553401860198315809629981791107208804992292016062059067271273599461871634945774995805337947187105456452579396024210259136415528398395201773012712514892051061708228008339985665786646920737114269682301770416324829479409558694699089379165191006305185352102345189798127619143061864362703081977124992751056732909481202057747100687703379708934229207183903744167503493818836342229284946790660285674293251642569044363473087656797056595677285291081242733154406580199802711579126254172797452862574865921933293805915239524735518887119860391319654287576290190503964083560246277534314409155642181729459941596061979622633242715863425977947348682074802021538734729707999753332987785531053820162169791880380753006334350766147737135939362651905222242528141084747045295688647757913502160922040348449149950778743107189655725492651282693489515795075486172341394610365176616750329948642244039659511882264981315925080185126386635308622223491094629059317829408195640484702456538305432056506924422671863255307640761872086780391711356363501269525091291020496042823232628996502758951052844368177415730941874894428065427561430975828127698124936993313028946670560414084308942231140912722238148470364341019630413630736771060038159590829746410114421358321042574358350220737173219745089035573187350445827238770728271406162997919629357224104477155051652535867544109395079218369015261138440382680054150924346511711436477899444553993653667727589565713987505542990824585609510036934663100673714708029927656933435500927189854050109917474979991554392031908961967615444686048175400695689471463928245383807010444181045506171305160584355817521032338465829201071030061124283407458607006060194830551364867021020364708470807422704371893706965688795617928713045224516842027402021966415605280335061293558739079393524404092584248380607177444609964035221891022961909032569042381374492494906892314330884224399631396391545854065286326468807581148748371408284176455226386313520264894016262494802388568231599102952620337126449279901938211134518446387544516391239377974190576649911764237637722282802318465738050121277809680315691477264910257503508758792248110223544524410872448565700755187132146592093548504552829170749596775404450779494836371756062326925757412813110241910373338080434325310884694831555729402265394972913817581338619457057799561808755951413644907613109617155928376585840036489374076822257523935988731081689667688287403837192827690431514106997678303819085690713091931340846019511147482766350724676534922040058626677632935516631939622498979912708004465982264899125226813124300528104995058595676527123591494442612554437618645029202881358582871789577224116380815161831603129728796987480139828621645629196153096358337313619724773332353025466571196902611237380629030242904275794549030022660847446513161741691916851746464945459696005330885252792083472495235473110674109099223541055506299687642153951249355986311346661725116890785633328935569150449485189113488301876365100638502565916433021928565596263914382895068324838727165616560111531517055222955765944972454788815532316417453267167978861141165355597588331979638070962998880767303616940317736448140427867784251232449974693421348217179595190698204602997172001174857303889719205597414742453011135869766256607770970225633261701108463784795555258504578058879440756064974127974530918418405207558526462208821483646754652237609210787539190454684852349759986044943322828073120679922402477507514105890774627334319091255451352225329275913842047384603056163154236552935312278389759446515787337343463172280001031380425481404022090580405056003860937403435068863081434683848900708938565050027569059678069404698435184535134141031615133683043714786642925389717165978629010728400758939700388317742648163725113277369926827709465342583596111881955092462062153978121197244762623771534452048069819082524943963962251113831177428978535825590832490480497516047104257569753442551515779815600370847230603484753977513688390404316017486248871339311818523029425425676202485688393970836748788453789172574145155917919035398535077200900594979352939459631213445503368260690059828717723533375221941915547303742062343262892968397015058892191112049249864792053410872349115430987182160055762209075732304626106597744947658346313025598636315029959672352476943975462530206788193304372284800209305354155640664838569378144603138697563459200233462606995955513484754147891180830329816421587452922952678937925647752029052675349356673744293182673374571642465407748267901046778759085408130531447176455869894169668940436489952465247443988349583871206296485413357553813419500498743813369062703973874586604296871595820715766599826607317005624465541763024501349159567288942619746144496908671655859782729228702723774835097362901019130417812735773037781804081589136005207315806941034305003184349342360269244733060013861119781774472669608928321052543116496033420102032603863672532889648333405862204843616575362001468405476649666473566979572953394809138263703324220930839366954980688240491622063147911494642042500022450413425558561937442905257252436320054487441524307305215070491020434076572476865095751174125413729531644521765577235348601821566833352520532830000108344008762266843817023235605645158256954177359197813649975559601912567744942717986360045847405209290089397315276024304951653864431388147876977541478757432610159879709758855625806766197973098472460769484821127948427976536607055051639104415022554420329721292033009353356687294595912327965886376486894188433640548494009574965791657687213927330153555097865114767947399690623184878377515462613823651665956337209345708208301840482797005728071432925727577436229587047361641609731817241594204270366066404089740245521530725227388637241859646455223673260411164598464020010216920823315155388821071527191267876531795071908204525100447821291318544054814494151867114207103693891129125012750853466337717749376016543454696390042711129829255096830420665725364279472200020835313883708781649957189717629338794854271276882652003766325924561614868744897471519366219275665852462114457407010675380427564184440834805203838265052601698584060084788422421887856927897751810442805474427229455167420335686460609977973124950433321425205053675790499520783597650415379001132579536040655172654879022173595444151139429231648950663177813039057462082449171921311864129633704661406456900178942356738775523130952785912774533241855442484484493664210731348819180640189222317302156645813473186449997905781662091469870718039388885781280740226363602294114354869871402143572055947730892808653678920201935102605361567924483276749476117858316071865710310842200560259545115191391309119544447844361032741876102338843391687589233423790859841968266525610628751237572318491474951945985728897934981791761822652480408237128109790772638864286067917082288575852703470839714561619926247844794692794996845945632382702297364173503430783194115698247820013290851202878474805860188960045901745974055630732714487679085288867978809970695240681006625611440014983413580889737246844064948857074167687916413224205373654067330186392497910915474785959163865597507090581175924899502214799250945635582514315814464060134283490422798357939659258985200763845646681640732681928346007767285876284900068874564639274964415904034033672337814491597032941787294155061054129515400159393851663929325677429557549480046658273579653990940233543644649376827272541873627547532976808190325336141086433084237771738995221536763095302045902438694632702895293994483013577589081214884558493819874505920914067209522469096263076941753340983698859363700314973728977996360018626500174929290087931189997822963712306642297996163582572600112288983647651418045975770042120833949364659647336464289044499325396227091907373705772051322815957863227591912786054297862953188615559804728160710864132803585400160055575686855791785977899197902656592621283007225351401525973569300729015392211116868504740402172174442051738000251361000494534119324331668344243125963098812396962202358858395587831685194833126653577353244379935683215269177042249034574534858913812582681366908929476809052635560638119661306063936938411817713545929884317232912236262458868394202889981693561169865429884776513118227662526739978808816010470651542335015671353744817086234314662531190291040152262927104099285072418843329007277794754111637552176563589316326636049381218401837512818884771168975479483767664084842753623074019542183217985496260666590347925816342392670947839907062923166535037285019751324813803837070894638925470887039085723581006130628646664710006104352115778926613432214655311411882596942926284522109026688414975763341554921135581254616558078273470115814006008345762133130389987843270653719956709570847385786092649188858378739239165554263577301292243641604062551736892335636568854365851646207821875741724364525814143487632761341752707376754922276287782264765154315341585713773522730335403376364204258034257264749686217823666951353410677378421131371131987373222891805275062812277716412494412401207125954319991746574745892582613712825555535080404143944557295994554635608487251339462936358940832098964801619583130429720964794128539388996265368928263807677168759588502216464582430940165009688797366157733560316836710386895228270941509545222744002735499253670214715994056544813842186380128799900820933576320736369405991424263718294000613741900579513096298545330748197802568301089672873802234820488862973130369689882640657904781562389778485365025691064231795736025330908763271784911189748432246868086340383964176127605788646574472284824932687443062551220506955168464669477183681911432873544815836350548146411099960143390595799766290646881295025039150923633011076070632863317393378149693380247580035052789782755750928604039420506342939327064636161031822879248152679306862749237275631852225654266008556849497720285909150930495425967473648331437236349555448901598668408362176913559656039519670425368863482369587129462524759031776813184977588276576740482558136502103649585505703259219957675334264223783723586058509403583977103476670644788640831109650302565215607464019652716999732373465237173456595514559493098166644006211599349133180135150528651842178828026343325934755850761168697709125580056185683710540856081249519403148064618719402577663285267019698387567561524696759028106864896869293315954352097687527137201616160931174250199709289684940034696242325688410665113304377412256176258658941236728171145526423894512631717834790276921171452887352955019336759218908006048633737786728180610254782570436788449503518925787499836694785908612975543084122677060954347612133717433156783790162012337237023338316414706428592185977610158232721997915062871868186750981665537745013020880333904353639770263363809098526494532628146558065546504823486429495390613257400496912888340518222933644476683855037967975809619983575807027759535968788226194659612223044549275600274955168583542582295336042834426318478068825395450746691877897765406038432512843812811316856204608617289408229658626174420766920297427930088129519854678713548623236610413216581279267151545961594352593456757445992307889205519540082316409719591250025455237503106735639748835542480449681383030671851931491335789202123605308199952020584503423499932150962634977812456658304680581824563524814625849331926195406884818446445248429486063016169476663242625231476322371109695369483824482316410396224507675405614287468267835723704895606990652792688455844512046654853378534026646645042339638488257719874953611300494215593735545211926186721478265416885604094928290056616883807637656690510740892510549165222968878676968631652514917701499900066637344546120262780701925698706225540928945194718778004306130021828287425867048748480826948573444778244078734102710824870269523830804910960482013901294024631244800159336670212658317677879752965963472576894326540435889267293950687860830626266263287392087327302547910099932113388977807814336728791448768373686467748528777737403547472871644217767820712964506270880978637928144071192505141148004907055608097229299792441471062852247029870699869227676341773513258602908903875707454368077876422385333700692089616351009233587303986543906071880952557553380364725895007306772122528078179471056481171378557451057691044322925429024149433588396093679321361696954251299731031032804436954501929843820842383121265825740594509426942777307124802176915781835720087170538773256017987133005505911377823841791640280841409623820847637393013930778428554545222367559824666250608754284876104145661362227642405914304455580856318180935230407793891614902116292400515074914068443203230365609954878620999194306564455332547135557365318516011700321550690787716752062881527885897149410320986984083048966524351030502444679931779147659103428949129054120361601695671222140806369405940304552186212879933092856231022418446365289097444640151986623183881962444822590783585914043686193019041458962693878907034982169868696934448086213990534591792826654304798207219634134755646525483143771156678459077797196510772468000293581546267646310224279007313631352522067062951125935874473134186492497282784796644585448962932905262058065248588707020879389134476083344653170939242408249328008915731319541348311820927752486880548733943315867562666122179355051190609992911379445634995627391898459029021713155706096267881673302940198464237390445098028030948975981259252055850973537436556825780313681902007151675693827281818824587541710721180806556448039122504537089422695358382192535075692834095639859265599740391316709290043996275976830375217503360879028295673068862263077729733533853682668734519035709709687322323738300494090123239274318759046526327095178406267264828893646896593219169521106361729757074376148061601331104911692271318609404145014842866423634716982892418180484365230538864559809839273836490685480823014267803143937440431807822678779494006206489151248952516543005634448375046751754207043313372486870633237561645232360481932024377596890914783372179553676992603235715185513391098402739063753280702313301755754269396202629423910945323537910125948964941812563672992967084250667599803456273455598559628512281414582556024841783305645240508450065988755987518601335860624932784487772006842296591945516539562982960591610046578907214842054861830418175604559815168088031783080261445994444677918012432146400983610678683412974872596729258786806223080115822026289014364459002301645823666709265571264559925790622304745235625575111770791512002789380975775468546121017307522799241407026308137792971909461413145802081087738121624539858769697371425881836152605069380926917712087321915005831977113322793572385071940612761291872572099404930250277748156614021327434743881966413330052634229082906400927944924808556131183440161804801357032507836323938921567643159620442612809700944107776130638909071294456394056601559246025454204771186140420155233371270501377121034570009578009389265329385720478576508777149663403003562380595757191609382171312222810465858388943507176431939973012661591423837170284400120399485880996231859472474858776584355077006934099220340378772192728370301380838144394114984971730766162961342059105014814283949700695951676939041557902856356911055547312684571497449635320554677940775184056667637222969090346128706829887104278761090090999160443821794511763620835379716161833124364431267855435550800507986124664397724135502128238026726719914989727248512981287283697489276420792868666970177259794407858155909332508554131299946581118527691652464790819119384233275897699573012098103009171001695718791616942270079528915191912521053891838538959315167400505723817401030621004380243011187977704252328073236575129609372456053680037516596164236147709330391224409752871732067976128120428026739256557305675931512645750047875756531854825821411574030473147492511910835615765732002546109686701890307648531373832912682481741181359032826625082549313211431478953352317043989053928534946642886074268371824902498092479487226633686823799580875637040808655649321905489637785549531167397935270799470452399153297534358690514105864096534514182896474439367182852711843560799285895978176543950113088848419163516673213692860830956744502801800373716458009168082972708715609185038654053436660045504985624687376022557041595800250174095361839287643458003670864954057941720085136357127163768323493134230703821274484501440529541695374381945459456533165140990993722722801019654652726227831512103467686166826131471843610025517863247950150022953695466317739589344131481485834694374523981159954666071205997794363440185078360899108948073419633939259318973940943110042116729120199722626609871927014024105805515315100109804996044147291039451030312664114726736839973315035036742741546992633165270432940675237449075056739508929674779115800864399992564817208847429250821546279856079127768611946086210349405535850134472190244543824521089284409498132717010673966471114931896789977661595488186193176900175027901783824624387873831483279500879026433992577026588005849778984624295660321276945810824348129690840972550671054732471317254997191901039553305847040728081693158626093886019147689944137673621432083607375131574376316754666479186753896571555100850626810005119827486807780592667765654100834778571024250133253391587384761024129794736751001163498977803745930025457609870671092153597115178252014281216647543034075128600240297038428615984289816602143429849088917359682192284469123035904329877231843309914187264674607558318725713138832356015809009594182530207799397648462597901883341793830920965841463574411985878296475850943053008148341821747826603773762252997703468752903517310792083220038080809212164346586817989810504274375385786789186350517717501606531826406928883250135919517178537687865881752366421534010961295763074762648070312757365787762352859057153932484576503944390496668087711899192498933896524852395536795827530614167131757915756386606004839994179548705868209201195154952031294562451315422506574858629161606523796643010172693950282294667489681746821163996794950294284013099235901278250437428192557634533217576162292751110598368271567229778620053722932314082887058749444060116236521627717558503013451471452765841864277071769968435499620257547431811994883385806759692359580622165832464092095350648357935817742903018315351290014321495518177456908388719320697769695657771754499149911431368950836160692539606469893374870942933219185601299108564470256257163505508620689240297589684714283678684735455533583477652536156578189996983068654671736445996343136468195427420490472433064675001442697508322369013083895492637066778406531328664886080129513771720847581157719491012345141774941482773580041432667332379617716965698582785832300505265883502247868050648201444570593197343382923860072601696510903258980909912837652275381493529845099414966933862815568031306981064525192703818515872648691762563239441425216118427769145067718411735714396681005615483952443154944864238384298900399826113322468963346522104692545137969276009719645338955332105584245640187448611050959111766828942711640054010503770420346052521318228045892998637903572350665108782350043349942391285236308896510989246641056331584171142885304143772286629832318970869030400301325951476774237516158840915838059151673504519131178193943428482922272304061422582078027829148070426761629302539228321084917759984200595105312164731818409493139800444072847325902609169730998153853939031280878823902948001579008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 + send result : 160029288917014153830065106570920584575466783153933317878026483990675081460712368988966202559075087762789876209496228133702009120928848059590437846652211941780870065188247422590510655475284395415875287367235588057812349380860717419753841704369141509960301615707712257990228827675042652935907591433753719959093439296561765015989363651913700799940712911285187441529079847323884465546134044776525795631734166977082065297342208241199990648223861407402409311503863764640275577556436391205511244342731142653853483014428528007410646414304117466435823401892486814688521568256386200957275118764163087399402777215852096033059205921328737064368077380132528969258156165574068052215498783789731506541116422757032603574174122303918124368265866451621155699743329702193191473058952592188750078279066908543574978802908940013531864171487793219971874245964560563357816938873248993596773604156224840841639692926881653336857419313986579349394254454226271205091994174790867139337781334926610921435716175315640027760916664006062395553957532076565979540403597563164976694944954099074866338891158858541995751732190128072721367117687206322697120828178351923244529179826837605458331663708992042976797315002944285704936884439435976245279442423240481051345494308199709701023666931766530540616187489710426238884259762483294783194657686580458635629132505418131635002423356324788180651583102429780852700689495691127708904859781988276944864771919519150664585012166873161742934522625765654647940918291751547382526486689981075554896624608547815579893658549588167629946861905904012870242624366621171709909420193845664776360026990028307014619880034010120966554120364856088070298293731000396929526921620027302619370878491766356754498539106070827129858664505232310596850655513559531948870967376789300939494075996729730165466197600028847311122297850276332433740418787123407827511495720131644895100062222483281288345332565641934746742671711322303251466386054311576248045787605158332095764839007188636850875575698197208570028914675291508662263064470828210392324886196342279316681767914513866448555664391136565331019412901808036921391459055008793583879300042600943756484811406330463239447187649382930888748461012807536354735739051059745774894635820197862953584869036520935266118864728993268949038780226408243905724286056915616250326529294273598544971185429124095740126213108633341297993734678062124479329673925649790295771352919977494112466691280559651889982227248833952896463454199950631585694475982216277847087582559384592690767344624874337846853338512075253122967653411525347864061343527500936876901488163118644896096042570197193672645760005498569571261273569182695858736382300905822342545795259787219487010680255469335720163929124354652326211798246779813468592332256444807618250524413916503974726918634895473417790259049233681972592284718066461048427453267841716903588984394491522720614554492359900469812630185576473855570890235918803524465024679128224668128611385851506141177180726404818713083559026344476626129758833656470905505384803683396449768086104437414351168983066008261484572036878828231647106861777356888297637489260660098585959100272885550364652422859650091653547861768562045485935027546705503293525609696472314665242595972164364390032168030129392391979035429421350599874173400165451301794136684595555922088086951083614811737295581343782626807289816443000878323460435470888322718541685158999811663823601611381129848199037273636143580400053162892847030265925384322232783723939234501446000461063774929656017347655641331081607001538008408050702788552832808565002321429407132396966862445993765189279648882115521466185752572591709111067017730221747607193709138447006846254913441412841368915627770688955761086881045069235774610507097045554745707630935390297272515265098114117070026424490491681980185371133113384429399927112474211576138623503445265957088778292559370297902561104707632626740226417382652651636519519230994853814092955289006728775666666271782753790628741972119206718887143870237421806945394629463135278799698355980811430228664757707015520463314200989930994046858772782876294987109400432908339636157938121972369825263939308893996710043175814726456032007983266218878179604415352232474715193900274408850014318100546481787275861701977420005004091272832875388005789800986528086260993750605630294364435913068065773894855843544829486167040472864977088281697637856563475967512511305820153402903671612467736465762704971257325103820374636107913614391126927665019855130458319086058542917121827831164241142495517111393382162432649137428248225812410303324367486102068579902023901338293981394807152806455674729192442363917282962435544784505690489220986314841317786178340023141531810772294014931526663551898158219189897184561309539705947891535014568930969067302510851836260006224281785386839479394138047657342501858143166816632430693002263770936461719648148830539871246520357803979261703677201016227297818689169901065875472237669098363112726339733568019239533481541222661561284490414416007059670928363478168054294926881437886084938169962483432453344806972206176704345013494464902293836927583585053227126607592207169059587870315629015257482581503738065967572898987075952526049832995335495682405946864776601804255406793579444125906236101846701055666879113555244199928256408214782068887341288832123659869557847281407977376338949148966141017846959059132848633085875072430418562023226256843561018855624849328468918292623242091681010031529660985396960946672959474645785663540975845535622910652984765769504790501758670649249422951359863024621730367873200363299867252624476512084792231351045124836154199421670388282766079026582516168804295014310982402227002844873087760221258439298337393576854869054840179426850076640452905002692223446657085100139112813013194002454125559550637937535886035645575606303645694489420720808323522786674365499335714023331803598198317122275536432864156236049285947047183255877131163168562721990645712692255428011885912600126177300195424153390534187224114902038158423914341054488320874262694455745445977599562765723052753904010750715366607916132534963728058250310490262691545217119432394140039326411702226900353316787154193046774363621324398771425421933979429437753805529995223562556882383469662757307227864052334713228719336924868495044169747479396418679196194196520225047040543415950523049691344864280127273870510498174519478885164854135135104018654744566573913019331053176426479927814300080949738120675253131515169972337269856383672569867380833617370992366902112888414010317283663802521006682511154121157139135974086808326901551341544986419528790943005948872409881677627100007224346458507308254706560849345737871856433886314108717784870292563324662101615489981083770984571755914331142171355651985657772819261776153173048502617418345116365096510267760006845054738206206302026408416445386400616816141369305310678275850715193012107937318683875216720834164353055314653376282094995187352641043368162800603683300412810562739978183532320314197729986564580648394324850488355183706229384834844657620605956844033548031085434713374823174871924142475889747302877069018371431222782150544189114573073303585224633255071301077272980516665774920100458047334402834440726787166046390464634092084655469395416816751967291303817759148476111942318947500002390897039364130122995425887031326124897473716774037205426703533674155556365946406245897715186882277253646780268734510097768836817339910897860517965998576260600203611710020542832635514706142470749195646838938978423879971318963186747849698181125642966593241588787799847841604565692286242406282954322347890815194188151754611170451539748112616366556931317611210582740115321477614022192738241045357851138174626523868026802798870876024713304108827398495799941362430021954758943134031164470534995838162293481702558059484880096798706732976288780808013792571714235472154417901162716200030796677161900898224856052212734333304829848920765657687279207295452636875848741760594300746771761222389034170141832200996553010967272197466869810662124282737147266365893671189881884991552237179673291058944370409709867362950743021544419023952918334813623869929656439663715812103505317193581292834283385901408415021125096644837312304038546450491065113419669734861438131893504019119744684995111505204058782484234610096566665323916944657773856679650157966324347430672161731360554791798907799680850574217495858975081689695116020276384066217315778193181667689450967755054494153292442395628113484350165391749024464088686363985349246418889958020127484742836479013770599930970199642448688254742688808985255318878920906377260183249412796940625186628307424673284698114568077496112903790976497127708082535594435934696430210078036646066144610013633146984341678579486932157874783029613187526450160543775342536552358938622132850178486261382851449520391999218139552908938620225654680366227341464403165325132498455489638523323968783362577158220810202953805554320089762929380990747936997237975534897287738942961599474198892176579445667094363585266557674243538834737308579270596834617192655397688992463443635827252393612909544332983002230290754647672195754348563522273178716052910897366718961348585091085206759736476079424731839439293479997254868200743929036096589917093972681955116461924318516269566598890026006965130762618846605675429680234504922711131268654446615366416931535947178541323321081094492513778310771400981872043198598155421305602741453684836641590244902329897151368740963249611853208887510204949469760929837207738827915613425387569202346155079711256668733344899868315306414220155854327633860083645823075884733232446680274789597442044103140987673776738241362976444131917238183277660419057516054312274728535846738708713481659423100695797857892906442519848993499943165453990545068813503418348486881692451068245134737399645217936198032825878191919321782877495377643188259247125912157899449718965380383258451651006893043724207348981215225763063783522356096497602318422314504682343401788600711552443489194175258577247920755397821019668214352411942072297111581138439056841468987833588020613894885982131933316028548111567781276666767747240015306257233825325293612627402424477813215967236975823335414929517535451699695232658645587519825811115779954013418656659625625360736821332422634064338850259912020545808637075873920524170949107847570719655949239065975401530984211818146228204244127528996398409162502700899925517587466294157687333991337826717677670458724127999187572920786148141543119857016279917379542647005840837237006713790485538569919038831599450607711339346186373317459749872201733227738832861742769304128679715074373885114271844294076313148963818313255042825534653782762625537734832897136119791871028209014267458274820687283005302914499968387853197199884237166042544665591655660323972305698746118329763431537615771197517466656045341485506544704362312409152426122147220670036736763266757716542672976574822565913576821337736359339708320376567183191307351018734122437808847051090545463198985503016383290039269512499007727757516963245597930318609365585888658418620753780837379387150723157396462733997134837443164466457535881818692673774408096667239085189298037543530075458700536971170004300828406602547758095410412785328349297942911056051958312030602506415136908897143912135959698738167513267852478733852587106568642062446330488698058356818610104078224961704516499245442889834622990036543979779987533290719910842849117204339330958319346799663539281908218365313303217134991362730955464057731451593130613252612525869120458495609437955491167916604718361241367818691362586143755505392929174925816471809845635523043956886145836560093634855910114353583409508502684579974436867468220428606105276176031881044462717510208007354986519839779920882921783550338442655152700772387400769849434251834243056906138347092109738534630989253819028641683702703203071275661068770229402276719533637380594036023548507956299273592943396723680303840229522136239713003291975175189913839185449796095589893317936560126565565051722975677017637613265643623013172501802090272512990920937156509706017059415796394676471891735140262960799099280472769622767404239049995604030245808643080104043284502550926220612141696834758168615201855139164684756622382833096791656360488799204921539638429371959941600918231770779580402732470540611857237072341172039629519296554851302938297220565584094578368910545746953634027557295048829926146312958495024556487151401025569255525742277169990424055565512090349715071684238434665914392508418471829342072597365335806146377969943761442016134520861978470869217969632211779666519271440602404897170481336019174522360236241531833048504390992248494554289646762662055941665546363115392574618217781546170652259544877277862942075241724192742011649642548308877518247025896536835223750438387964459888350164648576628592947617374997379541776234903771288755906584078386991169004730946885156313202181795341827493164593070294057486577480128556907153031835436901755057079217781740100377864944601341369475662199960480428807877418464571012558921468299694277370706403312827589872106577711825181504286295267900653635129226371499827626492147292524021521491222397936413627001142301251122655813490829383919462765177791591079045495574218776007025026868018838974322058685029925383634947191240262482814607515510605033804055416931739104306021677112741544101913460765121088782860796675724087888444645647360686605206526378622595149009957199630638182735803616293246483017286616882156207143653242093401109612266744655026753697443832589236235393157722935888415298377321385528544452088776982490940727749466515226684010011009546389932500927079142944014379486628237905017688373787975630523176899284550315130907477309219946253181955757790074095884410829519201324983459098890158315773039328610145467866287046044768509263826015131102863543358849338810983491246873392958054459812532065428007115781361028183388574281638110651376746034465234729691573089624402411892906618092131303503588597519062196463124424631638517054745943510740273097188816350929595034325285217206528038237023862034543793441280329651090238381835836794344238082667941315738058790260030072126445100463619820308149858004156682014044480073736078820502984640412892036742587114242973227775861044954505024222099378230191142368842893953966023097081789575424731995574888584994117117341085066358207625423331542101089009175916865170090305059205334025520124643988926355251404863549565237227955902808689586212596674956499368512618659785737282635934531022406379127342675431665407040840858562572006308859188172387957887906543292351683833258576899718672061205192251238766841763893375276838682248234711498202349492980321539661612909707368840242272360306700346516101929157637318414801348032225637560527614674558634492122053417474613192169483276799579496500098405638237692681386033164734385403629547847865581868292781980594978531382358588991484680914451575249947989303008371676863511174790274633532927420538242273599996405273973038037071862267772115580704335467922889283027185388955945157397072038552680532262099511928688481584947407285472337955080487751231145216472467674297452395725937926739743136117567924451980730031225687096301077579582252095676516445398873126000589542507821673405084614172142017861354439784189851329106914637637585397741837875123577501924628213495227176990655572862554419923143691691851478757988774778477196114986103993875853872336187937557907542286362781660037455184519618960635633877317492856395615161575741278426538468618881448727318791058470450808844708838870711376866741808574480151097518131164607334152080580747960397217865693478939555555983875226995325544768922902887887950063820742967744687243916235045122255199910559477746044057986096403601211601659064795601631727836534677847221676187271291942201592720747929582428881594324734976389429714804284324388843840879644542257449128442614770633704831374445065615313161661209207477465357171282782952681579536785558487906912142468228987058866414593591821553083502251694629689480723905398657324829949048450405124494665973633401916135823040663485505849579903908437600443039694810698433719416034510784412611360095329942505146689472273429798538761131734015518423364727317607905931550775121578522311715002339446498968178974679473620386240922795435184364195662888332521583234954738594566156704038926859756130947815375706655465549982551522730794106002536298218346573079062353216501132314074408696661139941842108684849168316800338397226417565315051521847801013897159848179583673265303004921657199576187299283192840457720678272125757899808294546980634131648276708115545911060070819716311477103132914900855785515031696766930750506247117702587374093885805758967224877612317992610811312632581465058005494995978783081989738209722932945944215164257977238420112537061495546321925838831650692784130907396992021152471814511400475028718769263473774797162811926300480992445915783347204649547141399216113066179408273150019614107766732120982928347459606412365071246848176236812645884485781813698849960354775134297496315457905645316338281384854891943379268286943700878142455316265512182185117164311122060219904105743369154345092300282477870220041230807526859998764918025743329943947695741886230230420997352111638932777809974587881089516190619246756748627747817928563846678730974751579866807960554508244016743718043964322798458514435820208473303628638680109156310803241855208642813919445105392642315057929674565951044062443684864884261875198493271809300813259225680733707048247364685067554885024839898728213584918140792335779171243690835932877032344744524859060031063973403266173102270910501970113382198692365422667794355700481053928897235499229723645550942582895471672795018368180953937309423050314176580435873525771500671333975002608952338383405799556799832890797268526364996319039798965886742517708792591704814717304517270611718827588709682104521442053302056515438010390862943405535940599838450675241319484242986570199679461000106731270979860478403786091743375793685513787627719838735847788533338622838381504758492308885195024362546480798299434641516255063246775531087076118104552789651568796171184068966713951288523043510341166149821762700072785338927949167407344936720947650106609550111928313036920897898563637784711187958285893036070731155068865163629341390092596511475656054584192622031957471489224939675495566894793338184379949966459301179799486135202271193892483969202253000185219052724577680108201055511025284593853637581823634924264308047696487002160785318701065021149039540069604773928981081871617227750207378775488973565633560922445029442434653174569813550026649679840698460158564686050769709924379327345301521483946630719858203534427129677351285862925597113428254037610487477126589178167323782568872047130730493650869118130213952499792243794243279852355431025356766358666185425760273458957070477355786461789291510922616522273537080635922545430502186643571132680712581910349307005077989303412168980126056980360914027134970781489715635297654105853702391258353403904191124990910665660992754007245618486548814330061558792972454585755567408738229295273127425106195869014480986192057960048606551083338975011549010706067870051880152040118942498296101936359010343548184531241312945387981206702912918727463772766506168158409000581301338703734801500843611235311075718263811771591090307180866577804999139087502968669168774828549502168635070324109418808475104931881503783057468284537790901124303829310285781764295599943185392265262545048650231553399320104648185929784791016591052702256692280901895475667212938068383075126631726695440151876424844910997604767123868272300873405925947169990362819483983234895217113585236535103126707045790779217198826266540980879669227203309823060852117860540370554211165579729795992494985808097623444175133565851465499184077480899835071644660885110637662730615077916251369242678719844738491816548239447922689563083875515102948697142939370071087652454830449060811468733605201077129359509630893120961924802504204827381018453432908355281921605095893413445900723173107628623130975656789977282688986194214366009321322979102183528862350814796584367151589215363748836531898175679471660254473966880315005155765670688132443839019111988308549941255406242834635937970548705058543667289047812236410050416823145391993143594265667352130273466120908744483062044969803153505044242937196137002898182315994283530715719696378286375213464082861544528351512071440232425492623997062785336942396717930871225544848312858808427804080624939260540664444961393380094169518769479758145216299573048889025685557935544928618422677525641685121587962781334223299401919347241419982434314629347205312519953328368399856987748835836239662333396587958901159070075141990847047390439895824525174750019791444494989049391461221409957136223081408787506362270657696930556843542765145282697677309339027699586826737211265340673314499246496731773889594720619224790415094652853246943443704457325222935808871198590816554359260173409396541951327061303872174785351350065992651948954372927898932729459718075668549287910502583048436356949988859458231383112516290391556830276976354840113954877271112444476440586570981217975812232754954074590285119749732462486138716437371113486242042919894343912223062397644437850764954920806033805268098952687299317019731322507531466386810262667074872348016535555734176153126227210306906406714513761986302112979694041387463177787145044284116868247469089077466078616642692792830841668083292622114369126165986769299475044801065440869993024834327976994930346270444476103517539907875895485502902503261652850486633454594037415180773742219666704918538645075704764614073668202340973447575802416890514938258550091857567384080394773470064201494413436350086720327935780014506879246975708754070892508551245234231943535276626486928796524759549350800385496902663406889394091026444301970404115331381103115939962589861213837434856090309639579610314058614596513954505152748837488234311705865072048393952741470059301963241228514104878546876856533645494087151773798608309925079474570747862941507621175659473241011930307284180154782878317937942387463611939513251615104438383393921186390846131616777439470798373926679000008777554902117182363168458143658945188452270389342478465912556175186973012873087949400705052666252013356619269134439349601409807125878710278793512514359281781693804588709809316219896496192094009603059613721113564040407626706108143783325394006663085496661645778995475771149698438303708464147060578325234690631914663992643144367796877486654562831581832290891570057461387130347606261263034110717448197092943063322017008141392103473529463594037964886250368829363648160114554710773337045488619135905433907836045273548098713800864685877555897059495473836219726657749005929128176148301850303768639045067933203419634906366724964820541903554106480141168905567073653455080038361402272366592917749211421769023567085808700867203086243979010407176745612694819644889796042673945439751487973917031198186680255239547877916054259294057442042199864018505872827162749203010563848387354193144154469464008425732406788362068596422681208486152009095893380285310828519374306124852737292121582149982240324960280405884937284691252618092713771184871060560809417407817498622693311802495912699516844118763735726664004726043533740854155161822121850860436625660218810797549096008877565509587469479429185101764765638820210642016827521551061753007593650904539556725573496240589326535513698313706833249102564047035246570925539799157964905524084179435179962388092926376518337089096907078705962707121111726575688976692684766335439484097505673747490819451841194685091612916339468114340338532777215239602656858208200167158678641038234691192890063831910016940984277421012024059525169901475790943517566078948907617575107512554262599899065471341670473982990368970260051943842315689476345168291705907693493644676761533395269051224023813599017882072247955272168762223712785486710053280280462456982222505893083590604404289050501139863016323929316075314697764414181628238439260660932014578578137955041654054382690629973850721094141462756878480111585195229576548615458572684003723109409283252186627544847327693809552314929092584241989864915097378777525772765240750915529610220671025389874536898205349985543247588230323641998975079385498112407895863977497211643470433102823532376931189442061173989828268413106067088503933123899109489866357771353952994279418603531303393791676837120202822112797915542272402761022204425003215445971695323310201722637667450421773719489080546553090170222682148615636316427805541178885489222016450702972989757768217024924434386017002533284760986522512099395914787406218564180487961477746133530521242175526292828546629183898617569025610334129541622910946735273184239190030184892561229067086755132256744117211379582314078694061767603987285511190930432072058400103371984295293743797931974283237530893169567035412239228352103171972480322101035097548780303042481170446034807336305878584047771022912207926891429229365249868115090742657437700146221589508921679145537886686024572894453683545495121127446968857215801079037324532901889330589090342066379903187015098600622188999648380195300806527463985259261429825267903067176792196113159081727112271522485234099832870831871613644089329735829306363083773228875630983751970994411871704199211098526877177215975381959206308729646536876821574021719908221518528873165471105801670333924133464078746616512541535776760060252002072710965844874308736516397822453418830841732608015787473457143601054071383003864794809509754773737503051030590035520068103364787761689098603076578039188311346985922714637483130927569788662964280870008909815739252136540836059292276659626022002309607019227937228633346190227752164474409284203200536759615416751557602903510134414716279061652242930744694613615309414441025963016431954753267961920469640329387735077763427045609370366196967149318509784104368282446122528295990612445776128214351634914606240352641270064807698183334919230150582237275524248234177651654893177525364400220979743291984170907799993818828564558796859237419577694339084764008138700448853033692922114578664288741004971458792391521204580751026597128057504534517234915068204599604485544415333954857664417193802742796718102798331774725951081865213809537201776649199586295575335647323192580508522467062638953488562091167306420118032003140114393168181366699117368462710171195430866788577803327117058841942670455947979109237026060126366901940014557841857081532940138925808769453189761492325624962746080505547001574786734562595627616881390965467412933908646041486110664451411706470199716501546856776455464454127667819917138117154906567558749908066043550021003945056562095207794480273964387161013655181987846173369922883681603693245895102195962282435043606170252615567710622527072560526153803013514975121873541284809654918094937480897227478480418294856036076543946905664923568081763004321769130827087323990395513976682549812999690634056683950093129237832802031079827310615546694236663624422624258123702635169536251345210616568918612749967834771009887560505735210842786461527697777814781193818455563595123197989672405187499777797562868421047459935363032102595937134155328764552613917090757579917217984835912701137838663513823475020690152346703347437056297292183649560574753030364039594340598036990469046997708963497607270375308701141914360353827892086988485045998241499166580972488808579024496506905741581747230457968297905771886264730916110150819638046340520999061073415791279959096273551153369224397335573973305630127686578135049243057900310904254755902729129621041861731051886271637540702557499750303431399533829068164063297274984939704893143362517125600715170832754964658677479234558662460806298404683342581463558104556415146005212575944207425295153617414400747404000619180098362532972446038993788617836120434508324843854079555603966389541307614821124484699917427680729152309263855008449274133851473470890204724245552258188389077265210804034753934021720616654442574566632682346657992517710740477583525484811455992821530584440390738194571481957112206183312604044957031073439923241451365541522216697842149240673634885277419920746051182826010623573255864000460898428727203302354057156852194385178459038150271120711152116906878261001337416611381965749226577714786135407606281322577428658382725553911964015309704316271839404396577323681581155492645044645660854718824552948517705441912887989717150282639868257923775883262193100312330642125869759564809781167819038580817433645431658070766519239250984292759225757531339443955549950078488705171486071832548612434736048490958865355036744056480022078477917558182414163972332669243246392771175643965234595349684182259283214849654405205254025748130863056959866759281476549771737495240826194087191387614202137544058215235559102745431565189546924168459809789452107426446478891929226910733434077067682376522459268907511349158480975194536721481060658710786012540651114492045954863864677557407596149981555687493431825694185400879410659295767775680566514875633428101688246874633442232205546837835584476500569851008999939680025125699210700029408445039265672697717506419039504558683157007718345120777561990513624724058190992633251508016115655653778041212335878055609061734281538505361500579164441669013594528350684828680762776671581429251222271192889614864746219272859972375083520431372129695805686476523164565031741406012815137960803040603251946051064135590441855833205272981650881293928860395717368209578925662496041141345446023446109727861135040620955187624851261821062242894323021877602457607606472865537914542158047678388348825711283342524027792338999104664927087482160880116309513793917484485576109834871614186303706254989879155528013513405005426804397182197782443227898527543663811313651819273160113628502081095937540203276138120152118223562962336444214030294692382164128145394253289429449018742147173589596206491824584723185734708641696376760479166970821093353614693224386392322942094785373172361814536116587804005603613592377978511661180064721975096623973194151526046112938654364764091556910290622999551316202451027747392575968997574683992674381253859077560886139180907381920711109296674177424324330991276351922270567266645603888685897409890498140048494500056286817744284400613115388892631953075081713199945060513113702433992297225323275348162132291150680093051799402479924303059277869630842882512600035308265621897064099851324011974841278859875823961697601138330196135131168127458751767151718578747194247708065324669106525020358617264101989376572589693634463024763437793943236453400441603823704584968094806078787552736917393308079678647246316971653921550114773097666164974710926756364955176054715463689182500196136923079276232836141909540216265229404918826061054797348631304251452920507295069460550834172094097012157146207684254954182139999661598006167355198910671932429137787267261834905875685082449515246331263194769425163322775820266121215229539601583793353328233679508099059881243216000991053987745710449724077270137073200603154945435055763977633853021045220897107454394351961684437929194459229467795997524850711336078664441151965945929567126499336785625113152623040304837929777935478338233658951248132473310303687963182872384321516730866559519795188261707573027475340820243460773567028715003481110846620852675276763177421050864183165772129936191642834662121618599331239409162036415829372489820092868399497804828034929060874532745403986300193022797586209030043373400963401119162137305188527375809677068496087119402957706445641241678363088643644063449117151821136998276261896613765463606557925232085905495004744646351410252827656839728194333601712814986559919486701333437623271759987831039117953308241001676864659878678871385867369653926153232523661034576453766045158107875938171481087539497314620965456462126684092215152407421829649320039193329153812268346491952483882329403338814366402319348713021213736729110070563494956807962822657241004606929334856321220298294936906959848794600113078359882263444731658690159745533935531521266980759666453810525387653108088594129960293534102675297566053338638893796423248826023985222295245560508239502525075653801345338700105476450523527902002760241088358858766941182457594255203567334232498668241431897174721064704160097253085946139145665636002930848300662711471001505907367076972079869902112081248859786721248087411178574528173288631881002468208482181965071554760353057535266640988041397350587174217163437008912756454242012083226193771310612641299864877950770550211326686889786238252214186300302758108136023247604541503117421379662882943452490697820364134121644102428987706553939726127754916580893405989210730511431010732118642996176941653258304499029970540880162190773066903414689997027186372563801064802598737672550220118205549067477405007558854255821778198432173616097208558244145113248664821950370527034861010883185493457690342742712091815963994470621990766829012445019970831281918296434490649294003617919724458950748670999188324906591311798767296293675546760742086652256993949176524337290330379439679010979376687094139364161853513561331232538711424051246354011052848095881338516513030333389415495173536067158570783194942829585305427659198001895744762682746173068630242527024176766831109515796575288861819940059812866033301068690275264270486135851882020741838599253622536274902017823887319199951512982650275882495691316981798595931266213369597317485143105818171953546490796228198262444572024460181972270299013814634791108213545190011477446503480741204225107696020678656619707828497034477496660241230448861950980562840839235887523704299435203899260772052011463504969321843668350471270293297009989970276893739859376991058080592310922516761009805734655637814806632131580281418651633377408832625560345075826296847906955779574254476401110591067566771997713385320823153155344126900651786173856699480289391036145970167878806687984192504115857985798782033700916724794767039500351692253245401265736537299167851747615749137794592318155590652039507750719388661750527555974184036324453731089160463216082683167464372287950804387861362725362958541198427284756940582246312112060431859514113738591023404686863479594963800873610583543702122957175359523495981377178361420499908071647876642764952858423230026711504516511604064024729002777675503633662738977938763206550416621023908967426216372461635582639006801077096369969979127126769377084895622091308616450019778145410549375647644633712213491992911227944486594581535616585343274253166087580316907244610478327604260463186787280105093360783734261139806405834432127481227491151267458082404186302414644926900029621260967617242024153717870080783419710594202571036685628879624104835219621139732995434842253758696511138730181315864790230434445682011292504510491655455955326289329146118455701803890529195226229356098376435627639912594675469337726214506868012178581284791262112314668103810486361080828507611824570958641060616116321028973321923368948069973495523050782433153207043397307835726384359244266450365288657611866867778519466624621353157972336595740423559659871976380321344059157821323016807564921150969837534135139858165888422447478898374299590360983845470763226001817744897599650976141558162019655219292292779937302175682771416992258981287237054853876720377514966077330496972038068661530613860543818636225700865220091208178524348882677254336750438124318717198888805898997259668864209693801900535835247369493589380582999647312434515318745844681392013384093014812462451294413312929615473015167658001462191419852900347075941819798253675101050567133579952070328159506825487883649244407662882661855353847920538215009574671925759347646483102434092396621118426833006808840177190500660178416179932633616464920067648835442832511888819816144661516655607960715768413481242900223638119736316339847775393562115652140013227777021202350983959228102992453548051418936942682017660655044259025781689407982668326615305955138490671648779972230468100932326317621015185260152641145287788168705506576052753575502630015844779039864868080703557558386363750908714398321841712453979627593206672754295866253314464500092350471083528468295481083813602020410540140171582142031214260719917761968401797917197228683697896921168537689932752415715956916339280686849453079568902392730045878713667477214533366999518688758046190345644426435435090597028531820506179423644443216323248932314127100023914257860924243727668466071331539375624889999165626556426508455713293111435988712322941040417315281205767578896779806327475716563164738777106284408379728135204148685174309190487016833654470786351357529558320835531626076728371418235335058014526612053798177496208189338932993169606861406770975601169480271939187298649846743183471568305738330803890909665613873253849907183626726539490368597009142014301785650980150713742303204241955048401918571392424952188841061686397819450027753800307287187685958572961943717468230167655951414685599819907802370500877644182742191665231011407415475995435998177795308508743450403666987794339902600009084473445021757101990675191666841668588129455096794110239935955746344001986168851929377999332288567743858232767672454480225299229515067650038853952126431735089405965923436683745964940238988267688507760966888552467260303853007295562186120613381306780735720194526243035442599927649097511367545395567334679386262881636632038303977532277905791028514032271814627563475861985460170009407314607812153526287851348027382143235943625821755106053592427648137511556484275045058715982891717894514397415534984652395029732199223287508466800167716785332378256277159456259077992987548309353455407711075532131327063045760268900515456223132477109105304946947512209828078786503499551689670852502303653389490557258716613565537665767526727792980841763271723506171985653916177161583853121612634342266776303269151745714507730129156772117832933517586986254891982933267378773323510684738378540920455728873480765556236028709604248423466713298376899776301614996197292068538519166148048519840142263023544056956951584276546602023177572422819265653241175855958997895384479242021604907235162939808282894247624405373763076269978993586374042552307876368096182497962963433379529743161493533773831883141449745870684594951323543854132999971019699728693939595649323525579357589251186665018617702431940602920241273308668969574594917619224907118786087439352547865798684902735391001519862746743421812337529262775312667991306154615891030543842575110361392724275524642334466168728423896854889928360761098622596568515487890227005899968876731019608218723252148921561408123605335139384404651750316015911189738887625008573186485338654767299579682062451434206355685950282905905809472831502389779323482445349962773617264555728327368169284590189801364586382731533684599674864688113865848396023413841337733908005257110637133819672947971494045068581489021822460430442145820522239945163762531370808216692949838505397942963341351859485024404121404936820810063693007186642851121824892035975515303164066544034124213723776677665646865374967868627288387742255419649853952390877163768737655106362973950511934909877409352784553312611437990386469776963183341708337963932032821768382946495479511554911374120235419363683943593769463480360170962548754596929553203532007339385374404157235594543027286951957798534708899106860233057586839851790457438273132164855573019448047494327578216006027145209735684767550031016300592754545767896738704984249937749304540778612760588350134244206286696777630046001563593001081360726501065773689583444496824992247817596938246669625270091371591422984921936721057641661139725469493556972196438880142130972143265464608555990662498102403212095014745891819364109116531222703834340195880799887906800171090578035524008146871475872081687541944032784855946447916855493978081404749932262673856050510090605042134634912878739606964954805481644210438581147076870752600469393870990198482570750132770921577269225329659801445852581402251891963464517845566152000182978590376098189851110543668944131824111457039940200258965065972948674638537374863103489281616830819572199911648773507189225828663709343702517481378065749111432165428505940796263121948932750938519013531235767851270050664747239592042317493338966732627997990538251850418462846635930358401927661603982767534272964833677906830432671548676894462758575216483331982098153112174766701697022607897825414333997756484988769282959473381232884505776682157368590901002305608404615412688102211726365143665289692152676368388902911282333505417635213560958990452436750437825273919414332983061035009279086407973592165928132600263786595453161007133283670784096381570534385453661687063122162559733814100743572909152268914991585764965710887035085177723925579673176933469910741080658536700606420987447796618402493910546752553419671365918954853634890237733439548648582984854115094950160222124879656626075416132544759164892538832594710822251689622395520909201053457134655231982150274550108447694608603436805971705881803130761603779566138843715082590366374961775529331566078669681720230140235681479846780222819965025829932593972509812859321617676291474827547242765729424684925053714256639757721752585793240645703875401675192635240928306434314383452533783848398882741333632055925744655168203342806750251616527586772188518081515236110608660577985823528572368124466377419392534657724995640985063075433301776295898900188811817491308132218420308391731642216688380554026037518040379897921144458933512463207411399921352544337110408910149822455552956248649913508773062595023976987587623153260897598150768853774839950897429865619275083666151242860686578357313831509277023238238424715583748887786113474542628839854877276369681803318619148609019418209037678305316061723383540991147497801409365168780973932158887267675234463154341072824475615378304277271212057530710199893641453340751333409128593467519606703486391998805241830812842184358717037945600149627383454699808786447737197980436019691707599248756123121940673769216291903979588200777775095730120813529858300759935526647538246481485973724649044301709258415871269928071339861891170604939135018682982040735324893981818850879691193422288892452591708286557462600914488853424303356904916012324019088056681472333606103287514913424987394005868478142001985149149381666428277819947671775751366583230334092003921783010656536776575795268239329514089773393363201212446408181701536346391688635873066347992611054772822849742723655730662115669865218638711698518471822163502484625556434878363597332269072400602431663455053257338983889311391143406030104127004036232410865693801264214720773731862884151272108847029989725534315899521086793457882469776296571183075744000232276384621503878162669196160189371562309158860887747147987982243207965012084495008356633048637127599955135844967008355664651073715117486464068631234032095720559837989769316701778769686656876454804375405922228046215309172048830223058640934259974968444622852014381826979757116044882612100882024094327155370906739055595229618257949285657372235501947232265123327211342236944756066396986856474631057919684460167240269272154926435735030385539664993902552676104290923417641149653202040531098530519126919444095232744669572631569478181006998405130113254678778436597315735708645880910372880410371142954886946665774569199610822284236785675372555500650793513504280719985776001745705868037528208998471303884817073885093038066904373376878324348812228567939800602401946419273677509032113589281237956539249481237571868533261737799833244245729139599652183689058246695764692294213507466836893891549755384123729782848487986584804054292738811359210363544707446417903644771827666093164309602692881543306437820857869398115280217025211901233906467733509309946573740591534427026804831362805653687026047307685437594628510544542378912320792525035403702343020797027339950172343704316550792596466770733767292605055892022697600532249909931842199090858764948273916791675971141595682349011188460904183921685971940684057368657627159776101846044478507120440553110691234001590173704960575690802323296619951057355444658806998659090820250518716079259699368287122925383264836477865058335148138872747799407841086909649605123138156617388798267603246224773621812138993170336112156232352401127493744910295409320300101738862639921405365417457957666529033331042019999843301874711724654266899220595712030291706880344919648003423495144926505597548332773134590543613176690725588290714111220533041676360050953266869043200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +sword : 0 0 + send result : 2632299091323566151916327925899499003232730220433517912668068860507254182527603756199441007229247385168533994574345341952637524641769737664692153343214723337123774829821014238138932913404618245548023554147730936891443107469872944225263666081963816894232781356002628926587759464504288804365768854825953863128290424174581883856696550749281835227278290716029580934463551974961595214248162781717536846787114801184642160556960281694388261240037567662856332473595626759748902801166508527493471424791947190998757159831327269357983874073404215680035911542811481841151679826624722500490029149131596333294062056820541164551128060645249975416018723378648437248663195208331619906964642984977485517880307643513415142348923081050909560549406006603578692747437076979295887857720015825790157334613849986270384924857529237898671620882352940729490044831841323692068665276729047290575270236515514145199010316010560598377036141811989013129549029957645435628044976254720469480760785328914269602217943441916946678224885372458386188874214171836901451290278019663539174614742573178025676826625022769168409296566320581614340670173254921967577631877050707308774872952108395119930417970031467237326219796624038938246345239238455647860800484380113801181857093368540826219911124721309335668511369641511390430983694001572645200156041680843224791226603058582283666542574029268079737742426542985597025776628130656875227672685701144491651520066576294478552913278570372568211296487592980499463944211514982711281015781187382565694260004010433124555450914543065161941503282802453373604595720547851871398588497696996810605952336902229283057363091728782401157567489432932173802811194445571148889947247877479475005974452794047185715567308148754248204704000938528657848393323636495906550796251140777371023923440256761200441059813426734846917869739461308635281284032380433396249121110478343109377110415616650110053119812937429861821581452299857525307043084605606832471743435064424920030600924506239469826983201684978542496019813238909908915129834753383292488154633269790386449496809660525227818652653094078868470906400074107761183420174732436334448265449305778381855345289230257103347803046254682183605088411528303914676232826303795725929000418276113462238173403837472172641568659147517687594383749532558691212017225343043981758226175005119136449272557570310872387976819716574640043048810969969844047912284597682486780075983289866807951998504448819057903831871513316410373305915462202975350874423949831377967907024227656708366775529856329214290810414417578668796379763113908911539717942190889758952978413289999344369593926146887370245602175492078949631311871586793767482910166788347258397127273192951320238612271285576110898787782764651970170972246021609028809901164432957735155814896366541397606572574803083448631420847161626765040382809450893312223166167847527185397762878321407979284162642381862845439580338199734663377439881203259722068097152609289569592554328033226164306831364620843566187524917733882894203139643755537120552606779647440918669445828073047017158020893685466057049480288470364889709354450986169135909790937569890436607001372235962115600099749113178653619427486443898681825574972455917776471677292410657475846990688821160690942237151239755324799259851587372047339282031436573995261068283778615438459584389868733718941313596014341931400555852897075911674148025985632164724489838577897328440748345573766490980497105072627531699882990965200638910736416523136437873298898104031680916288196374691044554244438518443166066983024924563256479480340411744009625310081261644886225901726101692357350632447549961294050105279724455632601364668347896976658919672157946452638892902557793435466399128120906886640087681546901687158302753550490225080474444355730497100838692990199850737195673591504420234884914359435864576505409429619578071012952460107138726266411405356860693409989589477833570862572034912260047868766865247620590880670955525655700663942275307702767929070043797670248113705921628684568479554720614216580902303138700814781999749057833390458563625637848717367698495409802535771271321763940611364305253827258253932629306503067598498126818809850411803061213358890379560230223940119017277487941251582336224215349208007543167373992947236293418787391872201122251978227884680393384300176065482095866897842759277325353601975074239273192046303052258149602422594335823109093571913527342163931719564233511571261748441001147399423130570153145258354517098289508357788758403838830038336642759784187296415378160748216827305478806623566477606903605586749546773121448701368085233826883371957762631984391334907676920973159193893138546343568495361163833557508602190121044740409133465083566309375149527205292285935978114461020608981334089507380032148018040271605096965620126809704180167044183471289526664789704660688285166146373877737635212343204768754694020184941178950658670004450555999161039058211015061975687657470589748696465978375578171434209142536374143806180074661506616710039406749435394019766705571575477362056361588727638731626032203896364729616330448150920670839827342946726628220292118747942298776692142441647885237759705330268490127822615191463867075057364339229506639915504799767063824716332768583805425803235033828735209931083829868585561853971853562741438088422415832473899879251929079777241277506986527932328015659024029541537071136524801155216041891988775810732159004217663277413132130824550666601804778108822613787484957626950731789228827802378264507692126537008000149860411097391574372451596668222661256596854549990022883203357969049657234861448117508401463490826148794401472654195842949569903127537362083445609374643102100534958538204193385974110013416028545876884456283470280400846334544018769987512853457902694507937968520028670901754614401585419844333537757883157532701807906956060035024093370664355154708348429294679893731860965980752187978811280750677959494082261791815463936541499824942783128971026250170701828191548363933558895680399810757847719043415693792227341052086579783176794614807332763558659669234815919317533502797278762686777358626932502934375715365565161039965984796268806157679556011880301718866170370113766359714702207827746295258312888710986577598195288171977174406438937340088684942858447012414729096352904220221534548450644636558163672511365325740306218414441868498451395201263587921895693440841816100915079056945680076169993461719384911407295514244590795190094965570290452837259699631360498169951565972096403406870473376848412993724716811841446898350514907618928594477508186721480450953931026099622745988316606801543702088648361504115927308397528337490138682124931662124364278033619521051875776454686553681757619271647602012851253594572021646494539533549030517488591626581611651331939191606244756611071116650749735961534571811416452754550494631050459219444625034026863529843078009745670833475217968294639823432226418101437022333135260306324316105459920786325433369695324177295459512856720115633902589669812594026532614362555649093255544617389302639978722533517869322510345331929557809597250791016521458347678466832166773527961388171773902276137503918548840140293068986560374099063743291823011945221478768747388550708634965936137223268674667671944810182128730755328665438613004731271989987260002292407787108321877513108450545543188342756637316783951106783721748307355626825391974002851079302850533274778784950620365484250119736789694945476410240195087155006095645816599825607191929414153354210595437895774151658854844604243078201970416097814973163566675236452340983345998673368468382003405750291814292214429321691448192566232556234885485419933234194083401421432301546739261884069580497097478818480229732437075032836789881689381952302892733805690468123867516834254673741691979878013656507683771659307539198655198360162681160921200149430697050846010283345501961852402317789599021688148700307383106354755219044123467703899345744584326908307474213537579193229092928610736155684559797699709374612978633059078779172712601562608286765462228766717351121050700424800842832243053015598397749142785891080058133668685196566132864755413521903304711719393444656821888304522327377782000274373398352736874414512966288832209860569261080122534304008132571057444674224189283545374966733791239484224987807964557589458560545067273440861333217087175202849022619088658215031571198100659437922407394682963095000712636511574492714851317771168161284064457816563462102053849091819921803971300344455198686156268793298055722483562020024774178816063789525075148100570528206328970120793389298661792995237591121167323806168226808544761797535924121404792275524381589135851338333585923267949090947118458230490996787299506227319478078668192568819110349089283896813388967820570011598453134234962546719404265018486572340815425387661064847981152711268271639741008628237028200199705102218205458410082986994024639976899205426291333977886937618296061415918857420295620172279812294410218758255818972717202408008913575821120785229193970641673565458980274690599919903942634945675441262861396592503563424962202678208822709529875217638600837027310155255906559541594395289814838743904798977012617111468836957962515339285574369186256527523604075853115031021279544743464683421977247304794511319996156870585668267673352607651321423672566337295839037269204090065555242264365377292094742641688821334573337830676344735098816106571589685559234334838807963518309413063161051205138220612334175500111738024195349653838284367260249203950517997745810533584878336933765001220759584885997674469165560120675058397877533417643878187020012582248650862965412233121459558468149114270937659650343293822184066419560107383187877383719154090692486779019730363609873896410562891489086708499576163594250639027657548041050226811853130157725037001771081301423564654021266821507798694195198773576842252178351960620178057365140097806348767464676703919536652370866764592843867200556928929866210730249434250763241262660131256469640771170981437611213585143826305950074550761618641730424391613273392399645871749364994365619899393107058886452802811001323333805480420463222623658914100487800246698806719418442909563753257260605170511826373867609408768884238308794095773522962118925630220410648570601521784940756950448869555124303691975053655879398147107143013327397546212949661408448588897477367094101107372488688534623430176665046535317227453446511535985951099982863345642000158551446908402022385820558399741745800669018765121925146608191007490862023829729993313912989320581060572129920706245383470886762214458606887312935091020178862506981729217923640067268155617568199932112034669254786491333699425332753015663293497944569187224782444820479606668051837568208235672737888803399238514168834485991281299976095070278468508738170781860758735092767754974442798204596516314708263742828694274840958206710378144339490681118404123680515549365766655061606608982584657877141091196425350209217622154861284710160192342097854540353167147835656850986553120065241082859532428247844888784305430248035968261248404021942537845179598714055182977778491663235529244327459777914539018003644220610029466171813562737309503778795237876562005595957562101984772594042343008831604153858772775244618899190997365357907596626469753993400360167521096122782237396036908759434909762306205041642673549959250009795493470188345020821182965839262391880667725553977581522869615253287794675999943004856043200748585023201260527819897345903158088384663438715368992611435793533612297767556900788459984300571718496517065866310999208766104449795951245637616758904784315195046054138468264816814235639434948993256087313223489738343414969146613735819896868246040258048358454018934631808815899277700815869555218206475954946954292168737551531245895826895746959559195107517826250778472912066636907336027716197236047642034280237186836209026191484026486386150812806392027460742577392494470373994293735533380402548522916661879725897138027855826777734530536654198945058790035248035366325599299220686053666285924384831118067272026189008636234479816949319882009134401143722576773891241224440093633861505784007211794920340930076583876787491036039960176767838166895127534178439881325922879790661531280550400384791009366964232272621429985205879379597623911385591574272444671681697664522911658363964975201322735989509224174622670418359870624791003424953394206401733343502534488537831928394241872834353686016678255438627451260684048539448336132896976759088544599620169799000908437121126543199522435703621620707061560586457792122322595027309508892094102769588075745887298176615058993165406106175416160201013995969690431523523145502268478727431004946784811828394853635874363222815646937180058256388465251337108878201296829471595497089420890218410849343206808856022696023336310419479764200733156398090751898946274398051998301928659591055541874580406014992386965178518677387913667608367133694943397522571870472300095781732169750906995418650351632498040422045552170107642399968675288005439517461708542122784691560927942135110132662073852295456997211872356545916564180317230852494094022513798356096738420693178148945736250963544413986906751290401658757518479516045193840629459693799956526815780490309583077752428583955808000308202079332524175663628200016402997286564518488798669758421440804035753914320812876482067029408400370642543896392711209291962424585262200989523210043600175796453384996760490691329873309499190796069152691478201388211132581147261792943412280270302322448260387521957824074611146302261915931237822708137412778431483728427970683140389297204661795048643148029925965324655326001657623722965294453792463484316232043487344004424804418086007659098247359165381955459445378445751155596528918255477320869963716541476388208701302563674027311565061716917289186433000673940523637537018630942685111628508394109340745652191986120153547107833283101531130149016956229286914054358634473462533553263994696038079247536973191528351939850833071232211510591936770915416666693126644607512164894240781157307322388097466114544031135125763739368857612035565765350980917198382588474676779019290147031488657440893817656817849430503499027585602186160158022487637309428432706684785255657621879373272773142096729194216625120039267401366673935531073125945783204676487079470332977230241700410994892744340228387074652455848552263543763662254753642850742209350779974915013613137993899404330575662123409270279936012325255036965385654955173183659972110835617272041121171739077766406878468693083103727377418729077171566679556473325673065880846469490615896709171002390346541581489687236097472863742090334513815505267425708493487648541071463294604047749180153269560069210550472037940410879182950166518720148218947944840513087713307120846128061841040084449713340148831715123031956635318965963496036450628722554621090743323069437664528925610078899750723074081716179265647051750962914284861638390683783701765449252702751419264335735117646057049279791818528601594873207636526696350724241408193493660436162287197883591914149703868926235491748472048142703614924547160779138074254315178630032485791583440690215873457437677378761071972378760536841266187495860897334346894976813295429477526443344908127591076140908730215458722344730443633335981418215825755137646395500496835284974421286854866315693829168734822658401630752718472657096891160130575748069224674400673806857568434773702593671984334596562518828008381293938439623155930281001324747322592697898230188372339924483230161048973691064869848613528860261070344240293607762317198325938203019316140891606260483325608543651668127042294810326373049556729408113280080842185920080923239925238468850672233392557065118685581562127119967941677506633659592775338189413226120217857604710797222572816183657327680405320137401689675736255130675516499100159455214647838423599423124319676567818039564392510419567963259786448272088414640160416483987860339649687105682015239647870287046207552168483169164135548086954713851616812911749727432205333328885053323647837884515326610542122964006171831361972901216117622121744417156308300544790525446120997715376596183523960688925966057607860413102691512758560901088411453473308958457260500959975761838448083306488566329968464946419222918931774101282361491050898991346865115140708745570386839164981165723995315352055707988781657299719639049288978527833686429458397663530170016736236153192495659851395196645806547911376630787419670285634710676489517758257795364948257462138757087982163682657833524108057512825755702760673263627780877244425738515809527209159612669544867923328580172460364926147406560115125284261669310198413154980295795531281813918757359337873194440834477401967725693821339543385601857924932460569834273779570392525535068000548678909261952312451710750716098127666974250263973028138789716311132882505853597946304858327635795035351218617777173876627765055485890968692686146072428449729552121052279520747509447663299245690343226590602752542117083401893761857963006640761765553180368962966648861572358276962995472850446441067764706999123250308709079766238567692069569131770236646080118489743067924770263741634026942715144511854835391157259701154417717828184892236890750158338376225496756548840354196137818190055692885605520945365687876263163470674048835442659952752649527052478716018649787895390836285392104732696289031303074524509837372971133405972175765519063675757637360245943851916931474041952268789968918718635907331158645683102500367079011245219968930577225924219747626693796896854694868862125510269018033923457746066651967879446578304936854079986988728944933280084952170105482154822571893657195831029919567625752617857926531492334278269591404241109794649850600177978836574699656000730332421487839372901997302715052025123744893769453761384318223112523004250107551471921022808257343068564710849511723543837451193605311733278701949488145087715144439355813202251966946101664936293455966424411657837282384504487302310357184172746397370150310488010630445025412163100637528851166366132045868786265922016740423597599418930138171151546800633732282917731562306858238195173144702397935186211502580102911236758779251875387929549089374620748727161224924556159362169838441027974588865103319901581533036187015988210200572577148363086118663484363198998141262107342126914852597525342728535446413550695297403750182009463943099029603421361597573220639122121701043266687243588450878564384764628357330895883367352385511881852104487949431852700126932332027898127722584400840468963495497302426714129513216543833828007315770647003403328972653657323702925641556490698485071457525889416668141295970805170822932174655627452834464606771026963999565486655739037940732043885728773082778913320507818741018855265041317754630226159897987842577853298380753567591796815726560188008812450465989994770054326354746312492193128588345681895582477511262878779781291498449409289376656624824913100590088054367483539261716993442303085767928402438481607417718336492488246500796687810159239790669759711639616304330577514236024782024067105018134833763551701389092423055118267420527602731725217912948287682845731295799165731227120685622943860734064521632311169242115803273852140137798218059933570928796141226824908781287821323577148826870168378582984907968282740674998804009234209942059787890562497430591170994581368738688483672837121890829487044770797860171948463571107266459855120201041431196178042157139627729620004988022163429137180163054999822450943882775522847838336109357823226892953073740222749077217713492139775024008728337974015045138158869506994795573183653783259869926080201853328455708286569031310523066096675860605637232531052434402815624630808982382788076113214248020068632049141103292851275423023403235983898646301308620073707337249806379405476592963876714032212750391148745584217187377627364807708723412929789820384248206566361195061561203732841034730095919271089399170946894696410918764450921735552402321947948369483464733084078003356991981228963882261363549330351092349782503980195213228944990440725261940713955536545195053632568312510771747560513931973201412034020070405657059466614619597286889631657471965408736402188831664089329754611575348207574345272934988370735195864030031511418184344757363991849182616184307617989358176571871082787121699380275901187248331901350075579917943701659139769328380552389007699591916806792878863024533026657389934155536171048003313849645478291928480057307698761658157940099192961444277358757581762150230435990841084949833875178220132461132527838614287794258884220935015376746654657745376753675441871540425841834317105305723038919082626737678349549242267370476342486016267408001219523334845676640212411848746820070893298723000115126434488232814541124097743622599880503543565102387276807268840810724386014829069344357050469758302509425952770516678731240716780031200417336915407738178686988410305528961037527605323343787359419478189776572434769226275245423062305394673891620288326676768501454717989634166861733820995218337188395020515388770961572564577265160897815974798523242321716967436970482283844536270555168784336662344281348965397458962289330280528158791040248277918558681620391063508389274661238638691727490105652979674046268260499813469365999870009633607666867483841495151330887541003239824914822182684775571643423775462170692144174460908293292032520524086905847565898353240913937405356340110767736827917045583680835115777207520077212219077096579700424802152771253455999244286239833096790576431696555898258277385750126435796479107686138000900847215649331687121733122429544274271262422590971299189161543473254605168828068936070383036492665053971093932469929253837388872771881134947139980885307671732212331689055034563418301206775780142225400714102999382615031435308773454534793518522182343201778079457823889450685212778369336845895289001640132490140932485961586019003748183809775868881356932683814940545819546110734281950196034139724114677471024746301813151709847921373613637621491879632175443525283319291461415591673138379709996747570717328370882867729078747118435423879290382102414814868767666999282054173107876481806284197977522386933720624950823103349541692897174394918604936922353602047849048308085110371823226042977482782936884308332242133755846437552146742944203314314114506584948904678939332079635454202236645845542792526196339738594697884589856871959955017811188102065988499813138770677230845903370387272604383055512285108140730773639248820681973292568945091276491093868432630683282131855914561278466249235761455337545078286203894503645564437201608741434330221049143925858588596703525259025320663918992773791562204497642656463056358696115487400742098900779635735124447872297033285660542805205857440778182809887641652164195756093139823595699282809035858303379601080895915871522207394057836548500953286886547725984005624197526500946382843202581664188793460681468547357423595221456415979036424052340820632450215701096932229336257914432465288804807783473936035519212271978701522356356815611660834813624236499457720823115878786106377293799246196884480074230093545221848759207736434499480239978948593820463649033022882070968809263369564916978880233011567109263195751268598713018429563269636561654617813125456952351386872391303062356018004761907453197055094627659758336101243632210714618865702604996724658038400423888825125820541802258976352739706966832568490588951620332190241560679670566249037548116772702234673567615938590685181383339733333525206473226254264542499120783267077733635026428145207858153273817721638409632364512651433303551595108747535179898697436583319674357738334406993463180056560316730275199318497842525720024594172425834737039240162146051430475189412644102741733801069442664641734218485325921375296633846304702894720615931633582715457850261334002484247752077790694066641501488038364924695460259553869586519055113931440311893745442964033123024215518034561848493253246318143724032414151380728733958768607886839317211847372006194716633166423284745360067507935332746874581045104899419559659751346958130930353072491099866386679059599898986425009695417166840800576845908743689439496325556638691329525318512398765796720035866926620450804912405197182861174103545807279019501360819069869533893245421986357365410367527756359821704398673075255349804179463291973447344630870431134555184469000276148028795382244850003683481678416907220411667000803904312319509593856925516918717167689651927276783615576212086906942282804584298272977768811717249170710908862222163390084607068722013365610051782238668384989545349753662502732182853990437023089928860024762280977382441969861352201437291580941312941305488785106326539969042678582589520744197958284870408767079994060943138167416436079693740388208711673724539010527467467408922440651676757057050418496526980140418581682030335099819028308903137847815529988308975753799740106243662319955766278288907288100582643641410094655598361412477678068980162033456594718921286282934299680939177620580551765671718844339758707193005798952079181947232039679627430247516108449699094734850329129294101895927644447033137894634597839446644329231458955606273144901079579792677234469981670924020286579152829672971218771341302831326780828188814425446918500657746611786570477459698119012473762326800640687165321449148806550189107779694076880692587034312098070754344226738249890781193127159069148031123964835190292647854346903456327307321325435866714585386452417342114704420098561325614188553365722601134085096318994331524439094926758118102013152996787793336766932394959636261678557469257470495471015322367415054499909935534193535925074683086810635135082524065459818007492085881378197731544055390447065363435998098442525024289178106071238033243302904591306141390256571655851567642334218908165331061704695468003400297055605488487955510979464333281859760458131381990765889646074884251374289036663404982834735367336690273213582587057812047671025261158734321360267057899916727920178191272949410813261498010578177241520735382939753707619107300154608923548734822186853764019816318109992600517058823963799291383577477490353427962550785025069908215602113026780868983753997469932334654443853218751003490209733596640320595955795688807589187048678453737127939785804888037417357086613262361716951743616970164428803066433950927099592283672877023038898919891104034801537915061595685179339367646531180205732849946305014082269219607218561898408670918713988680425344927546964318689343904656687446107442354212093806959243234705929327277875633729001548609208608405591349373695670720139350992128610310767594740037393162922810934046659807279890467560283250911399726446180635465166966714863127240145601537368839094119114960867718024281430480804978702960639707752656657287522595054637923337798164950069728360420860246266350214180915151677337288141729174828012983093096670022258674416577636411718551216079120055466895699928488561575407155644975943181021479670198761487179227780001857655637886304285280345195857425150151256061068147154857745969946989687643717547219605835712176960454604193744603161019340744839536436253649993054440447160704907089006201161123657253842812399705845238482373566108827012349577459092675921868396720507929372899130829248207875375400743991148715188658646578284520573229394958588476435310554941580802390223183081743261266246860113074045461882812816832515779524862223012922426515078563964720221345268559152981606712788169369738503370292955308592162721558140073997874707588696242763181526165390271914695191454942906828944251640672743213675794387921777503572558930060336455823740187129746607752573113030928168936229165651303499375438260806179152840810176414937901601149011321131718038980246130729163329501011965998810577653478887567409883446710978872680765739322668819986080627700141796710461622479739071123882826238680445519090935491171931787849224909587275479691379206125162521287751485388428085825002193941637821962325694546927737616226838794285827816141422669071924553224069505928836762022425378543261756665686765242265183731777195441490866314394147655325898483785122682241270924896487298201255668617878276791267053610332079891082264960232573583409583192629101922399459205145584884009214427567165888477896168992225501303390390226672067116368348225937840872396243136704885093469781035428142421276636547122847009994454426727102126912706769971259426990218559969370037402098653058086550838835468971520312100458936285588337850413417101226764305575821309761116007320952292869756922784499359663219357612601500729230380460871056670666798523118739557579451753925018229553596117626238698240973099223410088048243253171815837885696362500698799366306602736717000542671262834047662919449914749724361998028033435780679650088827158543963122015529573624859010329832301302042044838117289069081276406177396354108324409784792083842844746545903896730889729822546896375157226434913164345494372709732347527494620344700639550077045285273982710043681905517149697835462157584705337773078144227392345588970641048641780235855738231747046725829664521110563254346412041662602789893604853411849326981811308019655466342789727164513084905415199652992211608085093770148210413429397246906199465753960981227558939731766312295771318630016571204453915675617207968601547591595189614012188077371847642408849831034110562027447639658028347170589762963719495483388702541484814593261115131462836619711665709437099017624916864322611610093332098332247641503523681785476197988315740815242871656247782900502974690581535663290958917364282609197128035265840858212302401941255483603475244201914794416419746186967900928127033573711232283636496247984457285890865656869518141245933209629657935390091956859861284719755530977971183644405382066603781656517923503241675329399492700630955086158697586438528831486695274453237225686822461893331728023104954143434907823934089015566127865853483132955429705593468937153047840026927563982801519024121421344404709780066475428940281159590793853567280517386382439761503232027997919194651097270005418948376965218293553260666559641968329469567245979681550050272595706169230188153505405032368373668123758578417833058648807234704693439083461337983961259603567205132482964246059209872107709283824749866110654763886212269550544290094699170123131771593208110351563073411604028578808019105973972328354810318195830744392659500413462507189520819552617747830416591044429717401092844222190069863600788904363078218906294832746147983621750865634905292743508489851625068824952321600463912625159031962117787390982306662864355903976612912907888211208615175507434490323637323932700077224513808298552384977263114261294387072274259381126830747380328287956604400436422999377149926537987920415058167435342386208782045465598160480427369937506551224819424067230191050522734502430249219981932376468910420568170693418622439218630625698261630809904325115548082322672538447187033048382312916208815611258209876497020817342213999285402046411166736612165055853200328766298237589388886656163420837232117989273685216311263332430967267189206908101379849057756857863202111811797376519374178928979918128810225652890695125154293448580351658952857550324992928653463804079362121593443355738541113630179794218360787409457091002877845573376914794321725248497446037430620401989804761022611478582762438096057596505703971432603979932123492888319469241045051017756522953645918743585967979892199250359150314194068069000268001865034204549252220316467815026949289326981306352558358470368730078273266121847335995612320852510092125744483859281878933599952770219013417023679719591913951843594984771840097769325703182053956810009558548851257281843658872264198594566395289508680488388252379178515885709208446672623988116959926338560010146552137580784561941671907598433975769260242509899932757962565778441655838921722537429308957187262777788309388435807712104707067548177665927357019955634567209787160616917640747789385036641007730726868450902807771745333076723114126024551118290333574909088991249231563229053536120173501203830428792469428253146829802763203106258450046048407435039360684550858054105145514772258464238124023675472506403363126665995011508943328885793460904775287999971674817013899723987817507650547326120341700171905413926159488639403215879743097974647705782260288066388724370055373106165200857553765606248706797815369738354294932581221099913372446356032695140218363666866750982150713686465968979678798577566533680210880332803935675820634543237256225992314031576044568063481224081567440620658936045382825369213471338989770532940227154877894636171048689515662428982050542391689145659964442432425645454855791581157426506307820411198392083461951280175574917362316377028049847775580004713392823328486354863849898139324672179442118765217810970802886155152966751692622462629127005341568696204314277041481212620653560534047172043601581718391815970353891950755418668914077656923747980092843637386078552145469918796164401207754109142590013988188261672356626329693132041767083335694637001275378101707874719125381409800208869993554332164589879197828854359400605798314001176348103182994475963555375360248004092759808285145843480069041178417201797058419067967571064455619349031243660360485872225421243402229348236591563019622913010290020531099955837027327587250258293293936885145469911218498801871280525681389478656910204556491805171762260209756732617633296140238192695021874284704844903419441738035628200501879868834522607842674074542946335217842819865675079145669153033261752822174440430864198755744453478902300456074643433725631603539910532430815805744867952840755904774633142320640057705138757714899655289288252474215156081261564100108379623585292965417784494095694556395628387945077267815785158877700655408795828387727850548990873569887873601161617288047221439384106592986887613405285671436484663318014985192410379452460239752925154580426053034166779850299722249381029988377069296407726424061483604320510185754653035858876267527862814505460516845434221151814381400866321880109028724858861920476186181095713017438717602556915820822550380587919075993875672377779680370325981806214402792342971301775257729294421768803083415682056405031316663446397736485543411859851209613701188811737236567727872182985547484527683962293968051911274118539459158139776968020939971682498948135085144349736848683402342824918850525129696055568776771395860042938511620059420240988505894886469121140478864833462693306562554152723836844379126430462423350642200488358467437378590178077682254960638810010855131443336032922863171131749207023325262877340450539825468256828624925457560555451701756717358135365587361824052876070141326751919321740407424007037729909306864130870012247414777928366884862677803872758183638407543583156427475519666823932258491596712768664425906382615537151975953877079069005283901471343424114332910667966495900278055871322491021971426426100906474197422581443310644842646362537175415923228299429105759743471138119432864258922652329030110047361000518690593283966267673065151342658275311713551411854855838240047542203981651045519407933059325791362178973854016327791536228022104202280089831921590457732835934001347447242521950794973370447101575525416275846187053415673733630885657581020873375959928152228394465215857846878672642054635085899824956755840938170480233141673238210469780100455734705919237282615262909867935694160692143088541492559604375093744406151253361816117849312992513486955112266048818153154719769408752996255397477851347220238194594312166746669333859864060978546530676462152183985700254220342166283113277273691661458163145627456394303740055908127959530921076792065897351552302480850672494611922711291400353736671505576073965366905807584352191802748583233062812284657162531850825223783908206878058769115576292811898854237136907009423194881656962792338858676535622965528122242170338312373077453829525080021135370703295811555822622205295196272859893019149489824335632875157019444078894655726927119267050286348365133681916966411956060750896432171811093433830292530896162504405309139481771294997537649168924163570036440614296407359213258638077589668186094946585354752205193548022226225598327459085878714572601095271367937882831801443504514349013752597540298257830541381346059336654612297253566817442101707469566541711540206211938156129040119533574210773704640890249447154571967069428656676263398115034165863778325464865868134310652110280759263206592572026101129389822551928060722956491357562375301952835833551725505743270492977971899497355211148511168732113395365263265874663904272230962029461742788101600570375730152805235399042338382565366750079682043470761578004620122849167628343797101260295084477678592183599815807307693705589571547301159911554280935594471074297002449754049537495375316495417398714390753479427718165382447848543441116750560947300468440378759092988572376563443878975479878440060615241196128571020772981355818168705641066979952267028381273194579894578412819656153398140527589355327472681037775440946012959638598983075907493096188351079527261111511258304178613969443247032022353067309747163533724505997529152412539658828480566325068279515503706743464133768787646338138524718253542513350208253986683209657013738344716319658799175475749980617742415517458783146439513724322138766191736306097135340916202685652030515096766796815543216321282812620998278382934719653032611417302634452021423651786920054945715482628723452548522560794409874995554631542846291698552374372950298610668699243428534705077910834610945923014461836000704042882214835475906263015792666338839783982434038548003681104356054041930093096548498828256040271375769130096275645016124802726440259940781267623510728311799648653685420266262458654104456284403824714955813912237003937976667950290901542794660365655608063237566176920303180673932107173709773392365743407473224189805658322545289229127699218715913985601180015310285843468757808499437479104456778328374881566853106685958797147056733425761890162352011225354277853867199074992330896295250390230197818847630161196505968075964538265892433599550023170406857750882716579109880927920262953257507085469778010833642128382377193130759887740161078824694897281302727642509580297317295542946120454126746690539224616365623087196152010573099513289111546039477787447976478126857604231663151468437536842007208989474788318498599812191984119477298756081340489716043228441846836081075126674141190185674689991900919125727318838877056977023669680676296792089839957966589998799352281839921146982399591575495125398037004019903388261473248242334895484889117813931279052246742023975152237735183036886778386037596861610814037876135666055294670639936878506967709412880487319369125964191772960538016512476469973285480846514614680351893547743622904648342914661424900299368457117301157879770333527757549718409381855695148840447563331941187948641378288550505127921895849755013827183407302408485911149981229064520528213892899303208555987776611635559080148816228883618557656998525386094165005753203794688238033575244194674811311284844890688503164514425209085828201708376658544174158706612519588845156018158905884105071730142839157093322608062883448148793513507006049130725002218031807728423770846164571820828189687846011710375655267421364455300495628752774674943350538461088964328298583743333859192662901222075268868116187468111024119749863634234767513840917717868839012899983969218643385934025783541563802229603075885466700107169457963085100252172852285325894151634130764499818013368801865115340157807385823969691515199342713062590342182172937650566530688491187804976950745159422720110973149730242205354482128250185176281414736327830126936136120472572394177733003277704962797922968310983776921893622987821917423541113932604441382783249108189105068447647593834546615295999947949112777575424304556546859425750668606016865281283526847630951947178776138521762200802744280126750656137574412647723405302875066794335988287112929410810981890014582168743458513152727139050254676180929464786043594826313128140042783469737671619170423990373040903553777321105336697269962394526666171222240232118589398311210668938924143347892180569017493937173977271179834735509420424157381760779115143619367481619519886393424893524580433081009620686200961460774890193917750024528932144518779295676321158790299069206047241838398743460526808580431197013680459700540347329964894905197206789837516052161383340882793840356045759241756634702625374242318634014952063550072689393665492874124000526007749221247571840419169953900520175004523970223983865178054929934020679174090661739151660173360777213188642516328088234468563815987671713884833049613610827180535987996227155551171236558457352369686899327231833444915701838215255454222193842980376705184943188662446786316324260408911341982086147842993055869127523806463226315575897112358796061945032058011917122469925705000526619805039834720896273125092076949377107863159564939285253567020567775240086603956868185286588258611049456689393573690407959625411046443971050724442170015142798729780312487839353673571320973681030777705853423078184598592479565618239509231699322153401179898284610150697277144351041938279634016266334129545377346316925854901365285118384821519914958183747166275161076870434255839733171475510521603291374456781598515741152803635628999620773919521642526025387110308886171998525721654898230788604193008752821594280329278732878614607050091172040924054830845824073042018147426147867483099228431948986188388092057791512727654419898657810453541627564193672539925933269251192064697060897638265331180538289049537966145810367896674440125629846619146757676980904244270939811802083768839007552245662697452533138552759413062552572641017388760663591813763841225540912843903745740054190270249786899009386997373989583276761695054580277646604225775783378586795742766518218742383620564394755918438110839002241815280129875532479543690810128193466336111339522529419473994048330796187475766428391683700580751521430886962922763743221226090768349783804887752774009181134005509315350698657760139092338099143182263480684181529427014543636136960294056175683873279652308364906308723916797878313159889731365479761730943839876695143153124670550163114032661064391597055961314305942045297622810834118696121343982042611340391361020112749419258079662512026393237747981512151867168033658094944412023482168339564634257968191850746061071722672350374147918600434261998427719835723259769140953242137934548853210132101022770836645164466596193888787292010080856523672592257706983224027210223948901278158667228409061293928433523583396439810327647387449191086583187228641226680229298390290487388981364959494945896664667389614326087867213514613257025349629032466283346365680954474938663308957070208647458260653482484744656272898213026676749095495883101878653460719176842493200465989221011357760393879930570395332099965423504603400002004427228752492241558844000680385765607790529847140640552302074699737308885617706632601161938560281684244627715649160993494053598078410603422470993399258590891939277017165840141005442517456594627304101746132330969104953372285259743000862233888519642164967636344060102493165458078850342806305043924031245296355719794246943715360922216587017846075631504047032658425163759049788889903064310597995109777717036058206645485855385732084199536795721917464168296146251843655473338650384445308510438276537704174884205385906573308515822886318087396282339935246390456030573310149132614948688626495250598499167987102682693764532140004387821421471899191383284604356045383954877159896701435141357162203893565037510367310600219847760048439255669218254074805925753304395490016325032227907076211586012741012197587058419249362898026510180501450180760671730623535939095192539645518679987087027818817231470998594684411238632760753084772292166957300856741096020003203662669647141658362560818924885165248506452796263422773673199290087057159056346463596347467715890009669978169648270573826907720502561690824999343616649758882112441109748405795334906703947906369418259463049731366371209165549547655445647805097792470110409645273031831274555895971612415326008924425658921578756077308612992931266389814986994682517048834719418441229989812769411100452513796072567149633287294994043995966982049764933280389443044791262551762284135486438570825425671312473144386777485022337921184741340020311181665748654667744485319941530924044814318322774081085024585507531580859530737360785559530149166706049903173591288524603835923996632930901939148081265214959696341576750733761715133700302452677737054816090246530225662069499168350497549626416778722549846700453963884918313717384435554116326390302250931564969412105780570088566777995607677119134024497341164880280478322562464326861888468457341394939144416822828777040950099390821880800407588798457329949441220021832682521025642065061566979231724454902713720353074046402699490937892210121427892576816231453530553788905936723047398724392828970413451642419975518678249281213267026508403808653211504224440916027589900831276237119868592578401136101460591875335908664565330691490282506631781822833277724756898515312891303604077955419051811352430316596127686439746200998583465887108781309640766972558659225349840338892512755338797677826422165104247042933723346031100498772619224411738019182837253326045406644441032162767673137507099863652580149577912808472081995143353912153286759555759723366590807164776788403478104110129991451248845261509963039157655724333126986877024949535580434014484153290704370442640597196721497097372775656907453555616774346517578004492126605016904750070138490387300805911516177162689091815904916875749899722573880363262134032500121519960009999705578059899240027211833323088876701333518114033051677253091962623940739042790817319657526635768689629386010876028014949034538011226999854428165419155971743153808303181615376830070395080064377518513777775200861313432123780398881396022249864490420404185380467228584955100656339929678535977344916529769540539927584511182772912462955463534671513563857505092374134139698222946387352252792269839037299551845968816678799800179690611805354673837866663815081152151433740422801201659706059396362714715819348791229660014649794674983089555956598609710309359465713891484960549932684898689610775095380453346774478191761254147616310830736860871108534082653206632032378791910390911570496179954883119004041523107947468366215994669027031065664231142772702784904125221518973448881625235726906008696446292852955907118454679603977474044942357134855232032912790776495630754410536508388734571347383277745492054771485051058434459151373990943932064956951573318847445652277434189979533260203810085777564016022424677047371582355386277645355835800034951559650847892050946788173216466897757078882256566025255712991749788572879680851004803097956112117370365704227843267419300178773095219200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +sword : 0 0 + send result : 63915683183349014518058071164103291758383893980059242648646141247572565747892483903485313813333354772687817623715373173652965139288880143434681529924112363605891941743513792612786624479598498235422100397557813223210546402810579413059251735266332726746164381908851768569443859177403656447563238074495841107652479393251787010149696321385640625441688523650815055299030190133640525699242040711069690095713927963279483454159570059555332578920272064011335709253078503861625385887818393098645952486375081777692903923057098394373573276602870953627070430489792487308746652601233791922068294646439609057287463738273394316143178826616677095625704362980153897728404719330643123564959016372666259210344537258275700229596971554674281765741937426588354790499503463231903660630435886247750958011894053525952549238281042985134696999352816245329526116873742274366968177715163150962103743095759974488659788632832846798837390979613034523672630071407478003972497106405049240519119955897044675446390175865453201244750899930303727034511410568172169767271332344541266655193413437241684603259181026245692750030510947283115115193032700628533662610409696259455007529312231288592753882683293867648288309402680805134841884782100152383518357040761747667711421344633491990573114560911471693538953184403653494603627016544978689446665858963316518674110718762001916546620369678986514971893042962441491954732109964752998032985615314927532316186860960367009989752608714047589431841345694959719199912590757146055318147184724693537478317975428018626594344739630261495099613803668800128151702424430800998271666531560683703777287303380496770842917618136554844681569120454770542725702788309768104356037409811583320574017839321032128125050067232581418413485006888475905095892583713614735385972112245415970647344036662772527177104730151774315174012184682944724210371362676754724655585254555657038609675337579169367647369255324224276757809432639624425561881644698706600883845344567014464766378662822082017259008349885329008302783740857576187164745934730509170373843264409436285383564105958665306471473391700400504288472237740267957322658122268213091968641187418695596576464210290317497370154076327086850746496595283096272561159233344238495304551642831185119176000813970644822935948708611224495038297614034537223233516966606195400535233900772960329607226090979030134555662537446818789718958465945440045294208281062208646013755192160675908636792556471284380959398665976815876925900721977943814984059746485451063484425478532011393140145316153552890302591789909983996910167051590947147521241947148463803399027503121138570637195822113210361540526308032925194787368192737010681636506871017381600533612711126800524321256104085606801212320752244180471410397021340212929837997178098388110995178028741561815532788861141042760965442705591595345476115299231163539091232137224139872267301953003933853477081701066594526931938244852000058235583847848016834671341251914940713151386437419789453690916425828140619039390006739914087689147434106148276271620371129140530470189445281421247685514598932875857701250295175832064880293994442769871733710424541799425754146267951671276158996698478587908364660623234238962299969751410385338961617451850255166806328042825053852623586074482283339445392447960676871945021878014681639853115656582372837452103010649161140516939242015399983811509752772314312617339975999110969130732722337456999313018979480217494746594875090400015988593962922980381109709303792016739471450776979095865959431716369577030075032737521755809610697565991166669277445769598353995709493760892022993054197942437316410178599247318421758807687046244703415254138625765193320943854512749695971275729778927739249371117017247139372852932554290509700973152682435701484251654768234613983082663880434534740235017621694552780530334368052001685743454326775582610030430848060967272392815327284624100290221856664840415271242188285339458285080083780689305874278178700575287883055506245728779467733651921793929896400899641463256245896444075265033220272666245346750767837060713029375105882619682247759837307919332311957933432922173884622926568560058431310315206523922243205821066216026895893182101296885031568496076562279589852054093223789053170703996632573812196149731263617672120132806393692170198766708179642572042556000530332150212609903012967807543266445349904671624372788479076039638296971267053896963890008142416987725015378901089363261985526794407621935153560349253990511960254790547373239444627584985638989854886255486067503273520006954772403923232579658393870095243141443233996720485183130307892367080689063369697427117500231923900023151517506613667273714436100404661472803959963985870341326471652722187990585382930220145151615552975486273651832182163599986025331872464265102046810569290669832268156894064283002185439642249872028221560898677891327931225103777481142943994425372611678201493323062191038727432909584927373632297800077665982983285301563595174287319338765020482663237870678419226746382911154372609132301643266737507933123715856698989665444441380568731577243633875397687727994780496875952281263735727303303616291559591555736570676535485306537702652921381411563435889534751402559183144079556521299496795512262772342820861120899216947872316729077199589618799393882031993424918507830611166149832242845975080201929444383890563881674217360426773447467892900925331108158941813726882066521089129806132678366390599341227785706216684635578014963762259966842889825179819893440532041362425791892498119834815286026557512129688984426463287842943282155546846583338485945721334792410284576315797293712297015695322534728991587147484850257522055879637848466836696769457975849154082856356330092573294627104582132745873149634437445182558690611441017442821409855618715939378552727009707702549744746443442978437488424522634288669937267208995360521064528436322226747375872763647989658670729649273605548089713773080271473502167018628897167674824267498597206915193438862391299465050454501293354853420245423573469630158791005086373954708985521464132023491456319625160531271613652722362508352721433946359101380727372682788133328608788828834474306110810589511520420594487152385419580109270251833957089099485795367143386249642485932517102381111086523112392472885211669887579269357157818537989626680901643863480481429802099949550599288542468594504040163800675409337602581851080446201956222594011806515731217252722547423212858079027264897090759484724032695656524746692080385000114441306014515947956787021658657189073197624394013256066857629513790892174276871479486706615888448563293172610238371765503129113837454533179452306436885345945248406783104999585503237646493240441202425071728586130512246767861161917902041142950625478392062870397014709708458547725008523902333187291158186574358346606696162933738223716831466394164775337607631154301805883838730124221295803918675110437487668578845350095011639137549264397284156647940569076593880197042038814015271989194180819052376462983119465754029882674866065790656274291875989172425981513933838311832585054140175853993066647475804798585878355520848994036212306864681370943605535243539794768571133206333469830667521152815020231246432885200631900273497463516724892105495889244689363636690966127953028686142804260768940149370075396386650700409299068960912785660834541244062382195804668752159946286524671323963383652353137694223806071775937221729593620922429775936457438316053925447738226560949159622934490437591343562590100239444382461704907652237867204214642715120985272397188156862447506987015299702803296206921609867868038193524734761433525565570617189697450225783914243574507581490065480312535969965814467626803985872448142958718059687210040536806900360039586552012126509084846270078744018729243632539704749006989910243825497788494777916675484718608169992881752274693104996209706911421137488243056811178041200349492614100841973234476258842095115500696740869707189716947505178018925070043638058812148966196703652264951175493463022331435961807148763026589028776634291919245416241688348284070504715037240652151845285767499007390532836625623051782045455901603051628961280573107158550958604463116048207974830631219029558541568536378590587034031260211953584444454684367063119249410478340008243631632822876607529097605471186539247161222173007524756140299524822033989832650794281877250084107805640210442495379670529683201852657659903488162044018198796065073717818351634971854713880415092778624091533842907570553929591955504102131835498454201551165990237843587825409956350742964627145650070426346801329865488619484053969133816992490182709133142294798901777664164883896529198897852167427287207592460945173062052629364094491615668399819524661052465239539742936465576496774367370804021077573642531029462619464517540128463496387988696332935836344608405265293103506359430096549952348708227284211826478302854951446689011873061497610771004391502058855581384196671950366269733600351168239730492271784370129231834430072457721485109162923260250835592717786318966659861371301829747303493882321268541601615825907422592644228575409368993270579300270500084149215986767611836331380067223494040681850704433605929345810865182460988461242265418471517939091374584961079591559391806787320679109324452549524084881272273284285687644268561239138502721806944146803362544471695456814763201960797372147034658018039779648312491739497210034655414267250458154148032084976047481705235918647404119939254536383803181247207343078309264285277423952802176522863035989231749557647292232882718325588846632408071460526514434092493215754599184838445966903523626897926920318132185090645365375236610623155173090832925932149191282536103122912034827862731661082777644741777644635350831354748420809571370974278048220135540818115858524254469963977410546166926270706859761194046652835269118660000040003745286902891779623285406751123390779413788202610089648463591462816353345352537379360390785613456983735005657778674025388029435015844905860624262860942811649284765196178524028346650658617823146253835630625722302039391981305022765962739833131081673330596530297802722520585754990304810045529598928767735536108569274576788032426032656751218584135582041342550078118079428475996317717738598074817395076327113606403767396107620855120669139419443734252320270244129761446292089358146683607460362699517047063825252563526949843521794047254232937645116165376258262392238061480870462224591218594467435416609330407240180428386478976783171178659815251231369676735846310399827806135271742580440631634617172707989852672439276060980234807693754755546452219006636610440593133048382391216079232041380974489455105268105942279626642292197529684330814813259444944251571691743914898377141472019325888259732052626441454385501576910893366466872926582729381917801794752338166714016847286391836923801983289895217514734582128822514217002097266482983312235348756969494293180384781292954551402118363003085557378912137635857827790403082425122104964547860773077921284547166647918106324079725539425885492393515451813865301334019698084393292636216431384058581822842319585634443386276475585715786912967915469889278598210054715235799361466267478282996339848014350225558195416924588064149203072768787288404830297099093761219015992614830925835518085905633808608496572386485811378941432831431459003352755165308800356791472690546665190385158307561782075030401826425166726748368707634610597063672363541949759372974861939799242766676607621815355251589990510184923559656152668115967222239496628285836336738468998638199324591872350994067465941405273943923376920119867557717667673274646188742889234332246197747845081103645738408057456523748600798604615382286892481866362282864925852171582221805595945441952941503159706975318949928510431996501241316324620246276840181530204115173398128632480039932376067726311078696119126419725880698115784365550308810379463955207821717526969398601150306800970593352652345767135165351512237388570007584848133231924566671833874936018323010506482232829051098415352352719485036646256201408724503903688745115184205022853625918727981544818899350220503110026334034974956768617636409574320085854836366290207274264242320310632307577609244019153839114154113229884704554467095158842065422765168749421071476508870243407668247913207507354020173235168871122818480942239167650088306863255711207695365038425376103406760063438433102493522839424575372714519175974597834511872965739812873061420960652172837578963546594424481851592553439537452659645061674841637171142225510173226666621973369163526808641433226514284351519167630240777146084719889801559433979012730447026806206037248059968890245223881580123171692965857495778089183189438328375007442967024908564589682695451605345368289977103173124511079022911558836273387761792145724196117759692449863983407678558862302877275642217342624080408796472092383169545342816803784293352457073850504773876035995918422728116516544725712818076745420943601112073185010224429771925319877986644371698687885096793014555003233371452186809390481511003121102442643150548822306710439819848145707596783002221902935309750658440288897960958030892076708583808487516334343456889579179251011882451186917235409074331257768094870336485736387940353524121347506587584377398872528015950560808492171881124717444126731356410235088785848995186586101068825710591086945184411941041295347103058588456485712403921972697623835886264115261495336080973432119640438842682640895812635135459380567769206009584487767379579749620606025882791001536011522865461488859668704888512232351419908696516054763578858644980014933778591166698743596863702032056487158485844451749409406363319059648953910682919051226372562057093481828162280067906463332276357544905757645583715822520846998231774351154732105763829662089893313772712197625674326107758601630652156102564450454456241968559283817295630314252850725171990245087408801189192556172720629853034264462038682627482755512570058185501524478521534978771349968504835954884088799754039495233773973490348161069609519364089454302102670060058011337106921339957208361480525430365802641309368667690915768216678249346220495237693730827853820726127498989878267188893635615772483799110230857574045283027957243141146892661257073360588883091513191972323750577519857987599552571077453908801275678348793293128913860904348913357777443505937119168838730777837166201532851414878197395807040552058302947156764320210496406172636619776018925272630525337273000531122559034864143809165361785862438193130841335051216833692776708799500379073344113226346851650604900290648842834061179565049921818550701777098492252313420592258684371895834144021870852390324413414716000690804158363416416872444689076792236712075481659256922014996972232290491266438570761285764817596291156018181106522772580449450715485636454881363071339803630226851270939608025954481746210735289309666589117462432316543918602686506465792294463085169574963296893617916197272525611724502385950698763617849608124080029692903847508787251156671731479658351091918206973165389570496148980215160423589506766718372967842672239575346338149217105123433620116231281923813248875832292029609473208015986614267132949852758012261547285553625426668042172388814660678463955393858230770050809412593254753200523190971006198097357205155179302423061025514528486158601493786319062259353181903043767156580355084318191001800898157663483844635754802952369535819595551415072003015818149999775216067325518735381210489367726196343945917330657614961616360746370010031687487440453744045703120365398665417105008833360293119567193949553395614648124395782540728358459949084615894062921016537701644942915366374051689123927813555269963810138911233527980863696703070186852140584495824058805342351542548758940837859089806454101929964766338285192726129927012165337125512193657757524267502456159151990134625603734529809461967405748934195401893738100865248381161759305677161799227923645110550293075842167413470813109482165039343160411885384125592265800732634702866120152178586497611127335651880523212783683647947596532857871237520892979938692108944307328789892413061778123928113233908876739016566293804504650751747865937798201326767369550812863685971679907698871427637490713506225607873636715522177317771183168963134270914023098590638981750284792787123521426306721016231508871491322108850894789350811398750594799242455678241989196011850341231116505111974962296892772257249894695169912224691748433457723478412603381822933370489425648039525653549189153736021322862738005585523549850164173716393278728289637934623950477029429165483526436374937202522159450579069943007627151783759415329030180228878426227018220969453704220491515751517723341304611943166201431795436219607316580436907887277284138849658239953112530200248369922359033320094919505633492825892433976173228266999635468091537360503972680559608541093932491606776663808924083468296758364729249114223064121309695052684087224633838362960631142115769964874266725636297260615712226815394022142301426804134975423547562597645899904723803102477692705125968595757172139131286294068499382683898552069557882413071286057903862618090271673998545396081457218627286748920599499121479669812529183160757793641415578600037344875245136546824884383832299335074576837664822651735880244377627738231079256910634659025616985331185202386919550584841882658576657757990933669434505766462518173150758681653172518918701452332557766354249353905855913764610132159165677927775430950890796978384781239529588594063709641417377664612235377868411049607042579103143475209101019592452917068981687479687060212465515942694140882697576813342684128385117258978858619934916953059292399161821434659327804829546226760187780035878838488301410356671776600976523277024507048462636317670488032613984402880207407258219372628210969392864217331950957679535890328270140916488960053816064833130678035801591652551675820348207982967588978490347653871608761644332147694964345271692663293048659622260318693406837794997599253897843617467864437433333458200223649543753054569968065460516693502982611895353398107735296484127549008348592434040597318641234220299834685923767124677180641922989292912610050685438853498993718939616056449169680963503369146347061690196393067505790163371097085677801518526750380279315249674054828134806414021479127196885938435232075063627790502111183788743258312633124113569187382667922202561387664049105804554571683282254481545782197121439161031752193829088223440954233910588384943808263079237775535436888472936581749660320161254727424034431293149712982904202894192153192746644121404472162724102298856969858469202125189596039829966884153513639506156481888945488503831992531641152127524381682647535443149740760791489186894835788810735777764208351901568108145824920366377572502404769260615810241155232038173424051136038463677172806161732431034354667436958174614630234108320903561404789430897009580354942665641941247924335970100391703671838616997552525105633711303338116577964372162074256447392957750018638249500998567189676691515006849599517137767704620469902709078163888114336710650054812636576158327485054954124685966278126877843064781878192417744795862616933272997586073062836703883517409662431996522341782580125332738714963128794674482163869075730788948679110001570419370777247094127254798688086825758757790483606741581927704657782037805316306286819354224623877056595105604011235702914482127822255491724600465183984502216460980123207417785790282503341796558404423107463160503506758597127908964446846371556643470733957492668958823316431955100724812893447518326781437260377991501900891995116096872913872817371628369437145656508579589197520346909311414559671890637416479057382505615442605160994633789461078078837969899602563088009710578244593486087823210222836543464964010212976517364608249752899522555452143794272935375004362526393486268138919391698033036172899144010034161241729182014313889445578066227123337053301353592063075384799967279956312060000138228768910163384311613293242814785670092459602981454369208367548345681138862464152144428608691129742959219858858499147537534484033067848306206984524152278923987295146102386262986619184872690080046946795647728420020568439258341335639499009156235841455683184394410882872635601172828743396088333146254219026596885853167019984780664798026370076203741937007520135049121130240175700091159479101535494975102775179223822499060890582046926160793006298372924570519627141284835255237902611512593242979078955647972188712747172426211325075648136369848932076672806172853864443640402858747714259218601685914756189883470347746677891329174392096682723195944910947807563687976447672716552065048854819760106584616810768950402432628704025876290983432656944078462287693067081081548524644865885 send result : 75237136048898200699411259381367445284928751973194696600880394544935688173223136805002985311339877855257448035175661876539770125649103475581410018416798676916574198599926481827046320988794081967754778186170129189870373660149581579095378921786082181231738096798638051917650599133708370575567828522031624878381081070616975063654490258975152676492544035115182433621642136965347360847280422112768029999148072223763386094212863263158661179029541848181341844293270062555369822164249314591413694017104997244844396628213324124075363823984010099096975595032818674935465494623298302749669342481455552137118333245713431280640568372970226458278496378685123714765698980150420522782306247567186336645419069327763569315283662676542603043208464510974064115341826021043687514771618464645670380818036448004740980165269752531469347286578571385798939263261425466451776312837045228616286680444542608486993694270550532566913442172490715005459030467139158676250437219097460727055263073824839410500418141161101444428531058495163954613493784031629770173632062869866628952093458450466101362680890824049116810480078001289757661626228341974999922373813081753790569146977685354901917657027251553050106676935298000305462771420031359617990842196566523722120742494733483284892024560999297626055708338981383817652418155128513952403982411312029725787126717697042823047870518114909636613656827826523455793439472591063658960913979780585108727924423760616002116667878675785246272664527712202466467151595057419621016935868494918063052563587361926417481195696336305047433861843978246609494831493464181032257711304241862687432258379311734869518363959619269408756651879841949706949242402655212537115600887398532179872453773810835877843827116359004628939991596074996751724321216426561216521925424561058073334956354932480998011338080668463911292020609320818161662039160521817676737046818919813144362796413177757135481347731686859219007700404267157953646239127013989323428191937477185907444823369640264134806636353298656213925616427437050534931345538165809782031228946427113449962972479766548739352320088958415703020918832245934624855125745718856483289618945604220200587163999243525176545962174473293844823901246984210260403910670509891984091340275103770072649117770247581832605638919218600449374625240057227458974447949328176664219486341554733713330567639077843105287002958723251273199213433616011371517563265674239202915554113988648613061753754260861153740902858024521028403238973232901302555725231694417035119387050971335850772967642784318724398132850340589342600020438013820207966272911477626298409310446804639127144766919566845702587304622308577353706920079634335882222546669329807474692989563040092690806961785628970832128872910632817602394030527745806059617092688266996461128662456205233880441655113595857115772638550256438213144929648964872843845008906641070974154488157895142069865943224629857801782857121192283322336772198567320017757714381675025096039137675147191784791591703461160637513508358026042904259108233291750366299263419245699972014209391181661099047851363653899075400276621868622763961575140141818924145467686478622394855307879670818409053129525720236834143274318792755310501194333608193639782950344868038796983294612025548677407379997266120605786897850041365494378805824142550838978747948809556465730914148919355285274966312781080580557118478060987510286878805694305227574131063229679427189054678465727297885807242346639662053109641874887010403307693618199857229171138971695073955509963338974122813144040789850075315917616405992958975276185967950901932441693593363736235715068587029682582434730542518346413042705140028588874061787587530649530301270007415522500784185000184250624076298367929617359841891070505546415272644206491875861100134013733985303322037221999698001386933449280740923615052632555315334091180185580877293610111453701849179409419550832040163797385211405333226387135012763186992571223323355916405117676992282821073533375245224010625907216593155095321844336940450352273554776170953059133741237162827680436995369747238161192311917726883882294702245892663113898602655095692847728377289224140578302607878979530296243216906893554056507224230298630913286895822924254989517911020870872249583370281668038446900747368338731782325302075699087646662049017205570324941522887807606095134540976911928545460997020635759717770726393488875685530354119532134143192933083227172241998881502162284875411106035236919835501968427232313716941493944715171702028823413782478408664028056371793446790832912955798811004792822916141941991920283758523212037721895589039767394048176053925365276056973115173451211999672830094325690972453386516955565291322204181735516989617422007793692134081120957959768368188101415068642523106453181839947438961604981995638415044205035678908783743339053043003509299280719609162068642170912018301075262137899469152862902687965098126946881953460665231270630282985333612642623631128443590128549292019608321718200127340164618247281423111041774067785270812535759313447474863675079805419811970068692862619048640917802487424506852102280728176542646605976871268958705506897185824393660189889171444698382622518572531645851270005691223881694843010716086271522991312916867235382266146931904986454486082605832713883606383604877289306265095864222028691778840443436210094254881968582274877630362995399020520930257787804651294102764691195582227482779867753802001977918909884898740022020767417268847385810109754018567193207860781824432196481585461070270945990835626712934909306987935496287730226260520518810428305633650698016942229205829432621972446876030361015510373516135887526957240321748358515485000247019126031708599528314291110929124317266985469171415082004915408564228239253616687499944022343657250200400130427369085253702645124684059522203719265728133431024849273835576678895026945570620631222869656979332521073000998028913012086744774936423334353583676564080881146273715825993296682244503001414531376936068935844033383819529414982099937672252415125342237299889755300499126909523021228714038859563646883169805235424686673265813970904481423171836509855229222897950088408368941628615745310499139041916748581580421714401877252016482198516785137264448962426365583203784417479665225399660606107298826535356245433183524468297533901027261518598769250123262971673115188782690024581885141091385209148626607690476413897265845510569643941976056238633476861475753183319395699571621061401260394413139765320288565316089186585980320916785995187264486855338573169299328744045990053485152772203397329740567415029339498558496332996940995505724302292906891256877337847360270756493410837440396266032294781473577433885279022040770472716826341587104676049371417305098249833034308024651625842031134073988440674826203855313013002816510599226200028102377768806686471800161384698443690378583220814868402029968725204314147714005065071096688208681210939331464579574811356381884606876507686427241798102653274685487791073613749819376146144554838333753006210056298555645550668833315516806561743074488707956736200515150684950441272294392306672785600893782969843777683726311425459879425803391927302844233407972135718499430463252660833253714633588916538038200210124746053906883098061992318185765140518472425326468507081789992961695700673034617606972948930288129529154766259898601548979345289226926256713886803429900154248890972890923172553113973158614040263666264649398250920380635672621576350484582243025914895957569088866492235018108759762102325837229833337289496677039020127042334614745009148811756382655433898778274458132984077919845969834589620921938433038236933110968136054103612647071020977222714880663086075082510356787117736308290032942542138610485548261203114470823496761260926671293577990357656288975372554204478740232618244961249530896596100127568128043953825803002582249787613408194210468936521059227683491365558021258467023768025174564083496015563196823700130948373014100513681827016169498635221382052605590177535786735153744993660894170145640989433681509477585490924618824118550729806624065313784015776159479121212231660976483339353182546802037463254452503785656353106079845082993052408870578313148839018081333089923279142960699448561835382001033683030258970309517260114863144875511675654442111808472780038216698974538521412437793523832378916799932726445366795273010159759565146092361136488046886343228018746894483621282984227444334223087454777891379372254963607553403339480706234781967029676876642052648993907026320079726693949653907340455697248587760947146306171041040463048256811538376622151583526130037972716318355259671241669368192263098573187621745380027177572969043059737734019550925543941166781164635811592782856602375178414167601487089111175102654005131865365744318166593314905519994362263743575120894609864734184077866099522716445098628443599989801945380632909104000854300956871219253563357729102205435418359579913820337811833555278210152661892525192056666725035944556720440702414825633999861105605553243915927693342002577784111478678520615112229413299667338019792280830476723109314612946336509453926299249929998495634176049503884797336798856420183354498718657628624022503954274945747562202932813852946326090000016564634864062915287252568403565942429362596005949096939777960605681337805087314918358269619595572004508193327440960465432474204988435486530997818536261700269474635898547558416998764623902777615865285548639206069210093760706789738745861848279189987317417800189248181234049541284971175016137806082585662876937809033775400338836509891752366160008061242395413928956026211953435481567731863154799286107308036247914178632241633332607505318659310775579619355403340954065712262387501322191846881898575646875759155028798545374965271810058133001024797513193686669678068919985716673401718736655606502142768733130760127269110944018094334122418029958872947692208000678291757689891799356196689978809375332089057166294172282952215402053783373939320086942913133318129605437103632248785179975404386784567299929577929188680788361978330949631604971757713427560421192677230919662572645989211548676445144472858140099911791403434753241964041619144510865340083379736205868282495850167818474891389122193980249964042495290545140377141689572674913395049990967706707540901626312550157449118262039463662507629700242586826921969827944151443161447942086932422137713027717158893914167671648170539673351169167755821209883353903779331134048186964648039896048678109106938503112922714301492433286289076790286103517682339239433669198425398578065581942810929299054410299722698391520078864736199840909786874135361404840099431489712527894682085035366906439640406828294580299791132270296821095010424053032814586146677043607843752115231849322857133494545994189826426133494627037172573583581792330969751783383749445685329077025040935238280442120195703987180457550801553819138474456805903555073314941645927002816904455414820354724008520519830512792963054063588376049670701409450380178104709407031144537406595165038091509897896691414359622827194555253425117499557756795185643891389820211867262190857187572879689849918333661957990443952307416917627626408230705818899592049352226770848914927669267253567404041131699331825244063625640172852953836788973777470559137734277051444589669213083296468375206236255663250731939644991658994768311148497173493744593564142543194710160251233169216161027119144572657479558538444433108509932064693368128045693869730410344448763525217786856414539661293875583069877978369916103134356411124008621023045692787266268418372982424072380313334169876213537374717305686014995975808568867061761491572974249290511362970153554528488379718465245760714750836975982392054628116747959808748055231167758860955973479476459820366663170371604050956318110356491707693506946221023707656931574178325895538079774780297222389430983008619944636172175155546197259279516580956099618929235244047621010399853316800876151545778630211969843316213321837172154279903688078679874751756312697137106040857301417533787872578980463677854364707319689070492184571882266406929156510071240818199106306483747240680234500861698891777061669294458096394226629523299934780362085855184416945187185677517722647204737726989888400273382699579262228641328887526250232605804576174021644462553965851770862421937096962875340418694240383165169619491636360830656215334768660082764722131274105929475754511500819961120628776002846397221877775504686760243738743456740748390905704202690786658508542067050706041785818861887725536595948517780273378627370377135893578739089047577462628609497688513601512265956480101245021206232153256530912450816826842015862054278387170846326574206971656511100802066040322309156940572324279184917494485934481539239194462306350548955071875715618310716795964961643376807628526986573183019268347588513963560760590455334181169469382267526184903345564247543428784378310482503010941617343236642918081483408861758337694404941688055056319721646732912193925972533499903294146226403748680268109940961151850552677671400895967776778238353356638328970343813805074527873102601082167124895894353229482214074307571128746510461740472181188853071701355206958503758859189762283530865802270207138543374766490081236705867506957412811137120265346701740172214118050449778199580021392090110779699877924321022089272627227331269712130151740926482023909566848543450795128476522915042532383018973050569649690175418772085594303958993079808308758484616957945256616115488264658117562247459959156973454378668861021642886558553450918366149441687966506324723433915211641131913540066906203188342861408475252582037549437025171659492085598955723654116748581672281214811380314383454912464324381819789014527564589909298103792877844581722681769166735968362810758472877749344135751478644030787201008849599050891740555676330097712568992260900095776077226141682241740906195679891518557145907457183908428272300536672033245976690025776886299112361070435997034330502925023710374723292912065078907011478648798710491849168277652033981404408188874497584727969085724011077111162053554883616894433303509168014840000985300790581064603682650736101338458880819385654635090068120663935801239031401056396606921944062309216660034441209764308820501369592386833236932822782707882001887963944634281970574405919146727802879946349033889921999413712913861882160137780062729696974872049645868978194215089328587993218248841134343775129901874401196024898199839511918407999864589582540550790684413927894047595201366839803084920500845288037368761369296798068879081012327454316169966850166221837237198746238651353166947385214026194378137307480882607703536253747354111866675773504053695784946130068143983620160629914990729162267875610688059340633909065388741217122626540266731782055390849241058625078446164209403956735041810944601977862006343601430736657029971124290074077673580130690938518935811842357591322092594294233861030892850962566966822568821088666596690529058490988604811916181598907843198906963210850406835151719724800163193335072439571698705947162962322887052209754144998866279772977917155886417125771924994028813495871495892530530646735795997661981014329581534989270208566732031126367287957117815047667700942348167919646505779759012315499245195592980992699216753900622654279483744081887771074862026168059879966921505210001082465871237939567240905112278722590487061832575963529152558791081630051891996318900062346177916179893032647767765436274831021578267863400845439943425398015856520085042622827442331562483916380038456513087201815575362137165092591731181992902658227262442984579120117495084178784121915772200084643092942032872990153434485822947270540004865945396953209445892539683247032084507002612371188673219179276465148626723692748789359247494990393814950519748130662992736165483664855357187070562155128637457137711860208951496542340688477724056946959116132797884170193932904469985209161562899066223307178689783672021280613127059613171128584753957100064606403484512397059027957595926206987352767897370486670421863028705178697374124859931140378938435995875232394823773966608468642957946569231130048993286873183881919374824075190696749908908680079747644254486676081144014463215281822392791445972239851956299785225024677266221528967714300733976170056278814715045186181965891192157370391869767889318804701006808764868464574864572749590470144296060904075813558050177621834258339636849855998783245922896600835716008289652642924489463595005232925129419619611691411377954543559434578748970993883274715818549111530502657383553073905279588249090403699646286848802655780943864387661862556994991004222962345940845117241264548348088897132844729900176258422362062544696497275875441791603580744856511444764619192549240545543445969490232732465026110867976385433033524991987545843285752828130620637002670568122664005012363765218452240027074984506708454981234314699900080093514300447910966147737054976022567021921818204839396075975768564199515085900122844655361151956470120850909877990984088619125629213262324449201798601015933001078356039830401608555189506539762047653152002390073380171192655032909861504674919617588554396843186954352589575424181317011161286672319751837403611126502928076570645181122062796181559992625251360508116921037688321626643207077002347868387885063042922525527557783967872237742193782681593931634471365187212887372155276415566059138164608973358855134247281262390813089323403034312772466844056537179811511812687448662690414947566511015673252586959726221286880184072765445102761212605052455528126823853182071953814612112335785262309963526408247227501549573527155276311767939516269335570565579351063250355404538280443603891208255235216182436437106166411441565770074740547217568156206281921617884220460522065454477837839265955546121455913868429299347342693174418698563465461748800009346804115052696710164586766242631751480182449487718622640853673923622008551464803186224486566805869331179472116266866803080897892079291091932220240645279187321033575530567188329381029730729898655624076370046253034822045899734343938680576340908473132412989299246372039128504033615033073985228099086336128358513962067391230388065393971002728592838938371658522110484334211898076160121293061461698917296600111788346960513171448903772745563350949525559789692555933410376615620056824375383201881128542457821499887324904279933553536921362660002880504916531167337887706962567238459320399943650164799876207282551037143730903163568584776668561513427783982862807098009629095017540684685388056584482679643475144319027236920602295851992911788599574555612139833286863466739008400038161714457001841079846052066687134072349693850295741704546379958664130058980180159742625952833803088286633726919621626405596084384822810076226692577054899611573783338417784449586672054173058719473298352116837692308419722226984699422777127698306607905625119360861622767129622572346092364671352017694736215496825314170140166600496789398753679214507109163805297885404555916835002727894787346820499252577847203327939989320557407409769717311279199042473918395344523773225403356482009376654032772127553105131009642029031585595433252227825484527624645886596133728043375094940000420217657295425586967387587860941555186155934204573550202405898637905819412928301118238258637835595879045252792054373937285742546071447745882823277541584873340744682072610843706943024355444519790246938352358372421681463670073512252371606841921101937214625749575391066106473388278216898308972684345673002716826628077631591737638391621124475840321515783334442451811263119464176419233673191263907987990433458203510853444353888981535733604291623632105302655522273013800847817973468209788300757880935347584511363794337882021885011709681424932503319070026266143205835272756753577149025837927977146468158765160352201960568154397777487516663387921471742854725619624607873420476347514043332344856982221315040498902271146944129501606668907025171677599584233240647622357474709494064264007523619703704507569095795359202946511491112887995390618153409637357597094061051108929675566953278802208309181293424177191783251563316449719809739314415412156133467048482813907061174802519219969892857835584925504159798978255216023377371390169306626343030880318312110291158227831913594427565018260990781555341114136357825236985672923281122640766161301380059386875330888394836569436517445502472977630727784107425031160309545420326962845881418982824881172333242998646088267250397703301234748085127422037787767579582857053930813041482110910294113386228558890447208756863496958052110964097018055470328328487730383261494027078429614598325855933470689156129593822417384927895452241857688955870430910675792149675299815021263111697724072667053776016040035065784260839417709724427673068680264267630399198895761695234850107106145935537381083057453391280189460803477383786111802427031258987369266721180207860337019438064935437249168606601335725010264152659245510537782218590169258019226790315216581534064857175222428039094698301227560499289755446127175039145432422941126047224423544206011392307010374999408333698871231728390190170261650428985596442728930191075506136755689363818551738088276818592618548804623087316440763579446898774981853596406166286884799852486452071369717351324114167791592157275793785633881467147108015617437058128919628445934460938054309383459583516530053372673199799884909015138068067815770986872960176886710183669750795465793690455486342518970845468887251199349693315890394980313053045343725592757344351806015463285558383190860625350945318716114175238720437661017031860476496662414460461424672792898021644009633735876873992710714151382506298916509711527787481319892437953095996897087264730810190777421024830348751171900537817738769706864858280806499399385023737460018311040094468654038561532623502022415465089583441503357862016676561838739564000738759569173455720227605857852427906548457924488700914755572894776520664769166900897877249798856299052367829954102762116561121772214085021102602913499897587356908808115935204355928740057233932314904148352555752214180069632712178756415900019592090157640742080402609436706995629729599913037589863827041406811028189233392262120117164848693216837846649569248299861332743614151191911024241170988691278432637295080573894152983976414186981837418273813222686535338533807953197364289797742959445599613651530376166186975483573962044508797177009902273217653848372670686986941398975294351355896413159357734948109977957930984147269319691697859882359193339942630708549833331014943267001979913247067614491866189764633268815209929057150145965658236300638018033036309717849603491071277713392362254475881723865931980462325780530835790044694555304146670303390811245501002124173230874300935969643019377148428870021784387934775677056509348273657114367276367307234488629500548993379069415915556190592396704633764361890044903689420924547737116107925425535711013344506856948239612617416866916984976208863747376525550047910811427794888682972442236021042182858057190992658826044681830664646100094648007763913579819055745337253838556763255615708250517911778612930929118441147546178988830416654484971172856769872802909099108851046657677715413531111464132655628006863834828608972316286596341519748947373119739314862345625754801330014300545404118664313181347950453924085958323187096662014926794943147068447510991705905215655178706819223068440417395545153467065454522192987784455107416307548805072223026380202962751984693501951746282369184761960014387193113744050258035700953787118052271105049179141428219891558889405519485852539601752607843069021437770582037654967375153822165528323465454011122688237055583475472818679897191639095408431709139485620685617781149650239522691351604236659004249467486386256748911646492821070289050469160315634413806178683920621988497045942819120683307909925494547897979323700980316684279242125420260690134172334752925865560206052749421564310709546597179547446166391922889032393136877413475077041036014776835305843650297967095034544452220740043101937345285563904001108521484506778183282492524350676631224883126719333046439726574999979065708244248578103354222375124448237776697433815462661038519729324497747616699865273410668337451795397057776845694894003041613719626207224157241228054627697037216267303334474252746517079454837948730216319977437159362400113076029625564740482032626209492280972715140240929758361794187587739226067495772926861702565441725167026871350249558018294492863775273686933306133451624678970632289032396077484274078000765539710049645732065963775169486135193259040933359426112434326531551867625782185123516776369725911126154016816057628173874505927095821919224597226633982781306046194664603388010949129975037288088872035639382583951148060233793539512534426703463192176621939879773210820005726702446410740158248136463292345208249775943176563525712196847339872347808121472528457459683278311876632038170139649799530371647510071056637445001547961823845356050692633685273882611446910264710397329433874492619329876892617147761287990652872014073755836096441886036752497135610790399059479441435368691339514328753215787815686315127668802643219424764476445837807024403456684587113913394444475669445342320079283757685997122119496810826875113455855838341509067776410801823292200998880129491227785094169718357701840829491590310578470854435170361744340992723967772565704384448505470184462823268232210566589513876695811916231014755842307261870124789811688156861513967230523921551093280848215718674013904419633741346670453705470523547678486033955756137916647467843170233546624549957608064317302462078851503234711189348841316119737726637094826976059373942475373119202762968591853350336925847826382284616477281848797116558659655198346485220118150587420313199643270326481601758448365386958933175062320355147136167977742383393566438148560726180720017758732133243926639776815616832634960570087921922163113600722058718688926364154837880051261515667417019939114489045183951342895956120455214246798246583277818487990337757362502300595263261223467664116304065462049496439159028071852575163423922065001273660830763439168027197928807468035214703510922792831839446701272039028594293993147833420980271169573578142656463325846474753687260194852110922527412370978042886540317694627179553108167494350417973499035333970815713176114866911216531923826760454918878421701842662960558407574515973495988723730984486957779297299832340503569100886771809458756042422503834118553674960036956534204901856281422271267042790785981621251156400845036474953661073331023513672021911826698432314346178207365084810927117236331923824037445263377809352280694720435733758402987068485632407925467235500691584422308620348888710789574522063453674523809169429265672715468457365594421602586067559995907509679916460124778521142079674639164879692160999221518289988265629389725048619990753642218864937459707601028323653274653527742039377985550507073910904892097094023572515716861684823915054320009268436798778713104554364171517981578568265667606706099456384756333545459608309959392045747090831244998875371998544681948597410893864191368110141825160039026036701190132383131613167123683718421402143208464741141604582463347859115655965177842194145788081525022991012210414571907109757421019411951418482855889870475657056918012406054914757067854895655895818642414485279155438764150346205380392172491956271272153831823279073242691450242497745055935718658146832993208806015374092255623672257037190741091436221581728123426414388916117111486157243235092791609240905339826995939310095240356882941784386452869680952763120298894083531403347514959071775847084541591651409553731124286520456642408422401682543962917116938737300254090459234174095208272364060703207917605600015328510417421881444233548438760070530526088318983849999130354321257305596713189088951460347749651232537789102472046636743251196264228316565258033731269686943189368309155987347747092658696287509583981381901930076167582885846907991129251489145618391561903498540909544557788629385359906045072329281731446169824538152089860834728744740910181776141161836361303698401805366565036274802610471056771313107302181609311712159352039453415282132121244592908708385775966578199228160423320105397200881465234802109969475981585095746000151795626030640383637888562330878256751540135415682750113763258673203571099955616134739001383455057375537104223166776067000959782823226557642812320371612946731742226467916350449179536640158215672323224134158259268001949808999580713450303377656194545492947060517685708068096746449180732420124634784339898884533909480947593648985656446539852911443692909294980649040264019742111336034979480447548738943748799064177536074608921571646332316922336007809832010582801915919054228504936036550273115524453350052909496029587445586086542623570655220489461186185755476257913395414653117263991242583088093176006379723335939047451935608398459617862681680449134438776845454166537024444800352727882621991958024003319130241411939930126973992753634373816934022150086839059348183153972172766169683245396613012336025835829367046088885153790351024870956604045910672754362259909900912761729078788940450486366720979948271649981684894114418056224806169207598691415405057956886275685412197011758075001878515433844251782990268632732005373720451145415568784671081864675740862716720930232433757031170003107251027237228848754942966414097333139958409460712041873223722713679226005344525724012661190666301714010072007864595559240810328354217462480323298328582703979858470134246639264500150346465908909136456899901643495780133012941157619699348288095139420283488502088991015387428585954537724329925739604396420807584367022938672675705824122038472801847058675457763642857966453631698073988434548271792656854284080128508833731576431416926657126806411084630308870046281238712265297947697031408506847579180840788285760346663585326074464084234078753306270221181493986420134382741860228015886206436389037951443136984062538986853760908203174690787433794119021020337630941147018734241707567041604769281523059474406103827256020402643652261048933953493197651891617984074995724337948027095295987491990741241496714675541769524158854072870006665430637203615439592367808981978979364014099666374806947050558598221035746492149676762660105513420357974528948134849202734175961332134378799991384163983396839186897723877869429831056832844552029663882960111241296688556696417638337697949668047519169539342017405931547886927489788578481572158905373001743979868681714290849071730517648052362482392506008286180732109198503977704559381099239373224660270843872649091973043598393997579672345947018558550531607323414025932503088967222485698900955663783596314213573422359214241030736419318645877196007649318533004961745345069705875280062346066453715562271306794870661110009319109581514538908020027687857955684453522447379011390623325062326159904325613538327243394066324081835797715272473013173225740359232555722910234425487251586542631963749801981062746692180639413829529889446309034376945496084098244735958686634696319229376374819405734649956980307795333602848224309844141161637355689086306653861193779778972725116062065809751017310802315464081108062190846144423996886408006550234198005115366422814607689761170862046103159806101757218132228270784687351948675280953633202059717750071742761513430716908999663620908309743013862784748088194000253442524366834257321385007015711169248543531982253424258512980312395982092332285756476367781661188038767956319055792087440698749395685945546788992009391701026969945981351030096746310338145369847520013620418552499744498914689135247194917039411118360522067605186092550605490679395775110076839374720626556798798499553140977643811009395708717230558269081915775885988187867223882618003815481391254706502552667006622509775460401395231799237116859852527794518427498786686559730553845439859202727700731774182562458737909993720363799650952708422009578716887505554516140518251115846478910297059848266696584201633170300872034957190108366527476854917640923126511460192353907164248092672306134347488233237559532816631176977968631697265838052145650909852367178205052373794063796086404300913075829595047592329273919060244344283860783273644790436113987638826957843038325952537995048821713752998610410434568607026914791292405161855083435930467196867712541955058516606135427191499700313935524700378051440657748822719624559708312810927173580490143483429868191296010000588283606136882171150621990478597041975070775366428352410317944653498145520168263318504816470584491314656906303857634042750985357028076962528842504036780716664933829295259725971213502099386236515483071407239771890051881234773106809720617251682138018177917500454486305842900740257320259262015503858210140211742059379666213805027188398810837759868386533028002570313497350720856597059645701562048878996006834966303952831246286863062038314441944174532305590832871377510943315496710620070981956014145585977083536515605494997502222503490744876477657315168522168603555573351993658399586974082034436653152501779426882931669347114267748538720318363675617504035649846951603469088185902458098420675467084789285149496353603364553900442562270235243625100707339375673262350044102274083270536437418332929342667670666679905688045771490822936071851478532528017386097495717936934174949383605702833370390916122265198174966043709482565597993725267425094554616721157265213877246688844114679251651950894589396765652759208472354202032113402357575641179088202514720407579750761963798969203567119065981789552046874622999405215467836149511234062800289333463854114003964569331317675206849916807521379093799156036583646208378075850660704920362957548922473660574345067862500898970070165801101877460959351455545151796564775327134428224874182562244314883364700136745820686517466188830244389088357192466931100941998299024621988026605536737358299364870902759297402104790972481813157617611415086032098287728193010949649785019223776015441713758224268612335762051487624348716618704842344875667219472145319072082392040540714429839817528802113266319128597849559106186477903583415070568184924995081206083446738195275944246707885678539623353585361155969024854128422550307247395564811671133628825793227467178088727321772949966579946831709052706418299036809405721944907899838196058187077519481044037801004740311433233410803952888091075614269971450104490512514412314300053940584213979097982014388645607885268650788606101261845958370609467372424181790640614360396237078039338035439811258662827228642630261050652117451190464582684185615555142749367162435385191952496025784154129727146310953370400254409122219283188633400236564515355665429850060519406331172245668883159567917988251662840311064673068836178479317655588990836275795622822726907559652929913524887446432245579731183646743398835685579536953666034924013052199668577914043593196100676443686967840415902223776135078429715163342549462658550218917187863552563805300765705404845199246750046630755582101587048932933421276384262915379346088821613175487306545644978336273576813943675842681408191557260520479716442757475294271951221574535477064888886113319336517802123620132940292414360237206286388498299505458878366344863577743237192782049369197476007660096474194115947527764758701347001219591395373808694391341261786723625025508478038727339916127232665486653452935572411238437835352570240971398042458671644542011104011842347385550594420223111161055934881104902065862067180255256485665784897727131222595607297002666623468780718351647792019016777278374506666026107703334964999043159564329152241206535855165577609774850494363489450862182583162123065620599391829522837464167253911913120819206169892514153319879685153486401726702946170815152107716279061963502327512782938121685560127233378333381346820660224189690372201895962935003958102849459819426319778893571644595454695144349766253050628855251834206368606834594675508435861804512559613221939313968691867063616563427724875186966503564313166919846385979398311737954771447953702212312188331935537395721464872611788724964292812758778915491749349020348176067070295830124350695914673531958496809031568748693302819601892144711416723540635290412176156064440624331812662289808777139933639601302678457748231029899551527876139002081797796421065404085238913024552343313429496249385448242695320847634838982194656376452882792082693038216404435639759120331496506177405680266389885704449417878636784128537283444297402953125549948640988886436866843992443151819321200555511145032005321986219591550307440249730178027576533649515997684602308228320707931518701747019093019287490964040927512866180828506256621319684622718473724446448097751253889915703949109413611094202918780710754261912748988350724102289343463743319544886362593913044759076083724000359678880756602348169953783909660304439877526788684884172016758722509100090417715948254511994480020250462282848340160644143190212523663507627203927481777164999428845090967023705601867772621304321422859477603783960480387036698806100586870508565716686696021056036325908755654314742598420923351133793801019601917628637552773820438336259811401965320408797206966924485756561488808110021133763331628329851122194749965227690603642890920549842120478434073992240449096310691756699397408527410675588334694087490657377956949234934173758192196284475757026145891288044353336011170223971767738132703020434667928939009780415602432621335475173919159793799648323978235182908733341594505982219756410464878081318787689672488417127032685242536149260676516224474032232803188597074254146382205520258970590689231575045326341348888101067215580869400171768970260661520001276049670378304657941594357243774220841280356471053461517924390123951859424051661818067117208083806556363906362542701895081427135292476456433680275645218180489811941346054031493182381318412685320656798588025043067519955820169439035386849130072407419219102924236444293624308027024181454147608657803554967287401889093581538290418618519086341222596955891784505403107506562448402177587980152717856784896043886720753208851181268252082904516917854910428608182868579386860205914990648988101079254222924556199720783703030036784394349995593836783146712221833573741237123112979083605431570419041349630613057435440110859560151334797954234739952550469684174736006648311438139695710506864856270266136201664953877358094974733126569905704501019033782249629507097114738145504838301670180194427059409869564509856659532643250303360307470025548303204601726164632625345461547471532529204768717168391076830658794416292835657907774273223096066959470390061029419064533363342833394281264424414054475256366151456369425278984246522674596833176831247029683768655892011748757191127776938716251679015569407001534138283142192248528156690408354867921351025764314112206124545116075099548020570578492868635452233004978612347327779665391905375910889410837713221579693716702597886138741401054213995130681434296488332803374341199613192274728338923120957973401718355328714266210362001978128071907002602924685362644208819666904709124934939069142960821746550018593074412045118893298523837198812075067279571643316095577133990177723705567276990194238871146163958307403810565887058568706072533124247383218975948409460834373400897873186497296261509951507273466089380515204591993150911387514833215323725193545939460236424143630988239698080606445039187828539890475176547882226663288065984196122505798962397351017833669912861359767954765475958018613265121746409006343194219828770489340403723399326497001162808704852065586732161415800178517822572186474793231983434533323820036600920782641545479342744966092461433159077570412075454515300289364423289022033455563259849485846413460058931200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000478414572025068820616836587801991851219466950063749318156829248717884240371625950133883985200584904438985963155989182463742446696844356089372946534206658725531027795816806213398028290952008589509947600407948418600029941429483589031536613911587439553047320109255093805301214106475785824952328580090447140773492966624069112211252649275103908639564091382460924163997182480721028978133704308801421325146747813433406885975295176427508297130571594939904972667520446269767902521106678393206084899754036592273775381488678003984692871822825545553059121783980317857544644393037305363901705386967110546717047125294942180015678527728515904477547983001126677343208760027003627610070045662301548850371830166849510489140407862344550497807024503528973984409805365802219552585936090753924948471321342719000052452081903298416265017242346951879815177043999676281773826833661572578625474953071729228027553430861468798635306220690061632091631799350265162663101427151452397506049228405094554477296733094738714554938262923043284278409968210318570562167224510617726150486616720386793285001315295742326907098725329606662401721327434505786926436057627377804452391707574129454850071613086855185453908572606334179543890699063942157059321539619828757045183608877104776461495602403869484689069423823526242956310929081491918065463559826781984777009926983407888349617592742427261706739761841219895905356495830132038002892975622793423210375097994505269793718259528396499947285586574043124182906657530168975918501968028105520130822877986193445860483100433551440308315036991843822989991631981690071445063812409677191006750360077223050985117904778516658596142499204859357842818679319341381928786117072442149500534815492702236110508282825391512546378424736157109370484240398003424061896393706719181833846165549966789169957282471760319772507407796489066692809626601981559083275515714343690709360962206757611614142490523545851445719303271326104929790257154681946967761608445025483722026069481065136649314265258867801605460076376754727506755444639503852813659107920623784951349467941179234397736852091748839388431868321018891862771208943455308133105973611434579432544928836915628584767962261085164509301513632718105129837439265005420935241956861644818474213178858064129795154471915483407508689143234471249540709339498261237221657498075175527802546936729679642045755903314969841272221777967781051876524044533937594221462243751932120754091286881662191881222583814431382455803836088039017844998386830548769492180359817891661682688017965118120302548190870063255236358871773468858982761097484846086634387689274354643603104461996533445693219928988029489505002447970193706608770276382787062390965257662339439834229140235537218852268248442629795312129844532247563022731825038210768575144011616598656986199214556589018806808502033083162205630260415958445034431591871969273351292881864720358027885273086479391106869690314228913658056910817947847028091602763949678499172959326210510865789797302887995174588598897716069793401234015400694131993919942008738532414884460736212111944116802956450853155747372236551594920662672871209995773391258058973623972132355636118254129534692443561732960115954307829666019621897502867018854755373505908839568541915211440142437369827230169882323759432323263724913455054661346432812152814556362709458230227119625719737593082325752164276548791886171268382261940124157177484526907433297681188094914153071352887738379943223322160004950001316746468072554263620337666804596140234860864728228661831253541476925322504089547204970287874550588967304053040702244709804873527717120359330930577836784706390725684884685164074292265394887643263286349361763706785704322956671116756465900811376929266848367922990280434568362338784687307485939877983307805509034148030573499371468870531934497531304959074142467955674945798620783854202108679281593689900865839029201636942500530028831485352532612265827785660366447275155898028456438150193565593924950290765010241846465217001695104643119609595785888247761031407086170593087667597666427931664951041505301916072469037115242949586095609089321751309956939098667838596866680633111442593312843recieved word : 0 0 +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +sword : 0 0 +8681142940646961196316797886337707376601311178594702229106191049069279434430332241610968350752471202729997345200649968473118638733408252714966659296822712708570761474035543114194655536459327980767896484399241496193164471879447219390156293147836197238607081054129864844963533817119831344035279705683848375506999042540121062641436942672516813732660743370703822677215052666775570450869277821125077974232595050256976182504005835101279462405951548845175526654349535466907410240906942581014170319428757338490690255263387280000479631105793984341153685376621651749188400739681960195743542753243051563495046907117029116309648796191689138126711411697810601676210699065773342468916097460430903154697007214645795964579892257550898201771748835033414240859618737425136437839140299045261014572386064293143620049133324999118436905494337908669503735329204316883381906794377997791339917803952683491145905391135505883562666921990915927246809192795469559449345493342491203524407703876173461946432900981820437855133542730155638587281563677748598988666684698206489329829111283530055208254324167299504433787380937832525240771609463565781934303090561573899367379386341152881034193551509337338034983718756770371668752273899841372295862316031652070055899717607400934883308548368198425022706945569945797022648357726941828353468777516495783530115922849808755764064041468598837910515120117667322862797211787283358197822430738561821390930040198406740660098952233379188887576786712193158468715579104041035790854979435436913271634154025116533352144692429581435373122946775730895489016301237531812556454201653208805637667635955891621087866599565440787446298489551644851898471868728839002040399896801348973820114199841033063194692422537247226657302009304698799756511118163404718160038364245081834300066373587979768280847673742478235320188163836403532194259064974679035761830223173834762274204429636035489064269188629482866516217746130969746074503261642392311239872268815992740529497098751811521587248434769479893392718847697863214462843156348816878195439830801420996741625282285047860317509323659693947359839602462161992280275209978052156297473344289670211999797579598076439622571078107687924223258719098986378792641815371192804559141884432416242236952209888015378472481461344266503679001148296226923994688410830200843999170663317161785762328341221413346869334138364966424397993701362678642417595421998189296503541884532062574590268438821372573526951774421889866793859154182041716320665098179556139918585364734983982175882872300059216795099216787045510836235522486096866988232767691213980418383914736704222785299142004018029412026496507477277523671769676215320083737412327253129390311469002957511997191685639890930220148871192741556544353945300642665731223754312661346249238791676598424170119648224538500140070404516551960313266815601738091741574200364463560626851571104772201837218684479618681280221067751924141958898125255114283418957952688306734053558600672577151605325645056663921895311528315864042902993771454076413443502378792244329726348953767668361852892036964522879328741813637513197841621585207453886797749341004835402259330482846531988800134374534284873116083088003123057216632110100524968564125918952939285703647666011576449801881819456501537899598222590430637824788980537338124877212040647563869081811274765642964106888361994321199911583281101328089998338857109525006669462986024660022126206629662386965469381974803891575818990816793547737267524962795783316224003901621170356429489163385474748623174295465178142713621786344328408904094425214655685621889538787894405230157162855761636743702836325955512810044974843886106219429886985345636998379607399836253108535045198496355774210632347428770331913971363635655228280211227108042699149038717456488046488032168957448210944760519497360595356757495575663216240158118017616845931811668415289399844400323701489768832314574498616746775015639459944273416592697511646264429596479441986909907725826386207759811327649262837903821727682520821121313438167772349180892564537948176149065995775313255183125774646678322728352722675710741601768744069389102632671372805361551460028066702286179695437337638333810572491332674317659674274072840070893182430454660215544850111536453898034327242861913375462166621217689814408750522546994014771317689989437339614707510333768118938904895547469015054083463571815745324395157879155215062320631997725872029331056700114293035455476167231601186745392371515772633372935835374620408861275389280516960578938919165327544393058745122123499429478879224062943725626434950823204920450018513269957621418177465159765225288953754057946956990045438466900450688961320315238429863990151771060005887433593316646585903092679133892943073881690027692048809802157878058086793815223213873602692693714791363656646072877846839160520816164807691631187327343306378809387376138786887091248703480418004589550403206060732101200494486092076303009257737546173706722406344545716292156893467990692525507359237300730168246307644079750232058516141491392837661621863653208503936333937837122573549600155379590126372633579722465366775462625394558605139593426969346397356136468293676746300167188215925278803084246347831661243125230379047014298242072507495527131188452270125373970285737221375398147006513063577074201472141141459115476985613514613934208074695844371926284871223536568907981898790218874657269157620201332699434192370390299042560053195590747354137849928000767156488209808162459954888879172943022419425981062863906315037510032795467931664506562864548922133208960463076823696321775938654081931497522544979634833627915923608420107092231437550148869204524608262807806632342294216325530435275020706189905267885461330478458782047327789135618686041674684992379729171949466413804112166513776464712857594066828585317983279094263190258580346690524972094518263417399856636212795523630455972646288766857790956820723817438484581583867858410417472667342948268531168804654984729579542585740993558475193875940456280560865625747483101613194890826181076995365852950739821117005693218836783378612349657513696199884958650877087372553963714876214125717981368307764294470618944955381036886204400792068080437589465797492702233378795673119096761114830284654071436337653560470942875117443878113493658556949724826536803239904828759926836053667010338212001625270135467987665534147506284689031459796205463507105432118857276882180359398379545519364426420907703815764756773740481152459926490720527301413132211490914725234205681547521207782941378285425508919285556615163505325014514695824297835232991216438734103338839942263544186592501380088113977474920330488928439005509687871487504656147631748172899604135193803911897005719640516197781522693145663073464568480946248943421883652098425594909659449400043307244293827335039354179883457446884413443295152813627885038073501540404735795546202703110261347419569366059566097577795848882168647230467920633607601441187487335035778212607522303814676962970923315882787599845186851923104430954521200847451470328652829168157633501902774364724476264218285556134007175712761993494251302083804886587663988179848393167535646486161902171278208511589848539361718245887323417143569459002380820159490042001833565944646940008152212869486570986893346554468502208101362343546636142766978746290123889642076750958192553824619803441471895609991024044883702264624194885071083757845052464682613631362574569142587647776988023347722039767299170867826024917046086851538482054105808485637781287561508209664917526476146555735621290027926930080436902241144555925775882016257792827665978661472441288880986655268923047649961124500061528382697346436031157920665550512165366512129137216095009281530229550848788116070076728207297871518772571678095864358058611501421292992416901471066615810906368118251736985303772052901291947351561025803516657692640006625266490962152828071103584668486614330682285300140394210689554097993394035007570273257988918346002945328960854797587893807269876063297125082395832598220590023230203901479866132012649320589512791168265477704341882049963725451415674026760203334113739853600538376274250452967798458969028928898431843231766111806993879449769705732639526792318963381593422520390243717929940643938863576130899584599105698010863162701690259302119509743764955873641208573242821771527832912217863405708900840529213256827479410735475326504207987796508664901122537277250252239289559675484332641383705302580225209151539283505323151409377552807986117102984603361863277436108014345645862821891750198474838808473230591396951767991755017808786090416385521845750438115638740536916977208552907387143418551610542175732988275489450927581965800739975017145361855318691190695815485991013763165920328744242503543905001970940797579958487322407894676080582452424406388362961908910498373987747639417727349433703083258858603368391430192927535146176330456267444684209747737359530843500661419036570362301072408116707936319416117535926697926337308422354857255714520483804005740333476949965614850618067624182448823516422453150026763802581363928156082009179562963878569025084116219466843086966339291691897068759703713989473188457137988656291384015004729925984215007914146351031182405531134162088255475231679617631337311474545503543683910945157217690029920518811496138995426425634886535054865749065400022878390874074181383198434011362614615904970007594242592590716118368018205963468788364173861411281921486609300310989503926872549884980839017701982636226259091140260018145600910896183578607531201522019417679606970793854729775866641217519640764516296862942214237285749964428114607001824278250566553227916111367020785130731902170090454754564001631188428252441541306917137470059889473141134610689124023072585577800576174223911201592909549519933907015845496825500518877140230633316756835195354748382048149402669161893194070152278680575750709860288251226379353668927561949673096862233239431584947136982826494548790960724975405437557998256482627515399309396995135765529003860653460194811042893820186782231952281406612962923002518655609740614895654219998155492991345545956700105278743688508772246930526767587381135603003799579311934956904350648267399112635009868041659647208082938892591910697193957760103131062682881068857832618137757234071292335837340429811661981138839302515720932729113307121317137620684826080421033214304988678360652154441829024878668354573167061044071479940935106562823191938038841320163341580039214247144792648106392774961887352982980182171496176136286769235453921586001578465863773076299199362152667467847509238074068252166677956004842217158810310638690103907370350283183727626318136018467215764864332142666703665802297397341175184654014758639393194904912474342717359519751499584896067580757201849793113714132337829914097633634347900219584433194121795481493389152214991260026772443448374791963359728111210725874627892680123882012304124506912249734171773484411905401659301546001534675311725394869005159892630733368015846054234128616478750752979977868469346738841842814924953852199256279217351579689555913161203306651615946126283853192103687889936202312133981063577338396188129811027468007328402399492763122170265339338397353691846125858460823057682084352919584717934095668789250837868681573892217145699015702292646941224773689542087424824869804803198919229996110851457039061793624370752468205041708991006205684626507123182182825224035958205854566373881760158872742345809962753585106851100958240342474907458539213993637665945382132815829129789298690707618730940581772123729971344044235428781486479319214753484365665011107206315455960025306724336580610682231345908414263072120160392235748589154572583459815530764318804321198670631585376408633940702199037962203022417124075017605007934632246953236919820709481249642765668379141305507576505374285156094495098860550368751850627632772048811928239251428393622433059559046745920895703805066709058018890619717518438701188821770098462821675230752115184798409723857247634744798028816076389615952332339220233228810938723447876582370735502933543132850185771011656696993873920202324016037465126552149190519456832473717170614184889134144495200887659545380994504145129312693048703352869771538127880086733596440646836022101784943648925926214386619383370757933122531149792605462130892306796691133791662067845788050403864732381695865746671335245993398556784976574239164418142158818796256472165282269787413006048785733751018936443551035698955413977762254748182645518161039880391965462951985701993669281991439909921942864136917362300494842578149639624584763048336465769077355876837124153636283922221520887334240320606405180211878600217450610723969360788931091881757171897411629395649699004925747873079893933453810945389655508026078762953545990462853618663364452063897793124320013379383707797304619126583483243268417070789103869901578057585346114478428352100659429075223974811662910585928654252535421118696681663754009504755590006670987113143185005470966582061567801967005854005485478777051654351883303790834149001588194192276533805646473436917273131346285606392901426025838488863224309181177801026569665226414076885530827759202039685716410097686146129644463440633328733612993145233458812311148387366433485722275472016848713678399799183759725270133328536739650753437416151958520446287378625157082932843131689265646347642975869851749363400273525522119333071019440365955190665660933120490294476015228447143733048630384138909791572670710128409937066319636665706898086384601724976595344190610174759469141280723815112107145697620164404068620943530693887532859373214140084047204850536427902015194140601991834303413339756032245784434704746846315541547830586958988325089038391550943239847193257252796440993336882987645153744075536423202007179995586465703106677917165300279329877069460570649453173754152687057392407533586041860587834635693657089456424232595034785807518020976385527248313126235859988814774015361215204814434966830070519096557611835857833069059365550724741081989777378518103524054841115376459361069659038608251544204572339416011967974049062459106221441463257361212194907446521426012486659899277113728996521099204697073659730374451169633783833986459399359999620540850796710241528200378989988851423161927319481787651055624967789482170102942684912508274240181456168570345813485982631072029342475911600611827349459295604469753973839828014284120082397763447717180356868109312691288351985539011241786470697668998701316509312484102319559730351073111558196173980112387885799451346370805608793864848641212586251399989397332322378773201200835231025514458753522386870665073590144071267923093471851294446660825229735472089940282158692959777362669478727392729509230554452157582626388444009030928708671242741934078412550118919482985333617319979541883780836711845156612186258267775238860778757787365510357079275810131994145061310975844292863455482343786547623920062664641439687065368444323642723297740623209751333948224349548794097660095840003411323187651122272093904482937205411318767878943276908322709952888531255226151040852149700961244664367860683442910371647428116645778418001991517174196635759682747949624171458275448239693349233684577417278094863178343579994818544390457380910957436553519198296618548799612892455176969666862749161929588740050134335734413864383369170959781306675251760814171979936754735538292123626694673745652356002132569436146568625605056194604943002629632301367634801570097569575574308236209979933948363706730842630938471037590176982427284744376934959456974243948366230135550838645951343568077686966511039961055563215680144448487407154146937226103177928025458687253827712748142566089313331549383554203686351823073334705807365032561921978024194992904706108252227836251264403057592294219297168118571659534700779380826481705592604317687646496910731676024920183278907115758527964512840628274379840937758514398355650572384946594986840899343174124493935446526700885271638857986575002937530903729690849780295162574432950156897731723451846652360541108999450116238082621360886979831662942829248132378497414482513006929854659199194735604950652295701488030554270070376776950347109564686799125073989452051265967245140358902650008550168377436808778840261635875947843257027530685373694052929454700048596884699149422090139341062045696661182503044694272260359398035814682450077165460509854275129087980685624369108376495098100176366021431999888351783396833781281895000767873916070945459489867085320950374333680398891276732110750088057055334496706492561347701015719915590797943074715745469479773549380371983651518045594118710440910159390069157664889065332490214124679372240059401020575929332819139601741414842337103467498159189285278310157574504276244751698325205686064750042044134779057306849453087124895288824432837706906973109524829279200804841885444057671836519159222502848816210738202861589679039051206706521572020719021658089331817610525671328199717090513065167943208538227464681816783304591486025252545529674453099013095014680289476286043558513734945245989623772726905144445091209326443354943129578351668367012518851585284422883665346301776870179219244623974126957185127856829053889794862677297240708904897950869625684038131493708242582861974366864599082592084807219254027716128392959599382173504866316753943673596468964867350283441539504487960828254558141279487354897911390650687968795482153948246860994084209597996244988753366234839502345060533040947490591847839127278548855647272664524679798092366094578612803482851849617736342969346813723093944689980765662221764495828200657609936455547051289411639364136986926790671516143307573858228678222116948543300153256383161183186507536469351336371797010378917227673935851591371938653274780033763420116826733591691623389715120427484644201269218327495117039647066630496572597365437705527682018167376606242803902606003959114275964908113942520954461161369055206844913049685053920725618012613222757899595409162819010186479620941623599012265763793346347506970752207718834659316665367031514604415879004106670558205233341278572564638532673561373743671154317010733213679205010156078972883991451532163918791368330214377388279273757460690312714636818267234879623637075358077990838750328545525663322322458635787701073473043991286895605376246823843806245172279093056015262724335391144789437923172692286151463450770338043587206466800719937382932230182514213101258222236694216744333969131754345205817599516965084151671300643326375622237659527150506058648896844254123324462788947549623375916704268953062387446009668525389840736580599432328994012096482332630512053758647404123375307054830633402976145472922562313368509249521527318185169878446387235317903187332927244102954342232447212151924919120788818750924343110050969365332471797752312764754543197817687901022031668971515436353166695982208793549686577061698925484372364042976608566861791655622240879046042363897249922764136028367105091821637457279055999417684809677848447877925177718411088195620807417684944551244380639645781124646241885937327792516935620060323233633639730916782472670039852609625274068606536453906530530691874689153496640850076533383805866792871704545681761000202189475104391992281705590991527730061288656706784461406915877578865389643151250531753589818254368927895921950397501520376327564268181451727561109233464534800397156852002604756522616980221650902572680976673106276866993689282134131003243974755157061969753908288320743993380187760784781334854113189676894292400760984269899445668250431548813925493313683142216911626061628006974467403444393427191538701447910314140630884920629921685912600995133565868872225774727020816515927078705942384099515271971790432090355549604401999388732079425880284284113894344847628162335845103651662774811131183063905237029842044664167866082920521706588437027337579449949468924139080294628871276116537614940614159651888400709481179208764814089177999793412738996281799536000325658391428527382477714665594851416024158335036218995100358748799308532741608140306699992473121561454013275936482686139788307485022620140126548475131210599823859832274016921937533870255258867214409425633030665827444428351702109681494747912079834694777748837913278088767912786356131361337466360345719736946658966777460404612135965081481081963750763500551009461982902594620219088493183389338192636871805195128504526170896798687954271285107819555937979771728061353742456256277784790800256436665807204035797446133667870386023307006567934697853764005766306747660251906642072265484854096452964671183003041597751008736114140839988895639712153663291837555650838706487593074265299015156366917570800002938550416208724217296882039377878952275382152366246040429886188315970139438656769871907138631363360329127606991389980615250207657031736680635414844864878646083744962527730004370553096990822025959620159411792710328519238859493654903358591438597840351835831555829185029839914390195911620425014948268604238863911375288239366470698487944005346420253900479466826568403101701391467313248300531392497539590413277461992830421595057648219147934733083837388398052119124669616844122955954440809133428682753239015068402993448963933323322062517266489423095750199684819018762600268462277502518825292452812853692153354371948250673792682997010255657182800662169217307645662201858268528546347362266957685407614385240961565159587840000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +sword : 0 0 + send result : 178735217571165085964246060598996026735671130834818397459502455623423137292720144468077073020619895472131621051183052257645653254583187989474970027160020178594447893455526825849679174827759755752121639075282180256221641211340589958169688347313943763936959688302320121913597051079784286920951577466171906925143548757260236059114527463809559152380981177303674258904326560788262304464783277294621575547794717011466800133902327453654175483247484553974970802616142043002745183893714440013549584941076592052972444976726449387658169815110434064783082230175182682233630537790747324004793917060097249639319014432903790305558536876867847357795512856235927632343708928258585382183979471788739557907770698842458779080202381172648704007434362182788171805478823119279157007657955077743489650640819823402745641725625669495914319631659354095143472073123636213824621982067008471977122371828563864605205588611984511444306803645572171635377001017616865507067829984681894329690231914156967478362124508623928370198011459721013931909232876047834149569768961159077440347814543401266662615044578216296371181924318422241852875459095816650801889163830835199718661840224404449757513365029046378175186769563188708335283506198023492575153058571252621179597557225609573358210320326275082532370036533403674054226337771489292545793573163298312060336239787994649745233592245000249771505363904352680794130013219263337096325601650662185470610828082907150289028459734039962261608109807007169124575848251244350472380246692907803272810032640565892363184487619443174933549418636535347747288483244824587058388001480184688173225033288908734969280092048885771292730904929759288410673015242231470348650413305321808145185608603846817919813876157484237839983163269430477044827333570741867513306862913076271472241876710318264293896754541643397660265976472901614872526443009462484397528543307847935735008547080460953158499890106111904651545690294860150703178058459833089737934298806745937430351034868072577418563772258861934516786359622930455265522737779644381226197589898370096830371308978067695860569895882104129090937377107564174525884502324807403978170419434176908908377405524376880704431066959130093590196785820282168858908461885344098855363732779179400267447344836060197238274063732859055601724508746673082197215142747973445233426419908303513877051330519028388388023586474212271308389941211371946002525739179518103570189818988211013166151224306933276056901762984742589050437859182781341386512128980436397974486148463543165077164462723958302442385184365662316052787688198441534181798440521959623667222005030011140584029816235383710212802665468798514851647142482784966418488109193289927179921424845816878333875224733901261682616644663270841081764807603438780597835511032100060021030344721398698960066592096280771513220434304156587814542006715174364807097594566479593714879002275255734681386740878416927186241748462596130294500768346345153463284615443406259452622899069025579307791837686742247138502286530416997283492259122387939927005353303243134853023431433878515581163324210778633984586183674387045823622964148371476655349325692387333029682932017904938922826626441598565463098012994636730998663272329219649602921933385956962271259543011802949305527106208853989950488083891280913263203518997539666723620748178556146193610119686232835235812510491921691243411677813397543484437812491019030442605144535261369359415170416925627768096485793846607731698744576560966826006906251072219707723791137705084481227900589575841917756890217420296804820428864960906177826949270001374893645628956529778801530869113288397992915978615386500187698911168115932328573301881108710162259775511257055012135603026503208441131125643492624024012127007578874908810212164344175238291916106870938442488338025955367554038011728321929347810271602278265620641925546754462289964873911295990359005172856297438511905369397752480903478606765346794121474285032861749775356765960747369942689457613057429431712830334616236269171537789518814366043133554433216176249787215873479680207425485422784848367911365823451947890594324456221613526119825838309327398643172108432519077677455442969273548457638029790415283121180274447069350282966201461092059379744770232052626292643004945595926651237808946179183147159414835965284230581289863394748173206639542443090050094302166635527336770685258624396335440789002388595055067783767378587514603009640669670328545908800721998908468656383206991454982661088371873388257219085462296526787835388931335826348555783125319939461399300070838076329180724813585249873461608571232943612921789053755089083415628058713612092599579568423293755814340489158968015149336887417081176241788924836908133094965743174969522308021700706238396534655337531524115957011450216309683958175271118363106490533739453102221436854337838425058115218042699815854061205979082394547051137871290215137746177498566101447900502508533548714664580304341609007056412548414792932544241782729516199226312291763576499804444560476568779933101309296002386032662676369021231490514498140436056761513340067827697187510424553009629670732898306444622455064882162983005188491239742961989590613027150138871640697683612875560537671121283433702565532815237589859248330689336578441508498161923706928139103552227449819467142184706485529912480376562834854285711586044929345013384857276673262743363895852660005467816462897959240824103287641259041831705355493371266596634632133174065207032008187195006056875635796597007213723115674570903255653320854602619083094045131321535828765622328474688056082377906615738282893077301454946866793472380363012495150535705965020399557697769352144485606844250342199071322908311749627813653191526547939751451233494115060324031435017526204135285350224937758682728058817024698762733116401502074087684156097371926448525122962674181781964101252584095704563228229714754593160843984821752644638137260849612084963347156399599487578680729945414300151156468749841191913093190253421999470660384120795715665201763330308370648247028613249618051360186503991730229529279629445147597317684021217584671082698032593663774275182076225945071700514381029189237254738173906506420487327953131187740892423991028556195126586909968512116668662619866329919053667851162252321207559547305408157787112234733666243108479114569225522795125176089716186081664144192587249782296937087816166598692755284284591769765194689124308722672093948931137259038480026625746554630499107314830670222504625452032773844941210152293449059055496501637350834063472188325907282371458624174893974042434478408192424429450007984593108288971445257533572762947143457608878099689876419717129519452652117078722363823448723879953144878577165526537565616234934571631833887702012024308591938195571876454462510150753211703846273848901001074881971927703818669589384898410014163121419942935103527476214737192002041088959695990112692849114495865783722054081583980089972587140901828125608922569662116123721717434352484147073554801955733084163895039581094929910605030702985716843652141787671397067318269638069422098996727028425670136276808577316984517841042200981320558583807078719219996483920045927946646079618052585377288135028115593064454094920287986231756725481909106400822451930152336833855157213320591003128128211454786609595012891699846977510554022632993621370626617698464853975642246497762751931388407015833959522065083339560820001447710018031638467706458283975442004793007308988445107780892744259696428216103819178128520524870580937299353335256675423651047907647176572848434411520254165314629113145771443875678624503081396231582322315196796945170354898841995978998104204681402630219023163360118469276858637471381573699782964904824996815849652229661624246791949930737242634983616792813724448475794570852718981634959728836645781054322673899609914906141189449383781930397846023144796161623374525431667488580973100248302964776355115212595170575431325828199528261130913423768409262368655600873038658842797243049087398918269000401955244743408228731902361937024959254796918107422559443625253878307931976202253674093377487163421701656462513546303017106694552350795130525250138636959932178050104599344299799547235879228091880322587371168497854420762684121724879304260366691134676309466536758217462868378000709057570658180207322779762900385933399375794345874592288762589927824818604753771635483932645646691167982737305447975185711345249184213284586027518870420776838889093730260497257257553637326271209360290691521882470101094834325841044738676384297194880533547465324257002683430536881300082670652646032816872576002592398863051731787965781908997375951982789327672315364616876336959735725074376474659187983360936106926865337804964735484119734525984093091739544988790601808383840517534576695950456480863280719589109836429746746403524491127499117033286158245944067274317032943589198788249455950791239544289729134720178725789138886282745700169280752264543709208171956520608967419331888496541117243062244751236038931725487948430775652697902585556838537716435791705278448682487187567451969318492722596622875386250806076174544220102267782686977736089041190717099773592357916585097791556205826549947120830438405794170575983731721295815770643416958055927508524296929123157164516818287460244678159609502581454499269820997562892431912046121553988064767945110494586034250691213571917424163874380300842487517391117387812014419112465380075651912082553789466223424010073081242090185199552788705747467451116787708935959119104766356978201668586397655965091162246682285810376978149360882639934034007087241657785281402495590350761574420824438978105628043803059325310429862495982379495849511283505781412318501231288865161522935014275090474229195628923330628765745709368125262824481941194654073958026292850075592595884086426106632755948316777412501554362918314417949581327919332180702760851214042452343605986485515229458199834222694201413225808098692719903123619519796714535966502557301820556915011692711054853604002732287936062266690016207137457624018330749121044708971567614772019580575974556291103930018922048691064802871344444635970508117955919114710673397813711684851859343659953639611007231030940037448817471134244976803088964635955672455793982386434734329674751602695189301450218648331815686050217970834218587679488767405125508153755314994835589957901810106577118466014505490103623844029728635188645533393760004551974202625017606717096183838713763469007517844784908098628040088283656799936128750933000248591757943885363070809028738275957993985789814486557563444480451763451367681765614280087199237127656756922770086973557030442823660854695527624120900909597544692032342638407130146820792826465964560490428973531155057789390397443392526847045743220132934025821988262067167260272814087327283081027366439857781992867509008966218110633270233676403228853335366491258280034283236309322949649025833120759287215398731006962501339256717778963750682492462354761813124512960430429187702890934563828865041924591529633675437925324942727336387269747335951340403665660237892515324670512175652897119066192189307792457525971189174215845186066340841615019302365317059306995471024825633407513942446522235507165330828964530613120093369410990385009824182944408989825352778259723010779410537806089380351678717167041356998118996727249608266996047021736730681386253573146192706183445845962065870583280508660986661855980324122629623237827367334286187646234694364290902461371487770166772549422987134212473592274178697998150234338179007517151859733976134277086281591177881633925995460849475319008882088052868050529425568217132738281004678010730933703749236300434096761547952720001897312699813989427996210830677020072564658130255670137556627142733430060835406618842966651953707496103927844228945088979397330538965043720469699959982207966395338121900073675129121261124564028012289707628969238259795137421740563960966478716132905753091959555125133051050574810748306007501240423631385936184899702662856121808446327800027766639245547434756540248706958737841306057134553325628309448482059445191012498828908020989520946261104325957856312944192971787693863619231614761106362375499173380371505475907108442865746275699427309895136769171022073260414744024162260679702043028193845979115857627613559966545909082153576008883065254636649298340048196953308023038148735744672140933587792272447375400692276877772329174598679225980760522626009077681754370531050434784447660917951487276802451478528658380797317656652997677890097278521976731027570820206977747880354497096275355126025953323760910604269452115969891808036829293567213976786267602080453208874611034739911683546516489350245715782754637449848631083988803333715105359921297703035522678309996605211065792880443607103407291071749088018984997438804150755020320119839920029256968530962494574797497067897069618186760222417512828310111717963927330986993769768705000262197415441780293508832791831938222681358627227064623841172652960888067171422144943348761739247096577513429655825652077739453223855206184724672976932118184265864279302430768607836935608848909234042319138953025205575918795812363335590536295162849771132038956716447241052238958722166189495949070458583155370283233471989934035777538987764110192645618637616195148297006304585706219422976409675651663180604271276462339329581077962290840868525667813418618803709370084568030585555348659218685090497663783875341833736496823037887308118021307560379365967556057912072573221026390548656241031850949561410781309368736539941351672249084399325148606236609041475930603368194258874128146687531101549478630640448026288409593341731557986845492037904201748960884090052239319786652824130392762881609415021553411256905933591380399515951222128420834246968398880820233346195653100353894091427149035455150658516758723227894968228769689914598573722949687994832629487978179757422668031479988109896851495614728493308092815609348822306541840122349594714182612715317948887028336005163316219898295805273758210581434113170283702343366372571021917093470993837755420986637751802890734847841378093804343010810131252810074108531886376667033673086999716780049022641156319264676315880804560957705190246029761209429816360637120260293556896296797740465868804668867823536896895723846289232931179371177503954792600906596535161772028318468518780713544894815952962309969162522027679566403132960001336980795897204367567381301964872695912257341087460576670060005464414672361454867677508943104648431569453404881370936170671143217602977361169543938866594213776481605444209902314477903448037637913761413639227433355041265775848137177595344814284051542726718048043857643078325151636905906251408358879082463257026804949433943413497694016983280795441730458863570569095900013722656918541792425889261291960862331754491754821324808889291225028011778152004115322581153782585106721529830496687249829178995838833082559899212971168190097394638227817551884068838469049211278303310067508821902129962156756743480512391567227205052657098152058674417802322701080388280776957706313356283518110632701811914192844193489838386109055198342696672097587742277401818385531802521621810312527338830816862377147792215437206197827856120338153038861005369135163141516620581615449396243168452481638790965672860266351979612016015242576923346365521919600157131674234742173747082933123326743183452998957940071166848519568974292079775189884334329304752141374486978245209972072192583876217816000827837356492886219176803006636673852939878095231341893736732496334491201489490722256549484407639533973898140872336116398052606749817477303237912897500870623412218571731130215079975464712795105844107308041507091097495315491408816617934591031425734225660283197737799043986945632735081744470792388579493266841578383066624981471721686597763255450931246109331766538960582905186046653860227508013899660254818333873799269991142715518564384406115646766532785210648432465288458575907197439170992184122435239145590351425892616528620381625065133166394354381839612255181923908977284997924096053806033470169101715002048754046228394478660144468795364301838612279163075577096538392422270291820258133196036778428401921316496985370621080134388921522172343797323177189272024628328472302368747220895556868014009891877953464813790166487374279490809095696547567293732863720016359722623416501085137931942992832215342194972605116161589679719640292317862627647338211959582680863517356040553871371296979355600918444889285103160260805907394745420811277719013658849962603932940201920301389229787932676400950961177257771077679257412384858867341197804925137354739034012452943933643018770392225741993584618672477700454473500432323825326469560711882914789499478550126144768883342712202467207743185518274974285606715512837390528677227875767414793364131346901139884744511336014679477042423234122576835984320094417616597217839929999827071515142115170333689110050379901836186929259067558052998779874459582798914110302173267284347839172526859702636147301943994501200593723459753144357273336277419642999027984825974640450688612904188660001012816166095095955554524442680607321831321432256361314839694201702699876285803052966135116132016450584384589925455246357615241706724326740443309669251869598581033312322171703823542655872703680873551572093330385569905783930237951195231419917778881284291659561619831333344052894139318465800209206245048482588627485921741997472954716333535685773555602872412882776694963942358395219842399298844523581750113824814029173161280811701536066276907280747744852684856581839923786793250767121787249249020494692589736868958691053964563909651176889165955467802071997183770174014949383165319792759661576547393389592653890722666442452601122683037967798620176731539448216006225698589698099642773939787911993573173641205070275248992040058968520623028475642459159440549171685647181375903582315387893457731339936959957746962639533817703337741409969128869116238568815229679335772842601173621096662496483689158196875273458073787792833845637760572317020589589065767663215578481764972485687322813369541500258301803038810985181214202781622450241762880849593178429117760314738165142762403039155622505911558364876791038587730998005946580602829979885523108196070711600269032190336561010989254980530104459504866511973430786814802018336404859303352303847035400869992504266016196404124977491695961649406332452358288634828131428531555170996576613072705567298682740582417231887694538889261030632712325163983345064113625581870679213062937315198115691968176215061013675734220638867362491018060289496456090053563452309699500535766552048344438322821149304552341879137547562603391607280603021978403658713208570574390520116738731113027405327470641017390688154632410525679821903922531444064142852778069948900870478677186787527375040801263724322680826938112863629330516540730036682852941447401371599752862804646743278586887431834580323625933147980677725292600856101174568532719047356064549517233079483617647607510741226034990154180076040431641815663123573514513967831597050027468507465508718129847396402516635329845479118942420225194137515109422841023465217165771948646036853836917604030548838988784721704572400046042644362750357637633245953407378124270606217961923178032532462878802114108131424665053804006528536922168683265831927984293347342485746940921736231865849879177333736602758172991110840107215856857780844821131931017275542859272265188533400810345306525162779709054423037912313175603703481978064070175930314008145734402795007298449825748417658693799594044429327798416743245670743126490987138818571033780436823683486542236392901131141202321694753978956120840795530739379127768402924934820859861014172025322896827277973491741901224048215885824270850750147262119661760544553368859575821013206694596328121002029360136341610675911182161232124431789384138648108263443012840474456771124461887201213093867905211195263575929560370206481033844912270970561605220763976769235577196415898541487072261364871291505115337154492528822195814050319435254730610183423582356404373247841738100392018670218333150656970430181794196404151095215870456316434911678475486438670529856067070285136189945943084986837169244851561042097376520597605642628332170785216314823584821639628556716576609510789549488851014815531847616384968637347899197722761986657846645265097243947299772299094973348508418453186907976351559509520346281067206349452066964547010222434079875785453793233338600235511702491078222048986529297185185642873306807841063295299788389763490483743665465654042052582296976442068360795089168099225509440245768175638695864636908730841498063366305641165253535018836927203874568309859478657191483576356787619269799711385224782573516707625316054798660718476644813310079881779240409119777528292715936642539339875875967391090030164541635822293658621760046977661865212047949621523937488701135076854755041743509915543159843602309321377828762860167124053866289856670061215262498690468901219852099335063077200859405791732814111713833061436593239599249107258139338957952522507073516675722035679489279018862427134974406569159664631299335777779945221062422322492150640266948083944463528984740430776205160345545118687297715816974971878635614063777649666664848722134500129470436171405908845853317799273581482201362836027492632882512231498752977115538413505610790143282091885079789165010358318687660246253309854255423185877898914297840151799784484915159217033212951370231004588007299378334452800677350446269057008645376376653944013786095293704806917949311534641988775949771815183346798155510325853164113655283479130397044531452646460577180497931907264246791587010551734462010175717944141944897509961483243848338757204464864397159070887086360597574697734147744091537301494358477429972475769168144045951808602333909545046491492506482011792926724846597221726170362914331437758607547400043506524812690307581573044399222974128631968199464494381226654778352328987481818063386921207076164046045463259987748256042244453824570284421259223491034357829938384690374170568173356652684887359912931859790451962788052129833263615619589239274395690054680385565178395464008742499688538341099425400981780831127959118192130062300215530375172432480701946188511660113045420497597376225150383840469931160380494020645635897136070358833993997230971572260393127585107347181119119144363758230180412932727685428168504375175278392564800439271196922730660035115352760618405286387123692444676007495130111661732783642586589872779522393138784273392144289687642080932216292972702903328732392451964525747050378575947276248280964225757694920152599236454642262814118739510292668845016396755380205996640372745564363789716798269523170268946014114547752951684328021815798927489486426404283100188944997099834051851094742008498655990566306108024130804146989044076525737979159032072506007515948741668650015120411950723268148854959849980312904825301351592929256447032366133143622526483686132817679956005197992676567155004906676276043301011389479608811946797009741363387393419020053171164352136539804576610143981145491078491142071167504335135697621615742459026047215559455052986896260630963501526656641800059744119786545238321384562050948693742064897173168453488968331108273137878051890813563565382041121488292593678622723026366279919591263862936433574819929005520976604309303366021720722437255973495654538702004449821794059579299693133698598573122035946935593586374048192561284812776052620483541964033271321769862150702350589856034039085790233915646446634046282125848590745411444302031201235429901702062915031739779474825312094459137022106472942551241972564006570612515451451051546186092772506852596571036481772090470783590141224554154843516764532695843798441985012456318250309451151986510051835980372373785828607968733830319563510386273876141235888326385246680433307468928664760496464852612573810692342695934157131866553460499967984817565763670898988997438936913909181939935248823126775001165571130876929896316419816565984399258926918108242647946827738113339312127592452140634543390515041247912361877331497183950766289557844864958979429329397921081323492209874506017489130443595751442694563579335801513427536464378706695092430837205200553606773935808424161173705208455050017693046002864471088005635078236439049705360484358676644701130857694250976110438674416509901752907612897298417309489458624076168291640370199562159409145309551094044422524530491201896367839507533827830124985926629261613709042546057949555592317181644140144308309805423518734784963885687855743652248720014420253767444297523300657448474915922826037027486465017402988305164066084116659260366514415831282000270303930450964928444597325740835849334012544769115168728168581676939263966169597998524366316237333561933807752839257990975798057355746143650541197008141110135397376420581280666946350368205879275171333403655975803231857592811456860557174579080338603512588139166811001470079591284993926316843716869512829225553973703573136135701521463898741345666098040821062079548784117548087620323023836185967785369433689038075813493139470241173232455614106669315052484767950020928653104493696025703481962824819952976150526870093029449064868804513197567319557291444831811204545667492916433265823324401712745442101742216561369790928671226833365231474888684544153834322716602140858400786358700074086362828200864013991631359812583345311545585641085957789479951137202312100078766076173174669029328589370789277951934153912813655661995170686073226211341338748211859116441663117310890443323329066570271594345618664702370359476552205550242153183954765966090916471284998521093355065605187194140756168401874419282888770231753855930098072206401365949396955218324969917775369218422790786529061827074067585504906282683756142637273716227640191530949628009478687790771117237903178298621760384368340444890127172581881208553715041378931494351919461291049328646224881769260604558154204849188399957501704972619487961305366541072160263995329828883289150050474004576616142459105396974360532820458798489972824752813742485826531470610502924748053442236034863677167714563166898671901507824823061401953111825052695123342862897257301946480760094893841164769196506293417714871451608784377551464191081383101280391622652439425987261619092435765750742277751849145330238523867523304920828372851527958839410239408961467213043356649662496049824192579623470959612922776975494088459802137651903624983774429053362104055900086135675698510794627169502861748078530169585364390260064168071323491861243095994176651327420367243932999904038755215297613084322263759461361602562026742956373006933757787920667596916163940653524445936938226034803595665460663815351993322360553644893009678851483215406687139237135100926627953989715281540967127012927457637851916838622966250832009337180918752460572801878650542468960151230091319566840327973560447644197321069341313140919682484468274036657898879242202056035434504387412366029943000548566935871378416392878228981323922003819578745017476688659276559739831650415088433654657773734170839806035717692133905367911153881402895581318212352235514837886926393916789750578893659642157324943409204472239362802974658313356436469998610148364188110136895123503180595770774502952921559485702020938488020630850181155682933039189035925533949515588541775407933053149517092968875050916263102139971502498717831291366366109754215837710053255519706829465068996885307912275341489058095047891725933957868668762818730265056700138232829297233238876375985317490234471551414526612862989734871481377427081051092221545583784878214692401590649469697726340048546235025401662265019585749376373116764840874879286462062477632208998311307344926268933974185003232981593589399237941262958132306228364688177570861425149716536603628628076888852256277201855999565990896659549529156552519784252766538612412271723550949696109978251652183662950142275044024629490580299585219741291904713935464973196770690106866066626410838371420917548780348762366560956726648179728884839398008027460824268047568484121800497605845948480203870001549304896960432542614148065582871896880159107692942468492556622075821355355544295735434222651917632315466126680245534643324294984435648334197167216440646238227673323352369329103308525740703590889203010576355530691874008403297958369369333214142644204500433706320406968472795672405620492993660630511150772719269741386190012355610880996443370031619937612334758300052708616026102291014777395579679122069578669622022597361543979157644712243550372257222639764662683728251857517278724403712655124475750316621503926030065408230366592915956154268533366447332681368950601460746205317926594375679928752041283281475872416430720070810597350274770503572177079657576726521544183622406733654808092424543509196814184314457345356682145195954292009640731970342219676172939559515657257444377835060247623747601568895664937430286862442670982123142898097162231587395747954770043415987518791685564740293760504144612997170985683757723816238047380089946593240707455408883710886717468444908717081014185019858544603620158320258408252153672857687901853724501927875748059224636758668983630450229270001622760460614941222324646182550326282161193285423611872128673601988174579994726377543498977481238617611383017166656572243436586818058399590243909681504703704960952621751329328479990676110216797339844451074732604649187627526166925345509097862529536778433672767238057312205856419931006044794843472700151753296111319186249530899346767224885032601062214554602528380482111445735110357220643703752224706200818746150379621691937414962733208819157737397402550165932248496200299314475652807921736804389436277229577749088438313763593230357589110647856937364553109667990209924666961551018287026125579918189157321636421691551084741524733439093223481918361734236775657336131865205270740950098102665869114925960785826682829505656003737615403861982338819725558016929172349610263775915192431463801627881080128188561849334329562543146251008380043704723760129051349432448788445396126355403376000875544140189567970672650168267026650334467170525031709807735385821045810073615725310711997527431294662176232659413932124500212633759884089961419058554375289135655819654224786720254753303544677243349887046417587691857577697258350142311413493478962650579528492531131179291763612697799616823708331719424279169429197120650381695589623040533310163057311404781244877422575983137209425714736261921590493413693424133251728266056675102589721246314417972529599954371620029597149069429507632036205906224374501572034663426990306548999798856890770303057085398717807002325319561439285306566693065046826921040117866412319517746007438899162009229899667770685832109491178746267037451256537860128000682319510010939760173841123583095722442651549117156828289567543374606679490966195625170461277247949849001092048365588972707154750657833620886516301909114719532876097495976914097034578939555986340910154977930232255300788490161792839127463161010965397244466258369080195713517031404964464543712665240513186500654853880806814389948978494550223890663037691436036305340815092264546350700373378392331456363446974340466085940780555847624923381303364758533523347291824487593254816251306618686372129121359072829641645401609327827377202762107616030394304491532896297768859298706694320645495086037741760733423509293565045727276244414695532706400007757810873331414054417104649987286058432542331440107123881043216199303922277890467538292786579539097324201772457964727042157142465689588533404392658850359692825522844178849210060067604602501632425653442668517383476721748901401128551124869139520650929994913068351155602858808795506023636747855949979239202892243926504971503117510680026922250764623559846263855445839275408789585668334194818537972948587539978203860441386456628330933173131169568770727107339915017080251723196260331434294822790249114916384210343461435875933957816362994479084544538148936768111193097144982803959462057777140139624768038192126365930116820310683519670240812577020583085035089750699166410932323345730416405365640741645160078203951825434148392359388960730519357247025450344970462953722291477563445794527042145581483947006900935002982554070861486561437960633069252144134987276079638963348600899021271811062955050296894053078887562879071513532364173834594472149500194622988300150088991110497931974561728442070190315811031829532254976326176146551276139303353280901528486773387755068258376888002031238788198102561431367606045517677050355590474460714472652957958967961979207136619861926914387525643119804349494956996470850286503642919414386702930759591553152455227195063943768978126882251805830783347467816464900665974426060185518023320610631784611142614784661360761961922897245415934598732941368702286957129005822099824143797027665347748401383569594638776989339388666312253948419419572968351477634226627767167310550717906649881753865347521193861935501547490236767909020818749116941101664431388043187097926510503955858751538958800878269034229491340657272170870612627595783311210374794562573162605176138297351770169639630826120484056718129402733039919520706916769468924446021693243684693308306258426371263818709894647449683271756284389827641326716862235539653481732454886100842711876497087573430158939845225584250295503100318126677339824222106078960311932958728538815665971731612169843187005525019950891115096312620494038630147774130774985637096826118927597681556348702547421921480369463731600632201250715383135961881769419504154061224358680170817085056314927803651127243008762982728113342598652467721653289322620201964990256006664030251315024418626796869158083871762255715569606246979284886180148188070159129929988217204042867353538637426354261358858807646553982331725898332272385186169906472377237248441827984206182236539891430668226859999039731922263717499593303403097817590231671279425017893037324620909433385576655926029152223299656010256539180495972314839501680648769402751916376469108023263778805535135016473687759428739409448039214476132378833959585292406978995746905821675670139367488008548845930462634785535153974654298520266970426469925798320416953489243700276185925075034988844197633314203327159325440543611920707385475378994704206303398458807354335366993832327926464844796771645892150546076799034972253031614289745789564363875104076510461200470979273091265656595986873628656653257752452968867560495719033542607863624585048709175087740561321898772118188882403960290825338798742052898150043034401192959373279076475823228733935207669539061166042799660479436708569604605413430792721249608610585974782821363608415512438547800979567629639355274568159438202826094351655376867271781053314532326329808064825760287549279956492446960042444160278934910223555742462820787802157878710266916616212668919246698127627926668453707399159496874754893858860126723198275617812171675109783811885972922800078984115162958557813056055347049293605045829624837350299477716525086108361466498166036167886509527754402276948990284856707794287063010651895402743809887657987229264434623311284951836944695407612521119939430543088723534868448817152952382568671055918909793376001341243754805032600949632805489696956486350797217620840664845556150245853017392962579941990408506698732631491386087909903808827988184073457387699068981702739228937304103831323321705450676396916625958477505517460458397606501784809657424962794289244964836813239009467640005309419746861553238507470386523149313415454336151043776435480727221499428096327756345723210084080663315308527560476754883346589728427021871359785048489657680636779992664756755288355469372796362984469388122862039844854309630992262302027006539472701644993164854854005578925074059832399258644818367906465116911941880040385107083645363236864544208315381519099911663844794973594101316420407943819744455124632811070157598411367910431659603283223666031790320554297029624758123021318615231520397997506228295861120197040493413071579191734108899765095471255206717682152775271347741587548772640730445662333723275646042950200599342198322215932287608261665447907025068509228867673647784768738076145896670992010282523570908444853927060183283573879361880349628206855198343153436446975816071340240559545008802531062860955930115657458785522681239309040686254963229532932615159595817738686891423865522519030266672921246194237692027384368029941440558680546189491371806707400315076107213413328736749317652566665446176154921373196038754472131513656308213413366642958152663959308483319005838319976355594308174104928461044697345640080456648897731442337531613864740119386238000191400696565419921914298684310303207139547324638073199905809956383097797020046600170633541791981946796399373395018762438105171088432993105119033645539112888844468686905034567028207825071341578072312873286427556518138043967366720829330922846541709188538552485567857830672584773044190468229258979478085988541915019055685789733241250890660969380852778309444149255864398469186969658645150467748741262267576505402235260403037321104460065253583697397972974621246008833208545582267612878494053459745873737882226883629709190771288885933345755175494075577682339043760583684085074509838516399490533149773976623035138055743090484868607047081985343364034985648798228424020009761056115113680628692011388864502589610148592942404098176288335294784247451841035097666905937358287581985424791245378622798194543453607476888396965414179758902093878566169441083530340510740075225695752236428272196791952647096853121045679340321813428046356813698098170155853479318591344212508874106445112246903183605567041073590733262760963400575907458814677681491360306970490936129970453015778170619985415408363042702795225993929339652659237688792265408150794339181448557305411497535522726160001802742093780414863112960745409553312854288614196588985206004413778965822829204814146294269614127773277923652535814884833710893059590726326102860471789246215862603475736456819343600782478138934374303725308112499490340547545284587794571931971179929319744522439605803270170242445814863769602968156138017569661106013501209050143416707502440703674108377847331285160909067459969788814205605960820877248392449868103040533039568411054933172404491311324351345997121763394240910588423388120444990079875672968826677652869748380383780353089942254474611960536096121616256043723976024616708825632080771570034719182181809927972586856127246054874330966454497897495406526969108540748749757972640890421119039950095193208090413819328563501180498122267501197495041201191329440277659816537071032885566369622830176657556923831773000952936216762863216676288841805123707225102121078539044659757662202417676592592941556970554939387919409289149321988959011198577813984029052247693195742697561496440645194205671472735418788397713555204743500629665499962799254662396213683563449839198282193592500582232149019860576410053200914870637007876005848771881763308035023704982127258723178661222201375775421954847931074105882068401259166812242040625145996816782871788682075977599217462168703433100974106294196149662456504715261714859147747575725472585223820822822674210777825002818241479493542539193337680356658662450487520357953851815001909803889121667355698021849645374119244978788328357114809912341428901409843324376130924191437145887586030696722578469824201894459205145918369541058580942969751423986874921728438366181548731080674513132567921058400749855686792762261366773593708139844987472537398816558108169568732836864749475183618348289122330527367818116712704521710178903932597078231927242589378063569683865750699029790159155890219492356396050210907313246916340804239112494995604166986616983237237462340544137022206283403638514496834476300607724209521199007124246476750651924406775306385346948034085032322229658984180821776035771564877374274250879033083188700895019714553912128672517900516982611433514459673678162347517345759720980132407574085411099392835078132892536283593844320091442580794107413236604327989635003692872997163156552372693447824246159219276755441768189802064921904919910285067066898243391658638026681452667380784564734394952294298497381444237483948849474570311900682920737663746147323787548772896687330047018399194778750851871437642478429827063249923733804841622497753024911922799443400018786253178729770862372974792717614619977734800762642708035044009830011743224015274999019632995504346471054992635671432297349637857518099696848759740661275683980797383740432254386804448029409452208373015057705511632868621692477961889484274186698318465766116204026107266981277890126139252562794481832366610688640455274112910237441499137018109157212045699982635574037651101969802047242204090042954712528745257544431617564058989486797664095721848453988340286848539990410751825989137418457060272878828248122542090855637102578617403176213913010817482979465951503546356609231963255690206467052202695496528011613274554703302796254107296976063634662502296115599635929935555960376711809729485136038006311142783437755022185240339642185358258832586235650927707222504725848128089896394539223244625098375768652805578814042015772259126246871632944749876218375733699773747576588941962162310798640500277544358993645926729574621263923358316088803709128662094795570534332592010224697647542383403883315055741599249771729605559231279003687630787229299177343308987278364117943445395700423818068303728554068524128033212119725489868823681036527455917591930261150107516465661135359650307295742118074948794658812667184048841764713945463548892803158269920055828789161202886389616934045696453203205876155342821736695008197800415963225446601869291303135402945488383786198021773685898164534900105887636848064605987559240833542466793079175151228880814901218333690435422037121873610924789004028668020339997845734931256299973893976081655288591794529277406360708342355691988106281533365148750676554469125066378905723289870202962452179823695903817223909690018979548251847467817448831422754585209389373201903494536543176483691221783802837694152904892114974088353945426387007556957885742662829876300192337157141309614974375360846836651489666968121893538488530660547242857104813129980522645058045284055641790921154626899738938103895078851342501634444381731562282358896566098214461858663269318840463405430679450774477667126217845015406803090715497453489195088755859445777576047210916974686445305463780153151524334619381293640986031418315217436828744204646541802590989899798090852225010013895749870442677682646534528285686067302263376110098858707502743239836058316114993012924608585114802282608703116996882287192926380519047468797690045237530650360405090818456535506327624107614263752480750369741029935992836708058127004086471381778536737034851929033210886054296675758809114425313695304727831496835522567529616935265137103083186178424819972209693440471016495703598559663525025754582333202391043138041604639214956782422866267525758447254486133243661969544764446919405550145030522395774321607984697614065949453876443549820985001657144773493760777931630120643848842433449778249196240725144095490308441120297192526276086765503489945581536432480632640704168722848789787999354944410090169481485892308247953063111712770901579795198488205086441441792500345444312659992042239571297376671227315336929903765913968359016992405134007356448953979521049406131066827198151353853383002610344828822211962014810723062231132146716032761354910779470913225583154251633364726748068847122296288991479960432967925883254501616277555467829391694825197824813357595029388376884558101262148503056994737454625869065975386797079522136334407983004192290029066398697068750862997884639655111014977678909672332836594574835807261392420175251573073257499861371875480723237764955079386502657682134710222950602148845656886085498148700811291301784866316210897102022574213275846156673190590066730983155808126406962037704464032822878528667797394553843922981721332639482466814264362212957353851440113189281547409274751076019281431472835541441883579940771622913824075500922220515466432655880671076309997523640355559813540432525348670147377697839113111859928322324452708779176614160039634896825852111343119884403793528752338761031995274614892490748614597793860776886800011127725531018545476986669206035388214470669146438756610090892705763309236925073333326282175851130525778206033880084048452086782662464382389783243592169978608203571291266861771493059523074055726715989007341607265743563590422324057115313647212585889764296613264773271985950182052680911817796762308855441623399056800661400686374433252243822831572368481380383527559282853298643958607629992297632003268853225603730491926635574039969101368195150286977794209224520759441959032976080399610645797571799432576006657633414645457045149013091144491452739385416943198511473354454591605856628704323101647713733312147615648193987855211816279735936240347497460430245141051341688920600853679605413090618823291411617731278219058097195816560075317873674436345331103820753850783911281828264800885872077979208283457793198193666518465074980305185588242118765420091705162458046256504971856062905510721712796065146179272386223250476310374216396479042633078161010311687696677262714693682852176663142906745776444189324985577738241122892798201581915073299103984304870726670091602002048451560342555378954579277581926335829587022720971429436837232969821749497320307993833019580176340920687723576210906505256097910585554151080301857628605408095503556173918947131642169915001681527306351665511520507682260169528856341552235082308064015472998467858415263088605803747864718933201196284194286757749892792266625628629427379885078183712039895404441472181698585309063995608076636936283085024841097317465702155020299586242472740507255665935449003663782892603621471717888631112372219290084879367339894322175127821046831695404910995146610095545996609205288030973342274523009933826932119202941681794043472946525155526578300384876448985364890266811090639467364075654067843903020580910644131573153568149971486993020216213018223184278236774248956258062302351168511331677381955087913846590011884029767749982938387974278870658056969149386802371452772270918445620229734922897678391075830101628738495303148583572300651079282091626000038294227727084487987671336079483685780080590190256319485208391041219822714071306223081498333375282655784799679220157599295032086994627762402471555916674354607584063992816786774852518667814868436746174835064527746993948677245361746039393162881716907354042054777173442364042976514657167814281359486681084502483133964640388934984249315458667394530419859049692301224164250460678763161089979297792405595810411991224165698415501166382448420342978750218080474652391057879686230348853506107256899783099257117408060978241446798580329478451009759435894785473906879483812018221085986202409290417097029673037131128120751240109542289002401117458950150179208056050735486494056833508359545652346647428689676672824726046120857620883838251963590384742236421835131605905794252095109483020505438277997301705871139075909421296410863650306628145854102653019187626141411295109560383893024965202372994058014119427996544480881109114499721287834315957515454637370359802874854755175972011282120129831924401710404126959255720864621616600105586444253623095236254227387888975990739953765723006422173070280060873172215219189694039986618163136644006107381764901678874750286921586693385082581834898865550675270637055443284520194426094862383722814255423912978921677070315802944605977938669621795625059478611009594794112470804659739586834701467783433160126906766346677788631184367515140184654014455240362970099258390822160113512723660746257164292864520449448367820314443332450074086148644201469353030400238191042161454603660422040803424657886485683012465530970684422389608964183206431676425729873261710173443422805039183422839966243067480570068144616110399748062576430022134597255206531332329748270104023016643715316274213957062248830063974809600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +sword : 0 0 + recieve : 591169777292249822592381228454961701527626781837881538498632079715818610933778810719303094019469609856991045198960582067723758949504157807960777028711722552918488422672807144435581967260181037009919536866972026114195796664441671668197237645429700230488657578963075407700238922556854240554920140354004822702108152716654696323907772620734504145187064006742447719334786979769083461689749061332113029874589342758677700329556746880858165436541050788351608947664312492435986354552446843491536593547428163688664600933142178618640185910617627011445363597445489486459456980687583160567668243363259900476236033571052981212474639229029793836192899439260418985812625916036597607699159483452023431357021652945010738695946126772703677590758027408594178733809866038505007917241575335782562479409695152858189038459333630905707024267382927201899161813836298787758566284343795981408313448194759036200999542000059541284290214618424807785819303823116316004960561320689349886634475099206369770194748041310425829517098523912711995683234516135697561516348469282356178293539022158560537697243910974711811655663479449324422924808573522457912443113656751837633928987999201560849303822080769164305693128032647911752434940796257917480062025332282163673252907284702464017985198022595250826074742002639506339519244588403145962026762077478767610055192428743809948748974247916495059632044761899917791061331383122449466819177165924173045304654831404081137679206896829278415949400455504809338551738464573328414611362465211946994225994155434104555921002048626544893163453902595548821616860261361373249022158476772722907391715478881341201529349911107505541925151104375883704889507758919642109842786358053578168316589615773393062427581029699319358039926872388938191709087834600186716392725331035793688307870145814464033113530356503458359427220853667080338638573308143395558623043914416331846630051436340885338912030566811261771490045795419099405080664763608237208661907643826828437849921657670746711140114443950225079014374463133453778977606290052072317936775309367127163053793817846202457383206394888996278533997184551783674795407749230105884986564412432987576855585233874748324774678753571966595674715796824291097587821311452829723081675524772379155603813745931007077726992028989582757510189280502604396656734587452217663137845047543399570087928066623152875198024742639915750058864327703131394796267454117674660090297860448944879967152189532113825043967791838310443413856407581435689499929470682218487543019995135595819160287677539415767601610061626808512018693199460943753350864924152277192774552255084978945433001110770200756162703454393635736202102741350209347957813593993430807653611862728048094936178755982031168812040279698581040365086403429235477922822065234091740734682515428158117700537396257968549482223337660167159465138064158968399052997815356420072256827388418753412621361801467193964609852818360654446916080132026709723472120540220318817181641619991959247551381106852250281949010184106617032423760545189896633293275965088046566833571430007976718117271205043230290101152667387802677674938188016818782160292795439941569519219101669009862999695283581288060654149287784693763201876762802158378238872383537794539094588670317040186231542631391735122223276919710646237171063232533813717463335018578627478622358344214431906433269131908482677344092937881210362636860154314305357860237727647323442455349614981631523498954467966590057814990639129782102527350068105842458405308895720816821753433275813723898377788243332416213622037878088331383660528028709694396359323422281553914679741489232650113430496644105312718244413596022986062520585073553846914797318373991294184480520940535313835975377211678949025605729451212722011909079292464525978867932268734784464722838332677902163797413417362335780857145726069886856156207117023026534360470322579986338521397742508754492402320299904940141279537175011155370783001344555243048156041561769344799430891922971263903468858538128760116312098756017310423040224065192712417718380264135461818506362386207128497163734643307045884229444312652504476346777939573115363272749333791679241950618819748266717216055214157361508131492545783985600672745077595414687459010293687870950216304999172937422211719216449514661860823096703727865371995076090651573249089895471799340312042742971293723074871604212920265542757861355047184946072891613741628655784219042419963596866046205145283548308017140121168082147229447627174094097474752335316510777419422039256340238362116978946428203294585795953654032657581267021112827754930097997463319323085957566221647778112745089849769966629032794942256073830727110513202543911298753983135918802685826068395649665318931212182124162863688287072687275289554650778366230293433466719513319806652145359850189410401094738330441118173684861939033846218662427900824764781187276626056144665662438769669640078502797196691935201772505049296465382942467507299622476750383120263052053696134843639978544101796473496263135159435944534163020272041126406166192363548076798789198399377128712598880059269013880989282358809599490003704602807431126207670282947822578406125583191792461272912163901845533402858231796601639297597409586366088365805283917691986850608173567863463386151471297983385377855548474539066505937763910858696162711805141748289366125860984514267768025667864614999589195418865590005226653644264042958866755941704136707149394800417360351842041905404880886230821995548158101364925579699574625567803510113551360244046557760174409144388439565326398040970471673055903187733871508626422119984465282652674131735127453479836035263057955232389001831359301878162770527398236779311213197714404973889649366025750126849497605714952112533532513497945955531681831534853549454612299799677336339609190114365184295876545203866759468451203974524955772811523057238515215875790838827073725663008264637540678271849920352530425126682244335721205102192314782515635659388225187548021690847520318122598821873446260914912811358175888583732721211518270217576458684395599917583043566649629519105535778186329689374790203262879791887747987966437433456921854752134465679113377566257199933666787907534446687676793955246514830191053437180510943243487090615136393615593284382120103829126354717292505174410369851269213292268382486658520126140208062757200665528181172447498915231457740565493546227495675581893791594811236924879337863797650374180517800702540460615742060501900900566187642665288218389346858259599506132255103208534423143453961588863972236148538421457133751241755593965294461500159149594733400447949095640014162102403796949780437983029463909508118538914575620640125177529533413282034225412186336813809936741627591760041941906836861410239162414176969314345148206080739099854018273907488835537188896937773451771065745388145332361770802006894523435528211021411053990887532187764153654090110092977455023784395757883728548859734469974262435465469960618648203535703923895871740369706710815551668878267039658764951713588745906847913160237522837676649271895923342336798160216593138265828562141395996173146258889048730018494008141886813824029016151802689213959042383115534363764178337786104981841168127506337245085575806383498914633648773691267164144516240602426759160176339121466205396409584263757665885083891669035997634076402932336914542070790636544142876474903550343939824631675575519333087314093581763314081565850810319800374572775933559392106893326092170246740273719717021170510897793756900685853170472610488961238412514617616526891176394440436817590603755292019897305974440013192061866306067904449604805024459580164191812968835287781556446795269628645095406141816115815858996216200319463555683673342925148370906727349375807358332407377346489948911771018805757147014429317600277811214239412552726756316144323309952703761814271808220187443964699248910592641188332983441481673432934206585078380461462534946640763975327955582051226190128902221640389505943859843154726513155944774936323364877549406389784623115875028875433509813454731457259621976091559432346027797829644399083132211426257686402840988521425898978667699083385817043690194663180777883340333440462736772455446312597800747133040719029338298595610487200712236037491318857767151260254022246526424248867493343888820693443095320543866998150687425835730876120678424389003545665411658737103464993626875193598299818649980509186069488269383990686685065224183057073171764949609590601919357603588410766104316068143701134540734793219467512640603540893242789770017066474329854889090068942446980446986206397337835834963264217088719248337095348618261804724981974653771732766225995563833927201293355729869202233419270202698757692983931657428905524607770327112026445032168334816329007832315858309075879090538102938812745698956123903613504303646700998421193066145025147502173109642309771213335507418929514055101191255460680596259633535875998931215739586699337298039780081536140960788663752026061026551380883420036184867097230325708630255212599076402377090061672505174279439155918333687880202067362390106249101119220993196074707367662384023289526141595708746458826166044340826613000862296724423176314560085053446442156492144096510193325364522277671735088133893928074758370466467960643948331995492180890714376349738585750432319888294983805712511090588935395115603189622996373429415378015456015112805000706306775985633603288282427722928318042377404968403589458893071287080553242125373994832957893656515368945018995188346898929868674340503433728983716670411658370622706715305102222700755779565951155973761568587395701170403659757604007976791290655262939044410309624377985993619841204450473370827232331557009524194924136619472901532460286453001527522332986658529250971325161963093207721479643519659949158874391678397160017339573566202142185916757821225668004295983166585984226263202213555690926411268488392374744279561140970526247191925491366382162026272951675585749705051366382528741255429263672586406664083404906997867021737594972532505788973425266581440657463338706328164290075534210504730918495388328815687920312292869391435690355297661185160506067993209388577666503673470816062731580124180199321592128088716537616122706390675820202113712271445447699809021015161623354551878433828320015484221129947376754252963124873897788148568613635348793888811572290777959897443561987102300237274769788711585671648473395562260614174528942058867412553664623716377921562139172004392251818971659387786790759778083359431279575405417334759070489691469098729051318373731636911028373347814751734399190511314601047054410067634659355000049300003970367425703183376690674099898980815152895475362567996326943498415464289643147076241693314748575215578005457441614988687502590295237957660300275336851961955904404199759794826453626588981162668836885839801893318873402700029459571468529355559581827009311482954797630842658367943209365889586806633589440285733172135387942584133332781163386218126268509685330567325639724994928149637619548555340577297138479602646480911279959679734339922472486123498620358817801513873340212399141154884779817082682019701214783869968755073885163798095090639086481510453858230981010053396583779329270616640134387660893857575713966191281952715000400825772031879545205645628476474173328826232646129670259650290194004593626476477113436732628072547051250373939259542725158834032248221608494991548728095614269939002451088103359518750617287249280134396228036355569736129354146089119822969038895341300928928618707953712111913282809724849450335814747674835478754521214275933870667874829486705548442905471878135872217381025779439380480207046782509910651975088108123590309131512853256911012728741685025924609104230584234652544600235472464181639083079765083429849762717271307493578218429525050634451260844862606015956366374517656633521544954922201612790293069115467155622934714851947042438572765570730250777753406497462963196070952956978314157161288707995300751138783271036792604339542078430950988735722450850936393449663082316494387476658064744542914534436886085308342435893419385232363007085600503147600652473679842334407244119472957106750318418898644205030303852593014364570552545613030755138297350703261696919309672183501032309214170626698484099856392171499295933972344067368077174227963080309520883179678388381067295541280186050980851918469519784579790772212558403447324381132530039892479396753954675624315568350534160700888208055888032840281413116841088334993591729144875775461838335878582437719168186210237829268402392260078501017963305947196919177489659398900526428233720677150732552837945952521843440118571966080881595568363830962478895419425165384869673949051825315762428277760215043149966995223822068863296804135832729208083366406744895848431390130932716909673476879667482455682982726055864351953190078364609386465753021292212716985899288896621756677945302093047135345566744083529032671143882778957874867389859094714259686154881797294459170956667600453341465711974885547457051749716440864341769851066973275484582284522905484337286767391518268209943103766816239467670765394018452530641569335502047738103376662782227317368257540420408495200681650507389807797703404766634334027694544927750332272543895472603034301972435785353639061413260972602580658723336940455026697470597455000622921633508842903338475696062779513696784704268990052939442329467751260425981613236629955153771307465470708407341322761550324035278645068428416234631176418463673270441187101639956008998477087380514943366983663563478322722883674254702056894577470890339490207929736249058865122316335738775457586534056039766435269105803737821273488916465116559668506097566849045684845050211697979473481740994396902600519763207720510768878457388504036817189561430809207464439201822924752113797644079667771821763307899261673224883487644798000134210338350222325624866787898315256962396319179422045753140282133467254885675158443805595207258343170620365357837053685378806212516909989069709064634033699390055459004021492324739190666444780639319784065347965497009515035530119990325871523062592051308251099909913732699877700507432126230020969434042230320743046500744215300335965116306119765217645426994080705251269795548483111509884703477725966028763678037292113620256676715501632494131764318876425281793265572098254835883442797020574397427138696506443875443224086669571408972367090042362584910483974911944879192909805299044516133406036562885476645177588185053521002726222991307204552012096106846575136812733887539650119070724251161785511220137739776955312691081626753835234609429207776170217374936051079657796339533210259177609380721214828553018690006003138541520592954218442134552543173023520532814941699207687768559722622767147454945557412121660476618599871325117295136708140319171292007247462913903898641400671943732581373821446578774715789812015719526979699814178789723198861153156610433106528513985044690551949990057639693623337952434750428141632130627097577273334085421341431736693118889295426536118608591542710670941984289951669242079303501545387621348570157374295266486226940003531544772835479602975763686483892871567158211807232287275396891450143074258425220569466049140291571837365517814231243471976664042802666729135259209485030902186228981222442488715119990119756262519246081804522379909434101821836661403270210992409437510954469363915667148593257048647581423818433101556813131064515232583733890303106496622144627041824885677525783147655789968409313531410323070008254408310927982913069564411255392948401543962282815724647941733390698461373657028642003979510605403375255771222089003216098766083535704571548974827590693234542670269948298086975348824138790983437158889251905084859936936662531127900740954794768041155946877820728116555521640118837616579803023808390980871050355632477664277527067799569053792456633316309849810443661211280590764345478230476343525882978470911535739185883026026322856161566790935752497432581094627534522596945886848857832601057536039862366202248106957535695282122414951360333789141549687484029705849237051855772900313226073072031852827043701103643872650882453742418507789736035378534624837533474635396898509912562901764919492750455828000837104021751257258717875825887847017953188654576688774425985671270674288195046568688534257313446850265571839803499233826332910284942819520878897147987265612831342222524230704521159287729121363273740229430699330800670405790758718587029050359578460127370841555977672863682663031281106052420424055935872348809433185926338749663198500912978374256372192161594157278129621078932359510324584952667124744915776063623936458196623469464655754281666218345178920758272910868647720492799738811815135229809837737778519028307484140976753928789973207411429772864282497447754066892607272712244732094237297619691732018543137272550944807554937930093130567882939660168794231264262213188988003135417607239233910126449318335705350835546965452653122935571660539758856155319489028302739588648428435348034804944706185536050313421818915992186574614092911550968286347200242968604952156931377848460294471255033047560166892179485741138982549734411049348845447836690367681072255912546406165350972193848942627875527899360761676866473540063330816826138080343387797820645512922472711262994780288637446741100352117645782467389789528612008767879934202969906264810705804677996197903177002576732756978742054870029187289356134473973315338311565687532351591912732139284805731388208063232965721151847129579239783516793015053085399537482206631978530647551857177480142146266680705728068797639344231625591583578906142982523185959028968819907732514940506535782203135729500324860854441612388899919851761444515868834304271874156913166010895617257754021131510050277627802395248127153718300533088149809808890875182156548200230197234732809889994113019863038200035070945125424046956750998482220342405461432976748642665676540986636937620469180535853074145665308860242165297445238988660139660461081467495108448701945967548662440330170065470810065154634647876088809150148693996036676218199912974241611329110558950399901716508174943236023463919367985792548217248547419792230334771986089120942924122999945780153862435481658253643103697772292937479220106620008708660626962597580982952405506032037829738885697142931523502186026875844978997174223193290421652459991375532555280353069871614712042431843343910323739493492812402877936582423393103275298423134377362224437179972983975068740654951220230621944945247689627310652727108625948201675023027936331427699022772522399159102692633578501213422282478500976008329894032889747978026515311579077955125247245188123512376968826366662363617769311173263589663256233698288363718857772486583325879038390789478062251630464892646436522251567500657506147298350298391142636032330432987452443745911449021170988895852892838608884576760112583753666546212651142983437283722016739865730470369648549899434767904146465111314630153654837123833060581090604096643297726394756353449719316799851799598107959622643827665757627280283528616310684685029536231989749291807260066971697327445648204337468415105196473389199703203372087179690335669792323310725304110060476966010785807242551521525839116846123935814139083894587951721946998014342715740532323520396237223176521554861992956719863009431156977410463780257604561866559039591519217028961504430438178531186495530584836299819872394544806444691222225255769121437009771226618746846918709700578758833944014426852324843278709070253739028031577765717291059969384533090189474009375379085069657971874829578078841688038841775861374305683545118847500180135613759740946712202713809950976174730649490892128546660831359675818910000396660218942167720462768111285909994793058791483247419621500857194272002283217997742094047763343903319219600808328785368585251942174403397502597554342008268064553192450961823828832618847191706164907394845657374204859628092179701451323248092385035720408020523816792250026055426528412949742047675642832743903194937555701835997883713280652991537397359521846209782895065910670030617083026233083615723576927845241838406212978028992119768027267234875886853608499001273983838772225921985961655440899238143064653219300033553986993236371525597536796482217141301253176958845473211066402132532168281810779242889532880272479109552176531319282445292859136346671473998962686401401411550237668832784054368345600621779297308310768888403973335258875078535056231735673062002815179669913861766252393096018094945782041420234750719208628469463498059743316479718196269364173005001386950668526399026292927847759084389826160824398393694589829981909631749462090789478631554413978135732709852495705835032007979587311201773914720339689170751505600489042070870063246650569473898269009111435394695954844067510642381882125653409300954419095014767875671396500571095971180785608918250790496581293783339606174160783955450209207668392598750802157740158939493266308515680426429920633427348785265865258304918916041568567323640365066355964249054428888151976444645647054268754762078068569108762434317615035339299299055601248452164327385764734088758409353375976154454018419476693493700978299992757484891599865056390825558430040536244939494325642551148561509905138626383359999705295899734810158954865277294986695088503432009291618685311572149254157391343733233561504779464170853534802352984835449071360104087586108579635968370765895087808996000208907690817076106021217746778498073406609980409853358187230239414164155864996538672808024684225584874027326117791675962979777435925125397594530900817671757997804636310007320953663120964245828490001677994629825761536429568435072251508176998336778463530698000170252307275463955539972364392676818878840426082445868773911310879311190838211942727138796629466327231253166289851996699381884496336707338654475925235969076292684281480598313893941275439747007118154783439202616491445059710303689473941796527235219025533034091015929295700203946958228026961231026010626354579058218050442034148661922641580209241205227465578612705059281134211180758006358655156958633694862431962533641448715686502120566339321815816870400689415507110273214747188594564796050687559311832578626538019521129744357802717485983868906337662759304554656117655375123993049881262204325732226560469670388177666154405788377973438381312666924142322373188630782829344318049044015609425199445569464980936069586963878818419256391243057301661425271830260171165490816481792415139513520716933478428391259235846723189942295930349212102821591190133907620633688664869431787344385210666199712682685081603890601904074792193881662719381772879092537386013092301139298254374618321043860227237440312452099156610238127201628124191689507297055579386853111977316868465552387869486830113973723233399358754535061289899873733530138748638902351397737352269725069070774579928528534154968307673180966427996585929872497753034519065116640386803615446504512313253929313232083867474275542062019572980013674900983615010278770033275668425832054240777651495822011376468975157011425638441286740472986599033117856299071209450283098103423516654151357842442777512763969912569277652211773484698477916405273443567469566059485783144703555875028015820801691028780014520633540152210712389319323185580937266708566814984370168471661450856604145498197219169185892503025099925335148645982389815976243936001709215990778457907668258266580124566727835836544435173765269006690958563512742890567187992976830638781290301830806459348079574419445252079598295710661291583156566499136823107789034554757915215051176629727766541788970950980056289734224349142786761996265352386328376946051061937249548701554098889178935546950176374188048120154838346685135474230953625828447909557039076870373531576041481494491266846650735861880712727129994084339229431967079775963019107130609704492306328927998545954651909088633881327988901012611256046370853057183158849279099331607164704644504997104132259068519184117864226706395428594272663112926328426237530980996827079522752638474347743226770975821662373593316002964667490487666205233663103993741662835585414533423296280607202273072007040978771201684342753895579603446703509876620640714216371130985354012316392931625843541435882759078825683817446911848490714253203823502490300742302072746326536456980158019893369297274634532249918819310976697057575761494082163035430805182567211435539945861754825317171629236637044406505150744259032453267992784737111401445333068456217721815985356022565979681535776323196490604411793357722029888584620285380319746052474615001383298355773136922273670931408617093863295423917650943837040906711121167922183900659046129788189983765655227867125762233655275984986375402738262790294156924990568820436797771275767525422734223998106258942905695199532562293570044616119577477610090571996016377536629474352618151021539142832587378846604767000856868374766600795707611449559968893640521294199864805550560361661004318213447826025274514991651714468327485132134962452282405243117543051822135622126116476621178502533412283281582087859925498272928802368889298003451146950560178506643877957407599101739402876049548171343383279599559818212661257619847579859431789758667984151039143131430504607265702736575296998716261119525471547101990668219787959732090993425617957945637790100952355697745367769076191312052046726915154150342177009623340297542713296888349642358118062974852241801175170003072538497075804787537631413225978869198682845477517623626869000040552242174054263983788806922310100397229487266487838351745542729311489148785114978873730842300722225597520291469585066451696859750777907033575503059643920964894302527936019438119157815025838012821550522932104476567672444944346119937343851052737457342093402245166138846049308378210839528787285163886938997519971289707628791819114089909910381178908991913840545759822086596175103747164397774880874409322213842849717260179276132989252531958994471237127918856282728220985274938261589748288141132996850967901825849798859972366117793213488761350945363366471684504905896667941531407921902087556489016158006152926865419273427987421609280881702038273184403362159677489574122083625416616995631900382440623870385502448597650837275025224865994074380608629135231572615448794657843457636818950500339666279337440841392456444660738730298026607407169650136007275983148569326681431019610492970963806666760454847825792236816778069117865216867147666199604863715825561238548347987725485573104894544175757919769954846108730020195622768045825058463587625016644958211801029547936205334517437097856257856625417608754029817241498428398060613444943768570250616932866291177813697216806896186650059568163607306418128271625833663179822797158777137114214639756356907905922587308534718220105721170736034362134900944409424947926456254646556608960823383358349347443861297839907728101792627850127009159928348930514522039247897344500984284902878254789385038408895913004818793963287284841153609062268643353756852652546686018192202756694603728728478144402386188867918777099769224636419865429887042797690687343650454829588581849502422825682120948767881326545629940576944963721707989717633303154545972134674962310363902613987080549811178992242977842399429348991139510931610784612293090915418911285759338969724107941383689873788733344148174934860668572570646705452567792225745851533553145851458316813570905841145647881331501039793273356025959990885591526100617768750046253052721606448796562065011081032721811156909042918456439739350102179245083315409727107525283845081092947236416055500185538427544877807997251443694265323352551823518661417729500977295386499844997823695944496281515884795990747626829660812705449213987417511095669599298653729430742474444461741139711108681188211080492695290605625365329838666864980768764065422262823681322570439329084376609652027945823416602368842791973538343290919822159698375413383980862814572393695741525058243598511945554789669179848328697329511875955410092174721781917424864316314434769891928743685404684493243226965626449036155946613541630253493818567030688704006270149606744056513832043736445770254267969617820704840226285994859406311939078801854621882848644470968947970624332961800178333590015120227749004977366757902013322715175883996483455881312895932951042608151465800695570712836115864971151818644297013381213646248377200029429263759824749523288942836258471442085154171638576574519309732383624624977685937843319800837058907300671041687585431686512825125891640705823746794978920360415556491185525851777973116691778800176178056962922961170824553416760194961562348494093462276073123927088533769337289267674443785896842400626442015938864651791493530726492502544013281628977718079801255452931777180143762204480388373783195725920595445222825386348037814147782109791971575582422553632266012124512796701033156020089383588351910908209508935966009760726879970962057315552281805218375902468205991920426892503770069235781581011013599342429476179838740959905945281953333700036052678774242905651004669500040426181931719436691418951570456822952814821670132114920479770574799964367765025824240488799646101525290467485306698155810671323475293645512736498562781438560799534529636541937074896405729519539284483864098301330226045229167645655623408958188121711380345144597570271089362632205057335499435786778768837560064819859334346072770661438581780359860671806072088291696659512360596846773332342406146934568088128416485833271799622585712775893346299903912421070206137964337806455134988897304373704621280022755233586501099278058499822915618368406326724470749452266010807596725844334618204012397102716284317210116151601019030121405241172856548529972535266441302372016018449847205154924106609357427454806805830293105247289803027234523367634513609333913400896450768964829857206434590817054655596640467055003765185188595149887382382649869934101519389805974078672291003203802116504294738882906320762285489795438717589538239103774822734887096483178854248413722486718390649353196024291142400260456584199072042250765626903181359295738403119581270915230835086480234213170557835000590412590541492674063255805712717013317823010966151122048195680869209297508826595273133098158395629280431031263971738150749490859948504051746492740481961633773784277830754745574972717516945862264852988797626167065030367307078833022269534733597309538894667794897882853929212859698001513435664782552957240867570961622277088296866733583741770177948961730502733347963907465297491710162026116927929542977368926378108872169170557536116261991989864905281909928595780879464256560374148170917853914208459027946742215733536625979767702850604636571688511014641624753251334049673405001846584216250995618754428075871518969926943395261841486750033741940643090613688971023993643251816650255458661405819201053104093935309685936001111160573265018061720602637048983791752796551106304095627117154403525081860644799965718549142423383362044047705374109267752107112656351408333359669318214233513295755121578840627704057765483712668828745392605913103545413527471952917864137832361049398956509274840354095421595103319651482614896567187444493906637635974239789745204454493308896472172476812532692730214118443027611485062858476182762263189413429178975599339066948787435562937265465245954142624691095879224082686285866378406026375049755898760486762331602979311945457305294614008900895795343563231848636538078682216636037960842697682394634248454985980552318944810504524809045571071748663259385457291949725605389262864197571449573729183367554787302753463455861912844084679617561489280584337438392880191407498643304422996201295678332557673925850542368714945097327939904933645764358908990300380723506890559604872319666231044092654028252924614150398047294117622112528044996581457103770917903977479246697869092184859235167222252810323431734184922944935356076475329826564846859490214486885709577416626493119636066192700362948729326904738671812372903546806031008170366485303838764062749072809775817401104846810765195058543505869157626578900074619930219403727640247205405053286595196258645167035729972765641820045978584083141214089544160188904692134932498903251807968770187559113954802746238601375854465643668695554222931537357678237697761543466120588990833100670489351768630520540634740526754077464632016716781413835648142282414679919265069993067662410679962631434311783238539830064308943906544351987085201584625136022019702551925665538708608017969249865517827890723745581931443781869045599570181726289471869795151912904834402899629053840914541413619389163823878605179352841818772842052959251350731123370518817348696603100643102145765032159266237668576561975743592929315180900746870379929241737532441315135558384451554670045125786968288377303335352814409339451738823978584189074280563798446561716589182665325103095980912867187615971581890630759662513150511468941815289634105726436362946508086337426204629945962592798775992542870987889621308121967243231901492266031157970643810389138294915608093157465753084910521518745784201444346408620895518964519292325834807772514136857530712887015142963473450624769448571573057481637448860071218147825947427462607240361549325404092309689539091240315076576195659366858840267176645028784506153035198586423862880647363178163087549049323909506915073347434953460849010956614891991170051489156987240564547313003746310901585437083716289776287832349959189594558035664471023993616027658314787709910147490256462286376816345706791294717972123049258693590616286666435748943187433435962676400373218882302033939776870021263678759766314851689391656691076459471176772995139534911529629502232021605011572268018487368385263557557795041271453226185316138401192501189648792915512168088505683843369474434745454928897801739383404342043829714662225964632348584570560216122524062294526360805762658201040347005282647254425375182510688681465015368526245268449547486618833088165586151220319746594691996721999799371634294892934711085599622203998399451565935157907150257868925511411768941311618161081513974397005527143805079025224147169967293711492237268386561941840671042905474628800134138750076791745036927704642686753230440718136386603128593212875014103916584415867034183098625852289589789883129192496089194732791944384862680370373189853208227577493019579031665311454219701167125423406134152604019542715788195209944369798302612313632291592333858792661645922453149243329462369680302040004859353406157512381659956375975153262833539174577127037718325968151894524195077532465071602263662052442543712948913582613969090524667242098141797379565905569129610242116997529589010622035866463306980338948225775552955601114615880408404954303483499475657876368575614129784014979650061522172121831744071657060405707118730224470473623161440863410876493069535772294103883422532003192358759268787228807062359180853466386965915939861894560966957217708692775736566440253420783590535657476236327822954456977495607842435748213909292854396799447538160883883160436952417505673824927566898856423963820535964498206937250957277276046405934217405576585379562158300486033790986350351677929186130163305252058759208052627605357611585406531992747371647803215101833693282544072772519153988386161697015477525261945058491877783903302182057925065219336280407946299626233116186218320240074650398090608270979534843430564402164593540504311283437950128415377154833706709644666052713398905956020341114075065012769511243895670511142455149021716929412598273654517431953682762362517348868680551081954947354594522843518972089036180727220342441668096621726790539187133221672602927259945381092983081159346602964268118223158674735083342402445410361090439061518243333639562172967367763224672728786780817098066131377740242049188610573674697049423068644147642679855549671308475361184674770914351039461423401775212275038569150976296335931108791263822614565655843341041906974331498955711862461562328165381358486310022996483924119430545520667150007778545113897688055980254321071107552450735026716853866071105236683396535089503036220113715440686439634740913648282083308789273871075180567174479057648377622860336264010998542022992613244092038522910121514596300766291751817884346092432638889611780979607824668268720297145486981847767399718581499368743322602800465904441789280289232481831817142028427816284245171453293155237201271693261798969981307916108823059093310090076194039496060671597929694101375311090213546898285095834646658662481423497557448465671007486511894164903847594304196173276513040967163993540758115775509347202928587771480982935385784489735008703968863823714502481703669922054722281383630515572179755991386906327525118031845389661790446913139725528091381808622262142674711672974069074294578004055900282757339338732048638243230688982120770170265461767850640576045463343136040331687088004093502665511978613114993790468935809072484259564061057778127808943994441472616044418848243473453954730563495295944899535552324958110688304654359100388984513564730686354168488926759223000654927394856696722335529397203659673186694886236101101484389816374045258966788470966370547863398464974898340767696401689756410735320362767922724743987499359383638185344850296481236377208478110734670579773962128810553597130934711237921236575334300624185923303407218733652387286697453282373602124650169016632387795842831159884576730542734999324955763850015613200626739358110765694499729405587817858068941482035731529998758094492124129267765553878490850668964252328449671142467758900285216326819442703099564314496337551910500338678975745210600855989943567587129588972033740664556309000471123090209173963795864343983545728534311286953165343753607662617971252114952317040414201441958514523970822773912813989848347160244782529234182972154037546462227000881132263307557810670182066041433705963781062861003655614228551414604794884421095766563838062773784141544795260647622059489466612598483700311256180994130310563932661916532342282403090030844869608909376535260221086206419188818800184517704449706621072651951043232688389221962180428790181032643750361443848331337738638976547579344544038339554260936517459558745202786743416082087242001717186669383609163942741910682787078826060768383914448055692265859111555049487563343121267881927087901985113555938691697646788394462379791646051369933285701475582877273198088378154595803077835657773219216074736377683808063857643498195707828692881544585376932167530613906204757873789002055167688908713995356316889021538184381947710760473789863535844247911011225830756568458559008688867269957383032279778899412672480292596858736937294800431738166337106353971806601957090978938201031702527045938415093956221854558528630872520950606680704615904804087704888618571352892536231696674315865270767658950371727293725939617622259047396907569217391382860712120037757950615165758273233882213865931427360742943245219650356077098660707399933693291953358953983717136255358479528071061352421115108423453423554537290594413423048697532284337694200119345303283766318367270317172152428900934608527466658838696067021636254043471705800609917156270650542934567419904 +recieved word : 0 0 + send result : 51009064910512798686815329803713698960244076100817454832525341592488756970990846154981641878157549024961175080951097186403741609853685669697154650940098638603825705251993069232662656989149840638618871962889995853470687140031013637063208138744397204455271919869246321767018073139262053124507379574532243231562799905388621379966304695697391830489815636237837554039367047718322947995283210185612766868691846262892054331812551738148741524322675472917649497526551910710879564018335228520917201850461293914089619914469859125437841723161593354578881715765140458911431329473664515912176815239844040877928638706289165939595177207628379763558777398786096567457529534964285622131952371377453660269041918171334237584911157121116565747793674991466535157501136745640158234319191643994060981252557513615945603592704803658134208038524811953011375314701529828757718788591554264367584524175411580994012143306206074067059256007385263297098264840748187011793686965470058953529205252296173689313997631716669787921116710537414733945948107146339573050413872923286831121885800010686928642546095570593943870679053187801582665781226045623388957774991767505452682372486744963381923211715795431349740230853462776720704678507292168453082964544577518361205237680029960226885521354703654480567736131281321739864278856521112991844845594157314724029524949826750724577103813009035084269480789170585175938267230957213637652219093081225325351822581265206714249502282422010678123427414774259889197070524969613466485341654359367579355152073820464868974155119036385370360010937170090005136654386324562948738251844459943366908230849734130007283828526792594309411713831144210252364586728498087015426174459202266175504854007001983624929043296558399219363021520825147235490640027853096787759369774936339257665498748493624222647059540121892559155526902351894292411263644982724819626434638424577232484725044879721754071957651397661307329446228220423139475430136804030997978932159836472647590521527771617731129237847976347465548887675726518356324989832232545331158057401873182291327462059283173790556043332999064536744055258970517234139048117893332078915367791156865765666209226805944041768714120131492689548244619396561068876067839330927222371125988560024213154485103069031746475528945672282290208743496789747231815710380877882941303883740530184438661873515932905098412743465125026473065980107860537491644118131542456736841608592508160266940672735268259771860828295242285088440226910818933127432996053913127480917048220691653329299231589095712239924022157100076372607035805038994978591653546731760613947180209552999703732661295401378475950957090424500414640021135320808196412278226806517398610163784782726677095444209199716411321750728984418013511029064040620426909631138502277477748844609679219604819326657556564749695348171002265758497268336651562617023246550524682860659704158087350496839815184991887684232422388320514794128215693992467163765879139528434099975347498520217183233678785422051320757258198953293080785588471555175506035178548380757035438196437034069008416841885555519933822711171017036506173279457166757614060933406669387250368531374202952432626458829597278787758456625808474001760448891164385995327951803273790546251254145989739996820632718971251300551480111192814208066625702898433188620938178743116129377389407149286535131499992711800139573026582712920427011118681926632387896475421949464339359379161350820920467870193372218777543946320585395640993735003570906700243557249978609668757161074945676149496969423786484010881202112317648760978477590581434936119026318044325427591091843569616107434542435690178078964104544625513818468070196180024094334395270274392311130836025733190522330242762814232299619945719988058049472415400513740009528449221203046896963067911987502042625284373511935241801754050312418998404501296841288680377295119386080704659485575893038659399595375571344831651609827364695026367773776087962550313915223981426461771490929997342935514609661839223157356745821179685576962855116320771418843832704203848439646277577504517396593153772086658074895002191437908516946517744047057351683344128070836964971109451261015347244595888648581600664957909995858942463495925926145364474786015179012078999561733710669637834512839514729653872274076454294232675065835363090041070120487164662332465926988829473301508453818724446689288532455093002798734566624899879850849282033570967427365478106552677704649651726491525728461070051616089868105649244543592941345159470323526561267747118651971392258252315580838211786135215644077164929828798704817764113150242165036742235525881764153575181890507686610361989087890445031542909093904559463328164178424794845843341606894214696893729925110251812597105657805812628017191585732683359879358975807505678685909521973172965148688830588822763631304618601186273332076368158635817956667341777677496735844482803786542975585066346574869358059496238120834499293178138929940405302158202813607829524584063053075277521591359975259993458593115967221684933890363892031153644888802986364915400232915741808545847096880765664808542906061085975562780753804676812896561624121996112691891199407347568142887819647738854546600661935782922324501787825913061942531139138451029194063578131260617182299207072643675211863577156030686299507079192358572211157916809206572480472483637656377565567415968896069337148941879177145290669191767996923529068526212234550829682095713913316029586451535304793037178687205068076825916601731435802168083193306749632200946319118081562692937847623701271997047120935926902790563430271675721841273560930644443335927568695196942748004355225855456634948651972760821541140513435086285326406815475208323755903900544389200009276833782927468326606543921396786049101152567895494903001279744882911217300596705978855290615498516173569330151981260615789286003590130439250495894011438954250449502788155759075231676405183519448369007147401383039181397161696730953639287370829206366754052843459288232237309616942018700028597482720508631554855906143931225283477512216097963455397880373393435086734119013118310612803702594260850234652744062341487891011496977615292386013963278509031114900709634762833560916198221468939992471255936755910220060859185818283129396171654445949604651126544040596090457234146149671004604877834650456671310467514742342905917945879077237012252134722529880153201873236237886406813687412955658429496143144382996668194680807965475593475243478203448517746582595162043612272148433290542305837592095319415835658634910870419995448527522433456145387800143215585598823234516793020560236244953409559242210060880792184852150806873731955366011324754133149610380445652396532236153143237824303957241443085812798590074752081130140493235509059935228713709131249986242590656934677877864640280135377037628758680768713513671118798977937027016934291742848757099089039396939669078961516228285286033699800221718802359105915929410882390446519911846924962688922525530930415386264439901179228324718475094555549036775539266827985714189420414984636429798267956427279449329612569200458186470599761831479137411901533563220073777725864470365494894645667791733834720954567580672494475962444704678215433489694495456547786091358641431419533230627953042537027036742084702835164271217126296296564308324942318026270609860845498932062208667042247208684592122876828899959371185629176531483031503645376182779723602758014042530592719272166721943010742856316592730251555167094303002202845379360880932487915277143255573284851183981046326513137679397036703396946353039923064278371542707795983689586644542697857115492102517475465673678146064050536525358453416661359276703238778234592504655367430725218645570673955195746697858304422188493438695276245088406097221696266509005374729108942339618525409307870332647946901782566716089548973805709456745722653842756727064653454719670841933587407004975820152288161833005513921812884920324054986425258511591155452581744035171961476338336755997781534081255460403863368004899421650404705445489918079337395411768284468099761668589991362120285134622435682337418531565165268365038797266150105012392060902803002518551220904421604176225176861574248023396341350622578348523288109459258815524544116828598867982623919482038940327337045412459798803418134137170372954893234020663709479292317185525418706886161489551431967791788050026858222411578101274050721823970533949420889616368644634447520876577578015508952222538910407863913342220580831295171133922100373300530577152382535930741785201786398174836529208273617428798302026982642882132564074064515958126705087535850642251010702188209057799623052688085874326401766717973189390876282540558362626123265700159380487285134602108802876475713088535249436310442498113340620410395364100012353424750867486891922637645490821298770896786097806606273378053571601985008463319242882551746022948695934890051980037294170653810441182891323290091135230918662755883263052369437158499888558620828266144547710011934832613823999133681296473585926286846368671162375874913296076010791639000325929734468949913142187438161832339416247573401518698853953081604851575126399669166381186323494150647658853652716220889814471294145002875833005090152415495349790210735479159040781991576267845404903659613242018594385684842619123512341324652712278798144827324281215593707304251410944424287004487264591717515894862937281758791792758486447273616240208130246769473065685119455330389915783223865702131848650436850836488358789654578803994825239673682105003776016436994464183399974433191740110413665876468213967718840067600582831795568004279014662918114072286755569521873436435454614638091707546362229404525460304367633153965699997652483041747205419245759241831709718016950912435076213711164580394216335641417988252953279229208215273885155722498098101874866646482023208262957189841591633063428939609095769142943459384610312398985506345488964268989484883943143507681212438109473593614477751585419617129176198068397699880651680178806147563545424224640912329448218556727052326000101098013343649094916218573407342822365468496691630653125538185703767632130176538461025815352939081005608020614104818131760291140524426219482459202647213677496490313095096369914626386727313159107414711502832668488821069541828588634401503236333609354120887013351914397829987130395912891007298410382412207112313737991085495139032162986569457031807719546045661231725690193026512094853143425257659684104902831255486817453201789478722814594520889852313062328894383418539280188926378723069034986265825341439335982949359362762884331658621889957768517448664083515679630718680172704189271485748144418407791246122648873219000791325805850987333484103916626065847152876913942111814920786828457284893806988265796905014709660699344020037890029133149598368237743800668072688850643501140797520241222369201109556771926779477070539719867560372178280194531952305630766148599860062859869318521713227196411521227172809500484818939141479711886096748003356883089041379242357052690373497830559779491197076434978239381327696566197146617822594879810455552744358398632945671378222936946435252920313393127646819017148414270865310962784083513306066270793402521061737970162733124680560643362579941079693530199760154706366846081967479388435725749646878906293656180488598047003746991623755194523980548400582138412469203095936627167826998451684945351196748558566541090498599147607235706023384482309387399176426681682753176632287026957732470838079783489893526984041564075241248622709971995903196291214979412713952340682363220364258958586272117903350122159839381225297316710776466369874717761379196535087134553310257017173912285881599380629218604068641550622406430902638297519095168238568602465273436668510892220865264855960875139932122916573175658595978748948021681394802227663247136353759941840755410136920876552713848629501139086393987943204142133532865831487295546190871369449130960735164424435849443702462358089838240668737548684952051218901561568274686506354635176788278120713846102634258957166043639419007583434583052574741614763819759190472127039554775948835456923095319074460683911428533368857055974888509005782820923539499179152079800202441773038872593131227426377554146364996350373763251324204815989144274770467954487198598321811388187956560318062615050215581329067126148384469141586430285511697632137519057074952292926159867621897512267450072621490215353012728207968724503778215855818422778065314954150499515882634028035212933451638727530338454999362908953116609998279456769058873923670638024732085245821804881982314885232403339656937432369520244679856681479419951986195691938887804036961939359508633045962759864568978900063419354949317086990302490364311290145271944014302855387552132272053177477351307169529318666177699373354239117275425898826710266631971268748299157695537423145509417984559420644387746624321396664218623984667991395382762464553953963998232317187322358256585162344267346166084320507595726219179802485545882931909319958968597059981477533430248163535385618421088273535082110102454920889845812472327337873916529099704219432341266725748698418325992154664955019761586716228562671650267839012361686924390754178396929091458164356023639455456113882116808539295471454410491349673050891250625797305881038071601769581743801943133393904329925333023242600562355129422622741964675698453610861576952679916435724927289373123224319894780879497271339744023930685369897179803800323355956332924586245544612100968970133336066210608806050578583873717365977221553677996243328082909456372961083985909764134163199202702593067996235846200771257520585349405216643891376586009321713928205154141782445227103263810413052726171574944811143610185080466498731539795744946190630959209223268952340417944635490490829025024364953086487572536121776562955677316481978332484744230108798858480796160302433755229177654427283699790989250583504582184292355876252248504372677980775743293868771647915756346777816693487411279667734811625898882381956932580383987646994909934913798922523009661960967626726872724149166077446316861909538764907855130930301177812590210307217457969050983607105854550976949143182073422340875320048874228362282863101146244617919923258353139865624782188863359388271297071239288526715120194791277007693094282416034236164041224970867388862722354114012031034318597391386102876983091445324459600578767608908887742202561463553823862803127652318395330546399200181284864836355655160699585643315519190530997866679689375750076530959782041093179661928462323096334899087503051606862561249668253986609617871038537769778438111271346302276888967105860923265360106555883186888832202739938834089598953966023700438348158545696853076408234525633806800477143246068983908481698370777591019782580309700089532835763542820368468759663313914224947603323532195061502035389382863572620496176526291318324006448151424340592916601889984547064110932227310764812467847023052265453913843160261960981532595305788602139633685186626749398256144781695333872685570182115463295779507957037384317767037020866806930813592736732510830978598392603025015364542231725641686183277883448431080947877597237555675612162542755911832853215135083641223251598653386657930779269506007683514096448727782860749731530868716111006167385239117384047829376224298856369363189617959844990234065716886600214570128043635546787721221455995186123821535742426432931588556566027277814340360486524638529525318506140638892347914194633739754713883428352011905665484256094594748119928392291620325854796356540617841895993149586470020518855210816269516872663953238428457191904776242648458869636899806317419373124152459628078020224307779395088635179753985835991669323935971732309324962134812231817522791291542485281362862677493282161959605552766710815083059500575753403070357666084692993392504522139162965508096475497710108326334032898270412368968194141847957537810261772037442045924466402963235366080872158594446851765160198088159026174043715202032791124544382572712184199839074437948302196234540686381229492335002627209093614760888639011192355491312606924097098158529272966870236932141427694556615537936828222980943976971530385285560659365143824568005607694791712957668739083084113534691402804087212735352127152878215073455775750504756298148496037925737458175595080596414755753899323044361765086739370054453112099333632976417136485336434734528249034085585177386473620386135891119406776241632458013186109829814399905746840768327037823976738111722921315334804310696959156652761843441016096032674120339641600060904553234454620890465394031795300278355364192757954632558582962369267591687405518846336979878885307787485360003390786140924567878851642789878926183558481267588338337606685413425209930940749179274190347898757770517024078476151885849125663604866218115411392342511450679566528985447881145031579643475055693332046180009397413835977732354385753427527535484910642291078479714176894644697377403582768969423505243098838250437256293081924656365598849060850990003477573601348145022894008961219559134178092335456605542736375453273578021368748883040046087565199967762120066598047613996971292687250828642414534229293535337337187890656581239310376445423534378449887441364040420599727332306913311933116200129934204166279067574753319993381341565997253362586096791050428287782739856568736586160599442368433848108680252556660821217764536616139677581974335511669114053005658357722528195258654800096523919717391602084716586377169971538599119645642462273226816503340982609223407360384496867801220559567071991139833241253323559734550197006346162797796319794044691652190302319187738672007688422574869242771487801300452198987533777048054205167047896256702427708782291852583007954297158413629173253079162443184893426194903330502496130579594132199868713055419616700392471435919361040571981725770292458660044823928526498668233546946084081919086215769839146161106376498263949195944273121928874297722539988425929976049924840571557755728389629206494797469940193295320480459048074979186990807287888224483829077574326710749012116268219374276730615831928200605394892334888554157436927365611005718401329782236824134546535645799935773991954400748712946220600744219873777631205603825337219014157665360323903919578394567959160317412577115733047756889290414157688882085794350693049168564329442770671075982784372399780835698502884518275732482703761266765154749512699807357392637177944420702804969723229264060316270849577879153693086678552549053720985783639100043156901867232395995394703575105579784928202227874193916643725819691061813200371267721118377928027475287813502491806135836959328363911216890169849342616454274338694105452178785934096483706173581226196267439392394390300170354062888639781312254657052227375653951520799986268731597553284639927376561788398647252817806950275617101160575705021715116066895369254567435205715286534859977386263523471452622608189956691595817883870884416277313282587562567949419259188752242828252875612799991121456038038279724124553898662671434562857131699057097477573980694837298006941945223421823871603321532131369277952980125098237221127408245297907432193190561180543268391518125151706336475533823746574313051465653105338146582865284856813425778284441323285158819358274369663570489621970736858118112032326646238340566300816898908413189782691509744378232673368552511753211289287570548181169741989549912660957761512847727532460866930592754917118943802473466812547747340577602104158311414555147670707797263410827291152455157081360465433138855223261375927947467015917638425992271067228063326620096665188572936912512836707103658578231708157083479474673469624506537702143996036670239810109294412157022027536138289545491058768031548658435546310219478427259215566891218364950585424600691115671628119634675446631853611037159157669728606394139668345108284043929074363265415058585580662795283310688006411311655570705149067613113647111936389524984017483035545626650260265899777531951824441193351077489072229336236755072634876899742316118440185621853241078419790822525287693940283154620279031756756002850309313031220664978087244785443873385172370854659151814258573736532343746384999318552450028265292033876790918234439389964434933871203179386855863088535101824434533349519666879988407138634263091817941961215102106380664872821657742969598538074829801082307785496367149079473281286853635812973362032555852860883434390156238159909921260110564147633307027610073485548053752874712270061938740002429350001814187017718663801971700663144596876685639539134013698728636209568428318724087268823418529917685424810419615334345077721534655752766875653963681981319396800047505210312080567814260200237193033216593592777983607629401697177494339242378572766080316226320080587258551246847714454065876939874770701608162114233695074226983105653953365751033567721705386540204076794073176033263832622275076798382845105685315734239181706973936882823766679818083054016751027007533208153549254289086732210470459569081147128793408903090619774435662662912482892501711077817465883339487588374034116505110337445266592322474414683631826343562965962130924001852196234117256911727409078906897206201976865872760243854873049849031422614931335554861627919484334619137048312299549026904554739677500884676214630314864635204590516030744218497165407428114870300596061933684796217177360835038510904216998674765561565800327694537394139606738681003303754544917256563864346430587723637045389675890132092026693519621155402821507688580425466220798030849357013531604483317666563598659490383485151679273214922658821481887494042179206608446018736166692053847376910796607691209558330089600428766713463289915717017642722263096551374585411444427199745197092583720448302036067813648189503269625443656272079046183809799084105990721810979885865647602017522653595289585181168660819984826010699908572750848157252156533516461668006324228692238079630574259125597460540110754059963264083685773058955865814064788095202068372053666166363831177243498267311054629771588478129664329417604510546413083349786981088771147478949714228315382016629163487411402770027390131841278489191549254557022585675831331611546040177020299672148495984706029336049174859738991371202176516176206551160489172445386195224299485483147180831109146831430530112215339025025185735716242638642096032201327941893017391734600072960644167186766998784773900049342074080228424744830777087228683143746942532402386416605152439623888574141779462055243298358024515978729992714785201755862441542798055643060564612016804014554045589295521683193077197737719401328643522862378456682869114307814292644484036471932565270933867735717572110570125278217666817946340339289825871117725048931060152530180397490138287785803835420520530193667988031261221719964307340748186665854431409515960637818502093185738170650364582076926139077115675431150074297348490485714927169416661139670544332889996241847339196393051761522894319831368720480601070182237442801504104365120206520390157989978941686691101348436517638833339323007443683188505637530971337556134635926089717148874853524461090607127722506074040912801648673007580115577779201271143391525250834666471576814374981396132783650587798678014431484118072162225810442446149965328418458033257761612193615409429837369040528834993114483356034775867774165684935127988338814881232321239108803018165922869649675410179829019275275141446299947205718581167238938036799056487347403965222119828799656334112621032381713387717645888003325937148744392087344330735738301403625154062800656675491668046939603874998918097214974728270675627219464043161519870115598440920203973957318749063843109100180838948282164075236507285569442249106431800529179476097579119820734612935928739822542023810963294189637638933604039675896536405083964163296559530939796065351577736813988253359848124212038334255102327591769724323525068616480968719502387933625129045431258935393200869071585567814738784485172050883052696990255882779632178923082277483666768348278002022186492994579221871483768673796584248932335552709306611578289594631831291447650160386713795492198244093747394450710344261462177623709874905543261148246612065418008284577114793298909082689278883154731048230136027369751696187991477900151346422659827572077519353350365696433326831566717449288586309010575922599675016573788565187971491758824424479725375558469663252805239394007693372453456412323875609420861615509265733675827171857814498040073542024163498388022025856839468465668723744552463615019546067080500617455508141227998957950693856213584646132322604557872843958971116248673186905035446401430644872684612208889243585365481267510036534375135525168449462821490395128491091153048436082006649702717128809022503186618545684720066855157975721538498641232403047613445600475287559364612678158048911060854115247725366662034691326187488684787369470005988952763238986104818349104082291476010918572558343757625606380352447920440676143768865515965794894907961646099864940392365516935539670628857751641377017205255740775414719791237663716844985454557756896965174714933541412384126784502664917264322630583646172855406534474961691589001400367119314423678490274416460227283516881906818814543091599901761674487893223663381622929185995549781019523772894709991273227526653011893812156266581769888997005226463356063474727738918968192503694385202011340595059725198820335105496231613972826055422940545443345881576776953004106164449894723957224851838688282273658963086172946717759707994389212589845350438174087820961251647567146661361293915428828734044192319426023568920005147200073737794934667803891568075237446778961971761370575877462045996207624009575157177646873201455927901345804366750002044567932783692102931886169246022450152858963581270855916807101716482229047318000040851615792195623735459352065413952397754886930768476847921390404099310998346937071053645831729290800978761952364718113767676092642306876361546212518850230799440551153933885950033710233927787314025367180655233498580489243886893650410010886114237691273681009585228456588362238782491771281527267677536619409500023681247120571627044604099751626513031386803022464934053864805709768696438465996876478703524169558168824587837593714350396173030755829022090335825172262744308083579962033273707426363436470879115059990625758342249128693697094582848752005428116927814768559789885546579798924109929869121537503944395355076477078414756841936658220597401963802862397516930123808802998948583239228119206100586815210080557676968409358577142804288949084484386354870432227647753246836884163079813168896196628815446580860910247601958909209569889875120070958627749208265703001681541292966260332910221806165948139073290480454700279002919596850787792878678595950132553967780630669817954533695766587842271445199061098946059258693910006921997212831325762427127523752298901765413964921304932344041165096136185949769707036006816624492787750166251775455632416870798413314321465221994866884902779430956812604596892333696593774950666196411430361641775727815429293317467395682219883884726833455880069801928117562792572831255098505144227552783705008211386183282839629121728610742743095432498344474364059433766693357417038510485853812003659299573830175758587497122178992053543130891168838725906504444343384480496161273611118156189745548961734417126357475358019178949984145399563371811072227515326710479983495067727675775780965129983376604131163311697227524096374106955033478075520933430005019914144235658528947655556837215778338793400570549801150564569123054710511102754094098431187662329295691793768765519850742581477509977175038592086004424426397378013632564223785400164471064922171874878935963503351904254415682348575747277458769537287719991462482268820592024162693293864415883491392338642257971258831143862868244252811831963741751017588205924932055770915973719247274415446510200890310685824625325613625352794244970077481268299886321522542677772995230762627433205407462276076541123996039947277927731082590253262506760369966152027491711849113361794800970294216831092385899394868643244155735479279338146481866013995786179117739456974571551035097055089032802548547950300875730300538480886283804613484326840085645711952805044682919900733330641118258470204663002199832809155220335294025273498159335320255863976716246234216038990247961415143313434834397096763227078002459395643509218541225765112493481616631830453768348419455894128210296870261840314551983110323101330630261184528996498513429974023934154949706953313778121690506844241826007459020528226704535835120255609658615860132523301713739739751152994643844155532599928390165921103030567659697559529061657577845357373738302599812558119829110238044431475011916869403058629218172092714859794804915052699418260638811905973477189408659916250995041802289274649988097439021080309430519868941226681368416110129153993917789925049218554620816618214390866911165757488570851897148534606374329761438804284728955832993232602489850957983553320527384382107474353947805785789580234725955173964796723712384734623901960799885316606732482183387784235520440793295797906273250773360165149491209245271534073203396958626418916030270867252033077947812317035926578414675070353682401124737214336027832084034341586515608079008405341969416076287173450275972322623058946998866673525996513896773591129112593705982000900974180401507047523756298170423653991756632308738974474744788390904971918125815261044240799126413609128395439595259558027469767944106811263658707694685338303962477519948664249522746816689102335199484246287693244276165957232435781085317758561578629418317233312943923260157210389385482251003577107641290818995701819631138739605089467724479223324752028293858851300516593805176980288803413237301843866402176181779428589043638106735464655526567766373951412467341902606497064713940095178342568678322719933034711160461371214107510491752335076324776861718038309942375754857506690688146159208564759006203149157204849969238361055374137367976598712494038468043602883366681747537887225534020096805186290146365654461389754357463536771592972982424839113361349914886690744733576761677391178502861704290520914454554907263947966356078385727253886805757854752614737653088262607600559830178226965850644554253234141895180370724108412053524551632350126477619621375973370462311346308381334701585990368238272945197440058165903695947911526209431778308469741945441237696202888958318486909780589679844038646822014024975578409967908221527810577812809104326249693582641775466198473819463998266146947260412628289932695221715528835522542744324997148557552835097942345964205573555837342669814894997448272306090451461269033597170064165648613925424308968969819838510579371099189688022570657232690477769726625530823091425446875261809939472222249540519537009741000841202139690019126981500525837182090757596621381615404243919878198664656281157856980692533634347354317395038665248137927396443829035303282587841021540582782423822847347500805031193469135486957004198661698800578343935258990592601304459613995610453928986988149755536498519967096056525923415718314626734975126130248779943865561937773014702841882728418834492413584851502137907854654409189478728654564764832864375932493990461217255747376204777128221690092604127876776456305554288477586876020900884163583800746550459807334142338823068673382209912893727944673611095970648542054775784844956944872230521505257638153513434238336338326234532864963321245563801397056285736414420473446026805035637204298213630025924802675635234449022629110171677650895272954318016225862298697009192654978240134594736093391829370979969331693663849662972752869105133838710724519001937293291407894957746431229199547839364433729378544332438739526745167556428250986665091901390202068467336633761905486725941695505013914196241681773777723257750363332517701126357821846595671155571194598214604887125631917669035513763120000073780699807591485790571903138341159539197756627826904541892197402141314103509580288259358616886723258740116071314821076292043649601535094398754197734079426177300196559886523860134547441534746363594403838225372441468444426093865654403974327691950303885138512002729346241549018777785686324797507928490780473994778107127918705739705637896485295218291665124164762678152108427165719432718800865166262259730941874523712914490881805863988453146456936189358533320481433608627368168122636552287446502865599313165504794203091155828714018059969643343385324087518968164779797650683212675597999321089024590873817473595654930798625934741335677093702263119119063967864885432521899885446146001010902298673361076839853981023338037164748212880351841990670260103375305971336585430470912303825733389255246741664129221790561769596215695037047333399489385025586964419054086101776537366556256890734540520298776674070107591486870648358933847472681134678867750587903241659007209081585465564806316051148664840397082925122501767019556696681191868252840990744800553068828484615022840336775278578286386885183928330191198982837405316869947018873800847679669549597573174382222222095643430505946460795928131355596451367824814644409511805984933075411223632888797085299301489230017234832439384542899205931361860295267479107725423256651828947414588274976939274576625574121046680657033606752934637773979415257500566219778074395614263628988507937925814398457388645466275884640720618627376718156279000455577192814855658121739991682786103626157473289910599689548485033683156843842762968414360709644025300325402210407111229755615955674672991913291513803534250833960393069552762951165870376654460409137199399947131936949257422668194258714183764435485326470470095453260793099270694277241965994920948231677088244289150882005913557094237977542417118498752322896247211259740673529553062394745628768050142857683686589098383951428455072342157656707638092698008207876933731005695379589072026675017448192017934852513067286852184491242450316002597578084930309256965829439694244531469800495156986220040530874005422450712915492052126685129775272721005643186560725234268550749206466182266992401781008049554699239940425641565772950744590694670684012825988202739548235033046952230373600472272386759431715085110808616919965043283552293703089108576814310777499927281821517655232311531709665874102706867294967939318278684079351681357673676099372843895343052900203535404991955867026197019526934966244239790340857734942562852506737740371904086491114569615543490558556848052831637950247693336367907218354927712326750059640761454324467807148192468027092813976793705463537375925492303110744878436704413432539527967770186522959061957946786586421662446456606555837018564976226726856146135281261235142867328700931205651798759643067278392513937187559533591883541145403456699396387360876405903734469453894219024504224929389503881618948258615314594897826006519901679353598475689377336604100095656951893983587596957209185907689699049449568989892232561868120864716624831596982791581397092187882802456064515148819837024519041829103439356028891976522571783334095306228163068410630273702542088978581490410496126744883397662363113874867900411884842540704852948335769095258536492496734378532301192821653286014012156658946714790918225680375960496149257184576680981887788379532597369056375510138740817925510128411625504118474684994166138160224481438699556591984090874552935060112562101802229197548836049848709388476810831311897210343045312553691072792627437057875958601544451011050488610719329432926820698042082904498889551576177743973780996523788390011588345347659023745343453420264438737205844299072976096937492079181157028803592969064581822709826119302314799213463677772643070533750881681167103545048352768507983423666889644950260407367009685272383470196322908602004977042921623569856766975142894384341805088604099451118945974685511135025126954823293406427889808562340059589952212594262419295214942219392882263140582683531973543800029302737751208422220265444952108517065472127058066364754886838429438181595554527526537215602577406359157225075193737665624241288237959394311900513158628895111574744773490210123948833009399046093170100740735461681985624078549545504639891534533637882022727421001323444134711924782159347833027523827447619939128928998163130443947972019294719447768676476876466445826345908875322128397106668334428572517775258753640635158528419301466883826455483103404297975194930470370720963723735456268623198359848357750775521364171706507539921303057491888049205256360341979647264371902947875792282842008744046740340210659697073722052970367901327490457511468751814217717033854418833159941602255469830954032295169643968580749226427075756235942252027886488087375173361278027664684204090865382403490026104331844896678307200016351309504888559582305970016128784809688209093326389793991138772185672944419066457970849403083354218954345245046334906135386703233852720105533562980848838157670391626401577105496653065181306157700505731309839096331681415883799943160464791683324417793678850359988593433438311604394767654571451711194450256202765548298785322818930996681248395419287579940752827723235230604397488092708846486852437782861833185204096920062650985273911761961472003697836603180325462749955670803328285215818845442309279445304875853151553334835251021645449493511390580118238355523199233411811931140492345308475186936855242795499934188939718640982933710717082087805398360583192487489445623725802494152121559403141232507123879259808366284017140250102795081264494648086476888407058915730396193013493228053843993487600069930893211148296895473526115222519237496006188617738836766161359543394442752841934615217898945658801522203057325636729969080981155309876827517366913179455411213773711050624974017761962962397021423394644284864622835052124366722390269705123347211476333301090463047303180810272544476827298583929900709234223292106121825160919026360729545997734384167511831062826001416310985688440577090443407259987842909024335025975068908055553009390618625080357482041911679820395740937103440005711894538085664436537700023162130995102297594338176079732098316962119655744899573032073830277276056705722264368570173568182532508119310293607472550400989181069489765472388207496675002987130497748524577472816352130944045194270007873305336258983960517142220636665823171057880590524347296984821420206715011015229001306179985301432838046479808500244030603045451092808678119702495849826365942877432266798651677368862694402561729702569877498217275872566767958135672625187974336642899843526017574745696065151489863107613541205609131755985936490435499113607088554560087490555174587540469008159320318230436532767353690159571698990159299836684665340015318827325767869383338697141743483207262200176797767240406832113252577631964142337825823641059364773012036567281962252934422834402957125072564558233897705191873348837606580752724673753818253209851647678227419719740536759469117589557628464333057985554294781136503481992078934276479534816250560774625276208166311174734368308777594698976627915359312082028464462395229897235191308397099005485530133803546460088346581050501070425664482945406204796713345504165887061730952787244305057744307189527516203947714304099910208940196892557513795212592777301462406486469273293530269424978838312997528520778160215775638817383106373446102502735856139213177070263562456322266401520824680795356306284834065158986602636567584290936325706425878892622633820536011579268556195682787525630201715566529865407898766842073714309604355610679834035275191636724270074104304310464526104779934694300920228553998959496365166037790552608767827973777094641106546994938852452186334950555288258664697504950347850582300060415940013155898875899250558687922132880858829376988614220504065701475357365425406516546313361438963653318170445306165528018478385365410710617133910581257476536929083416476152598127587129387609879158421457951219542853995478587740449658828299432458856017848330630978513073896635684285056832696839696927201144700114631094597057264910559103944052796662327030008364861695733403815324170472015838391675311514605606672191394708529427415567737913929024778264295475668879680490861842720497133516998691585101714903545507330255770374032159201838006618963969552577075701794507097717615963527966392932494991641538482989741796003156205360356053430838716211714652143692681841554339485260612806401164370426727447630278318173099860703069567666541807706336968200535468163571888911196462175853934327044837317939792392645093909809279220962614951620595905247181122899608810024820505798874233484408050497432455311387568136214985876786180170605937851999171781054309608879091430534787698872484318710732882129596063288835707551407015125700359015869806615529191839136211013899664665439532308372083179440702593746100194906344093354408457487266776810394026605444834836804791618052282658819856269559396937415974705293485180892670987782593203646449564207960211544352933739309750168243301750070810053089903340140656777793616172189706912627612172826548287972330738374903892189821893060024097111129178336090533136998994323404658571769516204518473605175103402626460139095609647509030311080224096353194014862131540088922312160647166876052898929932361124994492285812329970743094033960585867166728619377184463151512603910773424144020911885545868486877458428652899566253504548137539135953220133005698368652992256777813608492620811551139037427028128415885944880382598052090978535203387210302684580422396549452298952943679673826642861450784866099469230095350196647888878398781411481787335965594807909929685189994368563334312576072443330454542818257826199368189090200767172394452499811186420495166362123434005710247067132213382055730475167122726709029154323780634836462915258663447136542087295982569433673956076660378484627194545608705927403403953867662753576308450284374962485447007037249743239526939358510523614908312079414689374131066985577878244783641992561806518849962175404728594293522521148965025891713949674192208447453427334680978887762567507832002862606335834693277619393023841258342805088420952508769936451477683537854532191151563637706829798455246494349052446869807241506056118158525862223950060183047707835984337945400174099201759683012174353642602764309782903059308818729572704795591162680990041395929051021141159938066662244406482629956929044649758271128489426051608465446359123468236027940711266082938050559443150170316756294677902343738565491183159513184465870661125949329079623067014305624210427087032018027444342882953767556062906437756701533928275298298590784497098550196613321883684038822909500267271652462102722566279701952485805818504337283793003395460345933750560718187696390196238692801207730901318836691110467788789388318517823016249718130675881677195268253191684218358799624679372057079417564654682417487533199761672903538152336231612231608710851978853243714521392136649873795924518492317346590656238798353060684646584148238190624166641695750481795425535365090001339139299864125487320509193853476744852878021365108076995277189672398980332708913759545975669481333576560125775291282765517719252731884268909840405180664179553455349166601349752110981586768981742837063899525706660509929660162942864969754039909610682125509862372412939216559186023350823999699595059143020014025501270091076115494335343772404102368047884860256523523647979861834687144666445628402940110895187527419833362865368445493020681274333111698737984363596999148756938999876009769765728986754874732751590760722326154785317421794053774033383774447771050474483439888655053026301921547108465962590851349026684005454718093000753778844588137708056281872931542423915593299644654691980074258028861727716702767087060541094062399213974123760694881543773088579378875097005018465273749912767138541501080701959936630250593276153231140060071457946812728082653501203887891656827367058143027890634389808989619646731442057459558610067192198588147964650605299695481239437447449275039593671877027434109536889347498705235942342082634096919659356940407510806698382559531591853675107871498633569626931252749154219241144947454692831381156194725471661800249910857607453467221224257185734846659167388261472983836239091957612506868834946880774442761409072459194897076340008684671283725563074983132284193251232188055388617830925623453001685991582296241952319249575956192993079376449091190028769609848542702833233289069493890256263565657238490745397210216211940181330357851483806959564567264706224629895002638515796329001774528166312263312676161280264730716630197750999024172052911640182196068040487125483730420461934853687728450237680978439561243975504779652999507903724513473809695390542696841731729501115908186933604049927939373264343322860372252181347546036987463248587465950339228854265459860012723951323825830018057478489627387781253825331815427436840123208675097317982673263429434582067928090173771902806137805808387442486261524723202509177879858319602982702639302755273669277172954378586433151813982239023542673758104405263581642785016721877357230522950406844223646736360331144242981184183184290414480609610380017118875816691835619876552460222702930328255966125860261702702828173581023523512911272650881857761703532729159979694177853116053548306399264660740267322471929780629555335044240613644004333833236555842499103462526964700799608674683653629687606830972467734327066861993106969384142382537286854350791731450541787049861151660000666909572007526578727335567555821504251835801384914931363076176341898821387011589150472428553647805625563829877137991877349028665000574720260703179814210701290004824920715650621708704585011203404639521914679796137697787660456122471176278996096341079786692353626414771423032975763467618244454772102947745599327445290046761421275247925097989281228958755668772167876625941420360311571759571680185034137723107099777040476506667549838879154668419682236422840404272619781029085549701907196687015317145702222252279510569549540565629697620901573085012429685965413350733870726099827575971012403222362935465193310692061645539098449908371952132619493033512874653844467786801143727167645653437991387115282122085786280526173148834427379041139689724947881543707221003512863049185133568177485625732363352682250138484647868714863823746722065708778200627954502962943687071274460278667884144643331806697066305412600668712475776018309660158855143377116963534439659349737100849168461845772619336927361889860625619756275575072259129007541320937802102321787758958809049822835471102030513540825214136269836166323156929993210239722336076613690964688637435009377007427430484942718556155854215922927966747023473861863979722984296671764403490121380059073226658540559464676690285121774614046556498302925849413331023608930418320761015378306583330035376877257315435801120762571675206608227948269369215146679051118955023429132521788468423515755073136319337433958386966676356214978386575699608211107866853565196347942653290191410905887509073931766336923202514712898263035528180419116131128911491894200622624313753339877895422866208222491392219597106910429585749546101525038428642281891355821066389990715396784122987494315309987206993957175914023658331937681082663614851987116828784622942662651312488980051023379471549542319386034089816748847199936049616240271644237969441457519263418444004662246468207313945219584691704848683879912348758544689558916159469289309590086878705186413115322167445093690264259950820137956850712401688208471559602497136256544151432788937253680972980722757271552000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +sword : 0 0 + send result : 75798666065398769523893572209567514117223208380870403613442688590032283394530740624014133419617253454540021018438116587077412174618833248854979148935854603487434013841043915518683583503483380869444885567290002346399459952312131772245042408522746300604407888929515877215952024615114815642506981949139720604330832452501811152184493483804131923241640892538151687949729138783294932275349940299856149500494488540720865712987489509780515031349236615719297749719505949593305106538038457486501378091482230546643487793331862556981552780991016062750482851038622587442515625813167898925859583915061914561015456404487317710682863474933262402516982419204235121353680990435922726718783725155619455098089934370798884655712913838760446534658373427833214728090699284820715048355465161034765772055247335509358920488682497024226360805706886324785082773459361040324152556827570949036697737066565464796299780766464898944885376761800050402757539807382093722116342131768045026772031294376369121087099351520739857158820639623518273563026791377531515358530523181326958713122539727992962209801040139290013681608691413038395535803566708146068049133138632693950416642408880644998046261390003246885040992470280512165487633446948173919303620257184583754803827752525443607161041544654725013344862181508619670681856686663652965853307342323237031127469389858223581967771336890701302027426479804835111090650829343672461927002483150739281207978636810985748168840132137233544384542730005247041327220101282791953197090976165186089682727985446039362200883473453368925002492825294799632539491477950903848891173015087212814815373861551164483717696881461943245581287481228850715563419697632709172471469200373648645363950956130861021246511094959085575737961997064553369980706343395530191103530062999096809614793943178509063161348641678885987545667853340299882181462719883517122255964986679230060790058117334050533422553187134850758833173685264655414720939839149918726622264318898483250546416838337231157188285173949491059305151007005432200588322605758144809313274362039335514607834101348512118977073160866968019459735302339115715898616061197234290314762350099529319756683362134636814465322015730197519881101188210285813540882682331132614968112171764347760990522706060006194497178185259316187155322591889838005744155992858208238358748016193905861695182183385060624126839165842284072455947132692264387505548386191808235675161573014769483887373738326345090181368477806219287300682038224477544256889474990794909117508986554927772243156370894322790959657310072673548539225732527878331087885394798979823256137962380331273650890221964673978550059141784409782089144091268074871218740642322936897654133691703649074244053196513913358957808962950133164965838804021449706060158351982823035227309699180717508269518896480843225980916253120229435708269770880520635261381906732291829449377244334293560797388674801992871618588295498671714608569819394391091107404678195952630074272006950425632821668401823825169851842420015013766785900039447532858168660784772615834534914168796432105129267360712265792754200893479611189934945074923396732892887157871525734249881663197456710519533356794294953852408807846527008951751280307294323119678601492120928559463571962921864577389308501390917889875749147465226477436542266772841122425157381112978689726886588586627641901266490748991648733851224993282394112974217974494601578853598086235348863932910568563938781338457030897025409664980859306750933977614433211070855310508958924680441566943615852197844292033265134357470038519169865584744456498497054820769226688853400040274589890501914128058240447031383894031835536433169883686252892899930258882567427148503210142178551445645135485145721604031820152701314824229528124022158398029958926107754530289974528848191398919612823697001077259012004106437632318966902587078246818788242465352455665933963379473394422407926381484967010830217797763559115660711020397899019864167754263736614042360580227518055675665590824692363422846062494371167724981361057250530061947363913916521314227520118872730748109231144762294994193897452597260237339921853597071561314033283698422210078119494843156357292010393931877813418980081693825623581444372243547129846334163023024370573025124166228773097928876064542579603835198920798192020832474480558660886982552738520553687222639163932509990301850633712718517105845390819984795916330569856713249226003121783728348932185138443412041896078079306241662676353118763723630101505843570758580478298958097862804968334191843435683137496347332427064358229825244638681649165746259756689805927464958619708851653585792819740184431709225594808123665378768890252210793790805568264942343702654007520192856026761889323408243730157282497001459487552086530473403825718255633992992195349158318860521118295178220941545628714449357350003102690116468659959933974915774547600350023457992336461066797803005053353040083087065405084328314642183783926345408684634417665238604263290932214196996776954524953446613817442357809255639540696020177534734197084398506622215269223238459706986177194526620346360123682843739967385205568662220415628089975448376159146184904345515100667419392139382418126821201124252133815654410307145553286819567555376756774821028845583885657569898384347913872894480977992336029380856790785128072550794768412225210605611053597057502273968837715632400480622000527295798405111031032411852449970176867152827352388569608384014693237608533742179638435088656885322606785607224463624812948071608166333036686039186662788218188811577217452719213008387947569272330332897402451534350215486435391974098730057735914495639594029064623052675752851196355318253692915139683903901701897573549211666944632944271567878623090500362931057650753296964031271996813236447453562655996379884723305057212086219611271088106795913062092630850812148266087605419535788836951672484175004703461342743749148142929484764264943084850688228383609408840398159525116695894055837987015541833875090137814889314449944578046354041040034527714089942616843040848634733451748932687430340120626805030074981463368579293223926225267984762946207544645590774633208072650122053085143820682387575817839839327033095543870931809312050157078670556401405361013163021326045438415765685005418703772430817105613605227182231809056108413850884294591059862562145691440591250462139147507477508888553060230692263678177717227683296410624948131713633997745285961816982689762825840333116394330589447088325125820041872250016702271504725159032605453374553162289007534239504689921816685454348500345361347402298737698688165682631925755248564823086594753186739860136320153473720846981094348322768942768608467390418936204019532006756201222749497360950276321219862959539381974550300564763951663084141338744303432402531559483917347585221671741918344361397133959328783724711193304058049637040035075202515351592176508479761772021750820124973489271989299236570700534815475429120977167289949841919448714199095752219959937339375351564877576535094229494403960516337736651036769624541332789716985109080163640334910122131975094512830549835761778465366660624952354884236763642482325561650546052510517984514895254991374959611754148627865853634051866347719971411200624460509876853357442441059073260746573723906146877454449972076887961730786502347692664918693182395058240934975954059488037048956436647195409737843273948006673102036970304146865922936564945102088676359250366351383723070526736209306341973412503418197048073263340181799192026082704169240836332218919915010549599920704763222983392293311415393264974493304284387985626631432610278239504533172312266224664832929978858561632702755774756623520947709005061973815575319080370131170642658957777944179952216262637083030154976433447680768879971664371116923466487899111097308910353776499350528994838606621417053174556218799916760567095332026211272707365137064923105865961419715777193966954369976667596788411360797610397105668623007551134168410424557669581774046793384437510011855508441721158465363647040653115770928567755867806687790407112599185151311157582186824286317582360760918476397740938554388753987889497968686045625359722742705614415222872241260971090339079046645150258400414742390009248698137232347385831960966889601155049206904046785540029122948566402959180751498968981156952511538574581788051424628246210867145453462578913172614533345996820757772641223025863422409693204993233897771079561232690683505887000035940800360233957545726287901458540344315881778561052288273180802883537228717153233418559598494721278408181037916733848795335774453679344094468763447452982126563583608043153105960359559760745065866739475148808699869382947042144154933496587346382365636090814112993420272773864838254137906602464392654883171307138283327775057574195970569328627226980084561400027398634182000667036872632705716530704203260350019542076410068591255904879756477383762147127938485566086617102538046284073716918352138703665919143441494810816923950468440661908747105694127657633530740659590862956759960766643728541618458620155999116374786743737507808053269614540281314549124979256094368909101503358871248589803644577922139657285771406275932582691629309691093314991581468573949752231133196346995105713038829466521478948095520250326068121657587567091369502583078261086707977954536626301809909912993130023172101254770383727337471768469581000123986176526476908058219995113272130002466618662015435524307133127725766551314418576332096374005024725132556744168579351705150745875716733504708935139575925691798814963199223935405896386836560143297282281584901353285678582373269703057540888901434657346583983034197882642283136266641183771570394929415144358541717247798361106795954300628401994300614963882026097576990015915384607406412792858379736047890832511745105702612027668408016843391276652650311090144668106315050904046047055109366353879316303541895604150285972327856821367978256759758415998999803335746784739998139322216963903134053710904002511031086415642981683920041294623360353013406660959779945697574589187487101446141587049444052494344175637931063325955871360668689810693523139180096949723657200583306083013560585357082647620538106699219697703818504051398535287017904189968684521977468690889282083344721441349451940289498742438019966981625895240881362364856478573972504178801746703786852949650811972994963348213958621183003051742011155410245842951752949618085196836186197202497163825150777242301467581153851155967752265749082767967827497434764388332705207729267701261502859388061108038361664818715518664288348138009863894552440509577473432437426365791647788610191543935855017796041131616111723331441458345843310300479826717970137039660553856138836039062148010980406823392350278812211294863493816119405581346900694137637449054277861230365629362407822077977853259247817482484387409912520677222233990100945072576954597362531746844235622651744138489751201608265076889617002129822017521627661727237593837312177371970369932961498677168515737980345736692506014389799294065145262790383948001433581641609126050015422231677740184346260549803827636691239212296036198935148799950243414589974950497815540966364266147197286566017973204473142011137077686853827123999818327461748284442521560781971170317204591839938569719440607300745911772132187677239088198986001633297261990460891517296242647119063292868166906231312818349572017882141137941902900293207400075996934734596320488584174678932295513414613820234895375800572317648953655844653926880974961715450510178184181756836083865170633211208628524881206253475463804032029305471922810776871247395852250457172328040221344589159342453949096657088569053197619080820356663708324376810247062205758960955251666042756428007023007739984852487107968259173248018916980742633741703700834750559424809959846491220764016521581208745671821412747210830990259166451985489776573186495728012145855802430890183629579266001243702141204674809720851869021656892639923461389043270483676182884330669453930045324706144537920743694277614185183766075461522242795193833042081887255715214434965847863288198313041449576584258961102581134898607538879932601396994700706296481650734359010169921655103586175879561581003000285644801019639081611894778115273877217425944143246597447846891213262015392326791317605461845370358549203035525703650501142887467022968545220379073288501369682944572594344143218302661936429053094153371389206989578467243513456147420544573629512311814455538804861926474027515632672483357607145884600065656756166509327664134496877096144649523647945534677858817550278386742355642030351384405862200322328903287655499242841246982561007762232420426988013062106694268089623590119699968764344076084973188622891188560721786161329038629148758594084301618018283013632332101608261932964582218444554820928387552191864171879970398685662705739156901365071130764200842020521047195802689828908664651338358281612868449615770321609168511344880681343801366040698872674379371797091316603700565575911923187816405270176527314262350534974297241048616305415119830269358912257300677744699770662693531155285911984895936513714673658194877922516617315054317513783098543053714389810568633989247198194425333155361929979925976931522576511073839582236144856236274566355105751368929330089633379157406996492022757618548836127738547437806771324366614951756379998491417865624227533593623970500848003347873727560977101547325051174445630589743512906681110293075487807337439922051506432852449852408300788527227553314505055750067214540587988324329096255219020184658527002645900596459716875410861833369618757115419591515171827451541001513288430172929040843010115204743964318020482035992815786775626089160225786056741595876022824807832722113109023812371704432774296411492360413017871197784937145622378488973693444176989545753047942056453906372409115485295409731761022071720808713905760224995624021633668444698224803093772097302095474177764701609123280702422873392279860314044985899654626496074056257579902540707237150227825899054508945840804249276567279778628587592951706912821958917981809271842137435585089050455623457945788181081305197133229006969990876770138157974495129315187471192916541548120464187844521489987343348975441019355379863948326659638864800840686165647990544695706144494655605176829707899893785766820752359340197496176173559153369304715050182442929044034427575930832389169162401342231881706913190342432926556215037238070369040811102781161544060213504977325461513532844873234105462102017476555573310491671282101222023449992564524766760944378568484645033346542791451046649625370172118255353824886874807708822050568208378937199681551846218053094964017685741272680457260041849470112398535711056813321965148171991776204798913681906597297979825297387637262089320187227516328170607345565593075264435124365100232157045919626341803492536144108612788003873292422742964306280811548560436301541766572267396147203359684658208986120995546341470705334307436748888329307433428233466247105580344604983312643747977202866362757039471725834417936113579727721718898994787599639999812764100186424775776961449031221986233802581515209976569302749121391668058900486567695236841969945854631016492236854999684046235353412812537127745724622896884504975284859342816904697984007618538980675029377587111849934529452514137413343952209075979065148323792702660879531171924741051706872672100720204798110709759191921187922336026681771016182489167964997652474651113763505396612576227496456948128550500202870806206193034491713567942995608814430080945433967130173351265799403013584439144797947643465526064323430270482494695723358315533971308376623572553304783376513292518236253988127583608311331362816492497708386524100289029701716531306993409060034903080707042077246849568358681803984289517145404890699019505519282620879635606769828566428618724033783381939512161314599920158381438736772257660333443862044467828795858867345807690352234270318282798670972340930040200456022981515167326497877918125916926216630344920612227209143296181386462867285108003262718722739406416648953894025210111617761125208118571237678057265982633927813178230253032422684637466914452049069280783528966389975236391313010637177049694185274591892758423547059958041508476106684761700925024020205652808349142259989123832793499692385391669195819549996306646454224815052298467643566318412083117367442830201838658959114827854697320608966945963069375678559530039543688991377810696837693523455222973064167882514758428269113333829840648795230733726049585505260152697213074142028647243980801650529783550781581095058622539891631860145628942132079799877460909422930553271411158782167960538724836125499719828736153272165805570657185691858249874166108207011775660121394505028717548090530291737986731846477645368397332140531889926887040427693500529701878345170569918741589869005535166824142093808984546468928894835372008925822281306660689646335970711280836725158215289826115542394831199022673292369186067925124791432320128117489633064347452727056507478414680419374096650713022749461784936954717667468612653044796638423351738642909850214122114140955367742252245012961060101148643150726547708697104414998861777560897489783317284378294353189724298880672993779250188246086956754266464999829448773314054369175306139601454857141617296879826629324550563715648933262467798866263780470436703284413866203291540986720168484552211915316803318222152600211669644871215503947332240474720874347474246762854621309198261978565605403053904184736045727620940631069886908359610574201805777285058930684931894489431091390153113932336062255176024648018467767386851466249259187872199830407796996706477683339816890498183027063427724697832497866130904588363639838214342819254877907954679523331068661149337984031546480705171607787288174122553884522680741218066854956396388766845383854693719307792669541853132079970861212019321136700255994163746573785155582580007224163008611027250304920169570955074679210374575543259292836313178209137041716413260512674517687738377051400345634998005896632472211708476763176038035899457975456598821822051830298145956288455301361498528183619536124495503756016233525454293620292239613456799059712155635447390510414434642689500556382903206844644375442429482058048345571730542407539034505787312473330441092684012145798805038102641071576080121797627433641772885229499965462691054209743227623584025192092078918768959944516658881296618860104127402952110432496259268033849742366770032717026281091171721218394392791255117470015007579461271822172748783068395089124467833142091047368507869959340836165540636767337572529303689601393686591184400310719840473377939186449174694631926773182910693072186795180156661708298684047186274291124527744965809716591373803987566032010891189404242838381274070132279603589556310406412980097829986754420439266020529969660649863026904831961944427041652848855733925260457639449465064935584835365562687197763390846485735922425903437600361513715182075892419296521589780154954721640598402321846945994679164607507565675002808640753028873375601077258343847194909645924902273393391090428072329204898970788341067573615512656728989140214109454705564072975085257244837251748803923772657881677855976714953265735671239268080076639975164562983629372685361075207746061737505545545232716322522974888512911363152651737268659727273869660599093767681870323370917194518019477821190254594198312009470384759171374063897764601428394249927154271852370846543066729523898059253611699522469420946398734733905742534972183358149233907350496777102228614211073344947255121144476009167773761496179165223582290967175739686935191068569018157448372904743256731097872070545064943216173457636552865107860365358801656513178450197338626841332831857345667125930145991077248245895285635614213069244420526394996186453127318640267086855728841225381738006492278713431752582087202582005681505956027431646364014363690529925760299126266739303367444283891199654846889451292402725314516017781279899417957575632220361522857145545529565240008124518777353989527550379973356833130470885795280783757990781494372384814437985082266706230249893866490798823836702159365535278060969110518820564515128883345830428993944452772538719340690638255007772292560499990954311989632888209255629038218833507938873286944422898882233926709538292887035682049650950045237384257291849894229977449182425557362981375117758620567456927055623895152081887130424179550767306178491528841762507263151262974087279977949132229074268825214549484856006019216602610663792299758046577671593183047687162524406522417605545872887640827379652149331354468079136870161854154975702924801072821693018182654650290861305239144681644733573666959404470745005347180140876618316556310344349673360768126111560132445098050912681506109157529828269868106228317032714913579648177417016809622141153608417510569258005388905032310677367250262567340157786601134546442911822295770949554318706621539270698666488520461599032251574893095915001336386972582563886860644722637236710467821568304236748628396457503098017562776984299994047107362186771649370663978114930550096786489584364454976232221685958897245288681223068496344405214494434762786767705177053072788555035666922817330323276702541599285933538311888601819544082717663045206540790879611859035201371966083755265650608049867472090093486352148586477789454392048377756581913954475444157826652678556649356639782387360847286397168845435242063203947682971149990851547784451676284333894470099236140064544712577208654900582788553874235884290772112562700529957238841297596661639477574654503441685026303926209383295695881367570596892133500630589484775551363988129962510976831050357380541400642097656168828828208178345909767488855028857311086205352194139965181817068551229238495980704268063834494824846681557527150578358228017501467720766240995560521400695487376959007190220663263602297989474261859859158493444412108160483190226542059364972851086504145935684599122050971077422952519110533307615227730740940582533501024606781387347227277920818789258244017147755878602148035484013256046470854421880623405597396269866511177597297689473942482210875156298578415028071329593344343883485320037097811097317827852556674030128220071924992718624160207480261543463353906116746067010677406110784063301762491643944547298196039728911809308768684342070535819131438732048721135221407566344104860780319235081136511009156261064410409989867014640356195008459346431101615561433513771029131450064605283659313513298785695241774233925460384386193575692116781751785697858037957213531874869249431784709635151678117335022386171198831447118074829302746021031520216653275622442359165168855299898039362262026633045472668479696836852075257086171781492213229337523868375509955595070898642177815914016286091388787822546124247075935972184823071215248732034016136343781883168652645237731442541961048061136753922792345548596227753579386049692837260551269192554126974017450413075422953170897781344467953085097724788017706044545085935885657848300427032023905074701361091987240318398485606517031836049492158308053202428118347616839798171315106726963833618005807120314784644567622398228523902569439215708793716212041864215961535213069673406837275023221565426356860181187253926848866764271322561936683501380575226751440969689267244678925790806595183014591751322369353773765843071822491016527740998954645579161555551080914293141695220028300040136314780279451024645694481661879390133960384875343205649615526923730295224487870684150893215896979248090729028375521153058871038184160584057975243413560330038422169844159166907362204510086108734155196328933996508828622004415431962164336077752077513363944572364866358644084377034474425213457019155798271462119582814058085207112328020797610665576105837919955237163982324087986824154373373248776376355516998585957018688972406969978402999930305282583731768932022100695287613504795204390197405685572444389697971960977145630977339853561043570349437561331171342581015862457215390694680400525220490881766000614917540650542503206682558600088600614219901711484719433503593475868312416444126949456058474274092868891019269655667093909905753067779017755496051614656193986219025632623960362148732608704627460487205734733537591017276259184497600084898293826635686656940538595631830764709560707212255873116187413055721210200432393258147542382528087903984770836268475172444108732793544627918729440411195900337561557391597455101879338093999533404902014208632758679405797958693982240515061852971330991702179530130877091234076495500023626147687842161442178245333418039100628699391005379601648023865657281815756124666775822138031317238715532703253793708822666619950281951380288301349558626654616743897798228564055848439556963974792314654908212834727188564230698622651096601722552154437825228951423687529892110221647580634073916956146366433812100639627284177544943046740441993121116730273195556842053947022179895784683361987217384478440729383424830177152326783666832723682425924167774397723873855572614862814426400295347221576369677422891686671225378453944720973608307359672445181497997477996022538003058455711010709296633958971398910014138072607868091834844557786215485718137845123521452245988179791548340848296469469816524359388873871757399109606367847737336526778859523452993632327368700879802353503027823428123808201166606239788439098167818294350247863875025878369324001550607303036126869832600659356126895450955421121590162375259718565429639314566658381821713655524071964314119046299965727951987412895823855287378655430182162578266410611685597798850371109459786851036425402131303540813986825723209463261581292411254659111667230100397628032232499608998926724976107049605874973893433766967672092490938031583145975732482709055379294329433036081023127221162940886553745552089891510286442375844002568245861980036074706280668935277881286857648322853011258830018250942434733095234564129549740858616989125829028557846498202072021035077482074615785730366714919366965115137827667857494457734574803810091025848000466126764127575953937925795298299635316005271863351773048294372245963503203698857829802798136337478397285083534062774901879603482422613544747688441548247682233617265495721393587072801832731887941311268706566444091057268052742497598747894412478757267216815217411422367946105397710842079505456850129994374785588119746250179305643839231728009780004136236775286782759743074149541082817734447525718028191459258133510588219061388894678169681088948621108768908539634155222105298621645557725908472297398097975153860940878994743827783422433770655029237224846163153671848779957019736009663001737146973551440120921079087377307157952110778974479310296849284553119942774805030802975380086257739808842664720095770529945422311293549632154046111854996722230639329795893808350365965383001757292837029391910730274032091051588418277732729906760565250918968899164821411877665868422266199031569773004084114006400611988495080448664856981164512363118384286211869920665952974497742890248123427113351713120486110787138271766929662535018122123142545182826199421510668150055054689532005457835385500950312658730248855179583796594244447175291042138636042611028185281496351233957674085832461728513020713943139241278787176851957254321120924418960351527158719432311681668376285986558423095375153678719068621028757870082198563163154872979579947107972631212251579789167692901192842324564662294566150985180093797701466534440340350357561645537681995286267357310595336693436639731014901752271243766098821630480460622600823574576783812500465505287548711748984933802220506338012226966242843163415913067441048462117600369557998461086304152011791600349699913095424441056304666618952711377398548621936096440826014310103778304828317827038674606083618724341038763458512419239525255206553282955790275353498875134704187712944899641884344954593103314719933527253273453396935147162832759831299797949187841925254842361026055447512472897025513357072029519457408395025829667571348523796286696587541361182179029886478113680117292591521229411208253638960294424368839887273440634815435450952163527609611812573002950203897471716416827473718001320758275851948364545620619363761279664441998321627648591294553836482734711532495212012584454713194074702192207534932780113782348842340337755347914872275451862008746273096147354604483578501333049416741919990427950128479356998647508785444596561012446694571827563426560003163418659680945383988272313224330245938642027168277536382312465767534308193567306364570990589389845237230226575386584229367410638401126341692423859882278507823983374095091563724952833053288169239346137264895255558450375972205152375046258845492795587060740693582302081447245844191249408652689185336031530102670600772457197614889454453486706762733169938021160720095637285601492695745804320205544802038406632375811049945370348362294166090637749026745379008729743404327751444738907612313825465238562953231745073269702061151496130790997496400827653075770708308095524775639626627716861556413441272114639708245817566204742202978343220019245473927212657503635906944119201703203400748246715052469700359638010266249700916983046456933566128012232137433386266003198574154066451406885353812046476299976631166058827820920016798815892677719661879115585964099597376333850954235420876183379140819098399272359253094894807259160678524751245922895205784569469026229296175820165216700312717375631267052618406133502381104381248670620624281296342428996430770577750881464399234265199358717938800596858016633400252128224264227745497250093119482400383240889798658724049482215076516444313259844923473838708581453998150543569886442906962744374045675284704211077018195957876968786118410945293225428131503147313520818601346662773740913841974800238715431427684843200430163421236910221194485844670018311196741247092376878709363599523099697773044748333706927036906936957710106366772950079962117281661307168323973410287780351607005027922026312610749442822472097461387184396092162950326919029204476149861286628707939316293636399810878765792359656300295854699448221327929441253577548154064524526200752637708525917296391282926425332339170139454830975116945584086980900690157841594902697252089877613035678587487149645859319108999804362170283796550008820208547110453410818885336722535346679251885007609723529008777457453280744537402769443123383954322042404191673538402949885212667859966100586331433068356704921677409343415625890207868824971044872564200353553007983984061213142247069016400237147019340326935644407312891041613147797764926184655363725138537975366021361895943677282782963867504767410867753882822367836599548942040414195470032451288020500888579580432041610684134659292863574657478645642002090015251826054918772468984215072910334629738555966049613115772549319578774585084767187799509427274435949648188327423446970925459546475865425052993712173204582098412261445257026616028309529679526974038257729039445326566708846832250450620889375686845281629753763296780825137799285046559717950961541880948377249048932667620945308850543497803931558102138698935716478925716626811616184528004210560522699836743888497843364025817786036667014234089488106381896525153071158151637212616982894818738757010849492490893940795212679177746264022972967291772385758492519374853321919883418479558062609863790037875776485383701638484492089475460277843479513068646715402786732398954982599747549290167616884964400412874692451851703643350181380743558832927494298408712748111933270235136443969811388040345924096530348165249606615230648498973089233835223630121485820408263881137151371215551391347015877396674384835199371702353640005633245139097893007448609684884942978266377118856118750897602030270700598240593566046441342911549587902285538639200478803400130506131380651805091557614174777943498333481397038522808383834350026433807781294650171637513479552112607275850882592937874694413121820057742560729248795355150130160054573342173012807265362964170355954967778683051902593322629423955080684107597350814863761183489987215214433953115163127794074579623490218897236631444273081157815036820443062365901828880977680040490329643084890444279533874650117689368596269659422973064262879135595743604384816810023943428822238275609553862357797447257452424969995626891816896654021035481002266611822211828477015817269889801637124423933695444975299338154727106774785462358840987221281443541970551919565537567047779165345086791707120466642452655140122219198084220072212695923876908456406998764218275029872381046948649450188618149927927876830639249902794309603334059892501440691234519995628465570711834092857188052792174942961487096778804825000991367222601786558876473227732208044810771958829780464011363010518048812856968589838823569173513600385539491066253452317494062580601233627906064047642833860564205278617438009719622233202414804266766899110359343501743929697502270375329614222807621104329311178684313178423695033968665393534701613667010000006166138546728309339867263239153915074170970128577185861874853459432433421227023008469817775622399188397863666259144778331937990162455483794291484444620394815391139249764670477393147262932339962211963974027534835589406649078250531627642877447866667445465963367196300715542371931967387398670906705832922297589852891809317846657311919752656024348378324028992494224957217069936066706134309654439795490472694758979763059557168825841397838625429750260920751602766900867025949348835994028053635873504027003882381376967200778293576134758012708014623537222645243756940704142684577251415384317741598380952119831921368071618219415824193514938681394556699231908874630346660337637969000134494797117115356592442122541151331220637803826734906817791737248052455978292881144428495169069749633264299599617522773100234925976638725817068343915169655414110252527153676484951605995092923491591130203645468735676573317807267534356457449896476609830837330033607992457200274094124625897631789091065168071280229374027771935614371076698765185813378906555527187636990959165260229776269070998730250308241253395111677389321164942869010315269130871436840112809655463821932841776073238212410146694587012751048890698913357105871564065710760442911710093139794213623516219765377676164032605690915868766109991181247749767096107783153331880432294067617538992073762142658513844447926733742843248046950523503391993160461097682651627732534994669796256967683053531811415878934987073701525949401998349550785776371981498845550377401013396917592422182310879204171618668062289829750771137196176866199939763191982277065704832522679053917276107576584222722833618586694723384168300341417339194657865327749891958918859402332080845358345533565296330057006983875909349681906620007184002412542423307592234389587029473494444623582963323941289544610536976930548017399841159787851587535726982994851835751457923561429765080707181922984917402810690406754458055130430643357122381262937834799263932915566370024946751071062231312513027654824878434344919498877490319885400005999389107815119309850236395884489846651429205671480979136233446677611083107053322249733782886154877000656272944599932587260862500705686509411362025034172611357963809083755128413570938624600409484279330935266636698861535574487069697067195098508724211439346185677523327431298770001050394303393299610459092689286543195993485685258556623282780788867283720768810451786091927081125440396274179112507519671941240321003025730591845848913035233698475521992976866075990024224907214246022200776876175463806201839562899437974751825785408987638550333882043081769622263380051870008677264996379251039810474874615513487033572516620290618421051380108391069272487281717692579989473868858359232793981087127797914122033652724502450928893109382881589402092019936346564686609924806227495215665109712750651790904124066315668657504483360288524209217300957842375674767036750309125177266132148267110894974306967103191041893233912533798901641411686889907940655996424672049835493048282998282938576896608097562342120776403475558625835507498198042597241361894503156903551578155662815319104619390179138293588603405612652492775029476218582712822163117126385509160167543915953549925891809323998271366884181485320925471695294450270141890865079778605042883740649832789829458239930197917841555935774668525928629420272592690379483110625524912745561843040479524254872893569858201794017878704513202539977187376845917363271909852104058683900788305139764671039976462002443546563426682736138270608225560222325486557954578286916007106087862010207141088032485959357194158035830017645855009790151637975365541193170907998779587788112340062931136609214690705359302364655802225611190217661108906340750177095915890844137476889831648742964090159544723847188253474567519705074256999132767411887506857549271251781686808407706556028626774750275165158612460621499989482082160444055079149609680291942865133660116909500603245245800434286819202398437731795327430843328542045048721787477014771499198280605202497505526405104499598390031194129165953770394593642900221970214133335304236278078210711606220954369128165195706437034780917269725419371952783568322645931331813763958811963937314748627453523567278244736976455833343405432074279573052203958024095257262581387754179582342769306582391946093458092350255878366763606978080142428086602687029716836447544060793649883472165788819782581071680967798628238117152976055247329819843123176091981361688347180089582523206932706317893531969185914211987984656686705376970505952383871239683694909924084218267813803370941561772190852320807376982741847409033231730239341921789425039568301851709664229745867990018621620215799536061599555160300801260821983924151260269776024512140346103074524833516647210691952504803621682411266618157101205650583125504986103788578463112883915461770091595387823483904161683456036608880571670981339605868064230872813007942390360627020540985994442038429144802320940006573545696435721643304273533661623684156109861327562223485539237121041607799169106023006186246001118554809348549551071366350671293467018418266594658325821695660269299646884507109660443778289238519813966513368966838749701445492780280371621050142919960601847684910475987701015497864732084053389571790294980463605489806336099966997637972273254744479554585035011782804650535064570921808432837832533104401874585959271019005343219000521409115110558343583443642465089340709431734278214240253063231939200211564303067437373120374628890660843886676181010771648067293364712213045305796748989982506401843901765313213823199339593529032495181070338339031744133155501360243321245566760395626874620753196233971580063259427230001203825649626775425390153584710886539938620461540717772272269332306741780609705378354173133331440245575890031535956434236066731906068292841843829018106860815473870904295177193854182199093230604936985638636137054879907250611757406491689866381016991460629929746048110688630663480281875451506373936262919881661716374129496312921209537191778064549258644097936761029833922860399957913540096278904653783181895158752642039351221375338884473284701097106650871286841911121225268119349247463893410006103862523101096254732474259542847107341472863750135808917110064555989306322452152812291437024428909366499732172919103628780403152924071102412602754453494675166312370458890375555678341928991887172769634725554291819227715794278603139247959920323965053364378176012453576056775303416535073923602882896449032052929326781168366663730191834029674645179255004970082524655037277845893045419395470001301672325917283555041150887299601926710875786424159996809305720580817072608253742374661097991947622527765902680451538865810782385319274040109364416951204152334448800692532895861233038300685687281946887949907175883623258707543729404816502498227743703130680178548862975358414286765910199189977115870683206666090602084814280595565960255868743685581238249515741952544242860155594126880451281075511414847874388928234053439253173985285715249764692809171786761511288776729920618412288692185551012341986292442194235854758695822218482278603093066358132382777899597344892596212418623166518122374295830907977253785938282189998920540738210290848540235475980534470444174213487194044540399360324033713514790531339475625254441321622984808158013745761913480096637396120707816036423713965031136546732011922504337410348164039381084380405332055079067389046483208784170605136054981903157625582642835024147623983671262980196874218804295700284271123396818222022268005250951277332836396103514518961499895152467957606467157814549031181813020559531504624463549367026036174111411215685131787962656427653426613020708662135293647146702503649900922918401941152892565150762648506411179699498130112590785377829703519872438091033886694052286278041339944530082334287178986164272131198698279717616325453293982581940941195243349254144502414409697201556232675488077923417916649309845897257236117728789549294865554660708253956628729383606116552236069050060117372570304162931279212799135021503479927749628131920169044904722970489880526684886902980711017265885528897137140329925990958531072645506863906961969173679415700352923016299366989981151681308960598334053577155442436830637381216903005554008482120719745081862611885466018636389789407149376711558690394692383965702825240238455989402114630720932318294777589126202115606897752796697464601264919111403180165575705197921092571196326037339157226951227333128728734279373011389786155964232913812898305847824510468466501314111559469624656934792237635089079452321899843229099961770 send result : 46728053185869353673827814742326577268227862653174142512277094992066097512805086566534785929971892552185513644584630061705684122195548404062766430000127479406895945343735123436433003519777003814686961320931736761439189375234224486864122696243499758439661798164839473111576368618389895745843691326852241967144565211526794473929264534736188216484107215247491854902138432834307936880994004421870608069411996328440457362629197621939665680168787971614904404397527503354435423958300014090118193072958872221242427355379950222159311324524444555880946644979589846282421490689541593453460410385147563088257817583649278641759019658366879226566404496905660292906388948682991436244144708245149950378685111402295018001763461485945370099899591192503154859512611269910793862278578658508607760371826472008263139442652780843237606244351210584970527448112105713014257849742216933567980602507011964798849655162862522557724714580926631960601101963703761503728589295372294612062018022200461057988238953621380376096139029546429718409826692296147444579924730549517875515470676858180912683307413933762986573434276214025552925774857265890111166396183792423289036324497211530832871693801047214615212793958560994114361976761992570381829027821536470181214045422885949927618358341878630692135034695471793414320419760636054235381448476057520696690268496309553093370799975096995838337383141659875672332568438783755385872545996388824479240917417331936161179103043141200133522350411735659188746490664271637800899675111603371024185978927932441331179042768240816821132183409287425777937606890602070713404910787049565003909940189182550607000488221661907203424755945197406302886240183452415481505632671351718882103237597869324340124691745496462587763068632280239433268391658932011219155848085176600828340291148484283974827790167072105739996868077492646836728349021065026477247581233903878311536029222404745802017302894642174727765602323512103807941580113285916586722523092071920154952110325556811006082493559522106953534911779245923233408913199906976604232593559675405442214568665541203261335861105821660603387353247285256658048855388733215519255473360977425467098762924616000819847231580660624497218407073738816742756590038073036948012935973715846943728517945975581905948303500376782631600782946137754967657553898439230876002958134770073274171490975082197643029942815610075543701448634552635127202050930988956960569193883006897551608716995529127673442960994244522727352600777588484167449615245557476455745311731992890440037116216522665351199947316936876526253247425196727305770559124540010600681446696507447822171614879935467073924260074391816641489294113216089151476843856845029239772412280655803519832723249915573102865344775550754293646790470617382371960402520005614402935006925407261038927012388643125617129840506313650926395866116811646274860490456246654188772618286483480073616523918564810761675054403330335670622517211375098181181430192944537057641209564578488469751661980781628302202632096220535635099188874679155197607192605182636993515951805235687547548658728538842443299828321325321230673517599511867171327767459637888446674093887149681374000722247577058973621312065776573464302187459681087097253873436069282960261625517645487164155245699592539437143200079154294064841921613441595263676288998927603523253856427463481994852721884012003253937766272201654929280011897583563926228788716190144198915261910836125383257847806967597624230921734011448122699275998026535619594002557178056068523402445518248150222467366086711230652678246956855329127950652869524018209467685497931970969206259418003782715094668422209205290960227504670310196613301089312662855234075875796389722086187010410338025755513471607331085727060943260587243623805552618984220061393127805748026741031791149808378531483852581051728300494319874464209811383133722793201556236126829170872882213382950923520113907892435391871047731270247140445416772254216172641484037129286851907900492907617298880913529587332742890812822188620589004827109784617239010404863300299392052147406405801176543037857482759706734633104766150932514072485858703388805253954883785602240780755160806530138051274753648613228920958316814734954102162594739643403726370949370190942859370356285609532635237573998002115302348163809657744808206248531751510003158093561935127458252579687979965288430556951422669475365928807830476193277929963081811342019019480792036271248089305716936543608329826404687305168515531692979991496003237468534701060070909187583560952606759359291687198428433957090542587083990155256042503504140021449640213063553055991176691832029816385837243100469694658499973676415197806264025456175053625687409303809732675383532093669820854085714013768979144141761480579618890225391285509583322946444646105124332883744165963446104168336892061112866260173934694345296688454117094308798116874010412032571008979539950223341114298130911404482864453726544152598892733545967890531836767363892250958704493793540489415636527913518095772725270146759045595150756350417456501458797762520051835512200050113731551025568462293962896327754667438812019735501685978062283897887774386973367438853561948560333132863836524868910387916928913681746029042099382345444219211725389538382662322444697651382376231795539482525944882920596195908156574249973425675229301504361992770842049357654783519551646016113345492861909424663949985140250257002897771676709587424068866594695895391343720952686188395968366721001059395400433151004002963705282062793876088819480885531974995049777646525486294192631682681968365053145494970216353362624091366450706855835405173932549306981762134477344190159399205163532656185516991949240468545963881667917983723619443742385035284524186443718946169332023845852148793249217285324072413583262791509815081784316807405831528885258003761095684623498882340881696662036551192683269430905639909902880237875460930491238422010203731613172248254472254257549827746015930942876129630458503029203625958497336515774850721423455107573935197346606427154196118278739589570209568747836116738089514712498482040702154326321783005134552749855232629499830618372309145499833351536640000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +sword : 0 0 +8579311960115863138294530092891365501023450250058745695079359279548142729597018873068667655676298123919298970869087671818636051370607423588427522444927777638508494638813480749837270198819750088261463062592102754574673845994032676250761891273095392767802762492066317255957720103787134459970743277917624804169675257819139583353144201428961078262655029349735591446218268489220480124076322737201443922485465166853704345643392213083633677375830649923761586815845106222557191985386209686091199512433728256747994409362170893398345541025492396798296727671879541353057503131917938645173049480273769823321152844858514967970657813700010603968135870706342813101110715925090914615146234008780795749135862528671749043257234230839245384935211434315624604203895885666228501344849633560411426404225133936353165618420049432501344206823140010525041284272636605081816166730721710268103948317917171856351979740763014313218012513850449209044403874815210034593303763751834906798658598028818250402858512516480881832535025947694617079906109515026560764969293337506606865657637028953415767446865560464485079846066771609779147255049529656646749886032280255164178711990775446296366825881595904407135582966665990540969677373244670066004973978094064518143797134359646856243426840701745319272659409971208185169170010446785676303332817151842627156616812891751175815096219317311148178436172130326793736802738184020514201523113006766105999990536812698034564470006593697754461395644185914141523741588486003396032720036719969314469396403883525059395024377126830320273639927011913467845394596434746889385832439833216089913466361482721033974463952384018788649086975896748907705356275944031320139113293623425191391232217252765106995555395004569454285759010697153241644064482982740931944724378950426591646382927473856326444034535948891530641424064754888806513378840460837133257445572173391512829597101536996009323248869929120105055577945438890690085503127618047945267461448190454980599661846352897570495263990237972340031934620607034719133425534316782989984744750235262346905600566844654867313509726059675444377346641476737853511492164425270487459444779353081261465812191865337114768805629947683254110174217574708140596888644769466723641539893910428216180293118369291316089066572915705698903117690065444238402495349143481522768623982610317540984935316898156707699105686166055784903503890366436958721378709070853666717908911492456560693400834067368160998475856991512607196709047065050380645015446001456162582217411663168728603824934875271647362725792900001808572463995455321784543777614590562331018252903289955404075536842121621232836803011129635506617708867329466025023392482602677196695929829051013590960422739587678216106358825932522190149519498014934430944806420833439858215593443872482083450680054958705403567678396882825540999407338830359709583462415775432517158928777271235111606195506885008686059484807649083344286315369792990504560126482768502889628515430916421752470855572526925564910494712420234080758212937591241046482213230957084209615658309455727894763599281902218980020261571301454633056807348811276249168877501095142653968167917533416258290591222532898983774299529095554500096921978510035726329049443422577856802147921497654407571711986183498070406281189481354023441051755858017472649490438622439571082645809909329321987233155221886484945019310830604022411656491836783693994207510560033189917717049467280493451991931087930414967697061285595489587024621866827296491875708892504569201413368818423434590137409023920017441193751323300425704349427682748935972268691238899630196246667620197112340978060680042855872196901768825123951737839870438743020372429164922577614980689102495870648113044636013468653577953884472150363431566308645070295774171252472254332979546191217507363660801205751546564897707485104347091522143642219721798128655411088132756732793277747788175965058697058116063507217014503920608962061930619952833376777607794753269888603786933209458105001271737640304555051210822386130391392367374052399838733631496595191638442060317385648152992196351827054007603814796667870801417486639585673685359302017565088315245794628957737968764826786817650872635208524074586590580338556495047367027484553696012462368301207627952187117942918952907603370529053661826341204121654846395759476318868566888478389874490924923360178736918581526407327122138503993649628526961300490131439478676563430488212339654403057523355418483520240377635617837567582760744701453790851408796560181773956900039249975009458018119272423089469763638769259523797372066674066190684924585316218657332437718743588668293975822540688965130426726713054204930375761553812342763836167685721238763870916638606616285007187959073655388924951201476577616884229659203476735112439388412978621793701964865501493973172245568764213876344245276042693786494338433781157565059523721258616207457028660509196215284049254099749968778881238633213583921119970053948919725321225302798825596871197415406709453904136690485163367493985473780211433250373331067832880334554253148370396128327796314696221922186058208234061351778375139856355134563477569145447204421771013350901935151801983433366145930311496802132162919033286937732754167330116119523810166773967706339598596217401258900607489931368065457129601987250950828538223193713447981389660545809075323201790335120427571082536675452063239199147034855038865216503338994490920839530679970808040413076870635615589099901965465321535303205679674585281379418795881066762760782901222986223871492611274350841454577488211432324538328321435257745109315119297029717391876570934193491419228977663014479617980174134527158261260246358672799701425214367131305042537160883510780177084917872083159963691432420383751156217349499884173178845521324934927303162867742510665015297916998342322694551291710541323494213462039147360989155206318670525043412958241204061642859597428477214374756993054722318495221286467585841752869977223704446308814063699334729270938959755786048416229522894135590409504905698722054160130168676060052890560792548275521059596375919199356497408256235867082395497061115232003184065782406115457817956052601207503037599369838165772251397279826895181251521245601130001565566050096188542241482589063181978883568708622895921668994512983217194426114053670110267968256799562597794590696412209374738756880843227064128370385095369704295434537474332346601202324512404012914896849819797028637647566117823975256158998385801321081568499020644955993607640436607387920710837550950196757737349887969225036670116363489093655423993313947012462114664335496276433484337205730613721066125424947876662886373822223172797566692302776823006797595724431890515307618675022240694671054451356828576716237460986606097108146124496575747997860401832801884555399512186602880978721358384119193256062050514237032386630131539788567001188030609416493945503951270256289194932250012281332333209848445598181809912137504811826872867853143177408574573066053006742899708059156224410263268221419002913103462734893976669290058698290003646889285300706254899743031872214244286079884652512124384665049469853325709977576661100239259922885132702217950017818018399767281439541702760495140860889946066205472373547333738348427160930900118420632682748337008981290097642316371809810897728654857356675594633061392833169242045434255810455644910220617218811633568546392742716150195995953197901346697396599647786198366514006899350173634283240344629119845023379354858828177135508787810025660466397060001960636563158436182117616649121592494721516939229875890595478274463763975529343786815305595323297574054350225053220745697045529977958263455218561754115983410828769493968569289714204655715536827128905358987702377987554352284731634749268118689555273156248750084167676332546387851181897225798098860569132457768091992583186588087042483954736772113338867160763854327847128628327955345026637193274510244556698566690212015603883498173820981189472325323691320753196717306015079710673176444202680391011705197870467105822669455825759642990651805435772526987691535575795839997367132760348583758532979615086225436815342023481083419344458089213700766659246849588457660713422645837403538093930871333488973215102199004999811978657545871622102823091983782704592760072094171088284217175048934105793042800959687445892239154303426609081232848902765667981577651644181479509221781822483826104665439230184878257566068382272278588705944556082351815284883646808337624312824189721077764835800735405110205034913204745109382120450174087812816355928870374859228108654362609877075228549858399628836013681989123112949539018975596354403932002322636228282840797799375657451027300639447006503155988172285402790822135167636900501222176380965323365398733937631496687833547589202783763247339349018688710517147892121800320718729583145117228397932815080578783731231947735623006820330196687538444858940335175047261697562024203271111686268098785704878833890967439667186967389281553261305463857714449736057903551049966198928041199381244901922033750762926171682796874708501585756633299722580948987637687467537118891872811220289596820653220874078559623243594366905884584859009268263191315583167139815662996040586561411385605064156657138850015058438738623667364725378364190304136573089863417601256184243477655373708920405087353180120772653636390791782382707921015906669718988276660801928693501897012543796752340719426106473882110479979302698888147144451414386915822801614345120056300409694716761924639292144653210640846787234392761129050088827719674462496115594655235858293829236791453046587620287141247640785134392335855561455038661396471162177486100861227424558924194933447341565995009859115553413461619942233136355692829311355167254893282128594832467856927059030405884207436516483271784896535753141170744019541305879458270739362342460087843628359095723916408989234001795467607529056294839667434876089106246030332295052248460595179980419076803338239852517345533305192061019322776009733846460942846450848888820569868199109063024850539892106647412927635364354490256425104221318816400989504358461733901768909420278043497530295942429447658090898924599872592661347707455928502390401434151535176770008260463226509854387564791431554281394635648254612910095520753216461462123076167467037788832465699486988071699128740657683501530069960870492245544736469406078643621830146467260707791580285082931490539440091206204811435694119308554604357993017252336901116950177467740500433799663982021160259247254147717889417436200796207899660998925529621880245452407542215751742047474181966090692658153205775477141930690352952802751949170540504599157348797746599227697658685932048567684288211407476366234915287320662241651583988933224243865960588947057167414459501449823680132212748577825846935975266057756585376381459770201749679849200388569045670919009257965730440979058910880500362713300643826969940834713961040016864269274352293499325974669674568015157563105915327678385419576839311882538146531503865828318419548964055283929039930024062336906814648717092811233977034117187786301607582930591749197865349054190170437600083945598682450098625193768063421176084608286327061860323558823685298691651474806751314433548682237217977060849825956976520738736332042930732365207083489705796263490473491167310607854312119494960280049599384307121338776048943462363534571862869672100414955350516626253797734590102993955384635241622538478914553073571948546921830660325172524764842102444108159696915301327914975296614150668453496677755087229084436884668060308228428156387363417283968029630413277716637395593662609260944859896635083118357880635211022179271580870734551087108353864891599120207276802930722426854922160656015769581353607919399339085470193691701676170619905734033437343561304654458185672423555589961289851424068696681317751152995591767779128426811158046590712498263204757640101226563698135399464232291659752377286484531619497951651800572593293582024502302441838703776920462577138398270559487461995074964107133400841493304554815664251417426509203140379956208911369635115009844576891249380771293555122925219782242930049934274147755272233574454135518931761810686058510226404202707286680641144158496705590392091021804986590769497535003470837858339218158564958807667727220322938890369375267393203569476599210476624643187796915235186672783789263943213982395462885874361376473988435294512206524465781217083902335828496304485259261719775281076143101442357162481056520554068556915097504923546549106332464873061638901793912039582862942422567901805879561337691494205693366293866754412419754378519527909447145632611682484043382434270484858477336494528717049192242533009182323312789308929519689969727322529308575349435612998397708894553905266080219706805301990855852189539660688025434713095641566111247414978625237831943430723319762551480501181985412301070909538871968195215575199840586576794498193421882227491559588160763107246132320454033197468395140748360256122554292142336158369772509668460444463933726406239871286100540579713725297665982791592191769841794387865050988692322247250127399836995728427409113041572385988348345769894795725479093877519274274927231598018210557048305552339474922408843151209443679510887090940976841075565362870948316212005376255677511207385106759780876954965926117738361902668830785096544853997225530385807282155143646144060288994569247701739457462011228379532989062231233863467782748794234701547103293595763676429831006378516579732590853909756446857261195829193566891052773681813875490160857659303903825083637928296669947009421818116863838946827144396664768717938806782988671273289286507400845507613884819552913534058640021154669292582652939855385286976250114545656001445793704547030267767802245411855676291520673074317887359718004461066015246334015453585371577979955247782865891114597247021870311208819535433420207513721511896645991316728407696689981858675963717648285793774734009132496098749176587090912887197217804138425958217258942170729909287423198069007674739134475340597021778565852254202880404856145179232302961296711549494655087316386361334025628968945813527989365067095906913659268340892623130164208968406391212274227176926194683847313441200803950073326231291863382294903835523365680106399962865424702952039904598482905891883569965663833969508456009281020621329218217508074993280098638462588982871790612632793794131163362711580516579786594425661082062087661648923112713411162422127743673112277305930589324543994074671154188301673422937829171685918640053741045817482640348504761567289480845254566422402830485071786344953102139209947265513460306923113560507413917953531328052988848488474073535889514169829551627620598553082080822759060084961492719659661193102494532990440371344957984578174241311751096524612955085242167332191166962480874069906439405294710149335474444156422014780109168675879474124844061770008380906827982434131909795172160512632163877008867468990823857321723536808593590094156684716454132017362508492397100627754780184016668560420916939277493079922077538697037784361067052878320399165241922750742927427035349340127137867461084262758938685492675425889852184881244629671619414713330990223723170244697853523697842990499118083715981312127774715744013195679438267168237854127243476264117614712238497906338830549499525960231078979640369721022524832680757662287391724387463826176098647153893835389301552510374621576834781697755293168238318950272697300393415627894335990078286774589578623917121046781872564938250049541713398957179128531148247756673653591737996113419216700671268849990501148098725485584468497766300457967022812890069930793091970666493857638755889735590197720629377003103420365468003190110094354233221950704006060897515964919843563249745854679804279292330725462250026454660006174643763138702556015835595396644246980194657910254840290127800172798980837539611032906846536842636567175924536780331607667255619435993156980960025376123055156350760573872803711715681457528682803626436638866571693619974044507246568691426213447794482955870503548000026175381453639293532656589068847700081524959955768886407468511186398802148481820022629926745855086690129171440913451392739062167629795195554162475153161409716489854461114543547232790231918608996816242251314438697777103051066220862408147240270557417115141896750135143234597988558821158824613168958570884080352184917873140873918320213252779998758219401482409917628053000133094311708943606777162208756380515289822817582266737683705663844607308402409513103316732278099482557597084022880656712588428660665856677276541480520950862391743201819239265361382350741 recieve : 22861610024812020857242340340637877739871630671638090639402834994334657837220684998344624934133250090408169457965618076995557351503492808555286025994067049669116690269520979956022577330653348547836437415904432343542080545948824224436397576658284894036816659048675327547895533988247565403943798393329460674704683002513074813553194337399609204012246118252715149309933574372589237235483658532761890327885655872718588116931969445300140670499925132281703781241900637330246126341953910299731277006445269131050806288949925237655701796971598504160007081635092680359529709836350044193133623027849346270343732693700140570929643844144617005146612599408328175430369788180473129489333628611202120700438311524767345953204174122775141346540754215447744251600396103406538836640267941041446498549863071749175644563065437126073606750465504407067823486730811744327838381529408290413532496617339716512236777220386045819969059746000961229574600493633958002767109055306605182535666139298943754956545836284752493820660599904461298166177731400791566967205116168577743332196087238974845088255263193381318561387060313919196156941211067647904498011318988644388845563328664962062124347702335333702639982228945572372174821970393304450577833886159084864577527788872053725012951706903197736810087026635422224244395012773634369344025646954679330804449450611897676717321281955058781865608484418139701121336894929112720598291868244020232888145452680655732370161771988288865274622467626441093172718184121301958079780386747227737721737655804825828631707089850399852600683803886789247925660730992158499252214307915836385542818260907629555166655928043154081302528688269836493596786153618525844203400823797646945052142898141014156833400219258997889016567234420044807680119029069129140848381119011986176229757867566202191413162824871598094266372609180328869056109797728309373625732187143228265435165026330090970641000385240520246927792143628732329682406349083868498508015173977403436417690314886670133543154432060285430881610727446743789038990698715222773570192425927831886246659114058160290873272792532902204795050616532715983961253905951214802945665957713938945676876316554668967766098205782133296657671141451241789228240158992891768093435426289292301073245830339368221011721178416735249819627997732649800668178623484233874443916509176939282177488645216678268828584039442081242789631375227274376735809024352478266608640830872275536454330706980282571695576373712285163476291857854230665204415240920865955185733934583080376075276842638868158946282046846431668910004705446039835595638801932982014382823298226300242038379857442927191600698919602132176132981865257106338401602627887505684724042030994411690460105587668200541823251192857489419144917241613144342449585187688187752203750049518717320859690526591998411712589350533378337953272920956502318565596684001517017764642680706664308217617185292922900744449080969815026034423102655959398222683922717700854613511334103559038679549841760302119961015429969572431446568472962319020099428268137377431165104130630982299066548372545082262486896689943019271999660328848630703699624094922439660469518799010719435398201285396307918826467101985602872621014667164492283823486613046537439295919051769737350995851541015574493817245820375399161242211319047549043505766044779354747700235030954966425319076710505104977727841742523304955945558376198934823250948723560072220944148890909613142191315968196865487028867794808460723674125754735055041195752175227801321078058591408545324962966161672084663176048737475861803777439286875638698427957927287122360625840560440330520774411817173542696224215289048901988186235346850295877807338610330628438780393963313965464696057296600736592113404868106421808078965321267520222586636841924947348974083873816784667508328776225398112837484072362325486469258316662888426574547081262026576741130863639275846653817410224046461900742732211633638610457330073455436342241923743207630596590477031449012957214920761266888207510227961684259188098598006346822663942586376552748454157128386189025007643353928936598253736024662079541014031098913055122306913379464587252100521679754762690818013765150983383695989458130302585790338531200513015619045132042426436967364406682330253752397702456598114761371527444848451404083291739981270353937700613609852257973704433721174771839229615487957488981582945417569006981146374717559928189113581635825890925282836968143221838458661515080119636267135433523101521156192794181228320024392406837440766196520959159890100336425721958476249589725081266231661869534526838503249137778958489166338175047191489689909939091733694211985817211212425968530254871095820227676525869029732046556077187742593518288670892924872722711878800776583931952404002689272380187236572159782313880536337524500052133955274582940373924699098302406568869376694340408949457481374077831075016798078557243630241572904816361245801347543587185543336193697735014628436363619719709511127378907449344306589068502388492006998619088883636229720014909534917670692501827926437581874636398240553316385390638936904715540934292274936135984278569441565185352685897453538619540611018674994471566420586570031797497246552143855295364370597629409762295248004852650818617246865217106556522513816098681453950884022199607492170415842288695955432159911561226807841864827591778397563497688557165029972350187586050796115735594497011575776225675973580644825251103856052831931568821011316757910580569324022689122396596147797469640299269861525859379820251945630665044348901594860328624862875468829282232039595005793204736436054803171596136234470901145969445599497849737172918364217648985478416472379675086612009589818091291498414933689582684811573289928008736957576372862307892120021250822017685821835627193525881688367352284906215486704100552859333939331393839922376671799745967447982281188860506362214776454214630964242906003594005614969187086965033691118632523209516450442448665127569344839733818960150304613932115770140114105622264169900147719618804729262293657851486726644689383597064725406314739392962565319506459429465602194233406292606877615238112535264714530156078182893348536005998752309827199462639531522920657834563187765297868667901284335551433377129437183152892338172234773597161105856087255356326601358216686950819654765669250586287283615075265563975380082106968492608752553429810824553601224960799836767099349989530733990274348423633333009877432751149151801976088618987080994059665589277590771180361252148042051145656204482584362612208521992985602019867804797770238608134132585582736547334994010723117474268628807722742191153575674995291413233292936089978163523251296632955680710002566352840713383644419553527806456407830478721986046090826539815040052092026144124432394527303270587803609920729778740831280725852504852243395492775919686375133422065311424166382818853193020509552870482900989383337991753984687338655934820186127627160755628800556756279790741409831838944095243776514027168741650893921570015346342180519111844896300505529454234601875846048138744198977151836497997379836548754881137052503512931010160934934198206931854361528288060990710676796156143150379814051529001711840393812320216962731542432074026047177284612499234914873899261935162568420582818255700140926821036483179103912579023086889259432408600311689341438193859262714422223296586706393355213337343278467853205799424234817615893374636317357646579644181213710926910566866195359392416937800987444153449599930990413131599524424210280976816654203124268120896509885318279608384447958350070900839658082499666733309002607228543219388224621966136064084257359174312811136031671097620692103266292150004281959095642606500451399511506737669106213944046559342194183729357225947521517661163193905380015376739861101421858600792395417276528404775838673523409237166049322765411486364456966663763170567066257875785039877021319602718400777773397450058360093328471306952159828474559663917013725497692649305019188241051822211079988815146014076465269702534572935438165022454519786290015107686522928568360161450764909223475632166958799865087911130108609933631219718671934329634867810177988898894479024202757240027651670622746503378643657747519411757935053763790539628995648701512485616544989162760195898798704775516633145993050506961986086298453391879972581615168347322027076225708708851966530507432567293044101569982438154083711976047493455316022928788975890032791919080486722266200318376913878423387468326611228908625092951046568961319718702847187501991463323357059941583199379149345434352878835548099588690352057150933180228483403838348506694134186298718584339063522987934414649804499363534460678982680579860569044370749696985821919874598362111208462516287140750820097579558455172266203672618812090958929311687196828774476932722958904141840038360762461323529243040278178579889228230294927344317069979022366337535760526136405312283964612261881221902599504753179853080962773224452617047800433920353183908239192637961217155579672707048090070457554616511449581773422547467101925217499234117077794049449430011638481836856676564724196895442616202039091844728122108909178784853703220836019944525324085294677867908624652569335241152959348537082594883694096059922382796408406488172051127491960876907368378286867218828708914493187478606091877403337322261341952045855394403402963105143919255312342632584384458000448228703713056104256187973024421895980285679562934366912954296716077971493351952671188347396717214034986625064354110217178992108934872196031276055475478649762221864758276167359275840408343442126756188333701944093736267346755556584662457190389473213477209262307478765197122453376362913966369716116363152535116888855585080559105515175702590982738967016021260489879848075562315260330066737349255933232373119575884759660498865691997730308778225276889377389693995509713008855168713904037726460527740360068181099336585811368342678571635236910332658162743572142388645897221855411791390768838584102437952806094362344004705657279450624516052146479197179662839388607619025554593398518025131797653250988024513500193064479375431350396483152883516126131006396923686561566210784722328462114046648763924182915920714376014294252618842775200081846785186819288399276671290817012270073573955358133659538000665502356055410343995958372818148341189708119768820457366777347222602761003782349195142761718447074130635098686773600249946880653581054979527924759812116533542842912213206943506161661730424106851214519597534722373310710944078552487553310508129809426670710626116808122527945407166174976881442130268339272570837170011894148753282202385474315591821170260808837266081250132156394334252821331213078661228621202459129515130155173867511581344689835821896426906138695497326912196188734283093140556958195885641479181052795484461666412671236695156208493495593506240579123984644397612076104569192685893420328968963817956913652024275558688946987033007892615132328747442743183935177611136722313082530875050081396461627928343770514126339029371894158363932129547665934639529586094994486246097913099307678559159011980697537437306165534815371508725987135912269039589885678335582456964206890352291438227786249561663123604080012765745195524276106918071170173494974670835842223337752574259336205038296329555364396023096173563534129796921550411614667186920177096315820946568013473148085587062655694694018710400422565954509941516958054124322686842385872047989604687854068597004187647183518395614831090995286822092646006289859743988826823407071808145218080237510051471308581542822858447225609389496744948165857200365221064338899523423151846164120347727443797327732206752371457964754045008792880762990620809289679363359864823188510475718242388212613664950967376272930472684608312670328631997604486477040385338744223139615198849655075429861532327016299863431417840622171561516717214396852377891294678988173003287505610786606871387593107371871032314773232738594539619468231760895304252188007035894844065022894837667788828116022038389662211040655160353856297007162850529522745383426680872244533488301987191309131076037638729075001455921035819126407537856253343482782279388838614160890058590041168629844812759142502325074529501239873644148883578850583158947008139241550471669020600295162589312416567350580153537896776349370403472169084020486657543123798887990159421680824953636825098672368924892846927126878354166437705228689424665812916232938441735300656990281328918066188925695497040296358549712148984141945332489068282809605455015342620670811949250104726172768946062804481017828842176177403259213539534020279857537183189386416433925896180359542256380435011494523379149901398393430881963601317669159149865999774171194769353902553212788110964741318042803507783721300966365430755376738473712242038293981018925618699494890238911059787485491023985245872378489675458716010247713732004439124292952309912248536536012023493870879529538089558718561481310327953118739926650733857106358760846515565309262445016416897362789241227021489948355254746679937249583860822754572586750238389565579543817775861703603999263830930681777311647395384678648941792109184317674706476760133456638388179719762754370091577054376762748781384624631157506317415711632395590239555276064989249410422424834279093658764527149402473638071775825990208432667696568973008958804197182616139536334455150398895221429469096069826603149641447471049598113537187576876655508396731434877727988633068743147066129701836247143680144842306329886447328487618250439055616138544995800955697883612583615646056622112889186622644289018675541511030131087597298249367674301597092411076993637890015550752756604513774524152550566231494122199525881248127720845714895257010106066888653261327906288954820867435453094863986106978793697672641022965823602807709762424351072996439339056362787058646585668968335472894459938111407070159589985641846145244715500535239806549367921630192406782762480709030185527616820463768452763407065273023151745819320784116069185832885648930831573012793147939760870913666903946594817972866562667338860020872865766582516667613891971531027993134995054122273188726977478106304653958390857833366745255530601575534864095017986936136685859425864361066197212400619340384021785157153405955006313232217236711925259923282090344800938021996845247022125527788430465568852093746558493743855478201217500044140756453901268937183448290149073504830115244656010132185878500618076496608116933779773605312407862241882934341821482644322414846346901479346217992208172624638021312406729739951510076408832858029496980711500267480586580382737981013034054425620139419320118951711387958434261203337030140047585763441906697377939781709070576157100970268137189901780413705224660873771404858207926382298251894588674646180272010704444597459306133861206756115373425033604968352192014263775242659064786605742269681636707915963692112971409332742944479045088720625395690730928452527275485113248754941007251857991002004089758776264806013411540334602914827316783040592156506140637910721962016299232615500206068718237310670777659363931095673748710527448257472033703979518195223631564283858723520192531012984956704146323013048486979408702184425922293803428805264041380030284110002502394679111700189922787292806458382064968909894703322060151886707300565213282104650059545674277528549232360572525195487202380239006038461382814675351950145857149574213193539158235791511769335829820515227334786070765260634016545164599086548900534774321382258503050220956060507552683403272228586934801962223600385291261721170248002111519675836914919158839979072438155379116721454845293140060475204542017998347065717973883658452537203369276667921008849451300442286966025449904134487876828987706285426397079434103476289899861275290380730164811157057481864846323479577157508985805694753165994366166285035300261784320357425435228748658167861083829365865265386991942406012126647800666549651455345203616802650810432349535266265579974918021255646206920726396420020277876591582723033388749702130174449727403383657252841708651778932867812988047731576606975916526981321547208794126864800216918877427655911352446999165173600266944486613860482967803418306646849043110415414809086701196375859741753747865292789308096816745826946825104608408525981227005262237996683834903101037732954506992305061346051020174613343171019164099083898547428901587198936213948888518379476343473645972775896669717146177771975143234811772376897808992686683753583417319525415174312386332951399288733591220115215485287387728326455972912787001835915836338831552410732089921222965977443515247973255422585893639616458566830081894733987351859057058322838440093226490352142673533812482452877329750055368029837213852831754269032704916033769179252555890599276263724338088671410771652837377327521580256768580421052806098566563091205575815307696818054417798190919136288795347335960293402514542357216732131076928136722666453857923571932110289971670391931876799309596316572057410618287151969813606230379086536549107819063728318943277354271305585476897721019913939797576480390960958087665544802880807135692776105390332082408687339965206677480316909626055223372958137619688694343996946835128300262961916528364033462551310609014002481828002823499435317411915717196902927614863570200883002396765170412976938568358119284943056508466100127992893275225236912745696781778531328295424223681249540342994935904351920161277215151414403789524172924452083308556278871086889356164371902476657665749163735474484079707350675002783999282800367597169318688827927036755805670657656616757347106009906395610669058818587146759494540454322474973678322342207190890414275578202186502329630570526233016452166003057746653169037790321970036522233163835777121606692832922655945630339376519599167066920498366728382562289460020615090520183128895905416253833047355306039726391877433080333892729486944496659820005210760558369213392242706667119261521985213231240259543342999269038771021459950147620804868840405157593582300261119839688796511387959346962132380924839521028844457836917895729600608689375082144079970017641693397531141301488685942992956180478253075650312390741765564420619606672680344554938493474491701423246422223010147032830144686610735328413518612091692743707644445391291740427737933090355896601801739373346335548058818080935633414315943111116374308378602814391176247837570026665805450460764050797448863431561025736384527182865405350899679828118592156759720628013442553350520047326629375732360748516812541149528423489882869106438131389036152089559225750688361224421640765496250584110756947840653472616440202681962439996125057201583115994976311880354820965038223536794548048852807238300221544441956150321731644041169050961497671474909229238390055519660994811006246252380530772005806380397725600656891046413522783904977150963833784263876129849367332557233862781814418639291272545251663364613221226779040076520028239855253861973886817316794560787925647867301839275854393284394537821298248206464185108627391934588308623772458912551520882383153230121530323077466108015732410841736440937405507785025537155902745818707936125716846786634868618028532799917024156473470743315691217219927270468843336116254552175325130684557516885981864525494172345413925712133777632604819455944705992785868100130208715357574521959027579707586519437286726890381720962135576210893838860193702739877165954184233322241152528949027074456957496501971339229837576680521903539066960551535965424003236539998862030272798354215052019328820389061161982535236775808199892367109777397177768187061611382247051286860037218903350264096798414424171241175600479141661264184452298433886658571585979414748163763305911175871137216457628213247287859373497006837327454427518197208778765027174713882587864707790060413565164769568370280370137735089830212591175126798775877672086244523817896601729986394927812619109496216238173200774449125495725447486358276179944360018713587392090281255957836445772172762833969471623929645149098950814314887230232845686796716920974122843445853902114309222459893985714881306366788538028824646562977910503607119143473863892316392301576863493811286995063115261863160159839458253632294814968938361955452071192027706093033490519933122178444633373217439594173068693231016807697857742284237776898690120037196935841035161694445562823881626144685884848486336563888227471534621087996485109487065347342932178399849388114663529302046281874165102635866707909577445018496319179012930779596337332471166636449145836866598615659392967543794025209954386419995103430904669130319024931427577703204835181089313360365793726413018779715164316820773229492058544260733161569809006923128925471996860544422869424545636481876853479472506432517657220382815621794252804880636642327050193812896658980356907130358594529276779868952325560442273036352658251415295618956716604473011676542299714938331508337615865096650846356761028617147332593408346463611223582008445253376784636222603850326499867027200599406423921388880822526631637508477059092874357327728561047989657545620184943345011883422334823519026560677706390181770444332167914997933317854686664293354991724785845940963496106666554302426395468851031908563979570308592679832663675719156714951644500827599375469346720373719106946745361905468155460997679140150189460323487827490661239999034684917667313405579521040107753406231091930623683198515386306766030344872880104800299076332839927911169247200756126109217619678660311707777974313233845169574803923170527895866805231051645623399951233204687590595660063705107836281367079312210529685773621859774889893596061328682665075803519900400995768634065676551799429373529993383889009394036792651883659496119859269540285026314137735404776959809393338594731048028643711460984750496807372121439190377118725304153465582258415050258074758073820231216295776473342304917181817351284224875738386592492769205409715861939556530837080545112705286335905362984997894539108819053572169311184039068503606771549557462955656625167532129337006496817279460097342727794915629995554497289015787445876084961807033081207275882131515177191823279153570339748605356005721210721356970175643058959993309804265559181038310342954380882561335883146940532865275645463636921905171010118998204546245242274802333222233077863783317915825688268437036751125551648862238552482844753851760742505822478858975075825870748471599611823246603168211516277534908949131698726026682076856542740117181453248734243769830774843669155834038655245955947742388285609170615031538901816463397812144289832886020466561056481984478876707890403380368501811124213157283394095739268926908120587549349880044417731629132443769201901312842087063233941456794079252821542236034566156694856072141455430566638640692291335952237029824288596656441937688672435903121555552161012436872795221923771516232116907297631205316200040801419868252581215622938913297740704848047687686226826699521594455083187480377428964498247489606711060965821215018250568541305188186368957277780383748847351911539289584639275931790455802269727785554280987239854731648979682778579772758902175696325614311697843387632650188563897813554873783063060882775195640446289682912773116282977711499309318820952543072906130448979697136998012511709809026096862015919546115056621392003774546454901774266434700187790371804292057636264315917424658115953343106088215847641199779618832461009589527020626196932491600092013882577829114810446233640435445638811905906257626755317977142167664667141069924192468668507639749723993492525182159116944142849030383969059234878750270041563678040945501707823250410919896581752933903888658712978774461247536183786638585023194163604793842975167609011832756386408087617483680981364027292224466202952445412135885783483494555293709444049536515275017820497880660326102457791592106447804425565340291337347902847542789750391156080364996288923217372533075631593920627567054969554694274785700816227173730097130435119437550787578244429453430854021922981675357605465684547655329231142924359423776408922379045484185221527270651556709607523380768893723422497101111806697877925255234359995567928224971173434848174625284445364981822702335907329888640120537015937804469810741451129837087052553046891310026441073030793315744759308545828754869301909262965861897962044961839928286267041841977670202748120217511138732048595595289337774209209655174817143276353364694691767402690305720122554334855513926379320130617833627766422103786267034968036510620725203110924837951015124874254520922592142371061319897042453961394832324445964773424151506238993645766224501447432738696616597225923193377137906614513902906367889436850119224618754830764206572995025448979242496690614293336590910298650290431759315941568647883081156593088887768465873022755935176336530988782307352702387531890609485394176600473161160443052904552762277785879466715140767352410841756358559408800549208528806465213815460439122599960592541343132106970412655798222868232136045913734501163902597220272893121841701680815757163966725080293867937915449186867914583176860374689467768448600904621609563169174959880578608903777321738526109644225750615307741042311212800702340658218069462512479236622225229102593859214911658816669005737522985923653935390449405711603167532573355852811863005171148258906600278228012728731558794344118222358449235192016991999717252343111639203056644986869442488679503613635109104432048635287101501761888754962610468665017939128722355298993598357949521915505235682301246095184504431766483988953672079357823265177700766696064615061716680248722736097165627958021968367639547226623467296505122946708373681171924412612659824598638528490834982606674376747557147973373402422804807608148589783613057975512118222982441501697521185756658923377816683212228314058574845527835987735844135575462437207780044110989374239334270556728014619992348568380221991073883661979279720614239061496994467174339911123613273642953982027095158290019445308328710977242320017008624971493934653226888865647309514227553390521649755216542913715777129547017099462130911155622509407720697223193241154168542234881894280800995161904654241434800062328733597874745193653643266317654516354307121020699595597872518431009909739034558983752369371119196158915602923395523092876940377968917161157288142123203155078934488342504703023896766365044357251529890683344307149622409466405237159138551731690549565188361923905510438832886826945082188959395340305476603484943676951441370394497413667982860463358261552406568239110741868357685493155641415653467313034536152782859968430963045870708108538799758556460606780385013959472561675328501309399121689900693195499341556089660629535136247431844249254180898235911884985934089127598117254619399869632150392200847639325332186626116627814412475822499169850599408946361724088679929056382447143762895122713028771113282633230205559332296685193401317741374402543644669137030069795679490376212152994797857509456024998756953287477521271123845010941360666049935768368174676774540316984053142776237088561054750606267011649412330071858332951906225341084060259348928062653943213042198607722132063114791245390115205423810495013486284179448128705860141264548979186791203772472165567451813367649222475379933034949177326345725126177432841125926133530609111462483339714425181096002297397982268880633320022204268814532959180935071419810536748511172621277608336017259508916947798708920446575200928372741966269492979127786330839783991848059145129597966759336112001463500539181005751490866381359827312624807819048754844523234647287305498721581055100055299786222124267840981448044306235510380986753437059446219432397511096674700581389899444685301484225122208228199207323357192953509443658556350908783115718478930837115258639541506075271983007780263800776382426556523437977739947086870385442490979338020143930695330873358014321620700873226314534411780642339374318091503854133689836372079298507545653041048921736623838741687394645607406065631365802170731605406838323372437627644274323525539190068903444898366545449074781476401661818247585279450735305797697377126388015281617955356241638266798876724038120535473760980036397682453620336314646871442817589669155614789134017806713770744576844796556500586883068296292796323982305345346350338900651017290317539777120094627992616297995160812829062809415174567942431857714945454389427960850115745235152407680879271443239303755373929023921564887050664466791417030510400688649326292475484918702793059524856069335233770901467430962392807962431482087234637678303767746825719191724396522070756521743946010224240692087741808787637296367950088821859354402452103896796325093101797610689922371267213556101168423784908795383674952344387734491941723570615048354674936829548185025633871945877588249561539000525765493666832317183308492105056667963082005309119033633764475319320449743788833932207910716837140254520067177428928147435250617416997074029107263024111195780535522092690516203297563895160432023483744871130844074888850224343477862432664809307321617033281264830572323260132319215078435395169932518484761589961098747439324476169773858799507192896411538807870967411184936643927180716664558072464737939927461299888845345318076885393300738903834975937035800184744743933333961664074275410895722416884916045322638686620368068414865221361215740263055168716021461507425527121693066363912203329090934399488196902010275572030517641899261191798413721781796894618001743123202250609081937228722431800693691735696145973107697970262260349918711812325011948834294595969245997674450722093400157551317995269685542230484528595835338260353248157230308806015469932996674375921339632227003601418335091691394666882500220899572058335028954354457811928630828212346890459568399130373048135906132415817814155005009632352260299922185048141266532619133366496450390592835582083322949748084747570271086601974693748415752204758372376852162456826545004667810353192618101208041379793170758112992134633756231844304306708529712472146389230362601575180315804253902448636777849088392932997094793442579139187801062994050747649544725749159406344234441460959384144427230621054415044303015114074629626261837666870942158993872240667561805703979246706295266727861085888072457047983291560943669162943224854107950189718703685464912142452685442801278351180925115234746440883110084119224287573744924404333923668605482313695246794801750581359325909144388291664992072544749487135742107857221466040876287737170734776452853623898918847305941156342757961476355985106860405367449786551366163053761757356447770514274064460550536263169856890721439582423095284784186432132044901737091406529272443507881793691951105758340103784588678292646182443537380000482207741475454762594757864542923320384614226820726330512874859485310828718984154150066607930577293680989294200890754845043862670476252898306693122943437067195718092047708157140037339167459608801453365960359507177271742244290259381275390082515610730987077109843492974327837734360779068717185964881149336177581165951927455416819379276553177994957823204026229940994878610566270085654560457591030011765321634244600362735051142287699752198134690970225992379246162091428562905584829930967634410525738869998510521111687293840596643864138712235233934115428144387997861027171780000877849106619484444926171775258494058133873777091749131569109702411005714676618387790274785745008501176788926661089282540146506365818942209550986325746048254715974143704795864388125105417852883579514580700884322246365493243150694611202327154243480881029162821439252917513186770305959874835358481175931529603532236438944485118960002062810301597881903835514345576536798158629847128193100998620979295429995557749482800378037240666331366218610834562833655375669106834130763425992380008276741458941120172807311187025599089441161156584280672489210796588797056901205592196786199067296589998536447012386350337432893710486215359602231753771629321127588237386850716572038990897559333508640894389530456044891539336814289941718174632829848546774370955935470408101649752823305336822459935025951194181547212827528337624500344748018483941496965871865643841365104675235377496168722352828952162878885545981788054705406869368236948712083539559504281990301988666020978512015690593847529604145661848821494321051960975195661896129599119763119444442091254321570413425146751051818850016713169418785567620521450961297637765042697318847715432688205206428741821533841156264651872753075725066831692938652773329064081348071651240975727186931205613968060309501330992770147553130261899043542841249900070373434466636919802586032555619437096570615357708535735340957004597679890221814451563513885370805331602301394058808020765022172527764133873338317368451131447872602483306938204518930832681470186379352242977893336253158512682095492388173675171104488744649030528595042941093473923413034341882236311774409093999642806995347063335938226026726633829249894577383515211301272716222429579244748741659048963962970380088914972131639868286022561677826181273063314357737148870269991044490042818280038672233211088411352779876670886023786065019843186278163561018061591381229116626144644156983212804128014530275182026063577020809126749864310394061501092617655344658241014871216181386079878917607230983997516283855391097444259468811549624152341829461850154881540073601455038313511163459823655695481226823978216560505922408329614646488153573876244132360543377936812613655247976719506263353461342329292273580184969924632468113375060652473505677159967862677139639793845902464743087637533895911975173143708407204779834955960848281278109412048180150760998379946155804324198780966757853059338723209914375418359620158752546626292695450325197561326338872392785308979019132016274497111542238412029693768153436524073819975714730205306387351511686906301754583145381278395771846062940901236272866967163147169182073830311325957121917579801074835283282710685805649847200455564258416726912506530637799960351178896103374010972491430505443332294564724462186081203791147115327750096826529561653800618005708079090355483104681006956389376731641545354551442782057099157741993177165362041033496271173084391945265188533819309267463741093592773728188128200644112177676837377946766389091774527824657434282129427766007071180709197726221030041956851525772299688715018650065973912062567530522921542612129640174099179547873073578000904408906671091574636285717082224072099436334425318364810072030006121362332050373305637264580941965669962745216396062550969551551014741406957219896691499486935473665269372447070331084934494217493343952425215115107692533311054866919837719006541690138491965596529179269333736381651495148429282603452296717737219298222624346681746659545796604863260748253258423696272547232544462313991630631763497592409584652665354317857391753545553282599480937329270468820526791460677847478751624985198482406177615834850334449280727019635586027735489057490197045446831782450082741406534625188545973526905449022511875004812264203378587964629304359223236580645312760176298189668972370986702053970248940984906835397732343404133262302193216520293626057333561500054016575314128197029654251195028014117915549967965409087674841665228942532266591617521618385512660655462832328426124400658667007871573035251017465449808420463956396709623691614651174583068597947217977671233665471022138827278150195223734060751099983310893395551900153694855346750856191632118386921295620577324452031095446060350775637956437608901318509163274442385767074648711099063863449509572518424698873980413073757070853909728505107584065972108604585240852121948360110826346009918168923291706253511262756862693949671859449338169941870718802249329755038777037481194875300178119020208793029291167385036595677041010953524111430643675462906219470579749556721967652416261704185423971875094383180435475231315005061924785922337690739523868515443966950082568534920187460963030732964696967279362686444557209618996596013418721140601302152686537883887297579368994599994904276743013306349809663162018308133973215152898642105849092646847563582098121794493915342124811636241831637938268521339321371190640627854836929306305504712312793204459446885162032032368331815374108500482136879281662740640121600012268530592313959049551236669863912218245306918016477204814975057726901949447951093275479678328558152970110307596649189002467644948088294316011335985346834914740015104038095964674225112810526087514506966650811679140146569741338960500302425541878034880939505080864745153134537631010650364199488852173659165681617997333838310981373091512741752819763858976546103718654357300554934530010423128782614281462507461880817649552658182798454649144057000765809953749726769777503834721541576289775619389520774127373321710496938602562483261822729854175432324090539188674568552679386248741884449736408292447841878531053015600239668704225841268005767345088567079627900465203159791728570986065406394095765867849129789938627847702625103884604284465592729149903439450501721083416885416156395198337667222840396626655195516056480788540851049771962790084878865629676573459432727166775468017478443355106793566046890137690792736077212522704384872353412831704946454128214737104399064723347973316830533751825889721509634990694647273934943357884299892062609797628132690806883666342830613679629159763985383134071736588843066172748274208271705429979640539710368634245545324946702605480088535829722103548229905894085417066030108606530865370343108558395376524550115357327290813832942467511582800583234114549811717235289359719799645808405372743801751600732187867694124618872664759840648115012118896183826481251548211780011740837902588258087833326989401668031467973255641315426946209381970511911057396116345855940263610468608410728509961485085718221225469900035690927294613304786255873280960152682457979434225078368670696286346623119027226864317446877277055830123022175346071725997291595325648672624707133423190139850101759863945159409480194052719366132345588140236164318142117559632931028873573256375323835702737354300458093931167879123995132835597718026021326474395032012925461038602547910850931022028285752448755080454435808519506018884305235166261858615099794671544867126404361058819442134772560149657465758359862364294123448140796264495006609037179933826761148356097592645680701024565831077524925892224459008372512575429962680521953528632009727489933782010368886849892540170733989036269069794115032716168085487710312101888391356575002863194170044770377113287009243496944959114867922445699932542872424815886982027503541977773658477032624083078122346544387036656156134525898064750453317579949990167133309306243652487947185307984337337692541579190077558986029877210487279070954768401731935224100491629726729548624275140922466225366705966655013645843064495169757006361155005873528777841144764532744405057542916474548646380896563634643876926737424111014524926142118485611920280188123920949478644145875456390296797877928573560051952752022885572036201936480277962843989176752981135005963341928213740189104622834303417592794707165459777416362259813537251579601218634890853536725339035142597245942943337061723173961893587535142168951748835825992634274553292830915940785131854223687881851324578496703763079398783916339079661995065873960182171248351376068129257990201899272177195743830040678442040217168700772167922299737587804820974397911090065991290861922783625611160646531712209014377018195091933975017831813965772618855265432985732969997461142757352653182317196621399470084238134982892913767295900268934446141935558005518486964355463299091062728529829420039684613763730729595744730573628570538187184360963562968596190815064137879939844347418180444777727490661335685522796026532133787688626381376970540179783788869205412636903983099680908378252492552746936792348914928353981304284882778687738456577593283533897202695844726660437530790945197135090583217514703631199701158381513236109905761603084771393020776997460165010179196342176822362269826554761980917856900369256214598814507416855601178335852209671542591777514613102679884860298192932776535020184019679048607505650247163542141829518796299925615298734863263576751940775778103860735317233116793670150465251122555566851981340590929389261722686051063073072419743425087679320954413779049964090619211291418254298669691630414006855511143704097231119702300667496398081360297996464078949820510205870818062343690298977044325354876442982807436588836409826568381980055551448875802656779468303574969044130157832424363485639731722336325342553596660202947371270285558022069472988332804032443765329141414920357642296177393451840497295475312478373033150420284851193333053211320777285209319223803385819365395426338817952605745958398521972223036932627918532991537056359418182993481184876338538416366754337895956641459106023540666375463285989351113085025004819975915764245009983168241713149082200419148496379863811129051181896350425537734740394009309302465669658080469474588400850969757747986854221787202117225894043207215183538023096400504079056284403483286557934201996474394942123044648662284368402689499071456528085787155948950555490317352142447370605269907351342966028110791451508308194915096388223832554400044983461583354692302995629693710043995462731291610567815092878994319127505887894159972095037781125966081021992958585406368557116967595831318525438623037099982775209913055333977685955681397711908614468743643545468663181106554409850403887243461277205527039631318824676784469312312687043583478202408036808253763083489564791645365744210864768480402052723523583831015453103072714285652256799307370678819446731327854296824826264471948632933993555806437850180599377767463594927706995803285823219253684819722497769386395061903580437504270164952662372730394553363467263655113595636263639826473474472643339790177781396154886945366149133898468843921872100190509456698895954377805390806138333237965832344546604728059944475403316528649977653503736079440220983210414617618252829621867867319103333378707577654609433020343626848085001254737686403191559971570176793384927646626933044081330924188807167779569793203551428948333447546358974776043560014876778888592937664013642025741937937773544095029938332704841731302088642036583734416727369364489143505627161346873390332642642456859618840140787252186648003132717539159419759460632533653851658079517625384581002130335585368509315093147883035334378926727338806513462098022293641988438249092316786998517959292388092522750941125331896132335844455719994954103504819745638750639963947610917050675125553959340804351288340527484501725457787034903048480372340159917053711096888928568003079616758610189110345534656409450204159078343978228203378568756057887253317300222385117929592700762509791322250337724751242240192514253902516463223101625372082579035719374298194843310320051856188796250520876129477707958861006619509105751290623463089154698218722340714188870146246031900840192477694405675497662531113672477937427886823157335901774197440953993341444120881925653673150660122878760893894482984811860316187771916943026489308338198165727426133056485203290023775575124136628980081665629026166742233965398175408064419830059257827410753634341283285460993501563846641384115284936082204625644976031418121943345270949166680795861457577696131107561088071956637120006035325623058351314560926295332913838377082981041840799012885916650484177778795196709337107255631195858939588316598985535174195941980868232236887675634644653004184942618665565494895927878765445226351307998767988389146389461448782296771369218305706609530743578552784553580889282582556845567269800093370921481112163762659138618119596758566186114391792923465113175675772494548865023502640288283313290375692286154512473025119853889489212775381127491847900733331969445440183785694749587093806704763122801557247637789275285660112604547657532369539908545960039950703350582352023808448153969213936993706043615245114909396253119141085195848318839080529291500526997741846062425752978573692656905121409074062832895674218640213755770982038839448699245025752243957837944133692505533740298650678398847611495257063513535247066137589633132834257574350951847331739007636455462546700257911819111418770816735063534060210255663929987687381175335500496293758704129891966533885169444040384757607012388239885204933741415053881439218333230296788417535397200349900438630309119647145991020891777568826090761145105949879377642673395903179187153462993648559840352669366312879634968205186066485210842641505855687583049755306236963855200476863986176454949293878086934651877067610378752055449001737842767686121686765890463122314749982524770114159386354960830010794858322697089068780027470009361417232864376466865409943991014455999879381370814301228883439873631710433244857721351541983979154708300000824860532568982341581727984971989388195797734078054001990949405435588417433892413452611402169043280106965612752412758758437546469247006750159298320078884362995383646323971296427995722345878915885317736566294136760016483123655619242253076857476506990515640537415591633939796950554453333828079435565536536448420663201018151837090592096922993247511807861304591657069593056146773317030791777447974580345880143906130999640062477995582719405433659916918822795133805097743712832683763239592474593890585291656181011344269045396505193709146944683215050525104056065430935010486466375167466555653243446485980369255953472030550862969366785210422836650857363637702002654864365456531981784921531931563729686106637996609096372230180824611363543039243959124835241668647970199453037911569194816833563962487873810154080779876110914432748346119777886655567838661208581877023982276341239190218267703888345587879601573097903692198174578349892088987726954882584998765137250651930427950318575370293285043176519201621997507144794014297966678375441151603191296927616115929079795575184425575509943042836610658074145395343677247294896407291902821407611117869477726556020890860246443812293990731015195198518945997662531221139996631007083867178969774394367574460777383101677773658415948389174320315465418823611227767982707428164612236885647776977232222495977570734923969054354752176787578039298924257423858088828748278362522346379122354231852109656184594383816896552059060749670512892710076536852917294419761022974776067258971132018862963461124127990465887944411325489678688339648989752435213156483945709577958407919043865806526460262894094037003692037172134776431737208191568028813073312061358234902352715319805557259334439418866572116325935299198553153037712309603723976885256367585095551055019249366743892938862989303036118239739215895013414093044931873477981335176441560357165121065515370042157048061939573541036005546336850796763938400301309646759461230376160624376259629885293841970864375117745826802065268480563307976861158566980022872138591285560591804578416821934433688642311635252830309315833038517799081671392639205690762896440430306865666334599000573634578303883334844834821928578309339271163828376014973794287524822626811346329824487344347751024195971469525352135875154571932750761728933837781395826887307197763934285396880262062322616318450372645401850297896302724114965325098017357421056709486904213296171710328904739814017985146700347451366099451317702531334837925844208732008697078290655224406103606549759511629006736285160980160515778002644667304653074322337369435262828909421278736150464532243919398436825872563292075778975930859971202758014633617393879136764788485726579320618324369439364298609898931461949137655979019249573788840789376436204228467527398628424673556443074854322037449613298634903634114745320114325437339540519591629216145446383809846774416723582265422937986064168938918944333070391142435365398802282561381965728023741386954821464424689866789464854193681317320622946419384658853134215458608605892897122684503823734390623636327809534541711740089258263605155789160014265038414468862377699622713406729428167018289652733889329701142781240430227592923461701470148792202469615895024610731872328524506154869651544280028502893240402858584123362820999877422806972702878788362265441352190769822014835517366233302935381600177416349024622093387294714204683626237399663835753992335166785926464634486585571466218081597452010338444055785730729963230344603835222175152475232002006487890393805717940809681934395432839763178509288714443398916583243316202490113995321536051923934224878672991411347237994141056939085986010240268552548089522610889144685084105723045379943040236341566098381860104277493223711401023728629906689350366988513145485866393277439875966038908404104400274604539472227403590652278540099002930944983599305205564960919605016814209972642481926343133061085411359345294422389864563983072455791152511378598881838495195857373780416111975708376773722416098004347821936621596804487455835333663937739753438734579724146885366699957115821709052096357953645727481613653996911231616872233853705970897277994949599667006728213287005328356774631570407664178631350583341636720210186440071863527251584946243538250834839527624742354307799542203617591604140950896455331638288183753532384721163798204463237421418529546624876438416366622809792505881884354661933462825632721398728479169754674286949238530105316030072562148123112477080397559442105616103951445511889185692491487426909967914508566576541550473859234640884894599494640744128268946107699075561904993873679660867730194698758823676590612156558048634963647695142357227521806631930105944779833265475999379338377143532955959814547592740232159572414179551068607190433215258179068680951606070206092038781992561456834887306481803881747838318991156220040164002496512000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000057511285248963528231533304119974193098611054996309867823027060892764821690510712149350116463586096005242325735751785383843636177431748953761460658952139482683955324584411430022998196073777035087660878334304998889141374847132599229393617255623127122494568583626195249008140550319851675831910681698509563059854804596888176912638177790984445245721736502887052255901675939918344579954469410342984877211088008882469655771381165526423720443451662424717121725923703945524730997295778903985648276899238040446504066404524114609809560079059722877401806344416896370197216326346146807469757689971523498958820359852004234217341763814983834159907401073596049706656316765427809767502846186042355948860020439665923819374553374613977289129024308364971210573597116642382408174597916646349666611649021373894123192894768303927292004754368849446898971355105359225207792065949917249985742743192810496820955192215858140197358153286205582754483308364328789187950001154705011126678468154844293957584887358540423157206983326096308818509835342736677749760525865643638023939949117470546374472287188340248624715283078629046998113452962606914022516423486432429875727614164397491073013588380600226458260313558411452530522765386454502485200529862219513217027232443257292430964135261121254076537368171103805270911980825474803417177747006676128999976343391527860461586356652953578794605906120783537338111096658895633146902389641971461561431609988616997226569082544850434781141282924233969029569985454275902119938605405520952156962146439321160299887444986000764249655808865514700640705205998639612556254414593095495743835358438072937630761529765232788132891937722102444543506167406774648471268614152944926878888727919166173155418645349233069217942261215744161090599768046473519011724097332592908674152707341703556589989241150916623015494904895772347246322446737151782001450853379144759037591811857843068552860276411701187128205206506742175877335615050721333904743303686340519514749160023611321212432429423207795942176886804367915031288240393435645680979811487797308733891395152660185138948145240431188020655991777205341414354947210622378357719728056248493323953753071378004662256713839374018372934176635356020426736304996725698288156432937625154710851527593273963687710856390166040572644028317769365811880974306086508009111307882487287523685947315969151026682749862574242446450236046397491248735650686159562762053162824135224054281596601694134670311257601910947777881527777927817301757265524968935114033165412342989034938170519679469593878511978770924838528870212191041922911996231310531560149578217142945939863749362559096544406492358802333388817040490109180989401416560226133050684123875991439766821081637153280234396684462319757784594306177216157333196200527232441184363983558781975959633244535330315931491467343540428936148526754386347622075768986517541000378382864788722466389695485280865325374950293761375353359295613722099990679528169654192635352564346375408450730342178669946523588445603256405706742385051023041613327445619139591645861591958258467274278634182936538698038274108257128821433077020321246241990392027089862548394604165077013184453270394883398997874930356803257204154051086948339106686412565625578774799391386756427645162551844030533785309373492742417292778793794549529424320820455533290435250327008221347671901243074106593088466423730404395463348715889458119920637217624199454581403659192099187962784689433912360840431516749496265269748740066558826151000035980237467774054290685105202376666712707425530690719877666658117969977278044830472100747058924774470646743938445324536512989305413375074107414720335589615645668616715870229146584414729471255603632724792112487206206955090828771475657443492032421998382735444445200608801126176273298474139743900238585281750042228775740967453116810963065744941678204901682008468651775426165341293159210383441183455396674423642378576358317893723865136344090443489815780635870710771652130248969969050042964958584045247324275709537435181642628780899328111399594232042489006098787195857673244899845610905238786949980355276465589272074280232854768727001382826194455323758133022111073494345101778396760494048366025217471135514845730562261026833435133854705809685660838341729396112001474737846095702714998540997519573804682470984762433076577271359559881824079420044577636517526289445208416529312127755933301541418293743191707979666095673228347814590756348261301183741230689529564024326081488354163721291594279708187969916111460595665609901455321343201510409936853122757976771269780386788096790377024849726710754392545302968673303694564213114404882102014407982848926697629829645722193033431294812932150238763228089811352815729613613580957578682756437880579445086967356751614090270194694951694635685164129817999927104140943465732895379855902938900569014691066810563512705432582026552809107352547818516853432679856668124048913650172121607068725606661951461936220074714682006786582286602372302145918226197179537679330847941425330331345011530190669961485393820165145185185576803582137370218909401008099463131114363242502830725061679614143494170142045300276944639620660841932524976667560909720130141112323644266082092708431015309321726662276179551244395706389362886685122773750758199924931667479548634337358730252230877759183344953506741242903238006066823561906899117461417942823532714363564595585159007276752692590527575322040229789382470946160775513603354177201881982518522848984953328413934424197024996485472235564885605286745064395895951702211042867028229339461589171445438358361450706073714683123331949141553980396737530035224671490027506243170805380194341015476984495897793058385686490876500946076757070309803369963408605746596277761099860916677916003811475290812009537841768664488687800342652503151661471072577808432570452279282448363043210421755316204406997982262821029977462629855477474406333849861837071519460769959185547112753361299503427494223406618811127211368234704892829309246722034258582796919419156987130292500241651189975407499748926934149756807482788474611703545632594323915161564766847732824067682984712229260907018333306202100631046886123711054501294099536453448984868318311677949486421363024468167466138204840396280712467414620894156049317411749652219577287829492812865665886734432856757640918751306951031939001523998671837096078984978438411152297836659128668347222307744989765309775933038677915171147595755394098939039758029975102284151673445569503678320358712125657860767841964503138217635568660188675690693804710500199109202639889107896725393160006057125232925702902306530347366866503050644959797478963983820634222437047353806691660641183258711212209760452058037699419117907273249443038364143902781416254908249318556477353164935580471446306525356894668307208941731728437663076506191136383524844513240957626671692179086667102721817425413139958419434846796633280246588442613481633163328441896166448693086056632228842526601052730418650913148001800371399567688480903878778078103435970318592701104096372486154713029449853558988457986575753948632847490627210694034254337641150195889291546113770460015420080129193848685852588834009437924519643299785747038510178473844858405474525743871648174782248426321819975004059576143543202915463697420211629551766334908644872643488071436617872488590539900779318422284580368118118134146222272136587792632913382651465520009171377038768983012339551364262508499367929328145786742410430590792114953717875841040894536054170900012661969656716565861730180855363284866002172089302829028668332305164340486300914492471202890041325240149887875929229242546061585039712574003485965422334890108544523425470180693263040701874066688739727889763164082641442430185036652849598297706627513809876963691750591780888854217576650962797844919756772940558026084585637988332694695356271193406294676584640856973297275862561452905900217378013987652922291125886787089249298947164155471746797457193809284031452891524583209359904646509781717786797883309344237660284492419711885369404697732826878982227112575236550453533976971787739068574674382870869507366239358337656017483595759916622752538813167300878380610839452180823928091040797606521536897437746623731499545812295027339000726122022167712259774690098308231685756047794854180039240367896045244913199430000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +sword : 0 0 +520780813933665226874957426281769055160580186112139306177858617186582410570192466488076952959796658249607807666729091271434273120722445798536563544752664549758673657235827414834653048875197149655252131386000142629780999926437109093472769930602064044261890984131836540968241380351728035890401730657061382811587340327340455389751084766815715550948712512558010218349990357692492945554778970786933580671118596337527183738036794652912101405300650696399253855284975382715654234971786413818464677045074306401617803762569657916495816195333712919856165478081900409038187066938910018440226411650910576970358435807049672491837081365446258542406122910056819469977909392747624686916982876324829912763033442514016808681314025929510415748939646272043147047341839323674719048224553612452905038291247818283579497126711986115142547658039915535709291705902142384845648880799666438565860003881852551334842143072132566191223374848490380937828274696971891096950599808651819845655866960534506184894880790271225877093309426674572313672187496108182907261661529980352421692341679516309628290127392190948223769125482436582597946079828134626351636787951743913281953449516501859622967508569298375121465064301207962576656615796407431785291111200714646662292911693525397120325844161756350207946902949280177248523915162285492882320485647632691489819149840867547280480917066754162319833192286133461026736856954655768242955883823209137613854804462390448842466866519382090533223169984499258470403125024221143078428465238643906669760657158873816106108638258556468356483216163680511852095745803832617449542160603591087966047042129345679071630753025699397610450766314372242571778414478036291382327525929634411126800718432414974848747648797583963066113310827011696274837746907333667789673245799921915502394300747405162065393426905875000697057585918678928762323079661671043423095121550131480224376970808912072088627992607864278629498652764220006363685893800418461365844652411697740112837623323185465195885312939105599787962338973582735439963208031204568472999791905230848861201709198162423108430142798082843548219945206720285871604999484918749017600182799608970913789428359031442478798449163411401753896973510210369202996207642498227004120510860415864538927352239263919875163505138377416559263205461692497588601054274052043995425582350836152011345837615558628419379992656579104003237200012726555729610926180317387485338498346485709672798651035089622215781458428254403933861199821180253835071807385918861379141251747899810836898026399969932123506664565256306776893890637606988767261882660679481008172569954182217226863797581097053045178215175051308772325639813841194973943192784338955268398227570953154182553268503595952282080916142160412411584447000541322568183816609347601286510577228708769375568461968993865579713048630972660037458844154469913486280577978971176037994126688027667810281458978450075451597690063560226039952448153580378794427567311973383261327778877305062186662368302464464023916382123638859111840057554968900610546262485251015782992345332634190239396699708508804792753988612886074989665089095014342982835022941996735397331465259151380763092091937337918328581764791570227756261871546478660316735876290858727931619575279596984210710296691267899535716999760971213478876119587956289398625567648890944035116008657428605166715580545279239262883465141475859047629120578802313813174229373826111646724197133382725466719542143867981059242391398444832508735597430143761220057349757202123131728587189302451163801726645418154645505731960470153476657281890630794515325649780813750057899942629456244802502446734024367997791137524562911070884780769883787586650206976421476094310822508000617780169698112250611169277200205763179545280697118106905632059424681423344259926631236099559259520603727614848063806955924414903411306459877064841984869762697453292771210768449897829279797808429803790249918029800963732977122408188170609245436355170813700173926136434942088531664741067580795253405928861079717749286299989648519320835254851288950494654817420773098529905829314631296040308542749636531151235727626540766191809848086573812957261050190581947265498189374024672579596559493208933831504633106000516433790561156784746497711165142618416160019435102999930716819416387668708715008259103235329728822068856878519556269665739126015820080992429720289719848031719665253535701436181527400856784453262241298896345721500983506124584725429340598423857219582290327222562524933276627857347588941706493131931968782550116010486565855179878429923756816197447394393225627283306741935484272362258459503845570910928474910790425134634450896036000337638365993283961706732394234074229080701777623401681780668184731324530615313586940354400025996602227348096220409968254794848388432646963048869030074599013713084788081092111090659544126183160297155772147488540066241483342328885334428042810854419071584035994698174587821252511163050258539759854804155781266386266718957399339495235280668860737415907180051001086107479651769897108846332726534712006580046490210014057820942083046032164588527631079047174577102718485505398033074649952203360734658808520284473913453106316541263002876255763765587297804832042149301766966146355696667738434007349851867267349233316247245780187708075408770935218781022102727692957909848805582588601975221105191963535390562996998970544135231891696107221793301746099063742881565510024462609597789066130411884489837211188611189920449173024569941812553111132803224403058794448503771582057544230834289490915694485571555833674018746230583632711830233041527095515916966567219714641888250244088327333645906800587733536861795332158672199494293362506622518515621656116728181793327693661649885221988415958068205300316159570552091581612430078181045871316848726197561073512374614483320772865165482842999925108775060192891451670885313630175232 +recieved word : 0 0 + recieve : 368745696593214292907135975394488649813837335039169896216592597964981901204734612297868202822888877046618465845248166263283977550881661315641280112703187661928648156672014230265676042384057084950620522281527090396144229529286247179594868625442795189825592318859093175697409072504780432926757365650158922370232907266429528537569068733973951895702220712895312674675820182475488596847506762200434045390558397879663724436243192096880024895789036426685128637732606975057059043295095482379786787083186807761554331800580782345782307644566212553911454376584129132764140542421572968449937951451329632176159764824113148958574007452255601734525944652338718280826550680218398788611334766820869139461214649425295974999980655478215320329772676852637975575521832898657558652222655840248375888966061554593213821491316667941636429219701162938326116586791040707867621859350162607978706420093820871675520371477049559484031641923799826194172139517035635880875107928950214011292901940742495043094772219366358605506735392383336378969428592192407974525120591496994047090566492831444864181763805446126086875333130969631407845435011616019783211345675841823345546069956799613843481129134886517355522413170938320433338705798534445362609491946898179516664019296863617066859267654081915833454681044156568886037929275176859344452422514803940336800933579993943654567101007461022951119014286684695596795355813982291420112859124049779928708237505658009270267516936918517223849975059325566432006283098022187201028373608188069831594859071164473104669775073702511419807068554229829477521123969758786889865230928588369127355900591159998654067688431864709957860900908581403880201873177244763616025410388283858275910156631478218698561471796137002381150184552422103178127753928264643524575475637532469393859742870868579848935268002627086892466567393631547512015707718844564047285547056157309626545228173646668184173711674166605357890696667682177252344406142214589301762999546975351121573209244058137756249555260574767045207622363681778316668006455818962841104275823449638489452236730084218739575608990206129042215298308500862952123435053093960840714833760664360161665883650414745626298224483268757743391255085187626403504864852209989593551885741343288338232822801975258636396703895895278349909911500813664675758918421956409839198731703553993354013253709508317863005239858973322899926489464900368854391781392878757943985114226711958651055534329621382838738132519943291672733780390510980476098160264081049928516368091757956229665854293051160742074174457615818605907985279244266233359490475559367626897540042758867954747495405371323616156200107889251726335324599482576455471454195997464071300585487932922236292260885481109278574347901026517490317933486224317966282373465719640864093822666098327150376877010081530045005581948830142211473398247370887122882565640897213466112073349508400943966243255963226223581846561917382280294568416935529180924500912764085053484353588165415641393307707912664831254664289015198161979937995210034645132659009870079572973649198712633463906164521738608306939585667987910264555650388213990338926483729724991397865538786800432885251148022355911410744122594808016016091726716586475432716543042682381707570760887378012180604413830675353943614800227652921919423273655960212926703261314804385179960970366098254691922817707045094813473390382844866239753885333564426116905163210704243706882444658528519883460233668068060736536814511528424156138383326093822823628500068734647213029115301520092134894098343029955523251232760453904271057993886447165296712321880094445435335097884006520547736451280180353951812076911204001731334509979914767794901281818247227380922801545464046232377045622727504239595847061117406293131711749630310687833070278710649744105629028216909763055313197804416507327998064815819257538119407510344606042734675452303762100671929684601624884425135642368715535953522602131362239604954864591220598018104779444300454715866253458268155181409008484681202791904109380285796534282858975716392970350453628806856704961552935836056278897748711931633764840151529224664985656819897353661263468946844476542856789480420546640708724211661877919875993110761014813676807758865745885258699283323203346127658291582626846737707724505651092341082493447102723060044520603018317862735783983250266083431430535373809267084075209407929016265261620412648635309810205254766566990735284637015740005302757126037533269873018688351694099511170937785239522087186118860490625631592429870819414204342762278476840494531028924326336197968093353729176357564495404684406114271554899814405996203509070387837150814734366561994745632019390360030641086158945719886065718503790625064058663013170922271556095689997921557557530947650017515990770956883941976862568482494054999262177829565974009789277529728644574315154100819711017796326906279047660443725768726656020942502897799117582528132864639994126062847922376428820864678531367096201618994430589623761435731903672246299540801899826443163627497366299049614161900406798736828056501702903225003544907324420412796256606844066668858604838663885548334573312170664106487699083608620282845649958400527841538087188789679794837347980008472108856328619740006686084248900774264632784181054413149267070256053727049422252054321498807301033704281734931829148571479397574998128812615300008767948713794041133450927737266010395812166940891574442944291830869161641970246856265673527368313026981397141294885087729649199639792257073067249496854946803416750521041653574683125385437275336146058975675066275930123263437192549404556456562691341704795395711550777579770851569823777583211941639239079071326466393935121066517739911015633799842421087252959880713821108317946402574795158704854649265101530692738378827129754539681322194780593216037613147581649245305287588533781060216889361914652471210342954614954789005419754025833905365897103673383193201710498307857125221587377379944400860737760717840819154305506099881555855063977009344023845077961514168551781185715503536998157586503481774969273624005853332916056504291415382657547209053057585770898932613101667989207774195954369942947175819278015866372490682550592866950809518410477800304399280641265986849572564822394720819000877027994740581108444327659155521112648057387783071515691001163076711453463583106091264630650607888234903997262695154225952812354647869858047654856249563562556788206683411294786470193960853415610866936226292046051567665739060941457996397888435179470472518588279638976731101417263975500869348751117953938428282425740139243731037805636377504162084939560214897674092334491859113381683704383755544598793622279636030700065430924110006139650488539806143429926995775088021559931428103517212973460613726899051045516763137868921415387016072792068951831080267178949715307358231304967681515841757096616943494784844111511781961483841264766572090356356312679359680480864172204850354276741588525746220645489629699467169516491482027135888412566469486087793796856690242662722195926270874657816340412179994639495157162706701372022351391303382437460156097329732710264234735521014440124212213688542118806869602090344984131530447044145141871973379028433617532060892483894374424771373140238576507479780854806293694402226110730306527538028051372440795884014355249970070510336195378011384031102651862596717118530266715676393781794827876808073322650393014867035762820743759892714965177603964086764505650788883990845666626820797303824483828135805375582870066960053293044641951215810477154159328980537634295906101839983277878095876699100033667866822947726304525303075282592558884894222212725087268210123383882445586933532890820392248627843667385334373946296349112399459386520796491142071802357757210854887166692734176640004404563833874861510384872397766128883432089665029033497635725848531529063004016312603095647816555392014055089313372952709302986090738058075154622597518190690297814025465834097791974879038631840951108085564168353003001498519762691770920622701576065363503434109537229127202135483828323297224028738597815488830884338581989666490998641984936428611192414804800232362565486040700208007249025341886433698685624694975386039985949733193751057940173002111853807791861145827985580575998249524086730324572424808585236044344167178829867615276260627537083915401469649982223238962023550368869392868515186575088000870259927991348598196081344743814152956944712239797010197889659660834878375679458466107596779206811197189593374667638283339351878233955298096699810581476941024054458148488974826979475848304384903573860231655393411344375995142977867821888269009577455051858331053083822394789926091988279374688988290042692588162864120915493053565184058316047381176572190727529273977618994008739637161715550925015367289985204192710698237712016406644260068834124156978545495283731310583142635290895762454849361446326277658244655778020160639414132288256563779687620228326980902567107083433852123592889220035450019478135998259716500254053316822372902218772275855783625659910541954191454953017353380032254366553379332914303377414930066203847019878152247381697799531343825728309441247391623603561773964144462630020311203537929743223550639053362141840809090070949499330010779350827537525842436434343917754196846849872074782387668521822077991527337152370056584463943091678726001436336071615546124207935285970662070800576195605622323573739026024626174036952870377925997559012488239231174828986639385732998848845571988020518518700795729740482143300260997867008042792775817607931556848988712009506028262937171860335971564406402267469115820817083083043053617436427812914074684564499814692486990651172658321555293632137357644688763884105112178446756388600368563997417477177057004440341886927610043479697188386199339760775625187281381234739273731025238765325289339182285011486925987201409456857115919923369266368261831639219281005276974986104948079308060656688882223064712066223670246710594326414792444886935290703180627017088605317804678163591119393024503513680426876731144746663022875908207555673253283778110954495806842907418751497402437228305583495021149519373436010138885643186772975891260128954774334445945773339166351341781064530163592599905821915664204159536700980350850400830061269468612037089979293784170698428054965471538848261125764016438525302282341662614143980548234509822169382345421790819304644701822935998016372646118922644843336959903437695898849802354740465265317853277950802787565373873498963283867932610337897754740717487451792747550756118222069621443590880297087675388738263616966110605545944455486106619269656823538598590507109566657729843993034159819618365363531114802349673105040804317529950182940381369337564424582035852449132418527104249801709328311052106308230228388060650429759333620304505720265959980763840325696739376263991269952402990356088284055451773266355591339303410406435333079305665511861054864767414853799962434602440434220386142576125976193168157478582090872096847764678902342821430962656356184538005612867333656955756905030274519903769630818424094517049320028557646240599484764318793798375816810667076046109456799075895151239061419292424189696493157490706708121771297548709632893911159202150950853923477980246470469561502681150471126233321423382062858397615177599453489592046807534009844234961376869855405810278087434189418588810051144645744238082693218337616555655962925519302385528994136664638457699334808535629714104471666965711116249107333645084174417766770450011849690269154733475078063063559987849340757711381445160307895758822798700106497049601190284178307638491913099812813552621478584992262354280008199892181948829469708803798955594310352878303136022085788481665722343117767653659965870484557351005223717070656355734791952678437386338352448210320532400870444413701779602379167388224984178801365746703734548122962958746085472564362349346174644969218942578713597124775148259832822281738115559837020389881610719131605709055280349267582455547043491805024967688835846412543218682168091486022738128078864676586971490518935460386173476899564807146634664264455309340453278919124165414907804828781336720903051292164344965893859789355085026031997504082392513340585011970154260016192596190174213753221732562131694651034860560151357115954294382585242980309726532793564024066644976686952581839576757012947206981428012024056970190600227716743634519725624619417927328615169377734499042159044043677914148315969563459093983414647302080140705342355296770837575364109826054427559132747184146829521892888125609889195366472039281931818187358991187276017591096656636974756836481320202965195905202469832094007040081000486066946938866373385425772201390235328160432463430295379823200253851036451095194103764072534252626587293031768778692466413207727818084492596571793410793666845281421190621580130861140691323727978875394481660811347213045175387964217464252816434953335544414185935946506432969509709979753949732469110140043011009430940307431511902324204727958359213907583798327975016010449756102716381552390560560695815836923331364653750016149079177739123125468188982316986131545380518528153921823297276501865930343358515146184874773730855123392605259604230138383497336222377476745303773896163673826546944085275101044551790100009743541528398429778035040292853850167567998057249910737182268604063767127544283173953837332014979125266322594095540849470363020246294426379429181693670610228831151497207117971859613121477276357725154536838680164393253265990758752138384301796467358434806622991430204095900358217587195140755156771167764828407776061384436742485035449726032212191248782789232961989551302395693029601784541494502663159545785375468464171420764944348339476388974021061904934871228217011155444980127703530275569405582873332125349312720981473956224587135632749677956955970380257273082083874588204531825582102913943323204998854390180650840273614021175377439869381831800476714110975170425293264036415733393626861352765770426502542018643630205585358719783641543604588262762635827288112577315722135029891198143523788900411075682132944513019050465503605053732211956052322985054535230620985304210457159919086053128647762375774938967757145936042693406320456911927892931571799640921206942176527243747255688564023564322926324908305822539622756698824108446796170804132838355869288028540047162363943219269477312371114108428520371232476199366651015103410078974786604365983246823487374171314544828112055047151108989289414592345881795727880909638880637236156510194042245043463759264215992085893870895511754481263828026561499378171510951296100777894686890910619279653606466044963419161444490476074195720999330791323192054898257852983564989646885760430768612881793899463183837079505956896181848152285922095070397502484247618328391830421860969002105194839366465597464381661246744943736900464815445007738073730009472641977303983084169959383943103885956454720089724553667528579520217863819210725981751723804326564428077031771369873944194874606732427701271462505567719890432925355420536912836171879456668456690511333363649409022758293537201426667789128647730338393240614509604308672661073527597709447412837236903784702911903912140567295921582718557207875704451016466685062247847267262220183279782030012770553789646761307529194718239975851594777243174845861890055823926400308673157398277961871568316755672291673189134754003094151790603832775222086609548880618049367899673811884737897989823694396209546886179243053334400983119552535409590732289234415496687215633210895814907567458740880513446366896488671505359331280140233379438083892302046395893608696217760968435706785408295648927666131021111448010068550912900797074909481368505975790969106270890117800646237207312445414406086483927269529060753936509940185642893638888598630539418723539588381722774207247140407745680053851848846100623611988295134039755330848247496841018127108437740038776040326201500397714436624619094692570504760212218288165685298482677787235222487798045615004421453872237950449054251351192741354351027467500672298683260575470513696851611084044453296137758190490688882372741975475553783829272027744852101682397927577344615414414612338642349976344367376256505223237537391587336027231872569032002671043201686459836846051347576244796716976569989054618000039643478259951084905505358936692348598912390114655555744855706015313237388282732245915513128737489948249627731113053536383816679660752073792915063551862506953331775897399850022261637289104200042697306223187788971346360900418246158847036426324396564990359855340510500040872033899377320235170455171420464105003486775294010540079095571600442036221316306115881324953692675204506294031852560406968407290305001353027234901127406492802949267407529443011675505185591110987861914546392940290917973681577219075353796900488999911414509362794420651688114936851701048045286541217672517627249574873636035621762475380071301935029232688872655804638467326487240391347474533409998196648907613821658783088145937566778010606762876026296577187511619289049413083612029038137165578235684373591254144752030697893730463036470360382378937474049534279208155238824232176128763980399912027507761724592685419236720812970790071452684798535339234992410795169978139437285441610517706106584494265671229566755241668352213503366232732606438849180337216288679742454595558561383165697596259465928685122866178490868679151488300325287484046251504737974659743173834200143492548011638208150619849167211182621881876197017164441665910101169469364279613689955005394407869988949151113520403125868923691688537074151822567226844505777586232818028400562559542984799107334512184774509019070768444303165312527397171635451474046227627612339591829942828364330580492025902040470572623426333056402347826388073008631560339447186687037300493329543520113384000365888510329023637591303097150498982307114297108148569374701997915695631861175564614860123804521149226840343307153077757613069161843152968833942347261624791257658409760845491272426163483970361402053196403664731081288933156579582399745801502580696585443051343042899044597581412799864888737102532527784995105880048269642702624780681443999744086723253618578414226565925942903972541048104259569407365775719939904061738183793109517783979857859187283800359287197326421244381057095238039711564139507071878935244015447521099667257656597223408926473134339832119580705056102085894133146795473230792006229034998381835394642547454951947259096337519716796656869218697874879376139223483042712335945669404747375045919230728722957903866566101028964111091709581037136113835057435089034418339590326423543604131475033374872513201127140738389520138723863515380936982134427059152405337251474980435307338225942800495698963486936648548009555368435412146491052694680050133317288365583179762611117180831327648811562311620565393881792394267404176309902845082668187750560192717376457750959217407558726694639608972221828282526292104765672182841377091390844888164967659815265618243028365283055676571326977651389671641868209867507098490216835084449136422959043904738496525026143524876876410151039364469600070784382647086321378893872001496544415811263171362253607117925102924403803928365124624107034933773970888198015900361895985434883831042727348117166358937421481034591849055157260051636095690600805062475364305871317843766416349689296490248185183883073827307480638704968698710697072200028013862721651350968963180540859325124806111079878996267332138606596639042928533129298792226700317093669460114793194623666648492004610694394806316481394969095937482043068474634709915503052633608728277201931246525772001488989026281947973110587627356494263765920393110798119854830389397255737713520828563654049344346766292636379971898002968103517644416206801070309253097004491390105128252952624277568670293162313304215010615892110205880491103211116202843683424820692459167704448699989486850233420174166532069282057809923018260138624465964152968699707138033865129013497376136469502594692063223958090890869615608813679116302387535126688389694708150063214250247686538675936685692276835009030841648728923465750896236865712735891666650176395550788789575425032239875790266459736462339813933184853054944711315772745364421172717689560156043617932153473551615637945699801940235344917215751930100069304870400924431246188088478120587223359282868610088830993468379771341111863447754224790353545607325497882555466911769273534953518496005351418154503874455218577224217920506670650860548503670785611925162884588467647540002758972741885657354986429787073509501595592910783840655281347211744474346851616856697389610787925551413493155631994260994055833014414041354723733160516782370396580827884089542679240995207897843902502989623152800345021408233860591371390758617349273739438613986700903591627678175973859434444315292685269696103108642544864780869184201276609787268632926979439670891196290909649593879497539086627655552657817254130105675892331199661306475038372923849997904207226040066460759384777924461804029104053541790576747732966380114784865275746651806756324968335245445177199746884987835557588900606514813308540197755835209537719070687272939583397755702023205326511168432868415775269664621674532134074289566513401784338686380416876707270547575586143896360371545314301845037319573215238995679248057841414930522738874241100320656936560845473750418736094474041108876394144576803801626306904633621244991358421940467003336099312647740153653053194401011581468747026019228666114044642040854094218029579478805944499866425474019774684927833950701061411672155180644595208116126565869496516211594681412546153242589259227004214132103549525287489207589098206988060328982450893914506114947899943774665590295735408203269435348041021840733827613128178688482515686701982789906397856996729576761989956438200785314206077609061150152502777912650582081713320314451085799442706717255697591773527189797485205862370966916843679318266448819444216050556477698707827851576713522443156376626545528765549517588113708143384483511553561762966630245047123809951429007580346631320884651618381147609434445212208973315172001815311747647211691026671394858162957283037371498661588814074213629590648553170846132584562945382204629605868759144759084079153348702153802750785850508425736430784500581554889647170079965296534237837082719086197154522014183281755640880241691092783692255662508188829620538062140197056616339029784814998619805788481072831673075883479325430571054641201062707464721397637855956789731471197828540657958522424858451987662258513575233051179895646380372636649171192411334641234262306437579571222368068134439418082382707358739437546312350703501666288701959429767369937870425646264030302868473929440766084012994886579509435561991651026130344614293346488311138477968016354481484887752717778225572643159078218890486678582221236603616414210866818692147145450173747351713674310599853260471291519841281147426711889203873682458239662776230852616748284417386277679384953187385156598186299477631286830126407638169046001263990135980675521680376381325692990440181763002674531411244027389505090118621324293636960232789981003301830384237478799178418446555666220932005878265253679229673425963301286888726598055881983158780109066935947668143349443250193557420177092063358871034483002073945152398193253731059299167109207797771869672906721921917503685849353214279832268662727797304420709382720010409661581844325428528386034054621085017552735985989560095877016332246240415625627435781190029832627848502967069121555389065510654071235478899333054329278252644671301832486006235747444349284667447711596893111342919917126590824093263682393480697153838400212599204147287631814592312956165144057150486426969005406242077810683274282075475785350775903739503688762566078105519994816718046081662660007417634917806241087485019597952597128888769714272453932776258762433270148338561328798096653932374924826656436577743260175925836353164684861250481471260220411431984015046864692395436658423300132929789812154281985176701823895910489307097126208206520715786999810345163093373999095923867797375190918235929026972453081580846392299182672377576890696306996857464894941189772672309832158085382873665131230162319572202076998724141814511687141875766147529526312885860992846562194293920329390616306659445356128371593223105724834348798524066368589777008645430202655195368595224831292780104855505303379540309109254375005776438560850064629630733526689671355633575487100614931753132640911081524532217344974059911618408961432522343650640985951002302882744521123550648662823336406887357015890237258279401582459681202897413127260488973933335100584389428232592027135929256371232010625580789887698079259461669102115551593974288820297758002741297549201824681714852926749121054629910117278720230085531372163458589142540031188307410633714099166016587409953836474234453441755341371603877557169840407195846090356836329814693822487252380485417553497923125328047128754014663818618729854776854017142914247437291017602482211559339528730117758113307074514212542622930101050977929359523445589346120257840929246677405671913125389607031744894182209501782903587518530222659386344463772216720058737309442449710614730455557842736656535226853305218889548342055439849749788682970809205817245226882765247008504588921606121095382232221829309341301206919825551176459870202428518415689173421274249575151180575682888718822455432637872813646615492897835616231069942849195395286084999849087857572757675410123875590078224790054672642532410538098891915567977820034658014467111179436999293873801248475215584310233041459563941718751259134614577023965376148050164554699671402994967405860241566597949160405179425507467847643777740603838925356340893869383539751594778326111332794345167497510623786585515580563908718279165913641642085870428490874771904118329452154341383350424303678203027777238163195560167597867079001964898230462147662409377967890007340956974586580625733799150282569519184322274575277385592889686482602186157881617764086264110132652305907738534945043890556987937247089674654539845737391529845718190524779102563483278035294455859212268228042196738921625644614900266645566061320847160393999644721844476511514723007217401194660454205377861147643017077952748642943650566724674504506792483947898996116889221004124988439704991947784133809239922767276477393222696019524670599273631732276189648503915716219896240931548241793881097941232663491137492706179334350988923474747178035944905871587614414230753458569032369843194043376644770565895618536904155311512471275875611344343131193645355435524828291811029804197607094504097024015796225959610631031505960993671205312899555725541774496401379370467883523102437519074146548194305049835133215344212484818204573772022332231324669629703739949990338073288923060045750380604679008783235070033439938009484558986564792495788589199538124594201100368693464079966344350722843505429737607869307969103072077909749715795874223739209430931653811694671866125202735709033043974070177391123674241834064397897652971916014384089923767378138004843460915305044971421627106862950006364160789954755225189176965939940409316156591352415974039554951253265998593912839636404993608706621975235641510273142863836381928537959245212178354209913086000966055123601410049124797162485450433122072723578042788838098139175529896531190954830990413475826573168086021939587964880012167740595225739624979052693651188862046096602231933561613979841989910856311028210803027117607479891103336390085933208697555746939045339252383642854803518495386926008472332933840919957461775433762511368844727189591336515050709653081290799663005444259589842595437752098952444864776409310301501556029206526382867934243075236363472430064766167574735228086299473515746747742636984791335092393657929463185121415156622818870726235855990334955862644114614295728135759445026983866280490566647759406829657573298571422564039486453199288693091802174222166004798903148160280229165394795712737988717256910020368992448911584924971688093232392316083853661448192418497674555935518669828823839298346741249178413293433383832432804141397453865505814068178117471134854330902795358721749059086882649108774535626855460099692974195163024524601378293306456402276030596162577981581889847145008271386677241678877443279116413162397047176788121444689296187689306279883697988954284736829536507780411744140410562128105640330583827668270472963453920256328443370745318893318199213850547528351684741791557468273766370976312868245422271546933413189143315383089305585067875941238589518426906989156560453765771034727509737655930482115854198282857757528150974631478056636284948905058823972396875933341297430287025493461134518928087199020303821592753298932727922552642288217083425676645226754904237639467530652041036937548319232333378105915117164866047792199056528935911408491532676076340600126840611267122367525369256636965588649416802472021730068580419731702620108958720455165220056096268678694177112687843296097260436086592771076949671324198878197787754131745961409719909812895304107622937973597079722922500423477773734119154205507756485839221718442326227969286537401567256302163876971497875683016963760685536197289176400134011280028449304937615718271893560036216430271544314040970096487818605771148738562557991920813512908537057759547794592863258528856933600411053996888840007987985439061672483526673065307446547342073452679870225333751180038401963275665868621178273566400158987650593447355965875286633664546190861091196913151428400002589643409065919578596563052668919581090264775578225228234360726998857058851535138875972784672881691647154246938777479107613653765229238044591318415946180691996158116349525621134728433171254017500461652494837377207300892245084814076046509459407405755987781824932783661533342709303842614575644611396246595780590692210040121295115966969526783621081011359783110272301696218508971913768824528156257895836485603695568898747730612579418998237280097003845371170535854285621991706256360886438624520427087263451167393327936764406270032017491875455909655812664582109184909882299804120768277808580662863543957361434747998854744901667484801238741078772588535680625689776011749840732218472597670867932367395751486792544679869318360974284597924185056631796045985319995385654037781696126098981439743323412892073143226780057362529610636878950955145018550657613217298180510580214556275125425244656189033973371627588932600497741824644655993196479366770126920340397860105291368425298790084670865732508623285595329668654614398321891240635545295940875159552554156436031387541259768800884630617383296100310263053508285384850412745184820062140919404256252531788426255414159536858026710901630286838043566260715152028062925882991539091260069531932576857167510232592453251416574619726693776948850330820041526549931924379477012611395993177018848899972565997049323280942815914372873529972738603777324452687476139690674424757095018121661397886380507167187149275710181202898158790042934345782845701030156479172010244599873792264492754445109027491547081564606528032326906167583120594248984846316500322595175359421908320273619209825764976591466881013057622289866747999029898568022453605020407250649384431066884449380121759691683813719568042409113527955310381814411099413838858047881227142604370127810865658527135389087907180677585703606656716207870945595928910669147774177851291974234153984392439042433803644127456656221723463625067183890042812837702987286840886746917650638689280124695681088063015982613718539944778958943541168300812613899771957807417674199229874325817505020855695903289025135036212208268276857791269440849890922707129743467319502006936355736102864883943030659922738979839740707826484500474458379498643917557907025087712074000924469830205698068198646239413416632075374292352057170861280342900312274303406071813713221379056690905869985880597830936869274552905420714313938468079828245804635611572363404395466312473796027404896740698887947814331442049487043072316843612566435774260586087756117253033359033984391777988716889997395224144075412138436021760715785962488098374337888284784965745598803242561524364007322946400512599902665281343131908981038892004870990091715579402848345105086317343523125132240861313687084287641645768152506210339409083144390822578065430296572565540499257589037201348259794530057955546808050056797813602658508636025708298223181023107168787693065557644165959294106507146176561427361847997450551061348073200542217907954849840841207692882232022438804339432801428387217896762721509943356208213776354008792805795087980064538516990133993184100110032397519347411093490239490999459746125018334478522892608245718430287584671479210256626469991081865422923931583054851559633305061822773302651326129353102386522210575039308884387013020123239001891647799552017083381379279497106411802500525901661125149373293652188388053656628277118062577195414096631355285289437882349047885717084258326734103652385920412351932654788421208681443825920278147702036820708229192131282593325607544777977150523605243080882251972079786618628316901575255206931592521670642746972898801281481105213356118225154408015824705273404113388010058086170895907324184653864236515013762365887476384245979592632277104042097717979517807949018240312370749831819971426177847157569900267020887710526891638583885293187522306938793072137162964961328278381494009097033845512958069613503092846997081626818797850984710629572164948953282917654836929736778633780578215993305088627112616445930367452712689491859417118381412847826438214804840602083312726267748099995608036251349533408959595381848851731772512384490878544454341081782023592675110894696682461297581225174356227722425484753245032175580555574325062595636595045293055464085777580509477621550265909996902273186318280309770046004843549737159703058574465267901774808745519032894322781040857042047000710582267876444871740579637177912750568433176666747915939599538644359601924702953780897436674915033517812286966928101630709414752717636092768397222821922664477095066652858797753724907495577007447643584483666125842584149732132741563436258981311668559664046471482236418305108887762574443298365238254649006437063778218912877732818616228231419237439107319778447463823365909389356530600002077180887242337102299316165106975098429288657767371443713475430961041018715207824094530402535316210276720464433101030109214907708137099211897347564686379935533800017677193172833719378007245502813220469210155910237543088215122294796434001691011349496917966137891099747123755269531350123732949638032973974386697567369511728014854403681989827882266958720091880761884835875129125622075381339201368413365394073916904832285838437984421311702465697862770656284777862990357687209355962877430149997885067751638247650260431978236153811037937687742345877340442025432373233426714869463917426848301082147114747520078757764915173896899327540292325249754833344778773232208771866898472970392731564744886402814798151888390346032317422382843350980885051035868619400853372421445385054615460651251736059659721226541955739187391895959660029966860123271313867772026230653175171130704953241576809446796941877891950992428303167851909868302599117775684386453637911169225350414375873790719098947928762444291220088865359329798245411327890546769465624234487562632380710040353894700296507393977792190428434985608002757842996972532945640144695358582639918414641346763238086260903431037616615540334414815985412851030877668232686350597827347026768594772645154951480942896608669532939743492420681017179374959936484473484496098557650423003595820990856486732227000949977778604869149510731367109092468227130706228620516926238092029978027943577007960270405229065953931807326007610053598164239615748386604163135120429962739708687467011818811034780962891120733166193154652052130509222466138523706833857055939268832789095938120134788765840606024065342727390904116311970621449131450174998339083761139017975354679705817980355119272528031561298334021306042789496267164674085931283357808195481900847304660519461782008014991050066790600630148691528628168332350705873497517837567673215844955495424729754415202230572808967078490920966568293135503299861892192166017440012302503463683881505249249974841258060654831030164433437927061205745265235433472801807649317920081278969148488111069862790944036584780347932356152557795191375294698207878350401088682078611458125009209289574430386892125177869639209250879265359899990522465334289446384113051779328012357711172995693973791292262222248343142155445098389748020312841160779462525726651893589470346195070224927171068328459915670280185856546692617976209707278842490122270000183554361869700402424828052757113716516754898956617473007906426437598717891146166977558706879891449039721438069471109142983677612609479430527568220905256076542592408494488958085488620829940989731954590773658904927387346455556936470271238506046696183854841506211296056400190105850603178850006355479147254087459698419396190684419015341374930272014618049876753909164494436470313232737498018989144895215894156160419632467044370947993968208715509424409375731771349683155594294342288922388097200531370994090694048532427953623829834622751905877874910476561179438368303743101077523114083834665030797748624505190338869685388499303710071560478176830993076917058058276980483786902493679881132889901599029351397080923380014434988775649213487678254480331699149001996377471252171301773195570318250548101553358777136228181126012132040975133574053849475244499198079304034330414491850919330701146957630055827861363908649659772013982948512826445285723561899119201871982120197385492155412045890356035161266589861868591375249148018243635173959074719209322322180574966239049189413129219748295133989575777535977894051965573868098095344456107917696630722348693907902114571145679904856089817449539833236429181196778938799435308632668768685014153354789205079374710604441659160850551975315943010117730331781868618108099742002060035383747562942985434832012392990367110337122335065718855968628415017179594143101962743408215991071531180954490898720531561122046743274039600147473560609821092256292166244148654526366547720956282435208683778295739569518948340388655361303109529314549674677644920785943923370056850850620387616149801882220248705001392011251582232967212630722151175602621530835421837566863034752890434808450342470745402691781762155277582234085128322578890641297600062979119802240825059132118706339858651925600165203307828059360568129834287336500292607542359860182546526225867390341025123692654639794346754741968996935901669109841753812186386632759759354160559956344703872006682843989816613738465094645235183081248965065191180378231073150187205862291953166311302666110840272241022866616438620629653590155094725354134642957487516989173834545765965887430334635572222180150545369062137893242220388725588191099881255289254793854582896560923466078765631644298943217642475587515451371949691989610387631277234952022577944064921716993955154281924925563995063798702693883104310987699835913148327357479725800747958272 +recieved word : 0 0 + recieve : 180161821020490366330918164334438855206483600247081310538692318728455261832838592956090885744915043770151500048354107272042463137157029943523841189869457034503058688959467799273206768485018004709791489571744630498896316723460671461430732210690416406194903488547999838965093299238019357962985280517348248385141232048914204566007358818670307644722968189195522404104016245338859121662429502892188285909433973461265511933178894175620265554760010645109455543432779219080706597654733272410363753714526036129253343011015347120939172037316325720248870677440510120597960994741115811946869157605633370795387865035020270362333327439989788180614383577702457252059555655516081138703016495324511477595448251962690066505864259942315428396775944454715886611062503406230216115479400395595481514840182939803577834055211749486240443380765269152563578479236810593702039129306814310200629596039931012569794792452814719336395526699560476793738013483460199038407911957022346171023296194701822161120128780200885242447191404057517812786431809450862569931748450120720344580752128250012847201918433611130208294001742087473295755970721980400625620270960789763179530095814708655130486981638216800588624711123402945759315723507246218786271155693060365983060268390875344741285705794143272291806099126751029587327187255272290682894311378578143591685857776387632464062899774004674371654177610484316781819252051575110844404571641007555232813028129307689064581971294754189030719233346677208831315397773009094314647408643886065642110025315020522202041885653439325907382315875754236237269695137649272266556861742689714388486408212154873662518635524051151358800173836212913533630870587145963111582042219716424501965816788275028509834445376363128122046050390217038378206035210097784167838780197864367457693794212519112896846640770092449654280750799256562970510024162309576354100352001236074966025769411841826843478501742692374035105522359895890155540180412526868203595074471425724142875700535434831202509998036477464164856689916451169363374341460997184381532123705328870312833705798989803415647084142524936269240264212345398277095619958405484637696236984747675207855143679324666965768267116095681119447763872869841698312774217171753329632067662909559961369349108419378532759632104324864443302997196983443144941922268114223798755371709468206916372693305173749056538042090405034856437073417482123976104601269483689805906151019085036149926424229000773337236126908284621073450215395520194679311007353265527226956373155364641747411872436853318568953806444089810816914670353399202913309243948059890668820591681426427373842985465865731928053496389553218580648088011989757124633520085230720879046570506246061144621036185536608652539832386937487727217983990823423563417393598714571553224967224100793660355910856432697636682552515861692839596611838723064288941919648403281208173303744806099950872245592970719745662769603318219795376660923911934316887079039136727571530279939091472576735376548873169134082081275340835958028110524348345422796204309823759701664784343714233596478373610502287170261626433144066700045146732279837906006133263214845099146590016151384744057323287347099893741795707430977737757585742231887760920530971037915033687010846833011080434914085513205557715317756194222014924399694479801728248705045558172284356585720846776183760379339472002676784254322953065603687133883954806076607381048280991747590343616630952495444893417117577096094115357234620849328275563164574850831715996420072688374893485603622555974021335770755213236049922131143674370448821897707550145463535013169833518203660513825235713373812034977792423023606290733839604531626570817384726263405020030752753710284253811722757229101590747743991107262930221425526202253553535911173941123823313515641674940503924480072999955689527568920302557466622561184141062977710357212408765506300510354883633932837038252813805538967533781186766888656493736695455171172870228535723305732571941973010227739052382484672178879501968472040778664097921817443535651168870413912781172271730750506171587817782543227264227377472154346671769844426722106774244753162008700485892762514508107908027868005843834684306436847953316710404829254648075774924468055203484324448832422942162288345914141882794407014027374643853334052384491329677032664581611767870530267051199447811519125374270788199207475094788229228871080985540564633133512206803239274448245263705305807875559042395516055079003292269671796862250705118719129575280870326938200736536906332668309363420909331068606390395894039192035191673191366412214947763533261566985976475765124231753187676354661303647331288303176320929491111693762765433812596147309957797605087698083645916214209697935466779414400557928162393581240839678285208399358453991971980283866277891620126087610670542712316790457400887042143237316673937377172415542015478758239043479302907578038013714416819134323176929267833599685781005631281417329502369975861764273136605768237591920445703358298964639827905566707335169823241443924571865458539299097184666610937730734455557206504476181309984397446182058368732301069876280915868464284772815097574828167557330209973379109533469100863448100658037527307078536842917560664327091512050972608348945042737144704207480955905335193610984592200390442788599519490166049279253831367751377929215222276008895078764333409887239554404747124255553603759478185166958465113624520384980249644634857099300518437261997706285700835195062993104115653063179248256396689142615913693590573154807981637739975613240596076394092706118357194678433272183200471185366618485155914858927550402431182210842079075211220300958412462171311046023149973288221893140575985846422517393376414372780639773842781243914487203787333711492674766429069922427239990822832844001049953621250215551915415584947421313629531357957452496720874131771836810274265934326230125516743218281524414773881752601259633936983107402997817796439809104624098429823806362992421050558836152411423937449749336086954973427812247710779687755093056557920483483463363268633390749579400594576263495421166810165781225069255281997852589141191202561693666345726625015862674359322522784844541345995469484280246932119239800136758792075524673776326966398531841451677711784002584886206137980813804817405455813090596459145077632775872079456754973343725476133370031185307837391782034125178159382867206128482003298717525805460688307604491346586406848442431655236460585585121764252034163627247931227432866636223566357277607079423248491211758597172168815455554256120415138976181103092352589830344086527912772997864406314060135252485178364113137096827464699026394599965640083999731207062513927883351235252826076023434523929556672965046420222544957029040257008431749974314556335634193155770608952862665506523223998914400468437398293078004016130364315300147381868181805736221671693443562564915098554674431912357004901835411728843558642061372852279584401430038707526957162939972053056597567285536966352445975026965367100512719450774649740141968130620529612543708056378315097172348520223222838860993477848889756872435339786022682506369231996319279514187947700004210844253841626727638804908177948429620406955477355218640465906075660897757332427628120563229318961724184410250291008002672913915183309789646073536238351724950396729023052312182811612318050751036989853572821667044208793457840584475378101951526654795935127378669677661466251196103420197746997942239597249975549795417712123905177396134308195097733227598790578608036850301143041312351390853139790407070940198938668995396407465529430275160604346246599797825104106602933819673151029660110716690228873505515556956150484276524644114960630165147688399579805154327581556171269194136396344613245483687133679292118814743456876457403470621626340944526976309631895894646493654763196353784651713670017711798753948771979921557355195457098125255753512560461508615204448354643415655581139086514830831891629716250709946820396918840166945896864665320426901086900187162588042659238838847935577251843893601909239008008610796141805444073882075487063771925839140236881737117991551615756508177365924618978081330452322393660251656167450402640137889084175098304758239310428016708443528933308427847466614323153127501131558017232679252864623477634524966735978244024627531565034361410944147486430646733251977526984708540030933992291333023500623103554730044782939139377851294709271232230628413970939676876745875602737942127442009152552895086269159568336750979520534928294664663895142181154219605932243723769110599048959045091334477050149499911887146059875522466028751955817408460277678565883998010180983475288546402126994257257178953111467175287661953836212726002135389023375260586067089644784106698170148020146709880021629890696441247208867812774367826793590105565304212132282056120567586572468319065450098401346774389584422163743021464350548348729504060313449867177590261001793182049433966717000911309639867504065101813371197768930866529865367596002677443705696658668154040355872925095017446197100552090155485372925982568747060204470039725786239086417036872920574795215689567238653656377122646522984784076737376749297466878412317089767531438167473079366169727482192059078563578417541415461111688434271430833808735036402188861830012825303965742035557051504746729207957591276736851456265826909902190519489884306398179416762783873837121045271887225802877304058670981372005153800994525933817099764428869296242629012084251454117345934308147873670642748489672832166118570039813273538636085858637818023845283652799229168789021843240951271981723522120407940978172718446594651908897929074674677178380387593312226404146691519010055272749005722716278135562445083559485142293104109920976685142194182553140126238509686014385586158721320477694134018324454757795833637485163379049181811777613399485962107791424836916106386764230359182932372054758029509610773225191696849647272046979592386100609519455577193759536086211518769086721404247943065644260276103488783115745127143342134888093314693965217543380835465013164765046519754002958787097843844215378436233140928271559970610117903529930235346094041072227714315538280354143970404899815501530337316973508895104611879439278565877950903692562803922052023564744365719438170143686197966947956143679178768368036231533947347125723735174261209549500738456874200685202831668580095171215740481585318873065229735523443895363377968989854187878186501346508729171233122616879716068707254290270179063845736282989289554755677033629405161138161265841925951788573308778174153546715592474429748017599075564305826535040759076211632199160774329814080920165363911079196591335022110766726881079591528680959225114243718448404363464865463947783346219813447974330191921482286035313491924876943839960115480684354638807291181065676766631375523764078629096520373000479239161359869769990921129051519770359021608743787883358429364963252096275089410194886823242476322292358184865553451118743292193145390879968832030249875065685865570961939262539035911818827469218171705271180419364792364091485257037575788666523312826189090416384932728441680071592354585395115430736328964481748271277843752274432775895925252663246756873497036692170811135847288528026640489264584880350350559727162949513739501169108019546516028747840549067730184341665162192593333416480155656267324098077756269775128769702852061132469239599458738454152867840873126090732193704297620178763635478836082140968677538868264113712254063821225410754792748741219296774110145654349030835726669758252015544958341328652057877918009847025263759105687589259702618066735145408744512669905677599830108958193221723908739755767911072927961706901487623356454743726882690211393292377725293770544961212270460992948607937618299020050845722869263114855970560528604732792550888733072587426219901680622325426786055535307276661544432811295260918282526561107459957969812491019899721202604130795690884516788426736897624512457888686309464748101496964852507047091612517983387952891882464161101874402459040096128808895611532079806968472240166006780864077632182472739489193433331795638495887976970545884837821483087637957494932802961487006215209535087566406250340582399179756137214694116779103029430946326395056046479585604095368889812865907123016216996031880783191495647853956011687730252725626913345496803884372016180747104762159591441465094867729661700501637298982950639371106102199648106461411474589477182187759890524127580977110218251725606086872718693381345971226077451282785233917849507092968425517547193655392530292936150095537034395608152949315908422132403791545950710797191074762120646018156659213390078412203015503704929548583618114340923829374043552470028311702608318077738252406361191728245742922222948758974108724986562217075836184366414929705881601116775197052685706894414326191539411236410852489090709325201937732812146469741090243417370492695034709444253740287920189544601208460020930522593426192460523720972169803410592541257386726181896742794478504620574995567112113300830890377711736880152389031185433257796955833585968431326656070714954812466743844828155090823892321993357502565981082597377094817415430115655862489093960636281947570847877717948217336601219868189967527884584028153960859289072062252848476459758050269756268645055221312529614054740215820515848995192027833291917221193862934505096960583523620420764409610943513183512388466158499167751518345736759736303501985489266069809884541764898263580947134877700322643546845052827635096255132926366196860024070490523378632506034886968109210476043476135182381998283762361083170905158497080640418250429666627776989472423346009215577089063752828345607768639022503854195998760793110879146745281220874081467941588973511561427307664626074305254419172599345946629172355025305641917072344477876289929673268741344221476605477161351286544664200544011121177132974121066472814915052482549483388988976778270155404929581971033216350760481450469669754834099611827579462837346210040431917651738303729402066919324759099016107858401765896373406923545955636224344648982962562831440055356139752345945442406762972038910146473987120084812180971852431328246573302418461298668699700871177234441606093797994742347196356347999617384395957214163528453878099423408043684164570670969389232941389949980605641753740532845926176547865754641891750262370815273228308581260459129924058154923841863309810860495963835259961249039691227285049741387021001109293238188768325525714501949981166736963403194305019415913398171114353080062312690300266525479301392900600686956392031120215326872042270830987961946559273086097592229149940931713351489922945171386858279456147652572313795700228495547586238687575237505332555371374912238295452327997575888163202377919568918184428407746255207686602152028603149227214284369898799064584970707546457609281629195746246151869202895151258075696336966033581638095954335582787809368612606038735681112357577382588356583564064631166238658864824802551427203120740524169781938128382634958216689743376091389596399521778859571353344028976227882675979850599807544893191298781063553155865328371083379255379777731887220085654261242410299536403854198016500535806047183259903237575945151494289278069023100357600323856661308196533895402479804324560746666801465328435482043004523167352963247128864904619726118482510481895750890796689031585057090193758981328653689692043316315744438948497324906108303150047999643093542467094170368494694370011590918044535592430274372427956426191134469027935267436952391621552614748531165995229648174774893101541098352847746248407519415500093678445451822752339697935374725283687375939798340016837438166401385810865354942924298958902219772561115596755841507376257822711131303118598993593811186800418825798198979088926316685747696324067140331521179285065032322447433809561259097254803658762034701777765637429699343964514400063461138634361297412113356859092221044303429303927210203409415801638842105468321121326452148539486489425063610648222992637572211031498017162274984867522163675956269317122853707522327562291801366633046772436941028706798363173442488220644664788056813441361525793608288047344989169180513043445292603838160235888059359512758386237532665154707763107473477015583215736375494806785185382948118088246104187201926291889233408889455698977772785198836986898674472848794619271958704407633353066565052659557918818964816336223395164741440916374742911296637377181259995207950160229909202217259642972646147722427615269185121783839603794336594611457398127823294727492704723825265178600168872496112687273581610455739355433955078231457759469749600820483798526487354145470620972089908051178409832940548507939574508903699341924160879088127490127326524470931212211234436017166219741064443205457100263971596871182080083585300326886503309873306501231882587933075126236520079801854757357367136293998916816925551892210978082368444346354585076836793617862057571778236486573108947218990775017056027753803392283477928714123844628865694778881649643280556811515167386702508307838003465231950658128353452244610425102314137626298613610441793066741686723019035037016917463682303021002538122413387264981932876986776205585323416281530932808231962302235018346128095234291238227874101808430845329009107292208214352629157031990594441698495574748221735131703109370138034744639599712775456237263112586104234350813217476468554614750100140898322730429149628334784786854760912596403208615501119909921498334112574766710743473015698106525541066231709880256316489056304028191996360670714256571285496061621748953306834895010543542979961549592689898749920639491376674600958773974169560478631219787727761113317332547856636477478348754934550656484186899387623385872601264074546039511003528843910198424381740205566209930895619341883988763703590720566834094070619952341999156146152258174686952997437473270477306212828122365554121556489866970204126662838113072294970192329646909581158693188665671942018136834102023398314823363758138683863319761966182051919293442141586915234722310976917362219902082879441851497246605384381121159840361337395288988137530193011264119215169510079365378624228288450574078248693742612516774048311995997933980519037392036085493859913688892931259067809152701947696468248282759364631019564943631573574445573949070266658501362098607314630733666050683695370337252467231732421901548695481017682579466889643592962387884382488188796694755537585448560465479764193637149185996325000082112982830952082225209843087327203724013792657380077254466786055186769419082663934906414978347919735089165731812575088211602577696733479379860478077013486854491981493591432214788961959887393765541040374951648204572682557911016133612522299570319317668899191720005333324363260914244546067343468215918714707317207826815922082723034556246417753275657953388390983817923850945314144043746280930401904087897678776117917702587134424244638701084565100806261650343294988100236175121762191347579264127888633895020464500298176822182567623902816963422393862326293264087190713833201362174926475932129078776816179125388702349063410258799749465668124527320056557122367396117120029024128370175459327229317230542581746541625883486083811302408383616283003000199104519822635113399559657902624930298419688979615474435241284667638666742898125847113911733107582312158796446711399948608975869583807674801023245364890709669029041819828003708767700172937924633882441136880885796287582214238896103838345597920008444154539895568528520130333908565284560173727310716699011562100631280440045950412852039641233050923947073116529415243363582323556113452781365389860288546051267494286728593757165201646579950025918090124395619692447376111590774064503089246665078774264934989321999198447749618737965362896527713905175147304971046533894587631362626370822912075331710249370060109783778367713922290570515821291261356246779328143158833272583575734203972343546762089923482623023937090007593813442020823290394834514283579555320736322617273408611398087734465127983781920756652749287141398351722171930791939213605649467597927709616824991657285759960392305292077538675425266937244311085017458225597469032251853637223049100225575355534748090432003302300158057749094966101434685240387430685311182638055344507531591427508734661347894104434990985411861805259053967145758043520913685574517496069646743253653345657362879979644115633826788390000861846597712561544152542932027446759228429160929752416078732716966557967398771424495264748899978870063461044598403653362741773980708599771020193463047074941460278589310171056311517224201940625054810648382442303265676260256728690939614050559535260439504637333456445654240040151870827496793501891929317748971485116859499047819675463849534797936943007686658466649854946711023051832219709229754061312572851076063950161934530301768151424338569698400778492333723650094893938226817322892746162339372759248003191255207434749524798824318016310799525716652906505534234085963422903471150506668037508427474110808697400758939614323781162031126667486803538401044172729331402029540215970845142371058373952351935770295656053390772862754593948031340597839925043494226324933982594829795438934601155689771835630486773198096133553498921064077098689347293160745071748995063824147534590568839062296561567022714671402058333020046101648643526972260397893169879796553753184908186014876366475945310221029815989508276666325012098635376298252422667871832929127682818165817038984999240153583067572659701184144247180445829422000065197965474758376551621502322164254529625378539976894882096538441992539960003227270253234615898922084274857313359977236671053626617288908155983764599055370626101862217515992965013612313978234649180227340233398648739605930068325985567191278431104455161881754033382035383967285953728773318801964725767531188764794235742658928219036028918532739798100552164112331764581274483615961726271877431400929965472661396423075219630625215815499982631323870017296422887926549351187863953099857742904540232368066467981573772064793339369443734854886734334552111897460944005027408886604894813166387942768028369142346834062967465388795799884483519361291589131331501761976250945592482142799079664038792759209103247857054521024333248715354805932793539402043679673373140819244511458066691670344686214896011762241666930414632717170618804409921746980201298372622835260656509875545228714376429275142559279758869272765082259703195357046724391577103365383138014625568464786919199318622588043455886683939025323797843675595853250189860902334757107481980565530006436873303714165179518782010327720926793589634921763188548209036738492900461028068203249189738555753478854738904147292628331500342902390165117756740192980179482733773306328039075328426543362827135305846544130406044035528969402740464482322284781877428949717471161582577691328640282196746407100230149256620764129798459276125786589302584043603746599846308613250410203663633738768413774851015186437005882498691000378880584039320373064171888401970661030935433070649129193964638741544228032258899431642595922218872687745733499644115255830077626609129841612468009864844451510396069435791845188939606289014845466862864738414544280448664393558848970533140686221254107026073035168476428248863277944565347617264413631068339996548241789029952550332833172068887598044454160611576997041551056592253386531133019179071787980709359297377258358180908486935324712485626997206747964669054193601433573323827639622034020893066573525027485083580456376352798546844780940925896293857881621177337569019836732316035900252988748261083659251652366165135294463462308739920038425694828354704017783443288878392102104394244925261189162031359541900815894738192952189333061073381755797219960117926850165344904564649050108766898008709827852542638040331943965931977985268850239845821428362789652693854469557511303146353918497306594691909752115193989444077568051981846390940643391031433716243817356682520169956039832637006930875917380901806743998136232938195679264667510176172821136808920529512859886010859647312921612269027872559734732813102853285193732875080335158436716889512338972704253971035633045901190003249461193952458077299000044631124461522383549693881144740511964354954904531529138315305723655067557818504841317088592334907061132070115659200537251806468043544025547204020253394705431511703587444106847977271400798491269656861922242271160487723689586834054528784530712717603649802524181272490683061088116598758795531439946881306730368815576722849596186955897371848611747665752000680921647996006548665967877958539159991744987047716523015874542268744303447227947496466715205534940236677695141562625166685981567159364171570642613271484683229053146602954433790747894757081342194123199171813266118997738808741734619536272378845885418624823750712626110405124363195413309268855908461339499628605996148941494507585323995370014030225708562302807985421516613152644006959204465502658366197483367235702007272200192186003974870847178896707984196525981485725965536382314818790779788790655587352620209890021863973114929317322043311251187678426446627089698132747804678690577355645875074722560825829896992672119041841459357767783692264741941575432802340257304066951565479556163197685834273440608325245698499878583225988560271173100063756238772449060415896778850040761448512561073610995077966564407357594139394100177789018329999793069939525835002789157035240289180524039789730303786693469547610135339192777287632659106640375470307850674351234453082891948462573942393307393203086467541860687724390042360975671556579194853705307415131070177666635083983813951634789534904575297589409680126161949855392300466743644508536428986983614517852013051323832136146425365809056658229077438860108613440748895692359019596643780714455840140631753302735578470976290990000362415062654515618170555892763611391817170211691508777603768497653649139352445854953952055505043028836748304967826056321377488432285595421422986312926705341396007437122582416190866206765137667764112484829586951067692305849989955435721660739876414755664257528972460624808454532162765197295662709599316916394081732134988162929928068651413238677295797730520002326615180995218256020964018572188267170204941078229557742690990141133369441941953132925801870184445425046502617847964444242497145825286563027166650819421176300665438171730604497891695224102529523059312094192104092771676183812213302460851922614257169177317111069532726357002619362690217152843568051754132139837605764599688398545739489709966315512067380147299565875476728291634343337757863937145049248687863940177157628735002632003812367277254505227654845736204255259128952954466577144002542814633484068301985644311803271170945739777295997108694651016961098528475974166532732184720037253509193169552700339089759290688280388396435066592245210439898731150159711017722695902095352787279622599951756016612122017305228055928864400937703408061121875723679062638387903058243921630928923295244632835899572596840661123809418062698529790797533885802490142125558935951296066908323335219117373562501730654270037913299381340328759517789803775255119178683037303191573210064152756036730676468720527155315063020878231240944331107146743645932867010106351990570104799262505615795147936292289377865117445187639091894924051896288320291688599996948192115456358142892664467462061440499517618553283618337640649358791951818852343666846554507044852889063019615979053368229213096345972035370049960732610095338384670682946068313035185582137972372288282523144693003244378819497555457230111574058699454643335898657763936782227878395210399189031055857714289588130954419653031866590597279970463027389256731629174765448992728628341120991496042343672542777093711269124031016815683927882484456681944965480418653260884247964884583892007532957739915750580301376859029609037877068744021197923876191823874597177831286268697271268907021659174918409674487752347415808232116225670468205635710729032716616606013431282951773709520009582992914160861849480863059766799828356345907801897501578104446991775791607024764514091071443894379685160076581425273670236509749496351334614195175050226339694554386885004446993505519483861977152315095609068389442902160352846380480115030211883729702382243657307973029996961951445079612924492549755359927631830565237892154619327752469035586061047742759949133673166107196715200528191748214341497716612532140243165417085900625838896170241632477817706220472095350769678121504973225982929744359625090460609984020903236210852289224535797512334931858008885126199336750363637634492948563365403565722628170495739987328129065880659843329434617170699550387468041167065061855647184826173977133244180237021904330282027041437642082146864661271002403107929870336956748922489447999644918195210006592795224129851383551537648352355382443900571421264061824715693388863640674634336555991226666721424352025579391095013963893899696732113053808222857021668271832299255970214509652947465277906258334349942427992942177806266992188580959524820720868538405111512185651317678270286004334842416119767379269135652997224866966423224166321902439510872378633550648522009142809513743749012703504713085596172137587868151671733862919368160812698004553413928826770406116147422934999017051058428706915386509884440453238531926749731063558747673620387461777080350054374608402261470335273578503846035073226390496207131663059161059772442316744392708290701314834585492920581609868972408906195731913891050659577732202442216812698970120580003805688179250595214811048237097377577888898986705666618669952146332999854085255352958647342998327778466146113405777140414045545004176800546936453038850692605052253819060568916063461522068803013981992411331318493661622872722455373411540881035092708986795630368181882789481214595909969094657456342276653001173841884414214332527546264026269104955709980506748331738611162535790289623842650938138058561386939834602487224280859174269287170171983104653611955105777157351542612958457235927181565670784616500043992533553576507947605445379239117508337753675907207769373236624047755936699203677112437038410998890688451856384719707216261488147151601047719478861072741198165073878257384458941195692126443125009975090936989455872486667373575040272842174346469069107657979770980795192836567077177455151472152353053413356695245643801887154891774820815975134167042147453341479309606718960223971111459382304076030193502849989651742918444328675831415037861777849333963308754360096687874954999003723982783518805482165777251899331330054561655613237740952010901702170052492848457884915470816911109764777183106346056531092034584031220975498876604120347550761314502864441935586226993854650170967904631986775722505645973677413531613115309146318996269811188258846779262908718153483883188920415249991440715090968965184473861359421420890032762978366546566159507946870047043246031366876391150017199267392277332743863949431793983861730978282242052385140764877038481671028107508599074688979062937413539065602063768961062295622750718236080640273481843854179685919019484378904532811852458703516983942772976590893557180401895545715262674545310285486425499704942754838268643431655827876418871918940067626893134033431494358561876635373401102974830267808204193933220691335693144008215372841612903777304305920413716626569545982063608055912539659635309547704043348134613629627417007402139184075471200764195011176233945573850254819509546090475589886069560484585133357110706693847652730291624468433204461712559479160435774177065140395683651048686464200392487069025801264665299970198422451104359910169060945721078575092959508929228995205657714081949526173022654323411687399688643784147618081129774427023453967574116342233950924939343163076093298710275860183089105667258863519038164137611083088955866796967912407159434918923721001622825820836028793609054516257156443480801984974803217911818854332270546338995376355405021223297620379423969271728850799277176674969656445316236022908691396201714042254514515158601375833102420898773976637809409937906796422456417698443478087561841050782451670817544307519785361610388289467979604593596804884957218978942449294632637047461642365694870658218915539700835915924172950546968781415200475599642967134622816550307271018672975160833834433101119140852590542519218004457942450008584580879605815572038932387102328710658899352434202203961938820563822281757410981561341383826040960643312806635521260280317819020806564063033762501451466096025439152383743613171649752882644638685008691441530458852197963922111989252555760310674147513339871750903158986852911977523007429378336318080959153949386720719085055373913846084795585067279497092146925766127853495041862706303708397390378691107036137856680249902538169730377737636674539648289255955062476706430861686987159208113195309483603899095941811336252978068514390654512413176546042799113109671724761518348923673338622848752434901459683725240743597037489752148826736945539871622768526457947393328618790978222979883803290279423918226827917658747133299553318345737525848905286286919822744876493265976934386097132267957659900937644055574654150942184215720291248352701713609504118923460595939623800399958683802500133956745485663320978126634537660120890627723266998361226390876316419549513120489796702935773556192119304980887724491588146915639391682181278016789896454087474353738007291443523979890375987570500004421836192589129016364761999720942065795315226324078823766460536257178336623496944336183648972373947620066787521314487973877834351082162316097486590794910189032070771781816670286591315655901792786766988231550026107895069210039391927590370748422404775358280482695139941554498876938660008965770100675795737127646570743144825763027278013230403254263767929377385830437690774453012589577103514277490087533771823311671099886525174443702213015784361057109032777143922017186634681839136291262787753731331317736339234399502480192422879538193690309130529836191459925386391197237938867260270680430283736851049923225291370651610828485644418112954145993391056682928979390051856833547158245013347974438940369867037630199437377764513020464988189451947425139776031145465194327022253569799082212798460597256710987939388530002803869668815989587719343749454538317249050854571991748484783598436195593528269482987126509137191742547965511400243102704172395718882565812729313255211137821981175744408303860419139337156032508679802908936445773120789209203050659499908388614801353221004361018483031854981641775236162828423478413341674805783308845849129467869656045214478509599186810823062572339027260975155075115787938814154115607631879354512990809191021763068381009364803504861596422871921065779496930940781521625498773030072217550124096115071608032600740385706568562441097468002491715534760231730136837342718226292748911708897412148069649501955328978949376965853589905176269585972884041684969117031304378434706574578456249695686499701490044951824775940368566328252009827210930879616507022245758799600339803301426159217792070225131552664061676026109812334557875230323371940061658154266051574638561406302459854350310960798352656734043709229328115010588815255701715002343396157527802599949128470442671988087858597234431394808856175050321000449905502906213112613565459850190530438717828152967255243424826530974709882332469521465995223802342630370694613314855245101161439943360069169306161256152839326970333474654811699348808679091536004979852403002613637420001652996287846556848255631587109159713310585576645367912585293523244676126076613510523703630394842753778688433644623034202347127537514489816960162503973333139905808159938289102138416048314574244116263033675212788892782354326996958408672956735546774173219658500931740929647062717385667780940313459648961102110379094917184037274747408293187950856497112562759121930368517811396734564780091786555920046642083858470933702707493192733312756819619536555806546293347805117397843535927018120760335996158618890046564656796066731968938582715492017303599344705699725156550798874956586709865184000658429843890293278836637334637382068048519275947925313174482423312463331652955078601960753656492224445499106064248889634880385359056716766900331408288427008006330040162274518191432649195223393869359327784063294326428910201606372234046769460953535977477147123582472466438073364217105136824048637622514649844608098497661412652839353054448991056755203204671483417986822168139599844654181310217963137219857752402033371943247028155695456006829122376464201249745982981586418776405433016810912826446259524332214328973464016429183890130682458049842767785744712321637229489013478148347287082764480804779990222188349057628200200791807509190940921651817931091566880598699847383630872808301269457901991541542571122544450939723732097190382409071659427271847483594246384895273247801070328763469238327307321809755311105252590967337477903000454677069123726973715465999769986573553913973955529396352576086277563313238008927028349668257459325234121605635163598169032418753706178637222160140871015891836205744166747598291228993648110893505114978397766289140485046121537983624826663939646798469673110721539833375423500661160449172651404316346992242483164866527103242515486365488123599352444565288930571356698129095682366443175491142189210196434997807811860052980238117508403450518253674125327653513558263486241455174102398128432677230157330282907952232072013569392688562250282815722674471422280397309075107167128709053256472747117375807511398585134885707154789512031634078252277275154151398576150830104481949496604975950148436571603335871480021041717898885511145639958911361590460081561064656650913685477859763657116376256458982484789110684856204939961758190889253223825747740529807436408941825786889449643146828795268295862334624934516162555389544387558186798530582650288203067797448920814596750327988234182498703119010988428823257002208024010996426067019881105716964091997258063848338616089109950431349961803670662294412547868197116252186052380769826337451282175862036100436591956662508078761977701032644505940537363203680074186812756533983194663513746558378238910591385189084947131985343673961151618180965358755848217288804205825065164509917447528057144616798154576658496317814359496921488510712253038343935381519806868990917020649068661018635843045096834112668943836490997314008487657202728389362077649981504101644263613119722927442037374489244758651897090140708400680272469620747219568312343075995365172991700428052407160340128142298649164323510110735522701997725901632746974145751092729744611439781920241221215643892043869108671650850854460741512187061648407328252774736199872738482642544877968386579049253219670894742866478428310224641873043005755257493405800871934396953208238872260877479735447783481554385636892194368208281287003227453684453404564630773390861163689622114828709717316076660562413502964615655213441433673244721448534330778564184945559593792782967488070136449516678495944958016286482082559968988503604303796882460191189692495204052291058903820149597296157263206325439536170797421776301839113180603802976256 +recieved word : 0 0 + recieve : 457136992847982885492578270879849733121626562855154864214237096040184394080330801010274542746841953366021884509972195234059913937084078737224053419710278131258857802431988838300717245721126059497119515872793418202256765234513213388031857388211113700932598416113267435222738251174254400417003863865861015751977968121168334271063637505861056592165562825666032000788105106694203386579465924062242615122269795445150111292521658550403917913969775019087826480443816590372987094720396976940747296862234858461440554528528066669360290451123302904800005488048570356750964460679291661107631153103161790606415154394829779725640569416484857461034272178232359032069795429897074476164729246106740066981088611089388295477119650273485600912669730522527188492202684238267966996793827289052345648664866073966254531866298784861699522517479123206162315716627651818485267913623305718564988783186926565385864380441197250920138024808819923414746614666755916380153206008850780185766330546583963672687306384638535845622431917096892626040481196760752623382853982186074781197523071065263819129665798100186868905576220033526278583315799214118584976074410505675166044588443467144293417240334579023625969673728725933204911578060380538994211592964718989600737201438303620548947505633012692073299025997732169743018445201322550366603220303812010763805582035079910997448634564952815753673616006955477488773354803539666169940570339906772539825498299344361857124935586407775989198465067667055307259260316122820812061168191407164019949370925725731455422687692651873632226356277418967687573646784409137278208074849300801025175282735155079773447965304431137786439736451547666084211421740101194223757475370409920771720383423588572728106911673820248126064957654529488850130070578774608895161039118551719463506444659359261320640184817382481387499522673294839702849244728140941209597778512202294132897093651189855948498645620463921206905394199025493714942777861964987830964372736950284011006295013492333715657920396558066699170273806164624114615645700194343165926601458748642041812786867387482574944656984653347325520343838502274083095257740936481914127059392354908635920259905416409035669465930639835943262573797564900282880951162949332634627617886849523731626172019737158220148890522139348352223397420510915339185849545257205208873583316610543244653937062888057648406796323177495400032485673565799857541517358220021684081398734627519983858984123682647589213844600875314641569941589400144063785371922786488236766256415806712056322972337625547869295231134871944947576306400996845597646141066129336275310398498140982086881535235762662177148371393289402642409194060152329477434150017248290911052881363133843555597154770061548324733897588314416142874651699954771942507166737124307611911855219263740056836656340548362709371338058293467726262906699569883282247951417038407744650087142332257365442460285900870034498194325994060579551880764641244024408128200531300087229528293674192299586490780649126192349767851884018129802507198048780942734574138371410229216214164635920176904697726264849081072597968754682901651879262714457143628156379900502834194835718728889099734782816795428765483776488679512789750909943336200438664287329654268274181231419099866712083975765544120440660673810449715593474447245445016102266214773629685738164367655483784138069079129622648016479919646473479884923809090849958765197552064275703574447787748019440177466057730109251742087661063079547258797052314730936738395928416541688075707931422760942848248886934623777461373738415605654539507963319876408862056780790040138259064350368926019270893938268850665171525920439137407039848944808330268720994213767925711304661320484949180433875371170873420277922751238662025874322691831763336817414899165759144476979373898311518293965909721050287451226381461279292262217733656578181608356150377556842615229396177086751234978077371443322832302475927638988658402576684386377591786906281596652012917498204924812081819074901600510031699987461389403870297144058194487406281802220531890759117354692372547399436492950143815997089101593492227578110029388201918384918377127931091151392078966923349235872968740003626451426329524448770125131206676599361899553898923261038262768221841612489394698222541825291231962794265487478216991370057706708562016744990225907421578280970065909507899593883051994255135958085180913876814530093960882037126460844870806579686835000408674771630518680404516708122748854358346528404789792097938791327090609747409143490202260446962938093513609179197646194571727492802282430214292776246779414592641935586480533433280649763839841425791742162511422960816287545954519397236436568931390674243768915916186552024871328702433994860201673059792597270493457396729953976126667391465935988300717365025777975457730242071438935642271577596678220339061869984799567219341027078200822808206815896608845650975107995447648736666461460249335864018694840891822682960390464430671494732364301584016240093258739193760144675026632517695182390370763069108252306970508102738194741659738883008177184120367381378149537045170963741157391802976833828057266118315172390545452754215164197434485978430297114289437727441453019460124220788070563263941379729553873271857380345002093024300578878823724332132201703371847705171307182482460648418822313654584258931132800011910647897162720489758079845234523870070124172274068701253455716925694648821758005924768601296162160355241452692482320741127975997907518994561398895806027390696029978202528642218543213992177516185232951548703081115297153550532362537366185456169209492282454565533138969952769800971411459313324863159950678904205916193726959890751206764615238058296473031883796034220662234337943997413815202930512098031016497917853712917104159040347716429229653670949127183726365319362552385780328843031978608019382724004045926247178477471811773071224589043516028364994370415605795242957545746347895846115658561005040810468074752801120080650225995913373637753271467974875687303463372250435935207879369821503046285676430932734370110627832791322514054916021410044824667964453987005804355112971622288371133469701659837799134528072124557659823604494618272098373909847496553314121189384154164570064384241261784009251553465244244372462891019746239087731050271220442526003820519388364259018730984480528458587948938455709456423796337067220110989062934511587961483485976828443242550495061912103277842649071523375928258985127329062608477758079450651516505193429568246504975074408299539655512503395688137339994418918271805975605371615121867790207282638100075655854535617599950594647429617829562876612158949718784911205304881989069170554999740713200747329716613818644960371104317466389266361110091172861484578240457477348060474625322887576378668449387319228950704676487011727527063972340006043690500427313465640095294563908302554041232831683288638616299765536885950274620266239740558841899627720036384402698331934805413408894953182214949947066333110042889005825784925290111818532226835940246648230919125497882121535568160699098299852949778653439332100860562412922641653704704565166873771403897525425888978120692441259962205364287237989124817704159342933164927851752801137798979082183195988153515143419642359044772939297823459644801455178562747142230893922090550334328161409087713071275811852634744354041834722316064938314482613312559582222027756081759047272180312479456118212805293810182992453572091405829471737576943175756281216403949318192880575501849694064556417323851653491851205149067864472142174010786792616534431245663681864425264958507791004604611754673021404795686961599203455691989169254749716576293177205956987291312171715972857403099863097766194710822298920005632336278363366105864886973470931658561959301082729573756683783301962862473519941894102110975523131144403312758669223201997338757597523537880777420964183318451169921261265219177769311960147800680303211065562509665823061881422863131618277264199118961889895508876616281584200599277129907152162985746111349814906000751356915783892919070480680309104324621183639759170401014390716262612583917912155613762758720257008606116545741993165982723377770596629399769859617850786711591875977362309525816253932072648648717722932808317970712602410965064248984334648983194954224163184985532187407703977192092667133702184339693783978779751460133684030779346831025977252037743404086113462549865932707005115049468930814826800308735937565151002591146430354571090444900290484018697444939902756324260447427689553670403032553382630289744163721037266141233586475918017699247236972044108354568011781733189623129959270378968913385248997766750227548354851562599428724194169934235958151039577547193728557481205984809343330381855900045002096850126109215650376230115075753829562712374175699688734682824338483333353092200462370833914653844210509042864269152073641958958931290507166219019441635909879449429897874529637989510680986718364582172795179846116017182618014912646856079449647054597868215045413976045027338443370754508955340871824723732468129745956859813679399572545914309259998223525897791815416811683508963292784980554763542176578037803657153305585192290395329913767957595520048384329911795927999739561787815159380742630077136800005299512878187666649939011622530596893097161426176232205076379569332010523070901919766056739600216723310554597336731807506544500957333368915240545526913929033896301362658690155292630968457312848059507174218574662355842602093636446478342000438463033036183738912792014756376227135050857557793673076860730996846032386113899937523844253590427284706035259377893429707002542811136237457065408324928799745119805395259885033192014508684894023861865902472112483664208016809717895535502328533045348516667938249267842959546181635784654410880897738149956487700032421051214413727759921287885623641518054338404963026631679783444288796439569521163756231168006776840326627506583121085742467765234807924712653254831693320259459333231013627382078598523371559381624788227727995091179016220769821622431695025265949708154507061634762194183930346766781056927588199462737861769460919639772666542737466051567080374711120460840216864328790279457418507954241403041026387718185300968117195872621674478687676533198590847713472677591538125753876814542130302403111372687675379056123459527565505183125334182548930776845365935779400076793161172052992632706411431359277392185521184013111358448296937625092413326991133397358924499713344155861102779213948046993624681647442910797076576325240194410995466461329394858755600169373409902731428106385277571432830546232136757929416956600761521707733745848559377350353978319206439934140517924217594322939612911255093348242169473778446589697318386608926729306367009625644303478926153174942260049524930557973886615866470481567691150208368499882656316226396855443819611464424078294744608718374994434697869612179594443814327298467619514863416881927897094699175135901457911350948660351829112510862648299641214785644734232260363534791542588103696249798758240985923200616128906469473111038840756637484593189603959847914172882738577928773549242732761350439322536630801017420907106563565449529951800834264928160166157514049267452463736682569073906905674617446377146039099555356851919597193352653759546743147236637894132512757241483666939943017993375470175682903210240068849189930641565189216870923504218094259404433043002679490304590043968247008619993767423153448627743773033360723049453096780143819909715078847915481968882238133335948661591206803904035971866659764831665361464201040673797565869385508743975354359315357909269611699251165533081943279561999769538033148335118288477938642202302189088198123271247131283221944165132725468809181641655220328534578966459757218640147281326322742448855458136381913301062633621232001492421190289721123631492913964234090194800284191665455752420348463646249692307924649969464736101065152129932590694976595211311034023329047230656893624315937194252597671695088551965139648048909534787478208178538068905306768084398750429367665983854987212118124282718902842365568793340213058783884050421975920475826991697356699941462256825602087351800121057665120613752161118655535903725974753246633873290550104712011627788317897422121947265651855177207794534285561215843714912999024248614584424733258678936896251823555815062142074255687310910068191384700406790402984194059384136908994839583493302045744118070297797113164120386342121711045996573157843606896256225724380367469765753744026379689362274283724632455820832840947413230188903451639345651387639443622724225638029315826398976669038359656094719482873575895336948107770892449815891335558865083749435800714123147230313209942816423965613340557518232417153185708732837382505558064680398614966992127439085312409396527081545974695029689064196130626914948352045628705200619205590369562326975342065675881279460578987099551293798902717847687596698385552594949973988051877430027898977340088171417217492414455547507136330139416541000486234510603171600615701508508480756969730284715360292698041183811732556380814544306383249079011285186082208653089678928735083986530781339376835717187734016241079557997898551239378792619786620282670255058329861576349731766806038495658665051366795856652271162393884130339839073389802988152167088583707440182161301370472601270653242786993433236773419746604186980693227210618727939939429686356244986813760568964442668301877914532885195901835062437217047223904406386184075778882136142456151904984106971545480521413306125099823509123062634265809015227159631478697933663019270123611224228032458748042126035057137575935709369411341111541773259744373956103219917344848992372735722685009792536915246562133898105419044915516492171896329733614270593923213125328749216208094237141932618551453753226729671673890398074800990081553569054201443814420979454880340902293625955220608294690989111814754167793986269742946470700470073802402818769114585923810096550977673995066416391519890597738797478064940762493567142229661510957597145704961918602589511452402567854186164883612576059398425726554944924972317225154114136854783109514595350648559831339144827604549784402647469693014901602028179955976846921912128128149299031303402181371969810222045005007966200018886114801461884596071594488302014004212626924374341072806433394913788929278506974084679374263447645905256546743388053844327049363427043586495528608212885692309869615388830835353976270319164880239909099539930131601008775640943378963113599382664692759958806170674131218713273672220166158252532979730168802756797588711598712747276454066059681570246438991388403745783392595483625745074223111694355506401428285776357429925676026981016986596783451373965214697784207382779594988307903230465822392782528494875339119476352279722242688595621525882495178767389163575976020364693842297364837568545639500602057095531552662993170482753850635006159465848988923905330424407311518162068899196719131278052592450371485963873833266228018417859688540586630658865641750976389571344716467054317375381839243683333060939262207780907537458225440350289050356781980350860453688272722241613151684535655682054391014969523809336245224829971769442096253355804142227023772359530588962346578324485704444189972076090783683440313511050394055980100544222599378315986525576758604744382350502864982004004984850678905462547491274607399126832520509012530924615011488191223871658250746121592267109479734904445050134407279394367326042268819011780871892040700670966415680556129657726909644809301785207311091158323898112784600453000210922454558280620153524696063878752617641901379035173743331912840470640058577101329322288922587664471025838908573013370727185038361430075111138524776184915632685407092611696005665480083116032571624593160515112871920429277154082867402495478454101270867899901858500564178529046361616155086091070417581546365487940419867755150314643464363033245951931483954685645071558708433025986092746084125280500572936552705074486641511611313500629832189750809491536503859335108871316537383893651026504426650155477870288666290385279671801979713504618083362040748145996954954525981262618024866128165352428737833473227453391606731572931663265227915243957651027592691489979786216951935254706225777263155517315224805054879361644497515504275508397899474649235305875674779093728206116975828463975761686692660383533665503542356292348374490341712503697568438274150294278728652459107134026040631747729270797294398266108620352996357772413107419672170760834616769818650035208111843679995514379627529603937621434663634717772163700176541659650485179748116186946038071392397106822454756209407839518508247524524037838354891333790322288451835333952280480630620140937119087876866202166031684808488936530945260741021474329863173716340422843056614687108677840524553544150248651165982660582103887134232252346862383562073530270114604418467180505956430453594171690859574989989460303047213675835427127122262828394940558231267121984667011460559901194557291302584471493644583596396721264439175309467268569175998168874657240745480322586495232995048816753594904454113932482301736063375886355770911861096546111112096633303011176029757136890068758382422733183211858625447297819149031874564074838683460665435119600753689617354478138493130870899282497756515155094472857238944864515816057147063640138409088273727886411292770609150573342474976424177705424888979948202992291968791234706795860220462353078952721042348228292054046469284058187958631533594287134400324211218417530186317693891903578370290006277891201076897830744108681170734879392298503389758432943269596792056502653702618042650579746652614204690272185449572151356315111154798261860236555534169814286895423834267879496822145178772370324321671333867997672441663962483318974884829824407286685108506455442809447601492337495794344027386351729181146728089861632184726050939124104666740488921109595081810486490450803334579936654985250410902282552768122796290609467964133329319410151228695899656868717351393012142653366382311530394743245391448113812352860481155432959412707706718905141027029204582829250222832504675392315347189324920799228094602128731499306855426799054447425971196233858869981985972277979510519378037569406340370733161670235056786063030217589234349908978017980585882801300199935172526736753867757941211339835880387191176921530558142756890973259375405235835110655930317942415518976367147336468955764996837759782538724250820573438195336048806412739573762785365483217934848128303119738780491325780073568318929379502381331940873514755949169772366809028966047939514666275986872585969435767069623218113180676951336692927282728666294573452197505712682199318604807444772736233630258031695018035873818150854826580766410415562420449261275927125096098267118612354720999812009154103823533146983370697621227399528496932584933312168401585547118636505509431140986248540083655510183756682331223674727905161618914972490324372838842291131201338944552524807231830015758133662569611320830421250684768688397456266534557056033464521088585135719056878937994807613080427277053214031057027789606614128917052666159587533330209675826311946776655188968518350597533027929759081088838062426891635281227070985146943845191787436265999994685066690143309952861806825610691129897301792043569820726752159072781203381921071746444903629877915661271181781723565617365032249306630855691837503983384870153972741979574387252109948653917643064442805742484277249795445556316884695485646358863860440633403730296603985122905555261746415027955035762978032749882874020566443884636590880462612781005997608431732528190508953375125745484861251587091668760291340048463824853973913236991191834947391973523799850021122608681141391947487123612914380100799669944154894954841684774925437758269038396681971918505011754762515119989609524727403646225537331231829439558136532952816444508528624215542729037097506207221475750985962157228451690692451494920509861801012708178789260507052725172377540187828910559574025715431473925162393067491886837897123511023512432156032299146019500072848748153224148689801829805839060234567353981353909561582964673866903877430392367976690924905337585589459326607652498184454695268628241149116001078006369062642171398431303374580697775708965015216848990053999640896883288936154374491931786822474970977577062634385577396023940520098096692394304584931177035664536290005651296897174077002781216429732150981833084826092668272137463039341879826190358026071002499975765767594090909180909062465071677806329476994834758618764466919823914624968914961085557589837660555039201023276386901425365899401445559209705291733783818686405660325175442084781350029749334797420156037383031357562659117691418380500454004557790160724789922559710086489910771090908190398026693423066380459708672284354590190183704176157603148770450337600721926456248931548018366007101084346579042110016383817309517666145205826586311122059891458405690127114311662277775918426152547893453261214187622965295865414573183322981021784641331077388143993466542206131657864979192046624701038882197858680414319339181806828262363830042568361631212012003198349210105060888917260618528941122368885536271544705224910889094389316038482706893513892138062790266030661218369052838847121177603019568624212662849794035588759853156320961448371582578463317633380329240744249689830713620463272703558268260602956619325019578870180930412483545203067824721886405340784058396570225917105077612071693795189249201801613309472033729828094376633380400657590649378382065606072948727939101990910766578577203454831063726718606622704019976879089194938950008032920433367285220729744945418034662662842136972367176428454213215286324497533054426492518096728054807404017779954516332058272258049936947294664724195602496404150133614231091336258828339682480027778373458536949352302367554854531892555665355821732010423915470224800830933578023031079568566272483745680050121331250373492520455973128856805813313523069933683076911851292343274029733169820187826477384662332450126402169887255085913955615543456614481973526913771719401558324681885135035014154392034449308420199880600488894478008375349890551623884802742316945376019125677018644816170350256205968836898253934412357132122865527469014907957588098429398549495388946074340299425228655782326296696157947938712536053603194165881825243887923390182517120159005536422469639184684982488064342213520770577722271762818506224932948283029692906294336522997420622010827826081336473998710239768055641624582358172066323466851788982505636466735517749845474164899602654938739319032856508153609248762816222562856305527159975460250811481016180404868173353481451912017256413261868990996487180177147392851680125303042085708959182210671613488316268349905861073442406816948374253963927492311167349132565521989919375240464541887108354944375800609279308201207925959637695343940213575324220469469400684564546873464980011111461528988394632585287398848177557082977136579914940704331330313848011781140192242586345214572351147565263200363461234408509158658519169379152673181295551313924355280423731830054232959703666290904959927413252739315239178858836144681230978498822058255044226808487796234628645845982908420221471005163506898288799174615398171111924419418576653682490956429341559906697472352673070447530415862526670523474191802468896944539754295611603430361254063270202880401447026032380447809305922312123058059993912687561535592287374353111957908524810425974774008226242103251273596224229620258635117002506555918359902900766835042658280836759765871725539389701753675957037194445507361562513962598251603925773101664221180858197434704404805986116031349016384892850085154842068230239350982524349897592804602055856670307576470246841204239004371819441790231691750952333787757948028895603861790114876386507551746850201955585312656435138917140055129985129021069128891874249896334544980692961775403158643074882028391069565210989564508109669753672709300068444991110801345232290865016806240141740975262635885344548259140441926694155281350633638595503702777647569238645402968886438287240589166499731609869723156427746452729176400341886154510803758138611201059225355173032601030045337564383687509804891638111860576825543772608118829387933102447251310286847433634431046792696846591025405563841946411798471333342138274006983097786302562637692192147066085608898819410705045723054952303292183272386721443787954913259520819694559024156262505236712611263691421506032692404142746083553735353835781044999361259416924507016862252525295464218499503362435124194814807655162764549012216109556337328706414841769372912426007220747613610853754345055228355912478872351853191440082389765545674703947115749213803463843603345398816576809225351990551495486033564129765576891217450581840691379692548199881754048512604097681822939784464222114092453373205559027928805381098986353259605035159179975612445678861061734020868405854123913341812134711921936086519663192370643717039643658793938807674320954318220177203064358296341091777600887074004082477697702559718053449013403029254411968224714037370521931204591109756077432751160069296168739908759804170328583244755648198608990690283829375148469891710140613881208256170941248752290225591271842818759979864604889611290494787352836264205900578236334318717974672182294854887273923960660604677801382304223062591470367762420968535969354473574832734369997391009715408512292859243308875162480340420271937113455170924078791075091388985396979145114217108154914171755240662907060979461234210016454819120516595394909658959275987454346370311955224474161131711976792601648026797083304625649450310111730524761715343492067972714632280148563508709099885060907422982647961800863663867880452587837061218303274072419226291059729739919895705528131510281640176142446337475527376461139624635075110504390635924234973403910167260246436509174307505802123742569194696611610913051217715877167279999397633536241922428046265484892840420457747917038639759994465103877509165395123958598679389585732272067606966253904605074776943128674998452419110594450868854410641895106153487108127681877846301810306160669219997531624583819493169153635774818430783664105667702606301514923163979459128850516963887472463806489629344270307832143925115850325032574431793958463065593014492527467359704345816864779342198293027879335522453552400960834178848875475662532723133575197315907893111743501522769882518823178362355075696155256820872073255539333769264676698042435937033359699256053026150226558809359376105333166907381149033112465483948608749032697820392169427980463905110023423420823272823070506725716143138927439018936216610307194605467222308707450720590852046099739252889794429990825719316237634996903491657225542623433955390290132831511110663936064551264466043608209290784446652673639240028427100141696978538254359866110499398722221718470937355347222721735844764197600567080157905334699489905270813320224529528690975385412156193362003015807804084021563807451824622767260466481301086441131616289448095997685203109924385011208382750972862332101593934933826082301903505190142829786139922362834454913790196113685281122420881745035598738823425532621293478574979327505081595773789475724167567688580307659470230879589773276432133902050596742451799728530551224897908261241918051344953147308279058115750496602572983607194043162561399893598825670416008596413680711827867208363577316804433675818555032276013958314348805945036581482813939864548181440662086062684851721744513906867805114597388813017489309471851627654228489555876051796133976017875122325737724248886110284634666336351348429350896050942136201031871413450289734844676466581274814918848282835672931305362479877163732436267430817377177125145796399927000541146429338474750255305557785593391468169178162314674053611940484835561928958521238241038312465138613028563812663526283227853644806242154475242411871666094365206092489883844899658119777753728846393734371097164704439511010969709239897499009761858922987009884737329711976135323906077912260479871313621794439205640132510969275037922299076713901811865704623419080964623000183243194670149596854101481089749748922345806483377037909249364728453926489917986372810960332774649505929983276083383244170272404623256460997776428335026252276230585928489126570216433795052284699240090471146058860221628097896417648765257310771835664599154549127240832456315407768010129632356858988897158903152818562735754585570229797077160913129992589842019840331873273092610432852829302579852865962757683399345007342256858119596556130280946797233995080443392186989521606283443474570175071159302438101430430254273575334453180058291699804974716584554898824112072583793586604439395744704951173193920999150322802466411188923437733282791278729748926843734135406044648409413580981163951922463321548316048796236455167821201685858347490211994179664077149941192991048545254031702849661715350938327738796783337519336930459590137651393637803038464618987580219245079487755076110281560834581840890427035512549083459879799566064928451160118104259846318462368240466951165380753248424705519886968577894761670857675042220922516518501047895597418906553356272645194865146934434554628591015638262499774222739857678754809119616982219772334575930983038727718243746318151830470110678803528719800586866273666496632498950208036662110314060232335272051189393072236456199128086401595673560550386223744441974153401981441964568444800414136591577579551824445329622318859346482516242835178471864683807198997982134387885685911212186045128771248089940532073038168479044757651870503434651872246112798191996529157220238272223511292488931616972209340621905938669041446133056842806538845244499771325616935390440524418319335832393431984100962173799386447724449475903757982021492086434010439370478444461294381579616542568102842773302663724661017093109345395301972410661489090894617824344083048042964693868997717352262080149051760918684325861969018475512321267390188748025862334068741465012916505273618519835548232202985953079395302945454099102253961467544214168150722816718465201756506841059324286900416073437499775583569009544471904893763335674436431463688799689718974809146122915793858289928474345863332794244374899945946563669704273217465127604038710392952026403089591576425256798557168175621405578387952336381537142069815657480757816186219772649912178578992311481176745555969423149258629941200123330645527512225768066600679573692593054643058461438437939417308125037618645065817346306575522547761457171524581911700115583456649481383890094953975152387596798590844577220597958194995831985468629143361011777010160471896999183165670890861570606352913915382755406397876563465838325726177164183890310432528986844240799544215179531679635088549355134556008299175327382957230147427716458051116146781869605860789754728059871366124156175862038186779230615286057837194801959559357928846025098318945125696811863488209482388717333319319305438822486081623182955281385095671527909710962669929295630824563265385765178155616173696037022236369771649804744608509048159287004860061366626883497479293269413694479736681769103598674517873990942300828676387287242032203723439116522457998972253117082542405940508344640212992642285605068979609732002055247563151933266317071115891858274921450430442800881862751418626114771036233775933730896814300941263004482052298293732316821213529999242990940218148105205229624384247848657590218340986904100365935069801514617367880416826127685297050781864181613714699455617408432277440924711855113748360917982278130753190759804217067477273447672681366171468164116026476811039648854065026149320959339269367884719324011039922933747992012841966727023731589683715118154267355451190146588488419278772276200076512806341649190234281227689445014568789847229688021286607153257880915274663676646348700506568294991423949736292016206014921330604760193897604932487991108779755438048498516702988464185254349814642015937423044439361930837466515321666091823929698647781996938890382973351147900350219328144979789436430260722426954103249107702281548764905898652650448721236648289622883112170542189992687586624605656371635607434941598362976837640605345877123265302250833891614996215900327280050360821948148250902019669412823181730593408000847916329235849765617792751512014969932761145961426055434649543921485639490757889958833643091485673040643803108311479557765213618664685390763687679459540780775737453239210083320058009244776793438335024181896361214016825562173163910123162926989503442833946987776957404902306781662440596233154825801551845591552100101960493091487928352544294467081192104544292832328848618610586194177505375853251542935632141438949179605949984492823953323914519742301314077072068759620101208235347686439917430785186572902808494053959243876592763794145656056090339796949640911135181189647371706219197057243189502296383239924309893139086261066048629826057897208450200214992631662332001017414347024513105478379787961919202080725000183589976197119768850780224793079402456753827662895600739988778462032217306287188036188386604084835726211870410689210159573919320829298422372792341039624152086176659171110404816407355146646814846774410632616394084958778823266088668436776979320356888762421317389490936443909928489427896826244004386600412975447906486634989834125796711994116497563076795771171078407854022016018604172182354087924412399336849646067296420008646670205717086897898625165486418947276092398522673302827631824420475118715110846095978998787420222279064603381340803558018826505665810419366404550762343681567554458582087164602492878993912817919286149617457739749138199197032260828526497362118721840946674815963726898081087674595369558245744519798051895450948538121203865707667974634567971705684533667463795039775671596466049499148973380159686055981548125034718225185678049356850157723938485058274711168075169942715097789437426349461299700556401180825132286473194057359153922092336663429814000496605906134063505079153152101895800797397708404147154973551944931755698099999523987980116954807518423780282802728360056769259010208809215708598923699653987968543671428704843855427243980871614345233170194050037302498027675639361877256707564396672196210358051921848462773509197549886305392940055388354714008484598634459740999335462613504549518902563821185861045176388726570146049644843683828715451384816630388800031153942513750408288306512176344588540515450762314507132269590605895884103232830099889284297447449276986530030709501263106607550746292948467661670574357213610554029529006107564945933931134003432940890214649166243093269194678097239574949306438510943984393226442347110237733559723100422880291609997613004650036447914261307906329897480750254526296536706235507426080982352100951669735718286321523557860795053976099992588425711640959550548664199369227756470543577624670734336664071688914182412109290198064989364851130895830534759194707828100763659572195942059796839532591364939464682148930035343099744128327062145772175575236935049562139369849077957179931320397859858873631950535376481111001446861673782954631030714028124745094472843458581168632559704186824131279583312440940601880469730755501889437944990738327003442955423032445578172771037340146258715525492098812498288673593466643409782370719820719718788916594872368518110929738699835866340654038819335342358670901684933686717686518025088664274063274268954533242564119694463337057875461263982699509452879082591636226932538612951145742831519607074917058402808843630602907647641040497500107999513483282584095478270302218152016123330919963250263151321505947320781061617934293299938438318078129440710084722416083818493986349729454405594367445258919120750547613651508630937899552701629558871931342601556683127132669709290576844546298115220353252878829957029485080109289511021253467525278817299403886161613524928474120258231096299441402469085548606488817080747658544253996606308706779552487916703926463283220429167909613982926145437233880366954993145629522525996072110318087723402498567773465973481184302967906834382673879366792106639773800511706393159206547516043614301931695861511964001962971145804613018602047521326886495376381948847411162718319571337227200565995512884894568388175812942531144866412193189451978384640029603806998997026701788202400361247779352464972249371511209162855154901724744198379129832896554907604638207462737458393383002953654257018216213331903831749183736526241985931031073402687880414590285849488151241323319856432454383897163472608405725116621247306024613407843109007506510870773646095075435438682713806890642505540730135118660672591552831030279410929285407597813973331359297082647660217629753702462892659605441106462548752339811064318863725353621352710497891352910381485455484689303792357414583505045824899383389596698029043615969570660111980535362545844983036080559100239916487266456941736924538388714736725770640222714089079749550360201309792483368064644773024308238488993972987966005476111314679885842675591154181759280718491502338588688799229831095483093644185042437802716847411824638022300938132630512618792525308151256025251719499423323115211338057366467696359959503654283900555115071553926767556294532093582757257358504743768905661720436447082764105253150427257219186475395459071443162650440436921185723399164249960155212499633769116843146992588497975403666046328407068064432280827127355940031672155107707146063105400074974280148695384264064843359994573411733560091546148812519406877353582348692361648531843358907904182442602908336606828191139120675562079969383263474585686235743055914202983707764136262272285648465227367956057978857970895930834646361445611108837641009343467907572831721648138918188695668266553179678566241780815808771893253203729872214051869179212911516662783419059793559652766372964120365519309594537301136559252336056482884088214668154824445524888751731000929301863846367596232259313109155951287344782961677614108986787527487191797564793872252322472190634937404753182595918789568790905334434457923196437742049003630834073043421450488543265619085266700195230462279378993018665800102108586157487260662077962539572858863469503820823889134277098722694457641434783741931882200754548312842031936838292651311498819347684560770254384982762519607601310538199221455659263367656445971308100033039744100904995354668628472020982540437349007464737044054898622234042756484948443623139382044188177150812336284118224196596254353731944146420409251677851045782665443333290124630748682390944124271507182914463016827415593205453081790488385816395592577129539864351961949129238155063875270584515208365149694413509871318540873261171606990065510137530760946780915510054134061765777900487186210673956085542340987268868781896230411115760390735736873544705116074519201436294244244243557720091435907359166312091782851348035633444899786955518532882317462571195338618933012578203532703537413310966084671610763794990358739296133733956153622430453483595221215609877578806572803206616327995041637643075763632395604762336277277287357144671371025946902568188046411276737848837738070016 +recieved word : 0 0 + recieve : 177652833077936484431860368615819671131743559018707494929641413268658630535794826225133583441995220483223041239093897052830936221531543675749298932930363423466546911613988469570958411224718224605308071812847621941185140663096693367050807076761029259945253501890292526398282731533605048578889684105420427393444382271113362347763400273175201112763990614482722133800723300009566988493765375998232190112924546469563719773834455132113027925453441091820806219681487037716083032827022284079110104036261296028417330554845290108959249336565899361425849867736979254292796468745251213696477543837728707236584990749580735244346483931090245895935407511091279493742068292085462584905632818674948199787757288860662681109064210331919874840414795208735274646691935356619038702647449762470920453912339869376180686616629161426879696143473668541913510494445874318869579111354912545199860874835182502082774432076534794943795228240619159005486991369955437645843509225764452645924467241271360759783928638422036353334660654895083873199052610808392215568642866737987718502105650257396952437441758040037964707107375343962573695789693786405704373141843204383701916035539257778695969701368017877931539598961237920496949275848274094430834012046388863254291549037964700895273258235038133000558516757913753130743268083674183272867792883277866169511630395676778889656370654965715828369268173570055821402674931925949575055240196814707927018527861162170426948861276186368260998423169851221503383677656244320839359584200412751372156601353565644975881183163398954237664459866520858200269850595882584209716082930145960299764362642952029511653406445868681894097660441800166677406807554929417224419294015867210773739168119334563017323905630433950858539542197352081982306812380161469700361330777674792460279699310372470225372439980865397231705400822506857564093941462573800689681030942716297426383245162832676177845551328247300805546138256188375328110560886247247538045236090083502189663685763237099791597756811983276658748099211910815800678245024325178007302599486613375043112643725126387401661815525076257662132870279194727256039152833289106621602289201396097852034005051665013771395730342852097800151641930904021744108915859628742475842580420227313717934325107572570940507570026579905178700586220347010103810325368070683659148248609627277999370603676059009431571404656137740276199627997003001348402335620110767354583826816203688157280560844665079462196477413458045054586001287708311459382070010944857667316178463435988463441749297670832034545520895362524425381557645508747673919090503657350943714731814829006736857213302052941762716974244605919011913870383724424937616854735090083018383259008006119673126798154367007241341686230490190373439954658111969566306779166914299434649702667838228253451558294789292991945929500383551726666919516663853977418478701474019481082901282602422947898441903653844851231334938508048062415586035451128071775368995884504775484173557143487138503900658044447208517093572131260164485562462721416901686868903287661817579218546252243012009002322452558594269176026369702788219209732524234826007901900634272992875418827190667484887185754833084462249874502450974906072096536583498924120081576275145565156386016291700233935303229052444730800240753818296153421113979458795720360354937906129760203147010076479374185628758766913443238184123593928781020490456311469276480334833448339627400720389249430587575452044166291123317491632158352383969924761196808279311213110594551344560099215984303175785597417345373438798468767208214548394654371722136069243602094322949234028828818735909393472476814605625068208325786151675315553423914601521735939742558807693065407551789595403853318275067697681178842893763906531141477132044755778548219635967138498488791497922482395319418929100579577595909107450650372684626187669138481248284823402624353701987554292049783172193720654713423219320288041352835310618428920399812729055624932901390871053915457644964316655344995135929504484585884182497083145638284010344795070156324992727928449856647871116102414761110586828912701521916444482590034737538273228032150969321955210298571849406777799620818520864111961360957733141960915803434763783808134204270775853729852975758893978997727877876753841280225668817858272538812183755343399218284674434365943347453238767339395675480600055939383085733202451661419488439695782717233033622609351087925266479695130470768933524912165642743135170009298478527709892797033281901968009546361746887257920987025090372136939705061547194654707412301767284682982817039265763559653375011641793064423097762996061006419894550457425282376124347332512765526177805512171348953252580664106776227883615920627084366269818539681046454676846152680425888305359403380535817238517540927606779661791267506228120010039291486122334609501228618681975432720442420769691722682532123736488643747061317477473206033156943743397100645131237496910751875500030094244177113995941958299868258383706687839299731298194082110487967553479873241342938253277508309103860087600900892131830806777969545632513361204591107000188518722057450134360325543210663498530806771479693773412736121594091741829187309450419505500551008895677294121415824372055130964859955424399093081212708648164749258098945515436305007427820800417728754398970611888014248041774857985499062627884189578217804080391223685744291887663626606645345847489357645605579955372372621268101022629968389528491088375231513061499844903886680382414317646175782095843823145039531897276051053399939402021511850110697613296856898065732112732780575598197304932450071115942218831561261756262161016541101643137691610699776219030583600633092293897876504866098685580360749140355914047732520855614552437625182830558523214806065707675074297286819477134973557579984132288030383710964389318152222878496867518165872184822829471579802310325668402004719412692129608650228896261133654326105200329160287757344606337577935033828856850806850211797856154911182281117950712941495893069073933805464964285510101253922991650173305691491037599200041391758110211999147686607143079189085762530247803830534321786261979148877941088619555562312251780673740129013491995641722088457448601782231161979659994686967822369173700116818913056720413238500582372138737593126181537874205602803028648381194727756062831968182133690428572825399623799750374483312845135332853875322943294654812431813140199244869194194556630494952935334144376975480398027914053587517105302569975227508228897031471985136468900427422105781648753565886466383629506070163149219769277691217752158261346000056928593910005671149245323452977184513699755008502966111576321361197415075273527905294214298553730744936348672119595922992476797300799190263152485603920435010550566449247853730269425145510523949387268946018931267996336674201279129062714560676503850337979604383248224967875775296668070955318559081918419095309326249064160747273510045444821816998350391660590158061162301612490774887107161184066927090207710680410588873214336855548470036030064016776622081533201361927554675099140602660621396127148528084278637037953324180305145226165754613633045336921114375144808841505147517498944326459804571127273715406667572366208956509437265001252214725395217968388989656822355356288922719154448928875926482105190348145436713488241719506298767221910031659247870344133004692495059583719400451407137675188870138211569076964652663722075089316787494035902714839501425707684277879784360346283200264065035303890598093128905609504079640627481729386134560511533137425685681418948423606611733430861445927288911054331447260137272249980142532353019913007627291345481805356980935771556144689024834276303853542561782852882772862884171356898544129837219961345898198378115513825248695283786565803652370304133614645967481259035602090792946256881115008785677407289082699670679636622645060078332323102575570646111725152637983975862026971414391965239335056114803021452186377186391609939017947821299136977317510926292119444713181580082489713735050702578431122079066499540232924910342785788918920114638198838232696810586554989450186717067088053315213721856523447530276654578745748401338013335667409572545158342796841536480055496651514257073484625022850856672144052675014754158446058698950218910280436329252740296841982040813783607392168536175272635238613016488221970476003591275852745747425729729692295658345356616239619823185717178813661125756623514250080030310874305199105734292848141275759375749486023737560887328653136875040760792146972678296414372023804128820836271698030026140019039743236219707397869536614791365082368905194364966596805738035769033773318994212461657158506482404337693088817022917968232199550116662246555896507630711827562298299285644091546437419630189643284815490042803101678619294872710378257662373054923021168532787493508221516699297893523613665398837105191666161205022388398080266992678659067557929605304738516876067496458021976707160110955031621623016900354055169428774796639841950994975346243206931310293888853425527181061850307797346562829063684876105872229145244425106362330820318885776741432013823924890099587320463932534258484367741810581626417895441663237892673542128495282192423637062254115274302793994038152977889495624183800293979666862436778885617949777313960252042216616895668409235332352955869204755537105219274283323536359283096849652471350634950665306325572304992250981340730715105436589141956659724950919686652072654051761731516290926720107944392314456978049059747019241155374115314527330294717130834046615165096006642168593205332609918979738463727670337090896350975602262800904367909457705336517937932979341971042222013573669215853357242075668215193531813245538953450124173249442760294441497168363423431254205570056874493240698528419406143446587730206037949118848382446036871848238083477967156120744382567620312910090782883103980100187903877059665861544067578703520934113215475588875246608858111982576004329211092080905491418615244913687335823554863808635171109639177762942692827308429396369084238170829113491895724953885193544028708312259494602225850585842113076463202209924239200422319899384607586188254550722388701607190910500940993607999319186638944044553285813733623076911506156648564600348936754158754716263089474624508749049473221061734741943953403344885612078887851922349907691637696486953367347941537521918202679344616818299141873826923269921730067412008579995606140300603222998187857540828944927174714723827490129307965500205120476108150731555607380804958248923317795773855380477682358799374354839941503680937143204909582345204040107917972751494802533194722091605553237981876887888171609276493716939729259624297314540424317352481349541772430702939349096990576985471080013706126514098527920813192988233777373291155001718528957471407974062037898353473972507934528034140416424997143525752950455626300207652485140441856492622960559020662369030859134260919686035626064603473876728412493998509423807649998300691887112939930087777061723236504433243886057125283873641053504154854916292173631332036707171927296434043988270930487432402384622194491060974166653028905275666590010812878945413582900445535171828122601534829042949543999901999965079888566205029111943248905903252831854477130707839279124830147087004248192084552059684474288880235470892643635023022044330261648935115301357178706974765138707933406355615699937332483929328645646833379155390413461415099636196020682481858025019334927863209583852076849132987558874652567789152452788801802747082798986070672500178337899256903161966654980200926124434490624511015629539340497266240343018327399869016915428123653379985322376087682756008944006016398429615394132775430613889634131365403162413205030192793871459142752624909733902889907355488173015624430430074968247246768380850067080443711784605083399435191535116410038047999902713495487894245517601479529501140849287555701816265248051290411183616115916198684912488096779180157517910240167558178384261958460169696456313559852088064093597336619540562500459290241290139372158570965249472573803679918104841739144227397416303623789884664732210182741938439242104030021500251816814926311665228339644989166825464607770257620692913271190302228162298729134633046450615583928763355673299610569722356215988919740363816195836159293786680421686303214297774483849367504563830624135669646761789857595148983736925067685931186245401755697741986294396108755298479671197394580966149941128857395473838901312939197452390650455575862134171682885235038763151411747444080020701885601091880729296200431281036480012040072857928887447606714493498531579978617899765419026728957437943256964937015792540513982833422142072526532257714996929765816354210620977270274084749974986296107130434993905668195466565011099640452871106210542702651440273067088061279424942484059924947546553539609927894862724891011072222122843286735834181170224549911798227034948368743090918054497272817561256946295746614471212116229296735037483823938223324569562458065499938815943203715167253154978744047639876679618317890108756196627300339427636218758263101032476128039242734665342381172132128501519421951755046252700538325379795598456346685507310671547036321128867364248347083958221249386560682153944750642380872384973958037411652429976737564239862073768718869253408699265553011092319974742801450775511771034309130860826821275389420577462514485237241639119385093419831519657698885615268687358560250695491900367592121699477804171855591313325570588169758262610695486988585345001240986409916865750547244012659427465347470552745661188479206119990758907296816695900316718023278279090135413972326734464121166870654963759336111198381477545026314868290325737271383150783629819748449615000682151514205638878085842518428455902963605006772695353289821905260462451777260729331510282139860548303482079993990366066102574737487732836271415874371315647106612976527742985986476297428403122484858843162618608211806579008021979742758362363459130704202611495048368426411295039719269993621427925342587631915962184432966000891068624363969303718177474501428681074023448102366642989802310134513677339226409055166592341312938815599771926627083775316804988412436079084705101811358670188945421898948772032851977096390713773023748660516829158590225351774233448602659371821765194890582745301987185085490442383997090973558685934547694649996568067351070333203081041612982482813769340370125472364632819321641332963273095768304481600024559029346777079815873393570152841491235390695181953693468999365873082351940259373928696712360582625317714101340032495885322202773312420918379785912624578861207408686123178322808839005167952042306045276812928979979559964703671386694855888540920195764650208222129524592487664731692157869323773847099980963025898866105673526755224494310885282226541364308719955517453844371297499592302424289848953617295983262427838578892039182958823662010100002163588847678826553198589011366633858631418174027475595457069627447030932277649651363183641728446478960052301653230960587971489223947920063791414094013565924263305046852742753113037462865165107749711615833383002860676599271018759779285533815164030774063194754293099627528682283057399875757758665278046300231046325652471398659155570139822185473460392019733267378949752586312881979977123062918966041841982986706341928377997412265290072758423068278661355036565172020447678292915511857922245999112775616976350189144499239770236365997189338324485627393715582575635376135444001736677587880350037032469852944002794221448146331981385721920040200519026449832593252745912880120819479387879720973936627156182802536646996601910332662973748282021862944411346816202585536813887870645183411286761128427987249293153825536289538719232240682901029815758732409943291399716183986595897197547829265259905023757019674502332658402782888332717114740307107259947645745915064943009726686741830166742380151249579645360798561763564982355725868766096021935865056068417387573321618268707396739373074645803894502181243973906024561133069774988514865349285494877906485315637845457842524696190475757117000267429341079010207797439808426299423607964656187390445827562363251942945544866628762414337772794112138231611477404412127342931133597193871223109859304774284570822739192512459895156288640579884384703488063473314797420308781619187728294228412789146197255149499865053529661199328143984401094362336576091956491004949894302845853171656291710280742538535961300922019536003710083205429973715990540953722376637743375576330526682288579542369487027370391504090877303960887131551331340009929501426663209248483693078051200183070733383733831796012437250245281814741629535248590491131888271448895133735304190490267637218996133350506832458183484355760726624766781461378780960721963958412295282078033430808326658009618973262633527638395821357910421978195322070598560343331975856966023831218028233000065533278963142175220178947487661711013208112394792034753023408433797841556387359765243324165034075879083530136185133852795827468628438473588477947972305074162987678790716091667575268021566364291181490531804912051868842219277127661204081066981942802558579117797436658503136732436152372191171017219278242179203989667258275531720641983868447637729953854822778493322807820243449716869433484132964911895030133727376012682474612034213878976834323941038432788786502885886760467122712329208648490142818029241876433851459857474375017112801999186035333264061262806491668267393100232371459636866466751131038491210550107661449183444596790861834098047682316066082771285603228938512280432387294137019524618069874220174002317154233652432661576060096819221524100716253965234325792469055759223221795766983044704410699876864498201195743487599561167215242756096479690615938615904473926808654782392787866840992417348736778729886435121676329218239348147968896622856391143252106481392708703450094741988704507419599972178820878115164522069348289983352797330835042391816591049981700037512797808188711019834810776399513961835396538276676352379534152672400682182199402977947284411157073362402525519178497688122898395090065628826464213921167702159747364959495082850322965733803357287353585916067794471929368401010327515472625476496202891067194999325035019026923287379672752194314363723439265689723463488411757240271178107784249139620738233791467524357392527066179193392650350318255612689205523032402211295690316047689430600373914530292374183471374690130796458274464603192252521919842128522202508071691273982686580038991165101704549726435912271135495484615323702332128071612841036897447789924401811960144696838450522788141534330629154105667216256547907055797628634413392558827388731812830882674162502933714155464644194495225048215603332618271085429900555694447912300495110931787192900365614894409396911691444361835232304914502526836955320426059575031433212523576404696620124644409431612706144248849390088964056188011158379739291667614301072420395310293933812191165149177439762636409803406435224824943437999762264781823218649819253540868880662397774087199467150183301690978607613661789920758988338644029346007564254445906615649389848167914662848034188062045791890007456374707797533821091648315922438687065932364046603230657736869324629084907288365473547724086434417675457358648240579079622233635523356870352276453761151057954611862548294842865737753214839884093822765340959014466826004909327861335477658109586949199419634558918477388693335771663482223502492842948537857060446151481916753512853660523549047375654653217448185325909907158247303125170940157662888706451159626826913715160411027728961257040943186900851761112317213347678223349827314840336096599527121833055931010924471305378316247450872130276804903345547862418329608779187882018224795546549922595685041579448688051723080468438767223193402671515504698674133129699577387633707578748126849664723777335755864065936369887159069057143243743937048455887721563363666869951792268760617648008155862237504830044769205774468854693447829443103928902938974994701063490696776240249737859771962266786442082339978957108084645408845006381326089061558352807420414575326043149000810640894882517139820993402176045205598238196167897651635964032278566663590296912532163253860314357962809506219269960820456442306427137057065960554872962384154390842074128847241527313188551724238925918939923185480365509912796979808673445941078142360440360755932375700143425183386387173638507068927353969907097840502831105887008492530729962723787281159376255190409079896596496943253989964526044906832777837160547318461864523655421579739335371238279986828387340864159276250070265932563076247725657550476691827713565661575898124733684376199982526226970958176548324238314252688822046920388671564088902773631934465799687819198207438865600033591194654220358442226493232102491393765340633545807701626755005188298070401228045718428775454279068485355463487217314343734203158799866050328145393618449262800021909539872850751090547312742257244276414333256999024211532765798390780447633096468804946498643234376759215216756675442814652490461535557646123436816473186164973791399894071005618310593321775137330110506142439761626164320610209952878657536277016474774334212038167535925644876407456985661747288457593298929016243529885717486491215738678090092532229201317316953222720962113914883315437584372320810199437437065668304242097390206093756580928212124349287284470442320709165584717622058918880378181040188536241127816722165473707839360806562405272202863731436130206628648553973754254002652015494865863165607920149636396115974784414882945742802944696414376710475755974007211374484975424885008204689709362354625516420415138432259712416770692474910823337984724486929571794934094342807080264620222852885105747911072966335786057050631104258539020999850784946733644062506897343253369423802892048863388560223474320533790463831552847245409256715569430818295015124683181875083718136476493263437733350310594484042808082279070754256780791057688577455332541139098051470591454773530231518500370175050833931687712866435458202784566487831565301199234526026446490126892880295025622698560793839924289934350722792520350898012712013151396280773780969139943043877987566251449779554236189869360152643614448778368435232559472397571065041774881216720906707630334828744111305951279198561303381232157027092828888188159063678271828731199981172060046993344529085248730264491603202254230767678587998827724296259820268030017720778062753581048916699208649368344734311919094019995758204471261288548876621965330640912077610245976700082511039518877616509928522101397659132858920460244040639172832106730054343367548079324403851986577932281468701750441802447825579137448914918954512500108813701116032632463966119546930792456595454315383263196743574651697262981115601624316672405195603549791149081654528923321159175816634848447545015211315161206448961797344278768864801315089841265201763364186801881629064129172942908356186769173293519102841504640489872267341280735648050648814950531102739439925750976246784500080013205015173593140425008325648833502699428500944342543041178405217721580167976679770819465878785881918972685097271898449084535404194539006192893293868110350125709639752830227499882489035413107705950489645923980110761175298151029227668334286801298892443589216099575046886286501473826637492132882241537408849106029299459511456797376038461391185496732871178001140902518210183965497043138996351087368932311938884298177521095206832054279860294777056487854434097065553883477364682062949036442999102772313592938569492699059679093173181390181852360783896352292816719227193096624689151064975116952641429218935252054708994151653254404065377201965279273012556959569689164844841544126560203887454394777257015874433099869628367010316079345722830277083122242792769636433076013904305813654970831883472338893283566035623591975630893709313704575581321347688140843888660339494802506742552138160454482535362958089012854514263348813905212850819200720967096433793420104957802705216090326885901102171242696659715294752749509056328426456221628479062488020175019512836037383185558821092150872637549189907977794139456231198138894372226945973595785463082092309529308019213618875415552885599161894753664150282360344510723039844814862628924219567011038285958928277398015922813644444470219094790633319494144463641021237338246871821315174438286621683836847975095356796721963552018968461676853473374265127744392475607885197515574059039412121212824797759159982362654295055303858584895996981891507357572358112937815446851623520606010999114027669098561768640783734838008882641954980837230665707135874029988230677971168738221881984237407235972680035734588272242504008023236977324961185888238924735203624139675437758552779042640478233378631884692748894500867689311355755677895201126086696291329655268001463823857291227869991994253090811469644348425220333417467318520219356726766080680420851326669178804748595726302856673537623538023135985367945680448968381863968398613080759491517687404454366238816794187988180034657363015588745409791795717781845002490752884558092689738463944301904677812544542007080553225806414055434383612456765777677574440295287393331429080202282324168238925269454409367211194060384088574277800936862894022738630527906989906114467987798730563810024429964112521959224517210557743545662273258080247098520034977791341701574482438841061106473898851350536886687958288735887216478053087194639969968407650385997526825192448359571050030982446395353894228897022529692369984053541615396120715047615052775552498856564048020923276436785234683590576631179193373240853677998302439109453751469104111397713345113058928113291597741150773689762518897708027790931927464611646788589113317773826353401189587585006549388466230006978792440905024675297185740839462201948424718350974222017325844235515999880452336812311358867659696955940863340527594723989080646183678578507781787724380153472224955603995542387415651774245153631318433515438027541628320943939630073253804969168119049167958136425687661138436756343153586433289958125793448805025925144750450054081569351052190634671318339883974318358907992527941953487911594936532705140713027788668975621355638500667133046959717490534482516889324527102064028480691385446965188407987247693599586912712851185558307486401539103498256141984581812570584431488352721535680998257111004306613853100824603098096591729160701277653275736353301682022923229782086254931141405260086336743338809762265039124141398781853328953467424297323783446645946324364936038740323929587787266891626458797653847948453543443914505615905012196382015584605441945189419971062023137171205737495435468030456429079890678006493086750630108753578160632657620118007876085211067481387730411689938754395653348673228038318262084953794861015574837931214874181293894542983608339940608838254413837989010579183262707255673724027972306428857442174036082208941774897024010457032305569686443262176500277206995638275985018110184531988372112826267241707136900197822051582659113819434211171951604953251975936455602963395002899974978124240331717949750740889079867160772390481781167635452226272490533491972247316603158222017161401627529055023400633829672916352297192376255975273635558592221666644380508405145042011456138567447395508466235842132773437893415812109814231938782626773857845347238395610521649569456547929546199343138732793747570283542414102831873750086726446613246342966043983129757710337617924809811157992921074385028747157551680891251650475521300323818483214070291734000659450492010755189716947745238874715016173737060667394849061727260777256777309605670996361495313573900071497423480633234747894829385445518413136887008433022291142285094387256506346513076199193006663419964461441331197407353197334520420479201153891606077604667158060495170687980798508697103140844272428220385920053712341650027759427102173726345895284381284271692697484072742851855476756705969267494780473200850633105318897545141870646886585953660052636019352216286739786610678369056339006462635287360000125939975424203152806008085147269198758928482407459914231998459471126976516842453103219811832899306232371873087749862989775127450223595151494394566300328250586135157137791923500586276968631111093839108817579158743658845919269894033629281136703489456901873540933849537813181740222569929921325462441634031056047448039284145405311656799506153281710277207845288440500781879473832043012778844360602510222167799785419997617073559047608806629029704930749672515763228972243990665812350029808558419307910399441550073838826672994616759149986476693205824480130834070539626530939185238374011801568766394130717902952026795000217137188226691644308926045139735268028256412726414534266558221135109819183763297362943094255316996961952134200653994970723718787733992203616902745850670693506494222855022279804392215217265949134208585417922387012771591392356763530425658736550455707266871432205048628086259387087975514404134984327858138031464986323767167121473371240756263606621307757500176102058238182592502191599388805626930969461588370308048112575601500649455360887998412202995529173486737997327770602606692367037083163297686915522599092388036987997763320664454589838893661010394661760406324788855300022057529152702565949862149308848846708425222507886574507365775934620882929010336744008346873992610692068118889831728461217666923429680710748915458836706265616216972782160543703851547117348895438258353151855454062006015613800037320102391937698168743791525378136656681425284690489614863578065036302440958142263432447755944743963886522158400747426806218650678355365895606118095129246571821295508128582762258770071464819569989489087231052966121606680089152889452644408948222444848460830107038835966884921044630506882241681558753548165134929338936939171619308743095784491522010718287075875482408292447507015118593029966533478420187732481803004057373260673017389247976123925699712315937374034834267679525001475291920048607953927052600997487347906189037636080673052072634285074799773571761649169896385078527860861353916638494482942652107169343180511692252216881194866174199581909887659460809154955107543346536077683581264331911422383983096131832099888705031206707854168372266369513614578775035688400900172031797834500627686241278169669132550780172850253114693992753447296216680557012329578188179883405391101408180607761827134973191222865350177399929472981232318911988980931993570591566813929527034418785812803375404209101515079311118293086189460302048161258761980416666218009309677318010205932151957226877770297112237282140117244400424270974225541197549005088846669457948237862367941430140567968587835999029329658904791564412745649130916531300615917328110168573163640722811695784155290424811144918554136290990577871345559371324328061394091601880589153168227629856318400629224279867114681678121378936415665054325793603947323710165803301189068146754249804801991764841477070237962825085974094126831505780311130820379041130858505377235395073621281145434367601498036862875829691805844142815774390035304787435725000274371852215838840352577817468888503804588574871975780809862045321361386088592870385167947620728144193376276326042075860466148394700277853246544803348586614523369119579605139910372350777271608887625213398330838469084221441269720434527782499247139279508867568707972133878720758529912169678244334710231888852281437115815798592240610842000601281136798828498993107937426897403650171181587254899582985398393352573990573546973635540339052682799188014585523961913638091262391908612771228907988545933247943571132327493659405162059113242023257428473223912012070792979064961181190847616232660635101194980603103090146688447494492263149964545201214162808276996522978247361068632009361734487175504677326382414917383679632732993119618355960501852856705517082553644983086543038639904692526460483516445511686939865977591986763128472560918170173746077028295847591354221526437899410413046748084261225425903500535941472692356370518782687286671220774356297925914248918017770403414386843341500129871773729170872086532517938336161930333402537080678964275831058096921487570822887273716159234768306096833809676245127594213560660170968788885897024515106016515006169245161090480581428299731587749973990262874590014628524627245848556461396069566324021037784786776406935901603191058695650906072816058076805933695006576753681512358099061085046466333982512386094791110536835048436452633062300898405645335818995811815126171249927049965897765008817260437809542678716190366344181961346870416815047458075414547060101735634278414649745536244443876789308353578918040071254527004599696972074191935874970617011315950121050103454462356905219966345795984190963458517821731318217627130906946192052427786604788586582159909166236963976865298534587616169237407513237293005541077145871413042446874761677267667644346834346664132871326640055884091649437838496231542763365121856312331241284075216805394047967077734350140614324699400256419364924688793814861970421090924949032313854854506422779066231050701175179565493061000084815061689025172192424780415801897159585164875041840009892428283196529195756165827591332623030454249367066644829601191816420289022599357652457798744425780368686985408490270286831578112669300551536288272020662490028238232732338377047889868914578406354096148150063613064740464962081858781652728894779759951434705868432645698966274290573403004339882718735894062411065528321898286090025377263012112626574031032061975990699548061587923385636667746114954767174798492090318442876344513222722029593037916826844898875494998769979141774461705581601519675539689150655954203243175596237229535833835654052584449024016410575508460437437500860534210073613803018271775473320723499428645943883687314607421139537623605892227999120246654157381667514666221587371307914429236053158167280156000924124772622040691024435961910139467781882835191577195536615000875346921800162740014413770746456213522591496794000020501848794584485870802592442593050035870395637413793852754162179233753014340009940310037410076790702601046551870737544532513756485677881891255139901973522201203515802567176351414738025912976066494136517485845536360114532286717046231647003727356159093348019460452250412296250624316522522125362157885537174207774096923989963717824222768246937045365625839188166392059598706532279510736733121552628712634519947418989576591035062279920613941352527836193797874224024351992825275960096932204984532956709491679833588387722687363284040066452043622370164055746727920426258371670540790415039445224495427028206265976477881148907062357350431981941853865667179005548978435586484171636076844965990085481806276851177815858632808388316579031827050698848963967490482737886383837590758373611049733943182537129149163303399801004636618897322170382863299505632865771331495515166045533384747171127117291669791101299785884890213301991191324178132493562205174479020685550228290876714512861340650154300378071742658091696634692509108350745260096499521968119773696655347491230809233765840439459637802252902925812664447536167370353024466303896107359961732682517050451297309149239711717463813262871687840344690719376094753469922381151211807991325808776164785623466110084257279678329980432810726459703418134498850432352592289836625251481601213950141441425255590617298316994244126350880162978948601978290840987643416016479218063427129137839703048194632025221203620178361324887335639179662024253896065297278055140401723122608635359501187259977087943908843377251132414127889041471466603382697744076365512583557752943415260516285176497157113315879738051334808926721392848381917410789680893148238419820868829015636480861778259272318292657425778331553976635530584268423927870415245084923326226590260950496759876262084009022015390442333142392278144705089329619305734357561387332520766338268385313000141005499613179964762003896506273712959572994948008605157898788369913195585536487097322659499673726255562120568721004785328546665067177752496460539610466556827809234214111904621619127565950495354243029938974816698263516572744396803468160504564218455931310023186867807038305521876580163015169028155923815436959658035061956498333746164700403272210777079905559052303572303577564032410580533512907808196978310212331282352708802996447865069057893135654121155317451988315520366070452052125385275206391300611544033599360371758266149657252374054505561722306410168445573835609309099533240637814414244102266574405979887368640810964953204050992135397167673273016956282328648248702030472659546806290350373879803778840483386280445312567210842508930998208643595393843518982124876356920244974007794332867860687977745543766559236153926944047553817852215974397658819744521430043048026507595505954630911573055276912890613768948285318073477191715509552437407342284363383090593495309878690715204183046036890526407686324146948301444555665864218170867618469724263610175326307766798258305557094361999286621024184272196816220525763726106032054567267483090226356333985569682432707535725883315527321365094807009233259920267588020801582932601447616543151239006669027092499285586541852794893398034197846351495216672490138689668311429833330872967851178233687919417234574809303277992980068435057819369592018334806924793983906307750571976185919120289715465751225470544388403959251767815908623368038280720817006236644299155910284548493270137514589871705233436914206863536720838054558288046493827320762859476108075958121412609404918334860183684772169615460567316778293625131043642322713919061569801074858995568493460554509183170175171262430267534490030975729660312668255701247329979000184897947409914135456584058802704028774013465030985361408282855231867094588295524064841165019672334543326622163395084088838259432992347646852056122635970890111421647241101779268065442475249244735911751170100359271036177247277806238176073442144207753091152400298055399296249276785920687156172279954072658858240453630960259201528164710037653859399153369366952538409902199392343215019413967841901785099244838259530238429510953096702854024695393787324021744893192057783590308023078913521803495805241967129882890084532601374349859658034869758542679572563781260647887891160201991752793358728454663647776487042986075802857707415554203411920066722754178718139887573505692896558645866113530609314403351469863038877223167726182094501232492501817422554447971932514940766060187791771043830911822811194343261984881011744152385739904607773402231881416593263240981972878504115890796749661723156346265462394925614318746468446912136594516290019615056112180147036487138767245751605582804261364366527466577500226867796646349320029845057243065302308533667856035385241982113241679332161816887290293581420403177841317166260597375459692865584284209408630405141845264915836180537243181824152094356912179584092514595897173691650643335194307730425736593588062969272058978078649033405394411481982356026720612136982659093989803108811265660401313086428978629327042227917531955386697211749572869540617415114561673003036275493786841070108554580424408603093355010258370560 +recieved word : 0 0 + recieve : 548710736237314413926695421890885103935722526411760883271119006917211896783693701623032173756915511636475748456709369637713356391909426024198230087299429523982747592908475616364380919398932107075557654409920973653762420405292718091657870531922867861618450978175301973475097430583215134910873712873737773463795928960534600962328151376000414198136217024357573673499514210467428409390471430345392486571531729979988963934680710253874715137442288558401096695684076773335195621858060703049299837329503810715122364096921402332162063207781943926278099844689465323612639934449098017082312879019543443056652162818946175031402537066752946616368887429349899950406663443769604011073448348619218836559520953712927464730859159483419301043320231999257447734274623232981824260497842620869069024412940909154857142377459108391859327227045616825202325172692405879349092842304384997424637983591759800280887886186738110864224735792372729160929463418387317438610934209830456865650839747057044103170346747921383679531015414718878951535745746877377796258740753592333442708637220543792579653806874278191117371085903156048459204885828805672507276380396349680678135217773669422361395675621811993614373548280556775659363293815890763032977132617146010174413812124909217192364816171946526447051191641923902568004451159729859255055190672083459098968679438532692292985117069115981641268805616997040060396793789859299030786381210722974414890711772510701642611819487377403725963396918784705174090053580887645732204447782985768538583385502283912676571501576961681503525573799203255275991691076484274397066243371786603250535057155569396004783971748556939904006397476596275757204190969477953753563145943358472966559455081559283664161192085070311510212239174829184967232249680143397879235978559071976708650179295639760743946853169950517819523332782677721060915990864268845638614430454106951680273887998945458106894136637279017820407188615222897196548102894367477820483637876936709614912076321433908530295248921220041684261471408625128388651850888689985206038420957356239824653419473490837730199125379245684443702494101279532323954982437471518981346626961748143038041822884666037543717688278683976093531030457201811592814510726011753442035445601643725299643534859681159367866045954011423068020449935351990335181686724399013551952270505309217275257164079993782660160464233342992836812590982975602615926952692924561245014223119712463202288738523223756212606149956794927249173491922553740328990146586296640063742971360788353337875292641179245008357685637044538399962049924826934830223366397312827991197232754164163676453484571410505227025699868394423130259685798961062277259942311010324797393938476764183156363334358438214432947202808421523908233597267350210947161690092373161304193599111920061284310269684011325241060331273779656438793548679697501473051210468678769201336116968910392458925260973949940101971164821899184971099433823316462013998330958281057461411684323792413461962174353212703676481718052940081295361964833659785053900622889969399555045267910338658623260465317459448652957977063887003132290586263502144075058723210039817058662484919318547644671293463790906093227046222654498315235027582330993596949881180979986064179124813090986643304928883371675798795442139831460956934488736773151967422253102768428947738406545441996579480677696815119937360870750398538080950853237334435540695989618394691288665008729490075404358116654736196026998626027746873370029316435504339642143092898639195204874834581650472954750690302261345904981081110313890588687120543955807319668368448366198489516809310440594913575985338401703385695098150045380654563391222264161061819699471164849262031168563786192565158286201816812272438133980176489893888883046164860870034488059966175044174228692615225077416643069479222539059697105851726076244413690626926715284741819580724979135381534919955174883058456268816197362092705594379474089007628301505802634105502791807407069088529982988605924556119630138166804477211726344772845034077986071360099569779658862096795903116782815661519078076661561446019411081708981254601564208854362246871957926495524796068254797509885774271578533578465896710504911832021602257351433616985860537002282176291731872392852966746200934884265752032365476139526230239992443750159670489773337631519169125403585897324313567920785801097865418498257903547995975415997836986787555063045423627756908126623512383168888760334137891469287923887613338962200831476455992653459257222213483347600381351703755528339867020879219658573028983879827106548176895151579593221895334512667754154674172197537921074482733172634960751583803400680620953320671646573213747875814927148478532528819423809836417633604259331212415227240833186990998052828324652073812663306795162856599636080607627060606496176354620313419559194139934934483377787526870110099390300542941704865196777979631986078568815688342476562246673488409209108035779923146051599954356919713030110624006021180429439545681506424831594148888852920311308831849992463257257087794103993334394040799528113591557070906732669587760323483720624430302421356288716332000992091143394231532531444081573663527740521501984702295724340863122789166145438779747737069948858744018036588799561846430862067149369689407674774794919568338959569954842148472771281007565258092317089699027214587199353038038996161941939738572558221899635798845286737845493113595111553114968284040553465161800456155094562340119806108959216891589988271151747200235313640650502846083137446604271383207808978615284756312451675552097799202763558894226524121359857520523919051234942601285990242731974184315611013635579319451904880915184468033918644187997002601321943074311704637494629014039044000423453785353052576374680745518542194852288856989435634722717535431886531712472104285221178769117928029250456021464001053649281439899832637944939790593347149133148074573071602767728720796960641974283407057304260889336579721835916683831901242823475552648302905334212067329895787420068380202922417100439066669162035191970697290565902544850168014561493675794807935907508565589386210235222484302381138452120978064174564791023600854919436574812315522669325518938658927585358007293849392420070325182214814021846577377736881583579786470903198578854132140026308118244262006121362809939617731131144637964578924486234423004180755573325873389785332078454898799253712844709716092596337001768892465387853458474540004013820778899223889570750850069934973688573620451810565102960046271646346135366072165853053713186494022834878299569636180920950937659823137359033246144011496322040406743917599839183956211900138918201633688684751216272562133692261559310145156938361434803275456961748881663640112342572583645626099602194244466846218425152681881478105747227398325702688748367042318340350354690075810633087584818210173660721222639598860272685249317627509235431004286594333472504451680359097605713313621696373391381779588749290975962294735479819852998555102788697413893673282999110459307193846682752473719779859323418209781980658741273038126856342750676330477339710214942196447499499909750022067074623800093934718971525001615578468109190156248732244619491146254725082641523458621854375082820367008220303020126756673614323438423212327218675685927704993166340253804800619978859358925912107855655472729659677325529164544315116388124994714599939435290701421017139824979627773188651275486984837238967422401234963565560004107540176544511230489512706315216933319182940302286199515973932175659648230031574600229136401309075406868737125309304323329691608153683060835156506414130459741695103641181704069593602032257440677049993595800641581024503041978136474985949503958549261464049388743337329648976571218236460547500311113079293650259687034548879990150930669422664824967326089152913739276545540730870323874814358187417238223346387779020966094441444615401440773786941847857398979914810747909978807586284225311423126737776851347269918582725625267475196129814768655689488181106918892191981696666904357869024530342234939266124210115062419615126156959935676996108716448986368423057475130378483188169045764576262210042844165928533365605561044014961120278473499155413259542067422778089090581009546306969960210920826894060266796669738947733678322904589146835771212601765171082624172987632119123450673808286351385968880396872077961192481163164507033484241130885612392136321651750458757184801718294968452524385898615996368315906735917353665165775523489609775012597865950020791303504448581050631476062822859024654372355121920319216238945317487404783958346309635229541694561743959974983676673895874269497767114752153988109380325882041547624456177462524716985545970106272094907829124977609379792116798542055920361167924665164094170760637618323909370102362321497429528835440579837913484658780845964087035113193682463366520662319372740465932275815807891487336552920460930545579671578159283801381549027712478321627516290651363045293934962107844071815890539215879651507867715148398121470600563689770804344161006295375001042346513782052536817753491259053341770222956649339218543520758029722320761190346239717296825258284743568217131439350648686455573499464890115890956682532482282467375427661967869157095903146056851431586239506127710215576149071142266444372882847874590010987749461555153143303084151798772507670535945271197481265977179652330409896343983807591453190851440311586310851167121703052976136235537230245016015326070221307536250445570363003193671113413397795071794158325069254966408278578938281852894169508892935688422256564185590373999792358331356445631481059661120065730003768755313858524171533368781378813790629096827272857205674380147334059957025050443040776880339676300651724471646388348469304389171303579820345595459419810074135860859907076907740846009570238234998450537965155818860665093718936578868201299066845762846596902543497681302142844246120441537022360147804434155705158870995726474739716415811987640620572110255764251474777357413516118819829980651805700302505076092604435014240653503196519635956729039335054700194906725793309534979003434750723532260570599626767748682005016691717438377616074493917018362627208219740588780201792208582052576656256070017454531252790259423152009227694646690444555464483138676171917430271115541667304773966657067108654961625718382735642598720731720776801210590615645418233367311469855672518360899861792465252010663187983395486790817216160573951106082873374791980776148799462007478204679830520683397428143364433162382990044841296715440370056681868995238954365927536318860091788895769281413072852815814554850625503290837508764999976793386548962145782689596586649828280435125548127060446352534325175166293960558231854502546404943658126888824619399091719398482156024597471086289174101486952915467338879697750719196055535613460738692574588135262279894412784325030092182307221452992848759745187186934260934397329887286932916300636361187431914278170998397281442618355691605599986520226944061813295420062061010205165428401535725598194536309558700163405588255060222010252638923690402145450868144404250331898980562357227114891863055338829590507149680516325369745906441427323395768021545056788086581215661536443613919543090055025054126935911019801832959332078875228243826974247374289611343167365210139764522950265229518120577293072413344350960191612795042132518653295882669746224179935339702937097743286820263278844654185593952275094237228362336742640754681086832006757977421267541943847958918521165436794377733836703980432986903143781610030091958444025821725592145227362017139628466545899841404763393212884248460127723383711389691016743088000426603338147525992320554396038346056773002412586475516994645795174297653795848864965568639642392804865516257201418809580736115482101674887784468979763123412047034527902464657890979867711467069333984617941827288807879739056466697386140891874953775530584042928603033002802845825768822534748066123554275184139694977410020668589234571723557273088005298206463693860403774252068076082555967018503854888642216644276857084338602526156543782239973392116777470063160017410563035323299339511717255032671300368313264592766428254982942935650589377906020247839402601341086797281001583190585782551066692739170505210039679850142553277379040079291618182052525747360854404260946030150628816500095281836017867777593328378177313602969335360299635287074477688259980325054158676685476407882176046896469435437533589958331770032643629332974744097438603055533283486825634256673080231008598173592896728933471892387455997780148674592154542582464897117890753538571129464910390262953995841028252369717078196292408421239735329623260693823041128586570328326836810950597960471298962298644633531104695062606279344141325021003346136825631184798740925442782648049560143049084509862267997365182868951265985493486757833445155926123584683308533082689265936431992537698639091767638639349582818486344506018239500021478624620094191438474701990603978736547858706122409718660733398954195528570528608422630711368544248279503637800936537182931375298069160865941309295334533245802805228081372304617536370881777146706068304287399195836554319322372544888452548453710418955498250052820867061455916846985361315713282798390755551454902349653740801360636065826357245927843518331547926302223258030009005444866198027869402264916554243122095255661255139327514673521349174824061575013824275546836167183249693568392504326866532701156567988355259922866977109089098710744960647393435714696731542904925019959561924850765685657174039701495101997958913671789624520620040085360709653806379222876417671218443251004437031799116655478918649159793134933034527768657801483443657829990054713711936431421164901465159129770428502103261136592999504472236396762372411944361657248062057686269287723131238391752815622913028897403530799569207918663116633166591412974216206977708060468554705642563017412347027094081171377332042432525627505176952131545387167466555982095226890319983298994235852631937028552749526628931644277660278843513437814142638022212989940284013647655890247139890342983569459736299952105579442027165880588609169907559127738758702720726375950510505049636202534981877730536987306439492592221323872340162509406805194115803285243148499829328700645589864861968531174937245463458137861527488836466355222125036718130814029259987796370868215304448671830760146194514603690377112800505548406120428893231814349356813226315389781877641909794168153920191310385567536120673275271518363731512827976820912459021756954084437249886355726389323278192390159715904760263704437346407065751514865413588416981148194613285325450234700359527691182503155370395513500605329198528163357073487362573135230661609918721092419138778619890563549824288381718712777019408277299047359689663834705194216657227136781303449576964635085235441445701493130133307503163947338608860663570219762415988831585675656589912723159650489035225291901742470970941855907201999380633239678998635001349255231744365486193374465454103760890627534421197343680023263957075960226849238740757445676270673173246295279398497459598962849284386833055252503776687759380685675224024998737724973486517090607126764526110534441909982761242726472656895637031050202518580469889504007800537548375177284607115349901780797460769317850984119758772519380879152495109159316892471114946393816783183715937802282594382536689631730573638457879664655744293762580866311374606625205379726848017433337250429007275087878727771685943332743241742633868846926231023593303850297846629589728182357283160985581717398218264927736743162944778109240371343350047555604933533510899806804420484945997503277594559492335000806551217962696959644002751960412285204551225562725231183306619818005654650619043197432124747539805424285588645207020385885956839858942469337073697334520935040697787546298424486046429853603496599998089585126671827612976319044546106590289760574947624094536241680285994671783504599242795391957289461364759388763438948138327303906754702498679884712866929335676019759038023011467285759430593875529456424404214578872052127411699717104151645010120946436865585856715610244417713236278881367197266357173978164297896411361052326676218698513350784255687028727561193836825823503489428956884060020904308049740871028529543217752822229124350532433789245264077778830394388423844942660475205167369920889281655587752324188222198237467893217131787273877707408630635621523888786447132406767707513039245784161961041126324077292170277654282800773718206252348900892600142224463947289459986164046364937386342995428558459723815876688812886699353107939236452075689933750965977477706438622783592344210245200889838762484258251927216457911585730540110819130675319167913575763125089033325671330958312184595605321668060713601248256226581281556027364878565701790477360045355220214970985415902460218935566147476969027415659850577881068312550158194750973209150710280992193976321779816053697642603128510786419148279352463717150196926184796584475937421394485202151306347707707609858725580273075529532497019759409235126105643740028885882601959790123982949288589869786729292742730186021142275855785762402565108908421257835677841374686874286335711275719955159297795316134959475719517896429796646994822221910335939066693408140420619730256787787804434262130613422645021950832107255535294592276307685544666933806403436186213112883032895575452306488618245660188718454876861300748444373544044715404157573156871976659385728356737651867581816208002481055463809780538629245090918576299814513651002412716223391925512874362982201565171205808663384259164233234078881235707922752222964420475210446938855245485486144699748425453408928948818905716827643437530714709326477058340772084886278320689269716773615085834303878692791142734553553564612954956073641609299599242140912881492784858573690460922038570332527176459675392036550997841894642469355601429122332849444437720293090842460560319842151064754936508142542187671896558784056627039959938603615520254324363900925046796311883928685010426185241827565969860255038684380128887689303591894870194204747855417871532051878257194269535034486876411787413181430928998127405715867636990310088192589542080622530272595213809959353936183311881953011243486616893892419571806640910132760133488913761218962366936499043387755547786490070939943012572190358793205129427169488927550536127048125528633532585711910334688081487292245420102134234487421560933328049757120549964855308982276374921433659296758056303046192925299005057326527625693868488576903118876650341025849147780100705864580341069264007247888532611917825952620167387287170409097346332655939728171123556492824858804581138858757168656179982353737825303278701074715030041332874349540419234374596490510238765064857308316849826367032349711995020370055528731532354796309252332855257670872058264884875155155809002976132876856558732724459888963340501807507168013932811770046036900676232925692016526788188370751452218628080810174432079774790075233368336698322378702628187082268181437781641759873084066433617969575178289005280636923934323043668109329375241364667273366712598703717495584603159627532257892980271792344701992792949993585054760952164493960508623121175896943875311152681455124525460247415170800728499236355085513493146032677633434415175110410057634130257803669526485054547727837139323315106300677188734737216592471019591854370162091766055409324706534320578944632516234414280698050628251009743670641577381917787499696841559784852138249484537728719892677250475028507241721424564598844055624069281174185033675327326530822002131241133884213400065221522970103325358322404486616824512543633702585032332564661873099154672815915416689290038496816147511331102207934053046889067191776412901013704501399607307061632073639418086898722487939189733202872576816916486418338228752268473320792516617200174077114752890603306869632978644821405121058677609983686404376135151585200973293918744836304562950858682293582640570428201472211178858901522747239926051202948216576428746573661623066591622576715888975399838582172531919345669711879329663016122427872483095771362356833490566386683360200802487180732497514401422564254613187901575816611442353634165850036591918997760122158693057490128147488735324968027585767883519393239683223654798863611311992523055113462054526086376036021450644640376964210992467573988401603103136206411367522366133115409017829200310741885703857958356308946453082046094527711541547003991202254973922824786280742988569109226865502591532200026478662723536427652162074334654952254283847977516089200361376490229483174241632298867322809017954033795643362285339717270573928298029123895792539834148586837174499706179950250971020832945878795385878440306811109738631928240932477478609420978983258045897179563136163231614847060878260523911320905363715155711883345705658331061733333703789461219872870801989688206843750493738276728205096689705059471420130949848090264589508412925191738828371722264756156162205876315467268223953838981080288573209864984023276496924753260777476315892012282830349991367068255560545346826526651381936294513803622224134770497447757084300141431101575457603565118504645544041220735131633239044001538891681969478814789722364863171959825720885216326558798320960475568957946435877414834523471797067658603784807585896615742531013763532829431193227005313443450506295910265299701817830699597602114211673176044036093867511146567672602048168935487278644652237938848448319240133094141674214575805390242999520079051279632726805413928679688679648395203447251880646258485271630583209981303722419691611760415325353015878922511110677046018215139362231874226919026795120784742775377629289623983330421071844799095538581163916803799179475921619078840027765572810895588784378570760684645129376475019692985834218972355353798038698478078362582390709598125430978839156700754177672514291142898735516594870345705633746161941688756233267351689210767621092872529310436217895570929714398275249096764277269063941705293885367947439161256626344096668393572810432259726066932721565297367207972903770438784577846820122278063764379490681704664208011192931656706392092517418881163811892482607263301031582742412504610265018925912760338194045547834377701314486840269109323835463302632023706881807022264526573650248479457655247754724482629103902891360220022343286917657261804726233787798713540460677441446317752150909618016000621284326565519110247778049337583914233006962048896587726383427865932073805036333451147531457416579879821208618561838500775301442541740549652141981785327720604716729476908280406356479734653278799219606167139914886253714038804320745152969183555300340486872021249430772399365962567184206338397392730926825437745445737460453244531581807394526688550287307328741768962153152876623106632419712875165183747830440238939851623637615145088870055298341042115512703892589486823573256023506310522537641347941010359964156627244263554461386100644921224300447718042538486129003279618540308814312577654404999257757850007737041576153346996425665854063598660830093485887335038859113522814929096840070760644906038386023532606436380163349523094592355288681654259596042234066037654674398049007721334220862099523471181464460105692733352323279678429604436206421115287124685380299740938500655170065728561996261485147086977370181275816561453792819881293786420480105806005975532744168775379913290528111386104431411978591262199327876417705123749148160821317644824166319394571671442131772205456705866678595537162154615216199430847090220756956832304262014086882120936185936587699975767974912792477585331469840458689940605690322635716561288347371778138057141607454692056838939859173462871192826566521908213964903144866635820859841031028262410793308762236417422349016574923842211858611391974805393138407069459031302615677706314207287852528025433399541573596863949773869651936925467133736162276741644308331098739985488502992027474349836876298147811533737376170506895684035328870136628611659728480914132505565904116775030278022113515005080774918352755335232164491273114941354078160196210210418847126252290134865806725645925744764530920787697647297298620216123112229373754437234446528806538363030538516191112947869804892516538938057940764697067989741530633872323717053147111878529451287159196805039188909087228216650962559324242026674409607930712790098815234550272330868278247653769276192218245375662433871078976942532082711188976972021599259630982140809995282584260676129016127917320427955549635853282399785997224102624335978177346890198325471752369022534149260693403335947690925751099322222829935551122766497125326153836816790876763324295277189493401565962061164241215996401497597736363566732542353418132151086162165773052094919557348771628604848589645777480163159991992856494123609885504170647915461450819107644993241569698060375648720349440192938594367124026893190859396806897145479276525903559207483328594280375964071226581981877998488890470942782770073374219358628636591917803847007238999066936155308613719032710161885848886128824827182161822899089481756945561565402332223471704213576826322313535980019264735610592836205056569808473520202468819127674730665549034153099056081613514840830697357977101196559603239870995902636784146460668936902864844799047291958833433568011424226834028445010383224680569434984511506743715523798400389578928585255780729941680925621958460684349267812561598216410001103904956107126743406199725646060732391828567138908052562799208505195038501396013107373150684697279887819378253374891686319382445259709973458449999662894928860761552694488584331704802234565645367191816567560949659027374621814507683801545693650333296928977658000877821477338051081217325227996889808325885322426459155756143605518096971915729080725991044975571028552854565804946430699150784297110654818396318906904359035452925686947671140544448523729815303772206608327430934138720091576490928144446442519601933402792783060933967699173096515761764289593378348289208601477961580744230303739085601909643384240209052111876400199198313942172958569999075141736824031336361683043406056694068497216824425405188192627255986317032062730725782833495473523198401305602583898536343647187264841100099762729560546894265346903033217086763843944166255596414456070778117196756970816747315439196483883121946491392417537162806127551306027628624217971124929694485585169876533014146894115750120655554483656031911091878855208272500827593356591117780130915780739332464573585295919426614512137464946816300661587953340181588701594846844204644752435297825562004888623767644428115349353836073861851785062669503087069637540121862279842339360884046352283717160428771180494228454382434923845694379388173753089490280371860726487738812982504514150573226517336372269922616906717838501740767830098410426112419156302655392335204883633758231907548525414801359779181555025757201681637882293612246183671652180568452613262916266886647342847425034783733968937865624704401065355620480605450373854807680411070776365185463138529333925851028332960150652829667499147065347289183420254308401153296164660893659660638587315516045191230207149007579309838155146902255727506097255047018625813240729477131788369666851303763102643122850256762622355405846518486415324519446861957761427106911298215933749722358623323349540025116757093068239583898635086121645462357845315904747550192274382298105716551561042120819115144834463538601594727254677357302695437313109902313092640626148494160090705890357086403046069581449706517924491512749968649211000968195074182882860561507811674423210185283292464723128912378481295178319831422671663685561431199359308239149976956742275551451573826297759373455363575758290519523609419590937719725034896085789768316692253578115680053383623913141903179669047280630217204708757557056304181233028932259272188697315466884245604966312161532291469054052315386595014812900719691052667349799198260503456999448935629675331619873761765378024659694884052798139915367841086034817566199488785854096381289918327057446111717837532866225421305271672759202640513194502045215042648675314247695715007025095227443666132637354896287478652496572478347269032864399279875742993503911213369277994516720832569265245492119018726584005246479080639856814623801651266707920256192197087638759823423152230706531640414985816452328010491204306433483747982304614777882464223523137912888455012540547984899620093952830011124718635473406381868175394301630130546322424007831734301561803856009327852912371936877626129650720265634705701871115604626307990318832366240572242780003613873665621742987624243482212971647816176825633920963867774589982114162566054235697155075427770761285523768647206063255577767149158226374514869340949312061457099753790918732075589812181708972593570686021025198579978993693497916378348908824684513285776504576493068271768351231175322831389156722411144509372092874918222956626267323575199374498955784203603080358489839548860573595715903072502684407609949409728824148301412532172053527967313017638305530300540528726722488206760524565440773687655642704057069722756955138439261601268904326908655623891960389497888817890313446506567072237776724030648494353785767542944169858009701548963055152898961247134916457014980969268540567553873117389435009985830919277672832975267041308947867568348708319347900627722540888300830861212270703163982381643352703896986589700752692730374767435477151453074599185491679051816792046462379053151647496311087081120355384484370848358154686863876779049515582911004625290988405114186937948557344023635862958336754907165148735191624558929758996455618174201288215828141931171231706860499089783551495565330355763297096388377388625917233355274784021073867408268338941364702847784746477827287387001777428409596906560728882181124985560036479846148532738299955365245278071902592065144452625208920397325798733755444754458136814813814555344810764976133675543072853189657254441260541060823910303978929922141526302254205753538757298204902197211642482207767524497797013357354463166441838082357723490620370504785588583268708344186943009223401027696698908519605005728681764887637358492427214155955138269133975641839324708324724599377773093580522988032555185810034737571864578065933547252141783773579761218215020820196686917187801299332330061415296484438944268901032102172977133702335495576809497611890059617150687677725703844045759130283466187366368905815995262807199295646078145169397050166063643383433526910590708900365574054217652019923098049884140229133411329808812642678540377494481729121297649112391221648261451758049982319383494939441766989800164270850046676379148117318605053042903154200221371935642578153925429860841516983114794601755416847298949598993299795865004516592764524981901278024141260993900428764353559902575986204298076755351920072742524235820489879298249119606707836826861743254608500180982520076490832235374592489738149716576952268861687357068673040016901476859308498168051920158788501565393282404223236859934792592608370915570839757022386341145317455345635368580639209017172947502925073850246899068747046304096556803421833212876490118075391371143537980519132867375392768806358770205509207196325598303556331180324933042163788415067019719556010256960924478855720292003851782862026260021073646640629464569779696023610501558000992057300144929786381043192518407085459115794305881552400204520701473638255378126240164055408819264119818987641095458279992028974856213248988733292916636260327003778309799679578788946583711190723823734332191835456911325646210752633843826218734246588104868504336990727523550265090482491200647585029193944005225095802337333681013388167597807790380541789132465958195178502994354526203204747843265033385863987096236429863239118330139635164024574269785716268154473623574868294207744957003583268854856779985877108937265413099463841332480550593820124622742699655849760035779188449407261054315859599044491750339899095667847676159070711299118109117902557502309261325992475295007799593213931220194471416002215659541615355666939693596002744816819657376240938565641786742279026637768386119588151332050701317610630145937638840226415163369257110268598955236768916041492047133101547789894801423072083788452248952902906806907435593840758681280179685295040118836961256437120624173692827353897113041096815973082516778412191056988769563182055840342188734019317317822399405735672451830802287057166031248435813406890671050042711018274723474562733206657470276367111484247859909841390632749021440891057162142047374816257919729073964789149471740370112216770503813721203673523781281239545017505823049565651434563165849289091890494551844899187159009765337506394589828668218993977444966780656197621192688095214093381098234491788200504761139768213129850454590178349209028406467358807991728896228095634803463822872896376673786558788178424064249017439413247217586989613340319858971982437025135307493249472896471608512165110720364813067450772876384612355961027035987232646285842801194876565837386199071311307405473162253515594850772286436928311024479476447726706350401834425745220415803370706847209216739022153231572147562121512316349894627203326048085706085519890319358368523750462711926829707519848924578675006606210275025831056154988033718676385406284190551511240989363177758452904773766297388316491559478527158912234228485403710375405259628195382716058278999511605552471628850595881501426374114534512217142862986214174715412594119423111174190430662371558537606168006132817621501086198543730760017449033079812707860433614683582962646657716293391458924538304091096814177175368936713574131347919364095683291974312647914063530467124064021662911192887790308247601227226421152237973240935115475521502844122777593874831891365052156656127198042845787538992520237786568053182507986447365924532435837971679957740353607744007081203687028310273410145899706836821703950275842931825958908372549167923860048096668624684331454635719226466454024048299594309849700566647213293560304094267156333898716639603781643265980108092847877549340293530804634228914167140720722351527521663073225305274413044035084152400772445437267615980440183600857386969719794671548458184879894169989744410376371047046929850100518843860688192989944007912102485878749193207128198741364603032504858221800810183068351670137950804096307003930002066485600161519473595290106533274835677543879354329700737321786360388787749093758939420191052153013607165544678831660779851328163674759155310753049974795916334703503101078807542785673276302595116583442984786667314274796751951397178029652279117096881828909918417527142028678680817088137879899519834393644437975100381361423192754531741503958218040889516785532104633823468200453454987410310180525019205032244507743698990306010882669418974177470146882853904824472973816438215629539772749889180603478094837354978609073744984461343259508313967938289199211445708253051083882972065390329465938633768734610764478939970727009293544819037978324020289977709990465465488215905798087972536066397769738956417087619814174785602913973928756569311493952856641741493571028336332014330391915330387226800026364012918695500822821627514768927820745532461842495672524393963766014421440839587105919403521423486136538913450051995157815815933195394724611753990392052592761887411516787869689691867295864248713115325044762520935081243876743821710154106334037494162428931096995117780189042357072325726780829021639632813494803053535647660502362721390754573841313561102438846380242451224959617085349571206522733974824328747530777917733573795676598323106364042749550519241721921915609632704873478810812897721043989487357314841588491532005297045691683578111047016672060574774285311569325664568466882657773245692707141674098455280866094574541857056128208937753743265484666432298291151596081419149848958029170236091011808302265131480268091079030270393374487409853249326675026762732656692483305514028884652539563580977547991516069251027891962435449053869226269070562756119313836355484694139443068137815762693924022037747738921556482288708442768011377833723282040583377584857763381200609427780082339310177041038565044755551434860621012926846648632970782352478000732963250334004110769701013081172173453935783927464342141246385796381042479681367665529643699080827806525913038268736435224386719799203621230971819263126815806781825813375011018533897074206631635206332670169683228702057319876828972519354250376375478804179186328688790271471206824908038965875534688047008463785007569750048852332621475114266958053548176979707620021629712248893277855590304748260650774382078776883114147330574454105505363678151308244920011641265622924238925351771873416277863190374922940355838000887577748014246459812047212956245381426034144325404729302823781945075709055454413247204702460823151867900836333062808035608223408515989811332166402841767280253120165727749483012701457371698323094652564488967620078712836444288801047628195712129736623628326157854087464307698644385718203300425220309806809553688678557092220934119486955954367205812778865442497620198892949515492519795898415072857903997195901458700704420049054758560814782086013839449825573779978615964369854976105612562134922797191939763284250723414331962350995417841760208495437895856203953328987442755590394713533559281984700010269118502077398987631330445639925567943887812692882965601533648701197302776679455128737034730577531066635741644125329152119191567341867653357599271125033541484823921015899576458392924719160761347931207579255522111336160678285574565330032470274010746296203002537787960541115805442184581756878356317032062779241742469006698777656090182143992249474339077042435254222375147783121166308849080447670072916124690997125237814330613590315836719203906036614187349254300590603661069695172350094445142675918669315561561298898410994026000231608404401747100509402649523842174055199152175403124129868297528260283584141110522839902692579263685262841051500270802289325513838425903123830585747501755343071834134684945650933799701378383632003722135482323343681256358212145114443060448503990591977249748804110680410947773018197166578564903889771855533521629481396367785228971396823462066209492563881124156447274957506741799764039145170471520523960207718768798122220439119352680630588635665342955515558291210994650452207613294769143414458690025145404541468657344107125716072814972608076852855499515841837308472862526844036298471767042357072038750080199621379683234460729381383346981149564044593132255492178764065836223194601982674095769438740769164156043990989179698367301891390877797221258753324769429144322348316779370754360174409427828985454928876119432268146677828757585072274686353156907964745866000013450943929166662963365380210206541061196736585162229100533653651022050458735220492766557866968117294001630805666050707922627246023751836901240940192029190239806589652793876711084670042659109310242322996759607129296831374790721708077984915639336264861775869901751522935715308254221733599266956568345022860540274155243289304375830883104711551082621312955801233401582147847291452119842816 +recieved word : 0 0 + recieve : 583260856097928481089015973036817416578544040802168820820139282573490662142987027519193207079163754605094907838232303176807948434048274768582110665140809048195929398574421558882448525960768308371355384960585501500660084622300472196680245322922245031009901431679763254401021885070957647045956189834197770038292315027290178754033176464702347385095272567463036962932939692371913084143921728790850229996339319291759421871606249000332883823495964866981072915492572722275996148555218470187884615530198371114543081986891506226939887843465735655724404871339924319989807767366302579969979532564049315811035827636865988348539230772577098838213712414604538155326767388541975728539836063020115937254744110959075135017348765121254503981667447864357447057202802114524918656468300338359441086079842097566176751894432936313652454808223196884809510814840980124495452478448638130253251058350881500544644566146406396470663131628784514874158384395088822173379208906377158140732465900186293454824067434514116645623007727425790556585569378357632949581802335313717210771785679000272799239459576626629125232386438866724407294585587262243613887789526792865296820798833205765922206518510027578958948345524208771086017568623860438074910113170331416979236982460552011678410748302825600299238502112371189874467518061229759091906615589484442281469306498266071458815175887358964466917708551943255898822277038669316236553917624962678880201895899604406531871651841824880419853012983126687332532346047624079055000018289081266191287876188996648644313302533033621214104644724945398389270431884614490131865806225444229891164533895969798590878934111933315010629947692836125666690585979079993024083052288331087675267922680657392925671293749799114591210642327233384014531976639889622589525517031306427207909784353388641030341941096349545553732268743562506814486769875866000468670533229013773033218647366554719937195586535125529991668907922174990775426386685949050957634555045966925115404485038452068967702958337723546719546808532958398625248674076819871754500410596601399600198408551298854146776407734280941987841292598354978242350204246377167430214421325142178624435357430629583002088152170251929557164758226263367777604802001388778818594875066882418003660874633897657127070476985224163488401816939730308877582604834406126061205260293166316311186463453822192523589087631208895232019520638818322504348558146067642883950414869725508405155887107711716273784051997586760702377110932765972366059093957766441769210643133011753848739082156162659411490149341247423405155203465203334829448031172619464535232416729590138393480387341366358514535206974255099966762086305567282768211222948608570300931600175797210631117715090166808229650894088697219172393825344859367304701201020054476517907229777798763497312440521031313211771547246214892018470195696600855482598671672392035073731159380517040758185630309335089041885620577434803374014941331865057380977275022161013631739722276388805269448207526492997519384222328038486813770185824590118527632361485003765078827333405877246586360872024447393944291613106416949948980671977297476813859705219350950877857308771867626586565388735133013504246573139161230153112120470811185264914844886605380604698602829294597994172749799248697750851350753013550609870550574306037034232522050215272127258448978659541748237584698669992760230639197481186549565476374595661803495135851090347175542634695184776360370535711289936139485890771905438639099425206983509044380175973598548580188562431081244930465152778982203198782495555910551168314679283950625300038827374901492532883621483379618914808451294143112179541970513103166157738971238649706300786586382841260952289196743654311653132527917027244377111889733434821751062197741650539067126762844052074693956592705420363721575356557735723789643497255699854000619192510655042660008044415445776571416303008759628615309211403847752638535226807001486808002420001171198115743236108488101852321036651628068612721121808880435470571516139044825429416889684526326337280581062638757877593058286614420574760868016916719136879861547374623638552231451108108728388343917363805881620882628195634508677173901094686560974663663082392769700410110155978216907586153068032715951051285136185686962176978588272244874812089624138005074645808956145683341964610459525389496671254946780665597063418843573638675587434590895218923317483137318889958471353900142342603636461680898758253783647094333302538440955891542921130740768981095019342782641288895705238751431210667129067764485824187677965695467149583554008461233935002099909752893594166986547398076384275905818526025782123531206427079161471467524222160685303941270259375684889546531021219259014824791985673405767668492958478365604387635228453025060681103372293262453734400226855665899946416683622069235079509111034662133888602928174145080228971919788570204464894189461901802612459762587405079121131796495910248153332517942906121342530522437092641654767489972155792084208572561338624091247078452820046783790799701845064168332883800389582685105034832017293141454326855138313839421643098395101310416949496775775965158801152839716922763920339229942734442292757178046741442991027716770530049342953973941534246857526207154904063239113929473078087120665429475599068877911373479189834369523948011792017471632115500785526049504404801076116003842391362681563206583486928873654622065324688422702540593544419799016900114940147139645727063950166739299500247864268314968656912117253897050271723419274156092404212719826538701368130429095412738603341870149072816943154441092395898731091208087802795950454581914406161276519650042178188850536217159364806968964724134314837685478775065491392774778247924653674441512288994381496514805364988617654380633744473926146127872528714407573693037267800618425014941684224142654307977221069331506464448203864123038802857367878701734747456785850966391473794903445599880184781018547291436210000413434053184937301635527724112656740896137145692673407167332421962399697999405248092333594577402627484687562218977456036135221903604229126198545337385279605453149883465308752768047507020351294048749146960631617924846720862639223310247751144138949737034607383107072439434024373160226292646303324094128435120859319793145492845648936710452286838286127315090907770982831062783529176581630353329262412772911279595076646818285336435948402458022172299954026857021754752373612874457508014365339508460847020818853448371661515540900486976504163294813901329510533757082264956456810000813534507409175317139729489353114614428888026224749886304718927669980658440409560570814653581015322326470739408613970881806976955272885835600661202798833078989126207038447256002211158012843322525312890319464848127545391161642466733538950785242734935425011744021491763607899805322960793746251554655328320164237041499297224248851708344030001318327904446560359011376289290268497543858070541868878977485634092998032778611343111927203676888608647198372863174089533188126768546928501443727236682018304226310615129669057176409322598744194187869288147005016805174352701477360557297548243006654911982080681518452722961011478732558502029371792945161117329666669583651180930723581323812320822563983495518635006513796959295136768283897104247247760712163109825139740375992497858760612324624368057997309192614898561392508453051950399686118876943041074760703639095486607132195258634565966902886849325461133611267658829243527244390091076478433644343239147318654102676794342260962133874916583018093789434480800271330692784547641520899070700762283643373659135785338939403961151719269232056911329628752626485003556709640373097463643515620838617876754816345133411943369827270581160090001370574063200476483890391041887864188359487223444318901990278384219291410852405137947056267701977591849064902322029872031456199034621693605853910319674531119102468106771966686890380598701209380750552911641922902029067201977470401651209089809595596222685234508348989501952900103732394096953752412057782481033231108592559023592324054187214561743686281983472713202333681226325167119749366985669002965055716404233106146242941150097977065960456620802819194717988905673806606941057437013458795220219169853433463641466910492861591091897343343837400104608941991226482753282080464185060907214604054328950206138568467366364259826778997801121935909356304864042307723061387611383052504146890148256097995237706420606575685828146930407058782671770984224796402115771463466918283241152379726146058478850643361435189321826885627549496524275354457396387155200266828430230816644858745101542865421164508696307584535450266277053024710599472938736549224923670623463392099577667225546917382059312325850922781611398288044035068932221361680413569471180325412083774607036191513431924925468244423474543259946627287838563319332247156235881710496099870760928478098982202336381610167562578325082224731280915927497625199637070257603133166397173407932840957618817483167254032574002326391784235788254529202678141045998676412433631230282758096475388875070285202239201407189155224710284601914289351739467866351943695435734298202809649274597385173511357402125631287048608440558631671257459780441492883167807857585580407147144056924121253072383557399159506479158568919877911120600265678374318389291944426169102033602828389505354193422222168573749622049487323077001826762189159063369683683205529362521677064448864651145368130501309150135439911079157323034241246330539882273473697825787698688264776465273599335209462411593838277544210218316459253344136177383954846500720478455582318946264132836870857682517851842929686395036362438138890893327309560613125583081553002044202241951164951122306153499863395636502774144530985333949107072211924547944024534769248882128222838320582553908516825286988691837460007683645499292293791524304639908938000229582883728303551352383582497332373515452655092642528859118870557115277105611169936616801972185505424451155983726510645487002814686017758272198384146005181813607406319734052612192493153153527959472404375808011021866710039417382550150328779548069900525563324229910927447231025529108874840356695766920340642110024314232928928003816144754489864184900652895225373119912087739558514636934255974344868769613730629806332550900456521869463326642231465180882232848464895564378020647639207860969256303691049144618772634479535310787677297223916930119101517209199476701812255893420381591511540750143887724736102646210975852101373515452710381359718337783490034442170714832186742088800021633019186971434913113099736256462331676664110828244974766867827951719546130451198619305043590222249351223674929033291011519794184437894305379697501649617784144597816921104804306820882798851754089811627523031495894812472511967430601021572959029217948986753657197969122588254271862761701113256313043753410249759453301065369291839553745347390967870621003243962033544441507924384296523459279320791790802696766467814785045659439308709265467937971531130013306059564601347785976974915240293380796944669798794945206202372391268204714869385274245212063271124237923115216246561255420527796725941870373518504789265644723928139945404598512191947153424021809463672130588663633047492100073433400236653235995612788575498356540223377456695392751257641903528535525610141331699008197079970075395878990816401008539338231352066457258018941707126829978512944533321065844062821280639182367976129573445200299349278739910002253133488503231178578461185168102992394290436520786779900947391827755114473403487794328712538424894632220468215675258956176538576837432268023883441295428479855188009405648432872591550932662833820601816549884582341523421139970209680001163137427602436466788968630795854260093265917736640936641249122478730677846761151752440157588842724136013249001387857219528048377781409881166540638988368893744478899837760204629460937527313369273335912932997613021894155951317928539375325915420195148255700093358560896924514356885006952281558666173001164493162141483885876609824673037078890743715338043682011235176253581456046646379204678581567555258603458627720613836579292881609930215680667430702170203873900643627237129744333913560097776958614014830896447645693728278655377285130760147347070289580958302045761188871236884406706522219897931128515990368020519168995542650416119026115835724379993807833741477719231466305305383204977022428971719077143998531830887575196980121507714718679612813044673993736549977939141958512356143829415875038575053447179150914793625294832475735620880670271031891150264015995448148136584428526035085456076577422209342273870803354324105572989825598652739471391708079414758658008954413466270553686757519806185591421981968908414954529011814310652116676939417500383702944416507955828650601104111262958400652824523731373283172840802073828152846983849635037713420924293442478769950790956181832549308999174402486515445264874901473558619561283065036153204246425348151913052589157365773328123212596070156553771841556783115839597215964553030609654715892185481114977190689029461207710179965100182721936757208197073236428974957017639928109962647162643887868991599308133430003347580697621864480973737759051659535271167590079429137895453068401665079308352118219697941335171586746021554829204842983798203817531396331734858852587547998623826026882749647572004416692452654908415412487306106156040136874453341829176212249407927224765235259357183612322646712313805234413861636561827809536527573784681787971200212506199695340115144253428915694523710766186289669674337666031096427775804240176611340387166395005159155214351927678234129655958810135278437652567644456431296417824730738807949419168739466971023148025587541506727054426413889175845112649500021519166080247539516809629707259172033368122542908948880054376398833874062615590835278971971359743546772663623395062154523829957497434634552218761497136572718465663199559943778687992784014230834553295478174762352541682920112119009537287834419903128081747459659318692613100463817251021359652917428642183165019977156572673152010232244233724210309461057462794133653700863643592938041741081394030681562336638625279951588679135350719883661144426466495942882967163472369903799737473132823141787108896416414457947243761248611770689531221601518124928791224717755971636399128431158081117504188240298504722633910941223413962701858836957999565897190974902240742153352670538004403658373457160221884782546406056151828508371198876987104498706934927936842187447838302036858026976983111431277924608548534234504331748780833219174913600899559599705668527808286506375160131627516526383022163066231245548146377522995702874181281663454571321957871247973784608996803706103915585683102757086061575506413436293252055451470543162671198299635700867487540351658334081506644361211938251873884025132967746313396574381673879284272016112420478025307097585993220507181074837565134161957269987732018436474287049515783640873075255335790901587900501836429696907389834829659139960244989264202848832114018873702176637401633535532232136062130586604906098978937345509061129988952144687502621661025842010988339291026452762557322657195441870064142766379470841971191487750694626504103528077730470737206929921745684547395170214103049318339617815746233760948088337133635218377732326267506492100936591524407969935858135832565408361992149225636379090955433700519238027872410997988505742735603281908746444095881920760366455014403231407634290079262280960953107272131529837410056973125134368964368363582041118152651347373775198146725867478849623934519180490189479122697519475609113642651143398459027403332002675746223122936539983642997417603020640112268470496173476013059709188398414764877631650397737702343827072053702438903516961839139326425245827965178087156896819157976282215186751458738189684405272743484585044716900575576592776334846646694945983388383593246784403475494138899255293532588447416850506005877804611420788295345068157152672899973091191964049022399836692532857602405297101911360107190180792065142385667835125268770491444555412471867756081794638720226580790425655680381131089786199197334113357302792031572495523815380815259433774815893371852659035066032948022461205488439526503645794692289373300227743025714593258113369057882224285952288417773047406519182656758531095132895551593147232363096610306080767334102043364501499482410109073930079171482313730979333944867658563781001928385279091016414997125334315535229652908313091335153307178879297087864630759482411703852874162945903358413807172478338808317698011626472917830575204244771181341861297709032003547631093282452737974561183419054955426474236603923183584070646804803471634326114847101336701401799998144219570839991525686342093971289479677999269488315829041851410112156612288444217837936457897234985283820978670655713914168200694663060245657675101922331284924783818083351299951764321642765918785826137973126890955880801379709958822812570051089468513269095073468069710616463665879348432329427318849484570851617354529119338745711892793942875997089517706447120739485855397782166142839026049277871483953151342937182884863498742865923302379016723165573996402147675792624047392625809662672063571856171957249726418694020306634410794150102847483241942639934989077637492675927132672059951649739228022947136619723192800352429414901300481574180837414577091797331673806256501841540126273780585860693759301594866856563764134962528050008140905037741164877428494542333927385201265904829636891673079860734023938217443855770924887676399711911185575317117659318335478025623777652061651794460180116374060673001772698974860256893032288224698372581023486885456477380337697919408095709800625388267355826867782503409158332018739781001328396861466490849771022958443797731774080419514710605698240226780195552832433909279720983093100035974383502012853817238086661818689301016797856995093248078564244002635495920097875057408099125560678707903111847835589283205249879142262761768367959739806425512802621646356992942349355518858567016476659164573016560147202562702589891067482063714708467373348422494318867384037971877034103991030829945632225511789203879453245086295971027336724320480930937062629422513529954772384546137670110511230957837577258101297584394006389855534800655373606314487452237568747690199612136487192991943976375513063112995600462605617600300114050604270217428568101411664476350341438059956039787365498332946209770811186994190756348580309922340396297251236924790844275315004420755455696748928862133188345080213660972317435714768866550512413038350478593420748072772388589381536823517928232134423944570647926196352463814155959461396306473181065834387730839615931984972652569577438650134740421466170953700532452595146545816853430955587677088936230227001824974915854094500823297790331048045022547102392484225825785464296623547193201691906158419942563307108821998771128967593405506824318968185410562247796775492831207143885771420886844741365925046454198498795929916842171589472162610139092214570596040320823076855339404491467395132176639819477527656900986206683910853399129715887580271752998388130205239747849331184162453439192393749098954524939959908529524678433321658453249857463310216439466198788473410986443188390165647228230840187504156409956804144076126151512924448702191192338475975521291544419107580571352354791609062463437295318706492377446468424219327558039814107796983514442224973913450197406162097443093212169777707258428555011384089900713874980035712452728136592334409806576105995107646321811091100580298669764475034629610285244795660160704319082971476369456098765965061317828419282720063587565061439943907964147195311728649581258290048841665054343327962019926047131609218877006091517903198533949021534380853816840485469396033073207130881105355213596493231461006382381595682336119464313108102764584641738329575767764598612502961513061453040596062961001463181065250558402026031683748179092846606241610430657810263701640232882741638603968005483631258507792532825349277722942025248658003457688047317491861365930277195481084286134315998127230870068459465431293567244968235667902488483548570028150798421509796528039883952673075685027909233754676484513047840036014153476008454032389717546664315318353573505478600156703567683196451015544884551448986990773483991615586509944615805156523373286608884091907559799744389034566705347162937657737383774760770724649416266266822826352250606077982273332722274384663638830179720100634315753951574766508079107627380283261794546359065258209475600515481262663365932689714684867607236039371402327257875987345882950096687039231742570756600578644190111549306354584497574157709769134453114996387807202057465380040720238427479086455158846004895461525277025452916070961955511037293332895504683207255872081741413176794578258608507253344686473762453729422831628813664752821078531868783352480181794594422322293926277182717438643281335727972781935537731615463750133214508761287042604428778833300716216230366318378932123917572072799770796473156573265997727940768345436314675178605085221954891596724241188478991549288036394774447738718670598446954022615707019163046192962758433997324426850071777283792440256639352451904334627116625264847897381099370311920418027099956408765121664849142827169366769999525576884631223543590140720632527556781102466534138426810180274997541488859719713519297388120861491240604825330126258939088257732377106360571527194374334685776555602922672751909746126099315911963762950703842720216937043740171288782115620499888385656565108798832500353229409466809102855919966173712332281259101376872107178773312536907656479209109363587296324090399440082828306083881110774653059042587118150153427066649585077915464207412737696150288571258003000638949613392510791344440774308951482887245483136649467063043465721712011317300422492619795506423327839688289419067812959810979715879584983304753408280575990548195461039654496826281597848918569534814134518559791211882266274255739033849212140792909720718623489722302103356134959521244467450603938356202571293043835814184734667499851036174672201167479015473548319693249805999242490687524026260518761974185590662891262320784635792348014400186415846406839332427439767204261150793090920863029997111294778282090508153371482834055390341160576207301080273976622612694264704828734282546190660808900464635744815363252193841335675905140685832701308908456578035374680141646659474148614216123329076002604728180737918351049620698256391869515927125690315840541661347168592810825867936564915426830811637141035651818078799545629888691129142753434635859032764663296772599481990320899393762132915385774952462366813049488364687677915459480931622997551937602874802059410283545269249314567434709679084725112527179173279674461242765883401517065420705340194879394539303725296556423896726962366267757174068826837040514851804805882861153096756650288166574634227306763670369774636683654706951332500398815382439039213611656068822471133906114008704775180953289182133533892613272256697770745852592511870103542066171517657284343693081417208506054672116098229164209303319466569754395114519882793625600423596934092020994803381100713079165204321433469714811659186941794457148309089179351813643883699882944259579479912501103505618611041576926494996045627498468536877401600183299404790822949087816763826995341349288050895208461132582835522991500820874270673105362344307536013592944488763888008642689286470774487372771872734312068585135578976104830413242613022745432141638654754954175501328591680217670650205613667976345950474162334802163437321703341398705760638796792083829141904012327450220470651472616332034337962820064601141591389717002969427173191563709285948208118738722862379492593117084130608805129034992002978394079356545381726854512684088824318075002371354943610330604689462134961878155782027481766081364995208183332693198275891672218201833738215799464080774697431456413160988247268434652095288455710679749385451867482557101078125356262396203334485212377445662865508823404752774164797856569181089178242838580708873363004475737361387345210465604342014572858756527268504335518132553513181755229179268891950276261563273796319295581707196111518078580608957416441896505125991030258640920434371832292867333192774826632357795716239938183049888954957796898522838083205146963188678089682800327705592143482981555769748868502213294104733179040402031985522617039255953048982137740292173110866176352046692181895960381509341943855005756861341541874052869536652869911305335075162506839600941927207098805233627355068698540076374543684373252742371929894863094041752057263905290461542834783067151141398635257245682007031699958083034284733206207930413534504676873488081313253735853379944810039799457524141243336292727811719564334769407600146957778433507461759582842136617817872752744360442383563291244749218481674347907756387384616629523232787297897239962048261900952055138971382691622819337256514211409423514591693702790772446905353323519981382130792934180962402244564831600655939891569026349325724906536300496249732043207135587916561746526934244438787304755922183821681737436834981608578830860870204731853274545636357676038916673282404304959278411721095378465266249646782366272956214865537378130753646710203332374462631011764494035867265627830754750040903695607317322225110093078895207880897739093229532203487572428072698632442778221536946116286736052590008580983783870516369926544097915445560573011788944062417386617213468544984982561722734609141272242637548692898044733280179568227457538750494056720233358681779352653696687708408625606470182023520394955902652255269499597722035386111018150158776765701217560461565004814325268859626515517937479335670987687918471172311053195690974141194495982974944699561036196046568959624701873335675024503627927044777985334718067548782426705344717053156747917471517298737035087544688042150063937133910298310304727027385706459539260669219911933285193500744017316142766554448035966016258759519365413144716576314768864791959137914346953681283549177226316355239110627263707799062609465477780368119205078573989674224159988271165106933641278222463524067263299047985217477779559758110388450689861140473449605949897596773703454579309330140021093593145324526789379376014630215727793464139565768708889219479183010345199722881294872810566332548701315013930698265312908599233584744237139826228297155265380985584442891257985570905859386545871010715544432771522937625637742242148371341354645254850180945244136700726362542876503764792903292783661547349288498706100932488127559740440990607662039799347393491499376403920482283724586868104559596947079373181443701774829706382081165294913292631476203905452917298089371603341027214712766304830718793894204908859685030737686545639507281599678334077558867263774701025044125336086855975786712937010538491511682798931813505547717763614910412969214377575469373223597617392579039357072602132295644749027466342617526281122579870188583739179378164711423325923024158881692424699301816957189065550605464095635553625166841530954796388710071071241874511189919758121170003082954364929057106856055236203551596041570107973995879721135104860573922473178833654079162300793908270153752306910836061865726287920246574996534719522462693307678875320609917892955296979280962289727841476073737940743903414138372443603729650704415959798157109114335294471864952228556339403957563225136903895109277583678405901111286276095949318778825315019262314796999129173209413409782483340472634143928088539313387135529446385771838039978208471087368745074374486894100959793046043637103154229202689183752016740060200006847527488040978033819001351047544965668124911912330121281061127670927585521867606957681484221714175185055335174396276684432347750410890146347353496525390046064800599443164453635350359276968640628545402718907288548065521073256346555512285211415732157331577393167855044261412807568216337557008034285901204377849500857985591785411170090203791487630828701839694131657712209373773858026036950936779562519253022963864355145599497950286403144043584433141642231222593662267017839328023512880753452435364237172342847069985043406292380208347524972947119702893110147847356169247310054564173606565722314065644706594657034312468560069233543690895683610377125302291913166949086763534533425979389318925026573353506713565913754084537863702018349240464360636129054684733138383941901031720846231550125680814457945638758986684425087764582212868195725357651134763643596669812815974029091397182844211100948299891226551495714672665881779946998413397973666965392467204685121052095574795325190504796651983169123643821474277438647527234152999471147725704429226988024395052578311104445397716464894264632141119059392678217516739428998386716448096430287404920802771502944552950371176196974263190317895282471058333584082356898690803526859398965437519071813184911907039954467678599716192714486694215063374085176712469488379058358997128719849568001843572804438813679268201708740651315097035627878634328483751833163503107367574903505537820209078870847111316099724594226839807698568992975781030221996366915621599522790510754890875372582909474179302451533239608014672445919273606349436174004195241638598101655934672073034101123352083007437615085080813485695005546978227434664786509708731125359429788664729880372387481519565900530603956169454658733444422341081683196926853063804931402736782354398623881477141977868495936029317561327220595473845479060654348663345859182244019830814761994365236031446247365827928837005716800074239622234876063791754520477023879580845122625953870871821780276685570869657448071370819732335874550105034872498677687206345203404201419236981733518725200813490511678604901982310873964370773736239606098584186952483006967081404703707715585385323663987544889686064219599121313012063168733451953223851512216332141304333773155231126892610336858276798895167199975316447992216457550523581970197936091017186736891941601389041330501245968243378221049305906489199789478772496591966750504807439999707778295073320386777314903694245949557311861778901911627748929215560625026324903520941161876199555790558359346245481059743674172996775376594435031896468591929287483023675637587737877079510027314518102049862112950134253913256483008228865404326889089290232217742193084939124875901624430257015901710459944363577776645353779108484723756223304614699656932565471515261794334652180342921767051498665200650359230503281101120325209234323400006519811522999132018434373852956475500662504553247557887430807850397288141784070219317117257808615328235663945964314671292675505489481158971798122962425677790450589905969287802819950714180764094294022777764292221573765195038996689192097203316451005731068939456190333944673508798494961831237121793262332903231630646587943380196285139306622089750998601741542367060833342754282218711953395731330979232602852699139223721448856396476353770947059247473437267304660739504223821630259754373089634982482009478244504288379612925397125039752321868585595642741574531191780504313007549043498871982196661329187163003702535955250455018835803301915223453527510885517751971443424784029013269682039514224061223140555473840998983323930193653103392405226575193271398972398229824095645831984425925551827179748137795094863922176071400918685205806268929716535835898894828260716337093538505075883654715675255003296594903904126246777101942208684370798646313845983185821830989494355263583097625483909875749728343026673946640325408281607322006384515215706870962094900235568888224201654516732867715536420197866424481883819755793938435892269282331764460126345260676754461578347796430080561653864924779436782433164663723664935329856167603586444680657055931137303067042620620835092492211211798057977479192020884841238385018299886354710806289956315497217502895550298351574819842458253431096999956246342159236463631939870716356427231822982135550328777143191908249056895844349646736739255733528310488607004052528772709925788994062276217376530396703680497460899775931827604982534796967804669782868860613498038839712417285368046718381862212477411055301094495546281426266205136938232781266224054648876134681090725926114507980023886580116243487684031769815503554778990245050937765181946627057569156672114114737699597564442787240788245777337664438504267339367415073877855942256230757127475596417680014395391991018630836122934714651737016826238696935216840456221898416298428461116529855533302944261042371945331724556288519851504464615119319551734680684042431536820175789858214865427062904495050398884297663620968134781471255594357841627635974675210109069790620758446775958680924373991516325025927601677597549729177972915615124538412317605403453203373009729455988819545227244270715514203762620940025557937471329561493504417316042934813497704265879449523296063304821689720403040535210131136093583835573046304332025501203552041318598138581210882019357562128744645277988853783843894137978968396052795682954290151187744331879774412532632555057303322901080897691352173405797325408401364317377186711539602216910692956850505781398860417485920612101437191213612902174373109644940951566420127919836974427361740150869951566752211749604786978836513199949463622083580591364437625526500621520218747903099418578320110830820278239921018501527702398779679434706739453097012864884026733751459552705381889986001428912928367977266312667083608018617370062651745660543301055478922240336425756528671822181484792572412137728507680669827681318980478256172783983686359894082432915588591510319280158323499002033413753161682629666462132923846536357984668765798076100762992325906613585335188127140345655388916340156472362272057526743562154844912482270126908987045836798455852153579761474450512122478068382103568119048643982435508998619050029543620114292943513283366990905942980344624983943515250148064946135392442507399981554007035028040040824436890793619365325487888428527873128333213959241902447515648521503977867186794962191202601612927454165538325298728769583920126044731174323159750984990604282305733300373107905593646976274703573765566176524915660000044474311849710948788627074038402120260719778331272831137850508395685367537016694155534953330695804335172654678655952546950262055858525486183257482691981251611625709144393830119389285963255961026407321022100403268146730373214543502846027335745971010969264810846286960005802756735345622390100741899085383167617308461004558638582837640397235167868755153266177006254005452123568281074958809178709532912046239210086731562383433890129830041521973652973046031231755329073286888082273525841122294210023149556165157364715136735329708308269051123740480221505116796245880724085118285148673774213042162977973377706493625584592057939117160321163021897528660175847895824536747515940748027122146990489950165276542225109678601396972598532207092435939419584938714695392912063943770452943877543493195967760784006498847504174836165529332619903206480879022684679326072252964388364119588859602946714004161776292278210650732924974992909635415535166230910340020758686669444290940202063560382557514479009658378801888880581773816234383778279200718203911724691510938575905820439977487009757891323495685388122327794248278835818318619583702048925534121276295331317232951648110018677369780966732568171122596979688779127805145076747961395237829604536198189450738841230098741969023007779065638973039876378972222817183594638924517293833676460098141500850506523141627234988971737232749323596830636652478690707872296828438891201483178121329974820172745888355288261508366875998064068347140463553413575871818451657617188470893700770758543194978387706019520992839714424943105892256653287504993747308577633202732848657030614245733106419377156340158551015206081934252012663973368803660513480943735535304539849563874644772424807769801426219770603788674213182404019056820539374213842815998612133459417623246237644229411344847963039770902479566020383939324327443857943306682103016705003277303944888995973962394762592241844476988110561345668782962597508589717457906091634205874734710513738216332819344489193717885106689499982623620739511843037277781251418407581947909736393470542853649174489371932346657358921505455754310173992111844664779634571598195580853541912503169513692086512322104765998340581200823036528561583230536781544296345859976138266139180297087136954332270877109102969276631972005106998836088273969712454623473984162061839409517379893942935158121132159156523068230973764644940902149741498395175001269918821190813108021992612523785885424512454241417940005412104556380780774787749202619662076522127822754606754791222591932422300612289022795177186292558044761021398462921056077569325683349681577541366146509699376330714885240374633483291564402275771309597496208433961144809859818276223194089605820892534732332034280099991906450464810582075158266234983046086729386290593619662128365116974998684679602371370649136347610639179731708094217093662056107715728343364109858990146222005727664453267902216563826960710712323759221633907918690470601561722282458719553465329417763929769650703263999208624083343694720310036193284116812333973220132469292390754288205324864187825637206318883889159185459520443036214726041595592717357955535134028154900252876767567466836379591034745447017758121792838534306364523365799255851452202359801146867081465106447677668911561920329957050437506500821897413713418050115250490757902071952016255258596781429915744998323676266970681121888381030632841859867903903574369935500133848225581965280211158303105959645709817768875872799447411463200199047255366596113051781707704745398325017366555485843483004491212917669860006581752484548011483932531228941923885347806471989034745178358991882935359083350931884460569563487250746232770344103485231570436356803818114381973908350253992417569828018159643738397576423160463825810415853469071447619514487936666176643634922379115772134747833524535668388913953264092066179168779999603985359650821823959955052086350893920103450426985209257791373255755697288042077465595510549671380521098731943743769712708462591271720592886393765224492752720891713748143841428514361596610961487582406976390085369212209013782073581909309302669491234536738163381847063950281847902700594332527041355787847728567366756249182991792224033753561249756291793661957605218254555010335354355592752673761754328011928672816848079743131794862934316919817720864258092837329470422468817641994734905996792258060895262288474004565499432213821050771335130875212785102684551054543202025118688304589486748816150142405061356125016520163878840088177760217317303454800873863025331274362297513873841616875204092802588699737685472235946206019214917716125381238617517253872348219914332051995118694786105122265256937197968433431224074584450247110538884585264487964360029765302305546227700034222619306769115687080851696992365897472474493676924650958007477186685259261215256740337732522799070633205170864903134554323235279450575488625033348845058090534608098315230417488328549176930385558470156927065752348975440784778005852259656362224125367442997248 +recieved word : 0 0 + recieve : 618714428982080421551099056090794493981464127530979006100127665168336388915369581798643252552980014735742475067601374888406269028634610231243468758351037695395000796587292912646824538201734643780416109251220961957067344200597770296876402354790649845924872647059882140203872300082441209841518289967345217059222142328018653832558659122097553874960874215887758161422404547514793423824653361531197594809820653116916387347313003819250414528615349878092602055994835436972698531519427257685206619594571760900521630017189047481324827777800066472573684533769868403238446615086110405724691063879839474646964654291264299508218078354094189822145032943836896599122143748247093588562719220506621609289395476116898215860060824201380817369012692826312863746984578407899837778427994502327172226234295097205298973503676290099116383151422928148609939780139464080754406634385593821835072222378780964110302026034479673753174990815281239451471036810004305231229386879777026119194140051670645999012259340920461331107816054453245963018279083384906346442635465398392035345702396629272717816609230483898801922018969812988396434050708430473213337907998079141106949457804195826273274770194135105906335348273158159262195197920283195781223679987012712564676285138366954016921451434529593119226141684090849607237165774069679061843090210875517149454148041387462139359322232756816120359165377343772464885791875763440189668833748086765664648644696494309537242106218501511125903824755613487359870526349038913292155678554446008204760751398134628952810878196695217043945521489462323400042403999410737430331677303047203722656126418583556083053553966147651560704082607556659716565393473615713030869116356859633450389959915831806174281857153117482713926117037240815446700622267920814404066614696246101940492376832750311732587496923849548701291763587755961292728271364071477009481212869296195818937557717939847676913002654666729696399107497979195022239385543550712670725871315189209161186250513165317790871161119273386785171369084162550774851880897164477022545906179343104767344225122083116998818580349459178407548511316983942147796145591125064703271815328219944296266091287112424845144939964264834541257595414704694517502419088542169306028250800172996480731276774904753319193145613721088203658924553860470951449993851378362914056924478743406251285373534012386435559882798802354874702563150509148349280624073867549957724181830945770250480365185101613514578793439339902826702878564863756858546700206374159000622706168772514862600907510602713263620467104316674509075803927017405884670334304405081062433463354916721718481147722415463581356031329373142912879983700894470989187627049681277115540281688277681912588763454789134844096639921416530649550446078920324483771124961798148428676105998721346942184464862397850270385576363130116846533049288891427725926304443780567484397328994166944261815715481048008403932631806966995431256584635458702111523644492256329126108660518992370270835237534068548679921079157177035183678511355719297585107450108161137081725021364522673303152167351726743470011512573724301008126459477495356260577552520542291626178784873037222860702880317411229699229951148732909628539407092127349369341897588423354222960979283207726824532532048541839579080950572257640274676165566744648779634508634491878726088557988328364525415345713597195388771171909684182413114640397671282032854773438091571487401228540686666726269460061376978483221962549687236530749739320231653622097351346193628833353834401928879774783722365979483695858215251042824426570667844102095796988792876516365010417433075160640531345671834663361811372210642173813088403587072080272652564520841149111359844222194959274474629864230384306588523916560954932985748578909266496298706373462344742869099831240728691442097196531299048632615562096738952042002206380422570897974347816201238937977222613224970975142725249484476554231605504656575412612302061422005609158440007479090111137752088606275044067898945944272753194159966577715077858979772291750033682680905458823967769785296271800409588658165918148200869297842923804098347161138178914695187035427022654247271205938937807730251897612899033072598640467377398459393849466559265740847377849230961290550417622342047131612107594725323689974260299199150145505710338781656533011532159619249128828481865115107421123701551641467125110671215071616541766211933347683013534741658174162172577558223462451274089206361546660646877143289126389840727861901812675260536215251587958549553103296795384683743706629481762368959163842551032952730040571884135558687279879375557510512897336791507209532080154173305871883474456558767419618184666027870686520917995541411686720111531783709082582461944276450341029301391142815783681819920851727952638645530232030885152637395422175928695398840571017661042375377855519953819701302028901900752069529812705084917364303031325963918298694768014734303690430526637627199011493835198842246843508749019996359943359354136828897904474427699205479578926805616711993119617529080806656710853910455673462075153184075147323272820596733170653695124339083012732482167131869988186121239148424438149084792006612968489308755996556885885469490729899042150960929010138532625788257315465429477978136797094648126757174293382568725466636930374087044483821041581200618534417107379621690126526205790288709402711008528593630768114201198224827082771011469742701499835471426147860078169351237889798315964302637657536860040562453546589195748804223627390450392019513023892420971413064224696802707971819636967414053853461964448799336335976559987830717523297852900046201603729758007590006396804286096516232910866929707892541914355832889577154119286069927061428367631356328411802450126312838401948484458422768584877256770526343770120221477506092290244661777414602241863317738267416523294290402802802290731636195337140466606957026938960017890671170646381852497036709008499150595413703171900983698077783233484264387472360945523176503851038952357305390725713586498777373353005071055114191954022480669902009995945978482405987181190793050422450504062544274489712853023223999691695907474289120737266003840796705960753243510108169745940665756801140303931784021799902322519574474722674979281452748103288713846404564581898296308013878661627818447862070716945678912681717684257639923587274584820493968857503477646886803308179105124522170476428149650933435160549519033861609038366664758988679973227733912506780228306927976125358986837793802986003201230459051067174201656894350740990020064193475496485010434818285491843502994644155408878267323963454957011107281597338590298145891460617081884875182244886132364586051247167928619309539304963920870725368754924093496629869325650154196701324944909149600900246748325774272874845444413030469803475799245190391561182426172597448027216505554622263589102959572028095608373548338622698724065245606820054237075747635114035439736848979432496241581802176562249286246117482671223038399369710636860675018378028657448846462828233947408455946768752033190732844767209696284107489707274737515648651908332906980020199962992966015715880342871390431752667502991044544376483633180531930103525937844949447768621640990948883144494560540294593636617787642628890028686106754813718255337305502814904305993163619436861507866037566642237079506617547774471891808480015815677436758291737391295225828036910698699348450406015822801276697238662090890537089053456465350436118168089638716615735440815606719688884551166826236738029628499832033102892049539212779720013339937307464064566238330771568649670922065030430085662134824976624618121515955661823670367685588889040864926195128537518748685646530225464119366889347795246374368042192068544875026575060811090014958648288557421348109877233883873792396123330367023540264625506835036933262866617069441818996548336385291691882359744533284944052913791856172956176197931768850155071366593980379770624129252866149783656892717185662251192384406565474255943811604564381109052865194174691682621448438498121108777958844776902494097363710157553554252395085406911513710625409843400567931005788183558484211695235364992927063384366617436890559508967542950516080931999410984471176858468384432470632787260289790320618459247247209300008111234794973539767363516561762328107016895769829123190688887484214202185084855491917073712046923939193945091440096809293176324673415334314502044015031547097779491590191091812724341212248187185137158693309931875769956694377462421497553700244180746581768168632043353773191850608435594475524844422463568967959005670204298134656798907243263060015875127313654560801026172970174297053671722193425547053045190364386562331549882798757976529728608566569471214019541528296213359831724112314153835784210495042062647308071620628750004849915562179419893491948275581981251690156153117188179776064536668250271169413250647204679990119088497516606139844102524279697048948403027038921112103062828387717045872018960209163846552032340210367226317041302945869386994837715725989535834331905375804144204214107587852027459932696697740004033045840487499776616048486663548728537758987089042059746746383733754554915103836506873690155951163169286300005881850739912025256892773472199257453918522194753738009665772806410205541915696257806045672870474951193335429505271669734570978608380062158983860074279730188217477322320837957056061625008915476204198617729171076767339109253603337815795434401867765978471682387057428083060671072968174637356387116409904067835867728601530188835140844786004510475652444683846658159381067249394457017139473495103477753538084219213583052379032298964568683147298372571183847914802320422590547820661244169207068475120045891693419750071347838286233296262161161403090635288964549270869034838753479630206280568387542761404134021588896662413609946845131212967446308098999705067979301948533293554707996056224272025251927270997678319699766917166625917425611848912234049303602868654433061171913292376353777383681284645576877935543930119421966112458628096144888116612514918229486034584680968094986797524746963246196925849430645074416762131142247563877199810194977989037027702066300198868308207670858545323835986174635242219010977950949195200423722242217616575932701096612204912816511367784757948626059776417238783858047572598648444119260487913110230750669999192848387672014947442207836258164568228069423035354953345781103411185818543824494551719499228610666318549938289148731842795174274917762337602293156387741405154816840903737565775054727534950959609236613633845002316820872386089177341483255739729154072436224989345820831667142690090468135763151521292147860020966466944420538622502324585069541216831561637099746647550066165389582150845836122925472128694987841181675709609154536813824685066563175539657310801129725459627644569378192077351609746585209123802606078889052553986088584708252990453598389462328262447197311420464067989304146359813210761592328240863108985097134966861460634057269441479580382798057647930548875051913797691025895355462571329667679533646178143611287225966082307634252191635474378574880434194617404120098459140619012156154575376118518639012126670544160380502096219414146386495284800199042389483463875384400474261400981072166187538162905017860415417882220735261914070550526226835971754570907943660502831945754953694371226243941631074690514949628069614397011712213798491030014227523147343375086113623155822841498564890547849369511024720025902072620955542029936472834191314454448243802397758106154683782752434019675674974847427057939784264226854246705046000531919587162514294216754811326546133674982427258311560586864331471807544277210941066830422968249173461470145294193188995359855623389693373896042078785864305993897869135061559656881668915506824697888501495564362309959709561923551847153919736070030177018269932135466208313020471623858483966042917750435270111004682453670237423566618428350861451116849375256001528203909364879722167877360453774864684077179922782424307720520100587304814324083435298331545151994939556771210169535034431603201255407499206040651535030177992988446239993485048399935684367762474767483761746491805987495553676490756742809745452060675784549822778994799472592350324514561011567053815373579389947285995888997347189099368070990263108902308143679234688580806385536600139040324286670216739132865204710277937304715494060402347089009409520407128696111287209987418056060530106785984762169643816445567804150753591051898367237982597221116469067465599247696188256341473033811686303134181488269816300008157711384832698082374396187747570297783912082509230216543469564789801306911809248166204722380711992967878709178422264261005360545025614589244226291359121742287815272853512611588212570686221475404397108182962271160912476174438224583996988570074735980197711973162306569550772627271047269471487197582752582442666634880673005734957080521700703762133450212958657947818985297191075360310478920377222047881866426950958118362185505038656590473610538906986686557196970462510039108805214171092137199217595582456037588178632648190092479473364957204894360635028724894108740229589291098260317519432092416146848897682255622880000556965532013491428556658741927464803281928850075151679370812024867593287802091088632629216164980133144490715213403020943895909922414372491036723191709531081779352361672682582993752703682555500467473977381125287778971831384739680228211425958558996598263876682161065314408664001835367418308657688202850388365743597480357669234434901473427006133584602779965055676082976644219528457445628388076777601130231924288263611366300034425324815704235470257510424866924145916429396288611275935831614735627855455884365684736025698501682475278147233556471356370680445996568086058796026797170406465305659785589334939815317386913557629280264946349029864207872670850486568648564696428361978273375272743601067419381641352919899697603725641576911716580958475818470948144078752260671627221933354668324780574097046694855293395890583138422861011648203457679580105002311008364024247571429549780940143777465210744549516176046954047623075843330244813148629250930938441456219703574807671898266467632408105161611469930104702312828827550165505399840283048528763591235822614961157251278697032631294535647053863303852754646687934838556466140788131740975724600788540592011572328588853244998759555956403218348135993282250904458083666677290340462341221114111209205811745099305545394320061610120458101815453243269915831094319480757856861732143267802194868814613107075700777104484803753349941148105472618762910595296295366394072958693293950220577216874064680581629778938069372453250378615424498728062097197905948562835665208497778709587481103880251180710743625440985082625811919954755582149392564669072556073288448810688604277612756563668948398370353724707596763225282444278122824495336763741957305792525503712767014650581902006146247500637087702975276498183521815194775921218513649307915514546679458026773663443811617159925228169575755128566000951026625389897669882194490478341395370439825686689706859954202487224552884506613109509254683891317121023029888486278734018739015905286405423362273287926869499429705006174967086852368267572778180707501800111949276650889418223307506349692615038480528226231227548627939098059308552386390564200111127766310233607469314009917251564492154007310591884170670149800230449759172034323147955286117213087980555400852643357119723611031762139581015993183980495286683720746589601887406862499041476589077476579419787107201981627610913204028581609069144070054415815833060067885380536680079992979343430678586008844488831077204149039908871703597467660604651286979252139425260203354411686729436395809000222161015194267892071899326070348120825913923700748648540916509185846674366350119045029581303565009244334119246177099246461233105089886303286940399190698363727492968511958294316896975409152227224625644069320074345764883400526534934778133303717027574573735292941029984553918411215108280086473113828783137669032591472672191662478935016458903927275979980381048957303694844096426528728910435892067252159835036906823217595459770187268043327399173838220700471736957466019335434910185219883448598600843629789832150821041809504064132818182985304115992325022175788109634994520096328401388181965746361917266763708319562666624528085265107007744884160832846944696416136307736326636050169378072616207179484557953529087276310315900035230281022346101839895926115218072219016878636044421570035472751564002345145948604642738211877935278769550256352079384517336411699095924975601911240448328715185894937180740269009825919017713121579139481900689660036966701493414194006113905742083489409970310344575745789167762247149663231661435722909336859230008786394034589572797100705574329058372981906410775141462940411099298196138442186223594492707910661650518815066321531606780843415800019378165940858642351273608233325491199482332531137906673030900833318216596859582223356649402268767779959664199282699972399342728871672700692587168267598031527453269720502937254644649472235703296804657904751910832878473107718349658791097543721105146447800590480797969417733667714334447998733738831410661642887471930936493479181660535150342576092683881210483221557032425309696555620263097610486098229602206517667687415396088882305548349744840973806467468755018872393329370675087227809126094594254043090662319704645089388458664862331821448361652574475857514997615496808983886923029323685503483938083485091185488292381234759689240685560912048239285009494674776799805389864701041066049032981850351508923734769406165035514095596807130096060732388845328804805359865173991019757711015345308350029523409889134478003446545879905258876410624176316033770334256122704947235662014381128304252527531311416474608797157441335026001355796028276242435899840684240756415375993075570587035467675193903280266612263174181818325049141852253666414033862310034471742833191255183228967676484021053280237927586503277430797718927718794018511020559836435986181984758296116192284739082436752030335249710717230359513186509422228102459297082479654396339785284849017686698866613772670642090876182311799230390138840259207690839495604688867390086316297928036819113934505362289649679069739382472657449607757575247225707325759971482501878940008107289455335574667769419427732744855484447899028311439075584142990707697649891498091335153171005384557624485552920529672282450929548342759422259852650818961040354595079106778792457006854463198555486773212770245499260066558509177209049155243834726014445553151744851484078552625591167810909976682390655096571203101546710805576490432561783448553478918813308997014662549115955309215976377572390391124773585569976828153333186664438308498504749479661478415935324285752465032708452279240007688141299063594004391479556365782135129358596902270448524683635521250446566168293669740635905135307883021151681020962432414914090417831651334719332638498862496228908953013214514730527548849490942093883884228464936535957811301342372845128353310888018768336264338440659906666107720307467300927483726199569760172988653735882903900452945911796770131692134717312250726293894947142414601885129687229858418056543341090619271800224554303070484613390513430399637930765562166139554739393069859430351225223278297700188040504557562269573057289363242266691121585973851180063095799032393676399391262858777264674217791485069432207208102172792442567442784922118199903089881212918883416211029750977213934680547434533663731749124805640285430810389134184561580338716591607456356176079737064436370167659973180666618241032769788447853314050033195959798161673370641409114371875334545480327109488120256443016413619088048270570387311708102559462141693459503403448931820346017128063976035519488402174842114465101350855364512918321287156563727789825886609709635571651728820277934448386956755624637829619856601958805108270474259130409921066606171707000831405918226661635664620521926395800092201167484025924217976432721447376170449619419731674415046651732314140734728612849298836616903933480706698574497899288088521929124835821226169826884634925387888901014191437233635009834068949640493263128844058725519096945682117747639041980062808477476472061298759869694202392172500578304026601356608541148421643516846195959974925847439021787998516753025324321838837268007239857869485402273862984778837252871232896159068746357978394998384409591184133812295124972864698593638851061889384451227742130134033830575108855865233378538669851258884254323940696993772026326502762542882728075528052543173921597233563492576343947672423884072455629819143263421234564111163396408300459148696963740693629285665216141622876678341177764348940249587119236693548143423019520974087535727108614967523799801237365705779002730683696244828339720867011549308336591012882713831665105926414681152661409801146686929506685821167745180705963331990664332683299167443806042389161874268276218648212837086040072869556931405008059090724577124337882022709964549195257873213775120142709507083844499163268781946312880948147979822150946239928186120159797259619030227028616537359342138169405797988507124198740375001429696746055072373368361294811459852191386376985535153236101753758755295056671699909804299848724691011675603049819574742064447997135453712410087428725722864763304919745080908259521209028673743452349343806402442459282035594045304382301052351155816598226682544500867826781145810685006671371485019940699723539368313772950095052276690130270631689812028467287447002488819444406771645035747573424042116488700638693898018378602867134013711764654786542296878292770423366140606896566710997670689138635876383806125017250838129465629709282457665772071776142624699348324323383216553549199582350289876822619097417882428160986148697806128572435611366532948499022796592241827990952795612045285252813366300270319613027184511929945313953218674090356825265341711336386623733593294226723272847958214426091790721697816249424469770318257224070677213829109041331583099154461086921584625604143709792670440698021078458866639611471191557034270317059016296169396815253994564675902277880754331083123486882757404908340096096205569594939829926983167268792729722733135094142837860603237634842121231508077046760945244302392797859556381160699928268983965339858480974211297252234166482066430921615071144272082939185649262352466241078873815510261580336877458940658016108136074435163335787261178389900061466586210232012068019639879812521859745854065904917149922564697970317704470685431570856208184577563158111853940789157304177701901154534999756017758796423604354332703605873341746529277660767275147779845109601847272221930220811444108161725151249816084501628749742786480352496626982430467440931483097605929518013280564875691982349441444654475502341065745285005484216713260000193159907468076366313930123189897322474182921373598364096338831777749745503728236044315205257878451466336888937016387196943521130743376834435245450244895859066392843267121640914503679804574730001428482742677886019622138288780168037037165818686803503322632493418889707227276996169286616021017598973507099082275326489710511331624286921307972363196576954379904865944180482737135918870919545298434229413726015546337711158126158344676631007289892059530690495129199405231433298721678729872368980582741290931856487370428836659878816066629526585152302108743372465383095259153884764475604063307217815256086889499843975969522301043908912511815094939207897534465538658977684046335304730613155488600670575866919867507746128451572962195291415853569751512532392222352112358816487303477528925808940000101410015337512618160286147654956958539312627222818610482122620634384096373568567311997632516204772449739987060512945099625155506826045866616619832500349529172489230297255887250423541600819072777731653048145890116527343387094049356767071590636289705397584279219336697621928466780930883430885248602787208715324727346300050395118125815704074936973720643636286788916020706369033859357249404939021093616799480872869121440476317077178757760341344246779109145340250364499571720006462387096107430965074752602332220674543005927307853676552153056370851102117585108320816787241503695411286243785485858006378070422917220629228555953207917112644327716433272087791793655600618658398737804483215344025393522029233030177359917615001862957104008151896261943001025812657178387979404444897616195152616034279333750762948438992470318042483641785842748356086354523101566514834497093695449779612501184073301566465615555164434647726474660490355522280466653151356634063585069967316389231284873661653594232446429764548070827858885524113964351405884455691900333276068575649517932579381739091572458129508507860265924548637727188919807706360155379346433053359054577104146835719429031688501602921548025351017137094706360470576609089736303964568391367713183249606497525938445623674236722669346327500055608224645783845787314969556424232824294908754925269267464464661812957461060627055841536520246698215130206040029246478677955020737353767649416629203130169764358157794291023512659597205012751014254161666844966169701675570760617411592616636469884023528402289538298640179169842219753925531106557190588397040988723179381623570683946704292754499087664054735275192674608749831877742491577718109904728592904638885318165454635100338530077777339991435280948577834515948496559647588948924208603504100169603906229964843737950651774027844930352200626263362670226065744128010614768187144052362302033816070809243215796265201809875509022610977772098538978272948168045140370415108631390343806493520803678280166571997286702113905070565204713697858461632209525833458056579603904297363531063368130576661784430526962521793150655769224878913041299817165555823646700193944231925112094963544555049766556067061501921066871655692605346115806652852344398170409076475496084968065994953491816323717989517192532548371950031371396433574028338427669391240606392154618599409080375142516495521833382064182124291229328308349963057242533474629456897925246816081851587081705636241991436101950663553620702826704263389399756213411702424916539898487320944174014487838294351311313008867425379197453572494414144100991998982348914342573882286666307935023052660701115937779274146245146788333633201615515642007361876243141731780554636681773041742628249301759901234339885032614147199356849169558579846181800699606984166737099084567083916338519217736898735747498030974606538505472483630429403818149290647242244116439311608467688797685654511395410976697502638402933430320539383989177960556566455072100138600121990654040967399703060269098825570502614924096649056942547004999339765779891775928187466285782834795675655900955153428995201900103618254566025211462891129085872387025875325175798796015343977574329720017630772370723570538139556730533649865590262083458751715706586919205262082894293893106138758207416917387332361585213049817289551981689306093477396109281601953960584799299098381323929414995619737437243692269138927925143849675297350818161547273735647383422022668126416460646085853026920966233181037284171620904245745218015792727061822292114358219172234180728481629371444565579535259288850745248551259736831027044712374372337214587122418664501066836632939714710491312216239069630723718637252665328437464774114920120860484170636463434613510279906910920930127177451606643179062228133923869644638560062537509311011166408264803112297373103212895739697013632189529279275044735544458734333376364653643042255270897988513279702794480848784374811373147302636878814063600072114057631897773307286171121483436659771388433466262456502994376688795373076553567019838448144802318626259241931146007026766103680630477788671829156389522911570227332532588152132103585509102216921864470811952174153135936837037322416234027134278876921196662081432885654846920911143634074490147635410977329368317610193523628552514437971139862612597972818587995857390761372758163127176463674230654536473978008341045376517839644935057784823184303937136734455559577743258765574077787043575560532515138779260731186158544030997156337980673276026630881679819958712519964497587804952548593826802756233950993342120526263448941141791225777926250242306269992355704023937377728650281950024734190676944330051815596568960901661756739338963743120692557533589510576612033689903572086536386770281160906897278830717937750370796977928255398400575239605003718807031396374780481414483399543183038859432458607774127884040381424789430171134288793051152147011034214746171497477840932291961210797725983462091149773714046694558354399679780940550780784128338109819761614215888244606190721789717482500720667897788397120791753452592463697075225644945727440606309488155401361341492780429446637137876396575225634868763405658386456847139491480544429949007494587809899348649235605789112933714304763732592428243432261113616983060872646136001311443366994413212826520540329126511865018508318226639581477754632024144231351779714067250332444549701540561080928422872810968973902937658693981289329885853654141881738782982483603960112321461388697027143619896508395182535256927253115232443819967305964665964473881481745064026222536089691059358817283856820399774336342056664261685860749749099410022874191827381087884026511063773458156666358381923195320337567495065233337508494108126259104059222164664198177012406687511303649129390536814688148012811198878550544565110568927169707820514226510159622847218431314159164955269618445805571967053348054704564932173237065010938555376028074232273676623946229308702686391230863424238603115807923198654970036688858128374774365913598228551628215363393464436483265429053644062091115024194821476055030162627440066681288697377971853710461600835908227573727419472843020300554729443002455443342135636386794818108518625642375454792951276721805112641405998837234438418920729046184447792747807929560748984081429785738698977302391466823209795300180574649871045163050575388430774444754826060937997810084271932647391899554785305696152881969810850860972049374977985603265658956723420749832743247424203126037770304451355209621754654947734129526622475424379647762752153674775793446478554524702181022382210344220750547990216837671728401939110962809966790616855939714636977195628508245383455592265617783642293410378367012529782392434589047859942587751632852053737469285954330301416741781980566354707487177681099446758480760256183678920405490008722170976703265231329125935984294660621187427647943908486986737025809746612093986595722777005113846826468369392835534719683257312173061640735268643133572445666433565836043451734213461627895024723476389838823582064186920734818927605493118890295021772508498126052994873935999418586634301620796906125454023325568394951090027093557400986182017566001188228701166109185387210147900510341610882349981553956238943794907859339124569933804532648479574921106937053944898414454285075763881908956238739300307135906429584361577937213008035744960086532925746758356561627222633045732779055859332277658936061134268609923606604201852733824169264694714483239203745497801527345424523397349686518095949311816181633730092408415015183030751635848511100901414447852332812179528200039991907658123121714945320453256840996403912409162608064917336156224136053381732844103509138071311256391295473037196267112425591524617268761270237303643434605794773533631309397348969699731576682495808730052871704885887922004182102516268227104560012595226619928296836436459504360919530129052570293186266297391954931227171696232421017309205851960484676538611218687168279209645290243052996500720110265014858509174827855444258350511008367416017848073873097825793168308669736339301989790093420257613356206310221874755407925988771997246150667859894297841955161117663621393892050996933024787278254507743019339198261610757879772671323354978117653788984110775996550345421648771268739170089230688158724739492458961134695922010363548630193250159485215761160081465755275803143845473515842042145556671790456626710375769472242658342851996929887668674638090854633440347283975525224936532614226840088322880968723118515908080371982121448110642554531812589887114561496252257376561782875873049768064491966578559815001282528556282798935773001818440169791273376367302608919572020261795944470529205937102122072772912975885751247449240403780117888828049497333584427064034216445356896868017926910428079892812420500574234791824395957964933528018292175248312825212009119446741026210511534806481885932362280709685599866534223286495227050146975284434591621824074083885598400036257510063002475191241474025329646816844353724246135193997818392608232234050233676622318115297832421747255416376662781168391785200141887663342830873156144971013383702836894628388765540592467070328654952715468064873296345096711083607850495671464519851969583068956920177977371618676032701107729145988774460963777466371750115389535721130292228794735031986440306188711694649849322464662207995437396765771593161265557592570369974618908541304613841797844271555908391706194594257987431257886651667054845052187283147224222979951858151290797487512966100948404814358612200098013019930494895138456276411000012475395535349694916008826610417060296972128466563600044927816962295932296079098204914710014747400771856519118238401972074745303928573424098197637025837470880474620173697648420008326018359503182890912783590383769064838465806438542041112460985940157907740975933689483095468370198840446803335175040294358208544180408947476336907698697940034336165696781133900891753041903068224664235831387045253036990616785214829456024068668169916505077180981474559611811780014426965148740593151014771270942391954788054008555774903674467273137459802345477806851225688892099300353281504599546637611772501403146212825564349981649936116827351829315064868888419606987432121393641490651804950007863559592250991640360809458596594790425008210553041092879814512129157446196162535835100914937387879773184135734770778829312471494542760831899220292170354691222137422255284482229415181581379240140828472044015441875368525986818355871755004571375263516093074570711926420176831916479873365122920627457108609948757695798717268507734182403383308130738097766698457265885410063651210282366279404199876262156335380465202647826504704081141528079694470064506010873741571480067781685553805398172514101094530736743015657691253875272224946183149096933039846296212520069104916410562377146872366451644230257122108589338207813793499269188667401330543827699310141053323714727170112114282792294670144600289873071507380760389724102076894347241541359464955689739303043405067898457105761954495759523947584306692092523654312000779245223812322493280721281601759628856965321668491485270773310473052157058853844543478656619876325388712267912718474844023032704096123439961473739018985862277577526840536224371579903364666420172306294501229699569966133298640985386412619999035493043070008849515569952954972396103730564620041201602991564221881492874957174776934262712604647063688245024106200189956336325523000165483621803793855307451391642257276534245637854576360125542861946142776841067406296809341192214801440258011310142808274479427074898926044730712834554825624514532161778673402250388872339885323180417826739331984613330023122387294055223294617070848649477095478360986294593969413888133021261732098231925182487764997380922072372715216110749337182743467229571803794086160971529990767475841535842998101459413211316590667896290924103685130158977862691025306912682631627081762904524040695211269303850934343541963744200271750033893411728125717530184328628525490847227696827228011448263500678257948920694882962161619332998600683488363940466643047598801326892804470808085974703758527841448339499715109993225801355285367599332903764104345220186981726834665338927416971377917342354216329174560576510879231385980739420530066198313487648791053296594254303469116859827069570395752863347425918307936271110116784844157751321153352173112457905245014942518808704912495486338022655641542625992697992373438458903486390123048117570543806563933747661962804251207938236778832664295285203989528203611957796732659139457666656269614633893136609545958806236955817103759174890247145062470905446839868281384205759068224662187595330168722271473491863748843249079505733499037630076843158633190835705118928306492746254360148193084942029777320242579732133310409029753694078612785274477452745059727487983276883827431224797452377012508995833761222912717872997060577347632701086240668565273861477912285679864560212729925848670343268595160447263069223171156343590389930086894870190434993226247699716070512908622991373767621640312273559417641769101188072501251204960574186830010574499028544943845174485444618927076796793796672163186502046877010042151351931539879219459887466126229874847903207206276934818562002997902203931483495260169400540723246175881530456903982202791436959247964183184139950114311016054373872624911320138361691294377798546491759267435954967498279926684031952797658452941692772007404438794142512258905247252667603293881261869716472666107506943461960839143708945018149685146462130723629994852425126468404398382759505744268139579774307660100572610610747806561469829682272622080053192009224209583421362272534380077981076705038460048384975943542728477164738178869620492578310010253336152679733556951031874425192916409190620594911067071343317047582652371417488036766396474099098895518171347572252543915175506428075214366308500296817812706107626273018555505217383207339523410940259760617075885329905583251934235629230874611523512695604347999687624725505111767619708702993345395800672486973671947580182647028581958844000930663865009659292200656131852069833351390838292210307742837670550841316684726343935762970634382506758706698145948090204810274389044595616894246066646042880215389276490439868593062789982145288157304510954542247539018278475402805777932895294551822603547997215919335141474461499629076475669629618703894874621217063615311896373906778369311740080492634573021857064992701737763436898631811398583969364578082927788352306211239980510404360071896483704365983606801133928268141600976811301766632694260528357556279994571668239941049423107587555533286440478139335436926804878401351624475632349711612700247020773248072339385878496608138043656213624674124596852963925569470677519081522059230285319244968428244202524498869875839949970300546753420371689300683143901015485480929330669518704675593925245280265027641848561778101950284146091512423411474953722879572380412832300552862510201823797451994798414548401330994178575810857476843431616084720495680486142192725752371435876227134055813543203133687710342020168873781960009466827207034663156114552660049267510181215084601017531045010467744664609588255670079442431851835096692090243601374948536058859995470983736795761689953420739217248874991278942307034094175346886744424857279464995723360488487800246092533213476207967824166063627927088943495481191925938169972632051768945232265184304396202018257540911564711766521604381188674827799825081650063358296064 + result : 4109588313089282960279410019146648400051738624578696615790693906970804987503173572389630275275054987708402518890690492369302762550370605747230570355786640496820915954847830188222640634576686216702002369400676440181641941718532163441252680063432601363964599947880209226686515826154773655347563333903817712623344409272637295052639429238542324144650790639874493379212296647647771407724304749815918220132914698999489187256326614589098162442060668273141491115781055199093377836841475628649120886904056238115961772593014620987273056447078382319572994269041221369613529757450376175531132764107359878023610328387468954223626389538379425719514278843816924921748550510408942242900690267876135254887525471581390429953041623619081352778007348983403811292373178434098781668335299940051238603647492460072080471617195811145109764575795038232405550403307670369240583079962689589161457720866393046359145458215707138673837743880299302276876051417970520254887770270287514481540912760358631525810860159616545502893933454686876837249675004004471865492648463543148821396624212184283387825196471694997209081533077425612959682028129172293952110169418516571842608949944190453321046058600890267878334808228440743107682705625843831093104829881451900086209887961270381394788769589068397257898185307463141415701362489564652769964681745108608431232628031139964829066755869767443224282565069619468203689884098350691004132166647300869094308346062646405856100598365327674227326038010413644876343208603396750565549940463758432094421884975865134489920370383995383151089926285382904670907272778509567567203028641128344964778518097943073072764096605418775703690525896919169468151967016190684720384814801823619310648310766657537493381527884485697759355526017258675377201160287179681605190158365180154609198625921476738067240695387792361520476494950824976372299026424271821355627194783633217027155733128676788832983985849457690193753317947713818844448975007426453274769156391748592727391901414488946896446154288494696128654711956209531785424092482560966602413128866334317508347823032083843961876915542739444634539490732494136877975062775490170073899502005675303311749154006548311841401254826589899197480712205837596998072902033321780745438672095101908292405913393730080469672296095702548291746472760807732243051879193028398558351791988390218416786639870583971182616917130247229426743406921842420538135944857433536702538010265860335121410456796565632968710270964007715587925480514701815113871281487090157219782426829977051940271466376020029792682440094208027260824595856919844227763332690299283563794184465740137204938813139683401465296590098384226388343828345734251485788667805661151306529907429731461811488925184161621644108616787366723760101693176695634498656498048757328318591902141768952490839956523579279607429721210389681847831486783110622518592181464730576638097222968144623579896561164679410882338688515088871146745649771294433734174696539557738512722039177660522628472442852391408302519923281626460215789095965734497622363325372674285330047789765496986948202006349797290056287870719297369535123395280073740932218465788311852958414900831253164736089073650185945168350572907490384509442890031726304733239779462645642687987240259137886880883204426333089564896831024592032140307974634981076916029708121305110758358605285286345338199376235051544090683932029735016409318686388898942442408753588520499860274071501446258748648341558220282074506664078983010066977944376925856289088195014271966861522524752918547466210304582675185682246496793683124739815855602578381299400016976677438472790647596333371866729004331709966845817517731838913440915647338750812093791374575056987038902740577911984476082893356966870627817486073389525551786030291608872403104193742492862844473943281370107097822169769347038497944564304153238989519468045717453085099977747530803140222271443572188339292342498177018312922168625983615888859540668981080734094213993396556422121798898582864512902579477069327357732919605710536173589135772745889456850991682813824695667473005613878074894200311470653725813211294822539662435899607888043181810405847151993097001715817165172019326041521063089011584611026987712350480203149950610682041325040881410608821208556445547208518179473352455009721058484860102064160233818492070630119966137266079052682952606379404322194176970801237990479140915486872548258502643013747710038457375669584439749661945779174658304907689058842448830502792236277865567082270379472747229150249086103553688186258829230872098198226620044132946399489783395099410575457750158163982689984907647084550018983141378942035316288114889336204725945229592991031342980608589756869293733990208030344990078719063226828431977316608718201790812972522664020887984543845157218075035416472997540601557447116356972095559817426961324724343916696053906756907039875658376351782432914199207301579343804506946889503073990197420630248419372943012535827384543906913450310989938190522708229743328259198713080759706431056129138496587014321386753892958060213454204794436700499862331935129678308821756925971270058171269429937876302231000686918963015381968319195695762539339759637499688667652327968176605873063150188290754795801392132184063099518076619551175419493156295978091076617837432711710336554651267988524562071622214233542967794066578090898844525944552312883161613274860428990315315074120125380216976083223912537398765251787872930462251574843788896974123365881663637046114061468148965885579779332707647044787263906815979964507171923382617876686316699404223070460334203231413153310588285358482312108097662332068239992268377903041869300064940954534211941224244620478080633092634523776849720680553818983488146433828672591356744942777226566853813472546742630853223914201712329330241127143505741674105823736664776477089482469903296044307914082072067382878009917513609748259553053676136361173127246032605759589966022897756161199678393195451443375224263282008158402627179778842280040175344826872540485821996738548929967103934427044069068437558868904237924115852546482572895601286257269766170096673758253536819197431761668841407909686411839857859011484426578865695931781617274518680734194310369870863463753186866231243088656216933005073711780599899681111507017493788939270125917091196124657186248786495234903593672492339147264486359948872152984536915611972655749901398643376175959092292705294705277218515860989673559197650461476103171984418629490769727668455265425676175510676847608462584735537144914837608781262935476772398065358754337118633451985092944662535723254240238736587596760161120685417832652601169455864252713806409681702796294202627355602879033489082317552709945299423342255828435437631581280088747668030106299275631391827858401255937125929506633301702762441340907817688732434581805739820757281395139593963405228592506571301514734795432244388998052457922807663982399155800604256622645184944058494945206948310031546677697134181462371814418385473393063494276696980121163632116088712382229588988758796863347865185380906558772284042584307036884930281878987316089473564412244497915906745195578811592012354481407890266999613254389142731728101067261710134372938628020447670876448815221154074564672166725467027930323881774464439141455683307132972073846366955952699607411455144604227254346387064862463887688930828734349324749695367851031712015438446432119278875458972836518455981338037449967018844897295314260169915591912877591029827236821224620647871909271950365881400432138985962876396751082863660069325771113760543595067131746346720322526755939509996648185288257836467601518522518383107050760663113400038914361468610837767725531060244606149893410819462185539073349881340951661344150781408866160740321613198563224554182032523745728793988663851076644789002877518048463226860630234198659587754824569361630914394758622815200276349276555814978592306304322626660187387213814130236513555018860388397359828070742239385247371796828939657910527652734248953608763140746251024395474782574509267408104383935273389457111154021494434159340856252896092308101455817339761910529077046176344173287291995074432872941154269724488749058578002901987908945059781345283789369176219053619037859230576893556979543026768335960958125743711218688587861949553355794950484459393092674135073437429439988229771099115853844645260800475780002136924657945673788811907620203626820056151454791076429936663455688663638518694327605737221817692057442429210810964281845053249928483595335719378009330917628822166911237572552730888973381343648254217924489660170110129975500900965944817730620791368015668902578546860531540051559016930299415238650707137980730032653785460520477318729883659596153490539560268007506196219191393586690538770414609145714324640520708961784953556681327259509332670860194859645012350607833328868560589293159090138271476732940290217321081524883978111850453016666661505402103475967274975597894644482057097563380870402583610004929573268512517436742185115127097266035371218321843391519624421425226362025354429932648708040530358794887913868411081572600832322445327007685272877271345839611361849897633910535171404429232977911565801392024858808077818013445931660792146407119745447179128986451161967825166733999287595357555381921565139786326982140738488447166135700451262411469213056512969346035270456963363154395521506391098942290448419970703917058838183556516920463039280710047865631912290053867523016277317736635478370340861787595131892038443622249635108828407813633238894345037305335549213208888507875556972997364198576896872148834576097467560498034550545437407528235379720578888979683434683199613525039144664624507153145971689567975368187880427803398104923971497483964873396151217114744160805098302696008706962974034181343284840094422948204796478834242451560620211110815924588210218460415485823857799121570254201904625208697814600380971242494097640069788997945471040050391447190650459854245376178013363647524328498943420598118047686140356487412150846381789482690273764823754252309405224575042296506927351008166641671653268573605172502514033165966844878193140936127806035209475626151611129703661703597808061196936066439437957092104867142458741087631084731507510674282378533547121429854511833139896770890880159716752197581363847453509943272537428581107841536240524844614405676329258860040814511419887680691058835015488916818520301319854837143597755582089232810479389910796338223177354933886017985515711001403207061053748099108379209595495780079687016851053104659023014498180632803793397479389856281293822935953810602650472544377889580600610451985048216413281435893709626542642905186373693382742704674848222409122695948035346144219041112873371273439344316498363543490036296902131529789358738957029181246117879713922312533548746060476544320863242698403578413457093932559805795990845387480189924565085270194884274762038469675509575562591600745634056110022184872045705322612183075794165273743705305827827345812659160406148019174620687925930632992361448393217245743107827153170028564528986860835407036677835490298494576087559124996807636186994269209423604430490669773688961632071214526012329963501462461029243105024824659240730585319261282284937823308106210950993584402492387855355738832393749348535665080525791872149204388466909569165077344656783052990657564398983037959230043677942976892733892493950184826481594635791654966696032682438230419854002345646054115199049420842202597089190248638881233338588154033383288564998632778499584375144225855743084589330634283775032890375177508494938686669238947328208486796463353555755006595132033895350132569703715616991932907641396481173921619821997480560374254585315169078533453709540087207959800373221229609318959071987880638309882034215743600395942921536527193530149123469561866376072890617948960634743617685853743796525296967458237974435957623562862750058077764261085885882793744007172934132045199508625587610421637969799766301278077328252518208868494950698370334281645213562750558226191573424162710805411767880458317115810723537121477037856017602136183276319914693879383454003934489073217247931542892223830511200034488761880682209691950457739290347731738362141237396985050772050982955775593962285654221096275637787236145010547755282576316422396071611633042698372397358339597339548236520669119484600700552377466652203173432671239385049484411835370731558861463002522308786941413892363724108079603783697214969355811809081862855076468021010241647243787227831405727090815654447960798969229788393464945043035675814947736666213169664581902254068936071571645746446518581428964233628577113558165305750292426799494751370599068650234876756939928426271037772060204301907186184301394860388824582804065833980415147838833283166417491858275847075265574092998528225543450349510590555547275448187500795115246647394538269402394157687774310320906863274484487173925377782472570834271534877524604227447292992722335864125285178936292874642609595140954256186701539769670241477286411879711288603532766769204028902788574799532479795488493049025069124629551744239028230696853187886784106772716802905624452547464136489970430564668327901953115588686928454588213705022348417983599657829476763735528722143798960758499715012233109126107243949060131994938434452169261725535396810044301353474840269783882113654029383409941044139616122030282321210378308276053955108320611249072964608691695472384142833668668671431356652069343872095923243245877401817607157142368832729625966953998198562878952885002762512491914901699336600743965695287097904085378943548322555205636036230591350447284639129499436064708446499687445305920242648126781169868074215418038288094107116598273443885234678309428278508039831850016877144121821807447095449283612956390856340088080367102511878094380618905325089398125749746359611352132330387977973025447767644313739623060819917799794935165355306120178997839808168026721870958286496799934258045256326472193299299909818438881582364752380057844355440319895338708235253406142265251019568527886170073170780755812300070837789816691129637313528475252462103459777442271637029680277830416574893395992659405463219848498047541603761288045941153741652858034863569182763250102927144324904443464622071592249193985115788199513299715619589796631713066821324696340770243755263109544908626308370957327333416334066673315135200813072057049297594741312095692591720110639804029831421120719326813136600995675112822868318000382164141343729035820329533569562715357153022430336622439883052472211864885335477274181032908246478988772355475592246081773678145493763126053906923142575126269970214622896387868134738431596510340827652520313313731640992014009785369591109953519298174272451464351104229711020340873147366487270925614553486152291860547087888160692197420210672013513833595283089954926865992466678749297849047985194003210650335922905362104207201854714120565783400090366119264453790587242318142902697852746674620841275759543946355927760090614681289109508636493329844495315156022358988003293131975368327958522708824675805408732217292069918898967763694111365575480108438005792232877854591708087927995628166116663525858534457671376850955867008612401511706830976085435049343215691209736066492054567452164114148804111411807168415177869298972373381968232176922792218796137702483412192942261679638396477775797857728677620312361659956405711878891359852654366114384857571802692804857913704461465499420315375303326240122767032633776182502259902344115442820787182495073239314683452245072479206919103507499941904155158343993100280583010337334762102552168691228228312612871521523417103541931922187624357756103700336713103826262958291467430744114464949928745969651508335288179049139132534825157850365367434466809517157193592398154814480773633254808017749937399786233258420076055954065588004596278405361215502290800341758236592767490630962559921957896317502771997374976239741689931825341275801511857483781614907697174713939882588513298971751220499029342444277849964635303951424418832223440762986485933092596863056209161225507721261099164842784349997847350013935395094874836151943601727613225224083102587255245253546738438808811193073289617720195417745202032794795154506568102366863457932452110856371970510046504689902744002170525511903021820143838537636788977088595528196499626543444048056528793229889841749875105172491158312676965846128679005108990950008544914511823286418713864758749771724541148202901979875696634287252863564996463071073123614741865724836278530253662201826763326358905721117108876041608754838405026255850963985007724121601365319719643938009696116531244496615730923018936358299075588580479621390978799325373297443494141671397256177607442528723912912803604573364412417800403554972578467769112938490978571397121156750691821101335056192417978403991480650619160238844881756603856199209142203554829936585215944694867028589916756231967633962269530038356162069919954934032734168283799249285548716390751319257316083116148119898857240890510565712472976609350558623024439245619894113217342763023704640364402038434466341289854927641486846215715349847588222640552123301985957266743268442308746523501781190094505156159740613577943373341204615414972621145424659531023400551556352097369372899094655871648950307820661535069696364803040245841425353678405493948057643996119734096324352049759764488800746113510633823253244107036474145098739363081877614989430466001642042286808868024987197850334024454165362782858639882750952389176780630904077920669654811739268513320313530139971949262933425435762641175294542468050681131709717880812106505043031645172170305647488257048021214075844710184073970811743509575286458995177761875937757510960022752228787629451226099401628140397986170657312955099666480356334988281209047016330768152307155586335652423932833456451412610400767361340955258022562020986969227395275461582025471286156701431859629531744838270141691059032748024459143245077659881421974543666962998454943567857401286761800521253649270920982939316694065215960041593407284966734992337628840514721665967518109832154528493554246450967744012816922195960941861239393205859824143271201130516021110703129271048346519888781143823259337232399948468219979600027334844641429628244814541003298683644158204238361786351938258903946816009440073153694058693917867868781114829757302635477711467937538176013453521676013157686067334456759665707855120691361676263300433646601187607602494380242123720211874812264918652412882580396839304347484143592692345700359002601263633442130669210495986322798622619364001526166958336858268877761627583143849183507752496762467405783926799800841762791661063953975441967638812398278077076709453779794930932305282009211410835461585208048392199049423568297183126977697424869694954369674148217252496411566360778580460746704257274637945955297284142747835457248607314536182542668941939795912675888836924633743584442654853539430842000830393088723521960538202830212181532990232391685713829044591131631290702029002993933612892442275594969954094829570279582546738596601985937704285593708865889397867486279025984508357168588614310150666353063338065319521951832570965850396443296448872702761429450338883330709189891866700049788071211276262725572401520986450415030375117751830063133752828349239500713380430415145579968468665010422391587243946603825758068725874418217053071366413103416928678442431142018544750185447301607522714656505659630512333770772224379385814495774569778890980858708312033409444381411031124366082898835810419839653693009947236761060750452394344453535570302860285652898024025911766955835760646968344550953066329940735271898847879626486882265636018861589128810777702184952450915679238080673790653370369301261660892507958585690709513439944424295420498377499909198502895574221412337084525724305215276577134435756992099362103974624773093754550051676046414331829148163340860013382593730485490241105239930646239559362050135879699580767180386109950992575531479433274318088607964834626037482316947121750108146355431272331568204459978710317298870654998582410027947206221932831057451619412393824086906531435263081895539920510761240558146368917661845994294248635604388186342321686742193958949648616817605500980615106600320294141148647784651651015930282958019209214658835179280715024929182558382554362642729741846003533619524599507918147799992282489364023298338956980864667161692526874703083640611377678576445409026861137500030215993741333761470488394067755721051457078881145821223843665228996116047109935546369702500916519924025952917289612128447723309633605504409353942297814402232040110475651521265822602622841200505807762994392274259510688269272057928429886762663835034266017053632115378506576258556206860104632843100583440110580885780831269444443540744040248562208373864841260374819504242056389242116034789970265861502679745820014130084736972776317453779387013400946770769916817489695289620546577522125310132891337059026447626042900835459624313221654211733303712441693312159425085115983786656663014014157391242589401270773831017222288281711589358210088780572669704598954339001459134686456524983087397713717516404266726302038486917619810123586973433392123717029059145854256726355035188396251771918171608096364009069092428049189325526818448536940351079927232328208998693563420033824053182086740310531493907047326307908540916402891554916418507234870009000678107804913856818384025991049027993306927458034746515907219697746461552630307799216520649071730455026999989839561278269945925614386904317255781328657588271324409131339816944527846263729446475538340324683938452868080898692905917616473083184700564078339715466697078049677480596119843250731858798109194926354820853584279648771610611030440538253702882649601948037015695404329063376352057313036481322604233658646903304318476574699627367780569846611752597765469199471503132209873609041862413064802039644564396847763469787127120935437191038397089944774509300031634657670424751273077805682737433164355542408552622321802730248496773462063243565546236908626402699158426697982021375684776177265774542528130140078293705833380816409680592444145359141583362908023958218500214802954916596372886739247560826468245521582904580285117017966348225142394267976590459975138269849670046463225417363744550679485765761787985468211388255902635476372417731465503358266742007863985193062738218523352528847630333968352389229660985191174940356098887691369192413568150774441332139094866743858788394952042169504679164412533746130265588381608942156810775869454099116334754795448550010917157915369868321802163341628340539120953096104344205853842722014646525141626292527975819334797936940400090679223743360110115927757143111024238277883398902297739502192422318478074502216566432974599566597728448949642843796297877475801608786129937331014787256306103884698264839911721951029922588014234751467508027826281423255453400459358443312672807133687180164662613208172104675377630973548784393039180283014348376259272212680878570676074098890103824108464194958849829689084341811949304322736772741617639569739864809170609234110619736260360235511564607785345071362640094382553329600339032690978448746883040814296974491206685117163218158874376298010793285212879719365193532816115345450001662647935534657182668113624954161166220569191955578830709214383257383825973699274312049299387817929193542018645029997863586286080339313454003457717697315351472777382469988035875023842428486600697584689779691027009568379392580446013168188595166425163855333392921428613875709374345750477474876916506792442036944477108756008127902710783201550965209301110279738364992348142946758709129439983329543539313254151627359522408381231778092593038875540967730696347278582292972770467905207440150233887211075984150510507550447858639236785332823907911245945042582469277715570209259275020896666537946583389783917076967941199746989895252967838458919627313705344307149171236791825416922668825717733496396070123364459643728745676748632411623958457350489219970465990245624590621376753788101448510144089504529257180563996062127463623160831506523040080065929386520664024745245226490760268214553926622354594748473614576059655726895283003357579912915587078109605512435328219024175226984552959775236796596361717246176945662167746968284930055134451021213321934194777836509124034575960164772872424921366904874803575112670228456220070551178494765082473904009603100556602488017565558361217544693474196467492271363025382843908979023967001843422431130089143367416725292826283498271901365917261672511324458454128301958867864107166936850068677357250867786916773683726107925793664921292587165514959571775007906559878042309528546398365771141451499870752702293089164624445433916942429128058030298596333004436652644102067479347660314971185737544080671645473126360180518335107273645763390954914191798560933858797397698770649477799211495187053202987572711358411207990717886788224966821373503894231928643130577505817661869111017689651808523440194448249669514718242211015082052405023337978142861217690676973527837395602691570868117326604235473538848457876162124508407941513236921154494666294557014245154682029812139603031324087433465068773521313043288563424226739058169183700905786695864425626119243908759269725764397448809793097827539194520323281443065434511817950277081065058032241658232325603464277049387983708970101147401881554048462231559449669979189914003834665619495710304495022965630347223746141737012988912556555873624809348027262263920530997361531338555369710797697396585183566709276647700383257768945454746811658368866997517488900326945929725359538877487018705483867611086067941016526248977736243198261719784020769019802901832334031228581852231334950924252922931152049303823667244666886270476682824748006042304004182399804730626139567596426433608710249058964557840352291801293934495135910529030627092811952526837577226647604758636704563024842409504297892567387957549289048884516578778732522503938700724037016382494249948196341970700158594547475226871056635214063310348185356567787407611063058463391029324511250324733740462680737057826965462116425300996776856666961843933682139031339706539210779620219423580688291475926192543755224943147542938967722747066466989607881306889501996230039208805652987403436733275068916929952739710887823025408167487469986960345253938852684163364653243840104507045489726780840173421884540502048566956857800443728870494583765624845891125714251887337719952603588585236516372376962512075782804807668837494267698930395136239323555126488041111512220657104131458920070365349879640349996623614810668879496869994535502799706834848331532962098937450384599614015460038204399209637505879796051258077442691521411389982440858717245350225794464192945302841686147038249182129110780779453281921638365069726232061811492162988779348707263730508514509145696494403804277855551976176834809378338029469911286025910413321391968484642569278450674312678915631318142889563205277101458323781113867317195768346382320690340011199376442748450016915044862141137298788834176791982597535133867719344994412336219638869159892982667798382150517862658972104646657594086714266022441596512801536938723933560998990809657552434763911835980342251660606181293826228717635552435278464445115379143053685344726241405313353799064173290880866510656421246861890941806156321496735564553300926369874077320262641989949635157724691114035944869804589239807900616774346421303901122850958467142666568237629748348492988383614617558033236222688481468863325313257745269574794849786590238623146917971187475803707768874704480676597740263172213242534954559014098501397138218376903545855668198313761909494405829175982373067032119176478768789557425646427905374243362537798029957780672860374545976704364059683308407826277710023899678054519872466094161373896143848065269242109567364428372769577541767964057667233829213262619891371073406192405877432269902399601147943625785617738295831996528490979827546986400805146839681033484637610466692070724973541914740381798922250512076718732457786768367371498054018791199714128713883797045188649158342253837082480101720108519934052410739712693762077520132087221307526493717982016465882305794947814585738957282032346470447680383281230978612057653063375857396997993457794627235008628978413396964357915870781270132316784700895799378680715267295631225027634202866282274612436615777941996770821397013208268214769429273327510001809578219730482813074475278292986622372217099030244821989597811164536578276603305498919517206853807275532223286208271497593143763953952157103342387385178917940601095329875559501689261175082942040838095790163226411512560577517379964974894417997833375283765145523986099600442674510801293545477053955418969503645021221374583632109443276702414669215002421464176574574518438430716485642274598303348092034411665633007859677220941032123579611400778764732972632070045206393457259789213877507897456401782248405748539120918141960682216844583221621899720684550471212252854769980093415528165938102235646279848907413503310283369848407719683879219009188081015675612977256430910285484778743200001116471060910718465566712267618563895801665025053517967730619257687808887874283233074462039324276276778832481809089873357029008437250169224105435885616956512776063965265692650817889649352846178765879228792195320919626103854261128275460867419797178928987750028895234120278685274810761028057179764385416568300517602563322104328028543682783079499799879951924935520793649825105664609068661136362723660535230278651650684360877415465114931295289067540190442559832233577704226598200967839254509665423438923412756560239890314770799702674116160229767958208862029371845692385457953662219361573560351646714074192461436733095398173617987768984952765794977138537112038641377819072052161878168916782322729857651087006362905661434564163100410518002794486986070037909067141977613364531757269424321911905509593867459860713245424581872990427212723042809413129276117121439048882714538097762753767394984696906554524605942440152265448929776582758646783451798362978344861823101599749487490642984113473685289348376519294464178545688453831600558629907975862640081760422654389795287524968606797199966791705279070835003305322508048668115790528138338794675710613785486592124542685334127141888865393460342830633636820132363035480801320623452410076541167689178847229673069788229400217342013404967392844631400362517205176308461874852475441952089088658191250741134210101564808623483528765832599451027552436639607026405482036411645613593449759037257846849512952732866057425917270110119752909647324759936818516499434324909002201653617300483719432571040782000104462335588296036956937707277590489759872986701726659754063534674852060003364683512283766828835310105108753654675252160705319986326299496277377481385126196373364795380380269164771576094652125497222118135706551535735881178522175155324119402791748982495673679857520434771594914270352491458271966333028987679134360199700259340797269731848997166841165466091560430127939805986404359868291705788759237276553867423477519677280172298887193157676031181420416055503006900070589988289339732301245728326560359153555605838767274441172082954462717952260331799090699173539695107079821151350387315906956883410173707620477949717844321733849836606018613375481597950201711275170343883522369378495630146431443913045321139980579512819265699490127929893601077266041860383617640094720431485465243704927887943539864549083177188041121825974224639594691920443546532820293328597885565853134904277859577303867649638007317521601510629998860449280929050572340384195425573544059098238243673091235564255228405165898369509739007635386717233437185920603349249482007545218627635475056850933471800542105523270057133308123443680109339805033067851812307139621219868054950541381036582542459097740704063506357429995700849284834334648924621704803791220372595499361698931368346986116198286195009684493904989960922742300622577396351465784647592630062130778820936097103365334595883963176852946453373302587322564009146942274513179849116971901948957109981623756279773008128220437279165832716599916198779568865592242232773825077345774402849165572821034105684443653664161199648112147159001731519325545910114084517179794522690982490527859060246795878681324411113795618975739936100357315583873625951384217902457510881956832590819955419774935253163537657177295757949604903836714796163589757275198341932054337325678731865735185354832901660255942973980816710636370132003126599529731081871145287550156063071931234113780187618858201747023805313098334874484827664883972006290135221715348875090602274191946399600219952120833808123773890980349629422492304370133441179522749999268272459678686685838113071648861689444949136631852030996660181840401514668840788237054639064114133752843250691036656639207662222685076042300346697562829546365832601032107816231908518439855825278494867722969854664425428165051147336289654619755068060066313699131901997739913257459116865470801680962962709940146081979003117140425583872391699827598950493817181444476054767035171775970720302669858238704964557444237560103091991054147451572287629707569713952279641269522709415033823238150937809275388219379442162421860734123148999261052794442896063124351317708034446081938773891759727754424338586066196136282834728054180679875019352665631318530114429930851722554063416981103913462183580426476681403180141373319218258508011954337836310598105213393974022272317194111943479392946420151801608704144582034619885364249727726681653638165948474049194839465506022362805665150126489312985518614590360675016904733311126330041722934013224252617104489567583189420241427600734467817482569014922755347671008152840455381745622268459233644111902983046337341859300054715425608890656087895905342058847526147877517056913285723376181115766866354051877784715547783258424502246059143861071118809046441710702993470810255993706484149453859345081313145597583740478553927808025095067810327072751345902501198525109567520658355845187806330616729509646181165338028445242295415296720179049441316765851797307609032038672534673872601040839382414464306862039745902045404782320391240715111711378194294387390464121809481112807117499701000991393071114101416451003070425923939796777044222134888212714790699543151991063001526324249722077228211105721272586353040874141883459214120783910885315271189291339676184451912217924783977870929927519721838311682714359923237108366765592006536340257803537999719821913038309214243576078951059558333065374373083001776778320249719612109000314888322933617621138075536403410781677273795899451832105633138768939443776961161384657302044849084711893503206949146888950656075969770027056393738724582715005628835582690628186130492313183914931662490192426649036138115452432130315633030193876093827644853643997022234051295963304725320365825256634432686056312550916130420632395469502679404142858967282459897367118928436262113839128198103292532610337123075127666002888941803630460424122053860418943465523374795119840690253119572549156620232269784933061314039817109210780392120731989809451363318212512770089497353853823717691361147266691254846853759149947954775742657590516526221067020411503623048273779399514306475145135820844873304934103070083154188034902267497591307340041486252072930095471246472184874675962321209051603689728876520130812664935498309996383647761664312379583648591767365804926040915834480095736452369120570261256813062702212958168300720325232655701337974629225481931174344319999129916011616988368336373611395374976954700188602660184896971360453838588049915557870750219328106590516612809256972634223391471053101154337464454863943859940281601187130701148085059786331991656011047615181521995429476569941518503709003842489659198775764984544554455807172089315254056066253352870295422497692412653421632443530376114664219966090008061326434469337612870777653811024730726876339681732560453537802278357058300251934408156301490993678206271899629706534338949102321547476064687980055886180406727899524959051442776009498246624618312352004226553380856306389581850552874019470477774358596419153369368337414553212498415716169534600620013748312423156152098668330089401680209111922045337816835347280363819851846824018781091901955570974987670139213419737616805484432976521093462726594678499179417927898655176161878258665615976386554068708364920352304183923445093769172392925683354620660264376696016907205535856183890661086942838676942766218157674032924619240582325593136466241608674107100557369451396799873124891203465476977049189642147728172388041183600941462526791448780914069740266198646356853389938696903983425513975619518746174657107860600996755277521667391847681611683672128274405185059199695262984771617117586632601434685829997528806085282649868096597984318406123755314605001263122204822931057533046553971317340120933715168117068002109649474034079813306553891908724322602191547196612987400103985068720131179578074974653281691973630659478896596683637994767038819015088417797374021540147984720130573416631387594826168426031410833973434534055765928274066872646834217308535078668479743407795404669767233258314481225707278006752933148946483673153450011804229804831110378168549593710492618245756006515080098746700931919662658663070892594680331387403437588553191285874705403446461623078915673971534396087415639417081798157926433053828463045370592724760041510201392340892356171526004546279813140695091021013060853952120889594372225051891563679683016332090930612428026784760540199500712343116796495951068947297645294175859465947653008062604658942954802704181462274506528230132892769944034044055315660480415752775949615743788912139483433758137104460862926794858980644315439113667893986393783201990405236175862008305783613189557096273973143578720683785950353084260323432530710064150666649836640354709419345389448743926631344362333416739407297781990897483523864597954178230188481889997409063997932466216825155951310417504481222687852296107369860882674385445970499687959465122190032321728177476943006065749117074750200285893203888745658725365561220012570870242799713598383421956980492406372462007881693609846487308312375252125126320370601998469636931455018452422383058861230057287585035333483777878307289952688205487004686377834767618817635677369485796223674829179483769981330953894482309599417965558324219796299144239573595384203056904448416545802832249996095111087817779955326496521094644177656715188575090618796789224294741325539461429389810291091502450620102236972687927900182138169830859904729160968826009271454865432188932089648443819744113195522252356238833866765224948726017064767573749934991970073728532230877736582279792627754607455352318384728366864284248395904519425986503717736795009157827665396976515781961106978948371866631531420765216141172481723022945620320248412962505547547552954043128569149923703815229490188380892768690380714904343473119551771528919098018731872074755843732060505441124788151874706379401508985461149746601536036899104981123647476188255794860978435614841350058735417427176887711172067957688029752069940680877576006842275382060232741251737405394401557537384306012118094111829612862246458646018351556469526867104906966502406551618871382157179677625125564141561523843671832577798410449632905444152729122207094297552520784615003871528971880707582169574141844038973563741541700223000479393262206461686738304562254258252167925971931615036975438615088895847482140221560333896856846949777817812532891451607049150307622028530168619040595246813155384033393852150137359207186989281348918940624223386539474488286653305129910531395176730623064285320496263494863032817827180280330040895036603169452682534734968653577286869037565042703793784031987831623809738797729785373876368302754569033441465387049932832088933377834073533153017563257677658413108271926558182809656091043007986902152434424128397754003969518453446016753614282955426306977366839547998815190970695228217532634244421546202896202499909904260604475376304963380491264952726805765141640342096774552854047517227837504329752270077278285106413284295232634537809945404883321898572128024426019423376803511576061817385034389375234623023912664155658135140959086315270878286902664764428200274273468191853809339736048968585507640140596941245481274983474648663034227663950946697386537447882731527647807280611252203451752101708044821081775246211088601412046413572318798066547026174498267227782739906623426412237717204372375639636355764531068732403988080625881744941692601709211518710178129908638993607307373082306364386832885971563120846044277101586952043013092250222812673426731045502436505899147353042991227748860326729103254472102531577301352463891182244211660521355534384478321319493186986727713722890205135547340257822126626228530978479150390805343320433788093320043283653266997024971084461242283667326175917094500586725766153689423961843971358264803179286854931682687213476305311258090930482113662912200645428665081150152751826631715881654100359055337383903468518687515284929463594135079811565755116167929764632470102477826938037673541042132960983514618428970322385358716707345404334104623455272850548774420155184823446932123117494382094699169609162810812474847117300668379548937845789268674132997498093677297679175457742262881334476122505032772231343913644365923951041385937623185554585985753372442742516412529096311283366320345285835593066686247535894290447794246771509921310136521287461365430114989959153612410015922249943132413793283507104518675077537566267261851106472432935050523501329696224363764519295596826359109495859386815071799838406468281852934110688318093495847640745195755445454569895684550102951401434974006849291406045086384124735131601700877838913447717872054419210951194349784470760786218305133687131563730826842052136846672430840547118857453266640038436512270354017235546729347842340753714706182171449369703849662974016270482117226952189401698494088951429518978350425136044305321670508283334995650115001798891357514692813692142014118762445391083108199279538420091197512461629801520363434586679980462575186035659664381292581692948266942066323874999675335183408048834145803219658059619715097308937904275134620166071609736004672108601142658302776425149898228410946232188489155624622104257833664218636246649281320098385928244531505985614857705485982047880965109280507660124663670007057993279011694085230615369807725436913961971623578225608654640241194998102915292070669820310695706608197589539378694744425322951306158232082188870141734718634198303604267307359011367602354003322288328427144511987140633440393581979977531877364266775579439300059058327267243794700882571585771611682016714156776818881438170272024751134383565493822453235277271895933273244518057160645302322851093514826505897532287072799699042922698420398913610006483629152273796604511384936288604382834112409367298252861387516145701462359105559153460545405310949588539280570689473245900866403132948592752566192905450495726879575223953417359804971183728400784878889148987918738689914440833239377483416163647472613014278757173448625461285471175716527722514047472004234449695971366063253428724209514547596614198602122350766131798421320431534241830407929780870348288962779965236689750319736038566721479254080716496784110738550846523453180700158756762706748910081526691312385813064860892654828752501615356291783289713401787831924949399757307544981268469176444710544145149286759029298656675871443500595768181089922525339956190494130754572817420920775561666074261642145167629994356641797161205876014377425952096676758554245378752102579792691555763963860274654286083089473931025086222367857855638326477117073528033456111251683878117414375038214981252804116697491510727009888868139844628282317382129757719777912683197698783280690881471810690038750737719810481573029066622837243533356410624153254134648024595669419621102973282693603340454915892744952935830037903524169765330677434598737504762131923785428158384015398445332699547740147407955180090104964359199955538944273037497312642235717002268392364455828912849818162007121650458188242675217609395816014763177789535672804990247211878570333445501614527519693712431540710252675428566162963584724994497639439752799830067465247047982000330393248894912707552507334169058880897968261509881208201551297191448612685681539563424202404673232528893440327079943247720766395573496170594641594158240152431951161280481093981719775480606574328734038771021177073565481040230676675141232021971556638293291359385456384520732352634203986817517321923401346871055812019342755081174412965116753448246050969980666692170864688160947008449437917029720006117435651481292269898397632644237151932631279291601468065042309020541875235484587100817881754192186770712547475815949435246710186887119107297157359985411471166848093293854986523214957569249536999988377953191814651412265699875726761329099695996459018218344321077654899278828974943010393289288824036204967502673146245470061732007608929198469476691029946075378237256742909636840891653511694132170246058088807340367286555732375071282000354333253242606936261467066733428753412813866569393019958249576749535637599389207493044615977362237694416690280495879154356151757286203232426162885616098634962611645566687463407832077198900360612997424038355957572299314131290469868658369983202639504101104807537076699871519170177685142470328844091055320891202317990466170405970194190196222781826258937508104007566860242655805723284320700626723033930948246173679469075566034304505776505232598785699772484786544527208092543414985432213036713124624526378185800606444736136796774842218171351247010511257401204576551355368118667074508259787425491389258961904349077432447952124432697196038740432916505503695224901712718271258564422230245530100251591329578920657341776855217091991006098751017876698164554439993639184977738714259392371882387125215007951087281410048583117070439331508182410936446460434910023138308977625718043776952203999261808040010673579722961394600459503862775818407385546726607821351279162267536239410511385383946645359760664017881687039845528421293278415168239716830517166964518971963498888225780035733698305923357907180346349082364282583970625303129988077037076014062447878686809878788944138519939735558650768575787338400379528362855629009859825279879088900290196914675551820226227192293569828032692769027584833203772782816299593053499649522351007185266572648632172469222422129284584081502409497865943946517375924358179558620931966407784375720547527413866864469334606493686102829198359869704462891922547300979931560406010794000640221897512592733601875011813224753708980918675103446285917507950987474181614952122806992781404336147456449890757952107361339482235413432509759733571774014169049494487679632669804127335125627347465359692325542211744676116663279448466671203809703733640656162348064463803731258137729587363445262499157337863690214303387732485113073571355841550443268906149840569992881699682988570992797466024996690697968380897270935835857666223844404121636577700831778531021428129167329320224183237403932042849960318549309933780208685131228776744324083807328589308544352143703442286014022608804077790050756453644074916518685621858155746523940963142085914774907022748973872185219106015469399600371404667153548271890465501180006073912674314532729782816611913913323411896146068335755607920722377287089523812483120585686873040583794266402370918667897179932775518258146594754752324243755742715755072996931341689484036965298107360341254933991249853785011557893692005012257999952875577214795714696661680451716574077028093623677168811423145178339956268571987521982489682018161556461765731682335002851059123708800465174489847767199571001109821857485666362616672862276947960602792944523792152064583420413343014953994467659987009659959590986034978407386942559471720154147162886158300736309037825860427096384690553316283245165524008926844239498011448990983526924930079694899347611932539118046703751167256636577674655500623687143647723358605960044528237972613383740628142263800757149183061956020515308908276003962150911206660854477443975789281320654484870139910072808969052915110111191055124260698987883020334972101317432064267963229474073524955481805334549911622068034110489516536015275993831996447806191180285540739791839014382322026644241543420032898856361359356404745092636033961428889867381394596924501197959815886718719264312088405791652888661088723408186495611624793022408183735138616908175787272532369429451093168894440753029792956039813919523432954720793594657346185612607318235476593002901031039903496904972505822873843436943098854810509783854041943155349753087478173232590794584205715552431272032518526195731936802450883428599128886273700256047253236539283376541995245496547700800751607041312883344144012138362408625103623477534990588760401282538381526662031433169407879360260401471288673578630294207662602819450099733905326033422138059548466630902900732834058576003524128313358894743864906216451637291294264234660056278514088546361021627506794350842383507668209761336160470336851696232213618157444068930659156363140444269421212313999484700632589065427805776939712910712626301949068338554197157121162231874724623360753327918547254366773551701445347586574937306355228793492780822393738127097207469617900555858511962417607733301409403218767755997597635771906116744568898781483339701977919555487827175003353156444532891209507253652483543872481744673533250905413613437272887931674154260281046915710003115537738381039086449522709534587623553918313931871893104203700047937068613812119406400689973203776976517213241275894441985242268890850365781588794467274483930856221708107956945491423616335447830787982588274484401766299698860639135619096019337083875525982662069860287725370493570100053497279462092798714525505932823370617733608778925680022189895636458600028573109969216190613616337591759096255064508031972924992498881733579529053488072338409632345084478114511813760747525868019244754207547200463812613106041077665708956788052972704563495238623313112856940879618312971332995887396578588083045652304653496460394636883694458764516720006784462872825771638789427668296935366087592059807012698130191852328354758211832059396566057903529296090858817492024243667463021016838372053846699675583476204709916815996815597126013298202707003447921345170638569219706014195409674966383216833459431056763253753495715603479086928689753643531959200290230951339164306412865327782746509987867048794036233338770211537269985124638569050717607682214545991914661115139693676447024922352671382765309365984303354832243414223446060335266499372366779346075326598676712943894360135805416507047895549301819554835443106486966833747957279280047398836716698965336484169622295561137932303073413499349740502502959240508931210093499149553793038623918395744946459219344806856055712462445207217926370844192955304367688055555675260645211699654893145115597806602067971958064966684730867606054167804392062904864069233362217845895831194441310129279918064520861263462489607186367201859423221744937690507883546237111724126451990750792433653401148699937278727893445536457663533321226827274341307724095825009237552695177350526544477801167889332044895929711978450307269616935375930275227234216791857239686374482346860246438749230883284482740830495622972885809625545089367065940753661206863480798210391675904142247605716605158756878637667989603221438872752262691962419250445877025643263595566272538741175178878740833569542500953101607221646789946585049111313063295072021490097003208330472766404021074185214392510793008226879351965843039078169136751113465629693056365651406200772984628331026084517438474302829323687667280918020649856107252394748019224275472036336917022684177168950558340626501089689457461431647178716564400219522246352305667956997035690945588961610071257064999214520775698199229165489683351044054517441702258618942346775057831704536980891629494498217647845107447996983630961989021855775136467605159236534420619002435888510754028236713508193780478789245553203575437671374694735692562991159251346906494009936995785746864785271433214274856901969493788438069251842019620886564014701108125910224415600717376842197523600978432766358948280535233413609352227219963921133777976239820982526177289016575465618151567115427846353228307375439198087265776799719554251593683963054997433583638488970068301940410525485021137138513266248668797395716749756063802447867955903650673893797827807871381355227160253908173701934283622715059345778384006414386164126943796164961561778239675623563701222014487645935011692255768023029911112621291212177583405955367079345889599279753548513549725093531109309567727651064265330441063755279284566465826847583183431857986095176067192570602370544880397532511448782181876182684617632068241689237942005007907853616253056185440092363223492803470137750517164070902114262726351410505705063481049959918449416510163368534162950602266544577529618879948243138370731843896564905579596809235997164973771106551024864863489610430200914450269394986569714286792012100311864508452329399289087042338600322901599120364313166534334402771064235246467638548688207568698330377999852514360238531129775339127609076611966866142029611363497150605515258282231251397546965599693533490680116594844662224016867608899731487426791720453645559747125611466051484508731432339332860605582526266841596589414165026728020383651280928993124456480736749162115897538468454227842434926426705616899897596123226915356269911960203706827276076676159183383467850328316893471387300185061275925247245309470801539356214956922135434477201950198616215900980144759945061022069074283229614997248716486697010997089806395168128584323405153854992460796277993807124362726425342489083190047077472515321106853565890913968388980597886695743365052486358298942010061844640499166769072700217411039470721440279261825545443048446403487483985897823690720000092530803420934655016320444175725150508532797150848198111875047525583926621900051897846276751763628487646202745494596273845300260905345662865085180207090211251963788747889974415920675720139173475274504375735402741680075576102699992031042020841226176264548435194383576873161256279262046056772131601577359331473168851939575586079013394699243666079285088328259305859282664368177431304525233805174133124942473476737628979185721175919977054270090753197902499946925349904096329202627271790552267871877196591858861096118873336117451834017080986454986061633356958475257856675797959998255716187949899161852276267675059275536491364547387193498864540045246150776166919716697232253731210326571756863868575432865101888927141618240141105204010615660572688676014912481112606043809798753536003619245157516712220623508258828156679087788176737818188351291134272482978080127768144334496389481870142717854134835589660625202270613882120528485211208418425034063353806380584882893296712055592634933975581395744786795962237076897036906238774349447916535473947686232892380341955529295646036498498038399298133736619014349439890826361343511318225681194748715464831746442077970559493444792319827960771159386159382356089094044720635504343910107502965877838529527014995397325192038584429545283964591030010122874617408907539846074815550645917689194183607342701760565989559193800957051808262752039691923390289863805602047809238652223068418745776052068323829338856535855479828965254181169088166116826953521531539274381884050538951439419836809877161693229850017371178464044332952236763776955018098104498130002761791547987603507547203886492353490928493621202826784564765301098937456601818084093359136526860691819091087888878718707454416664057376660627736308567883839518643188175884612158915008433410972307557575474419077789626724197121631653883376451886270272417817249078498227633512134946234878936300401980778518380715164549001397005099154381998556540620448433875986456077730087258646813803859305838318865434189457717913081298140896041197830456327695516895849286014538079429990835887250838908973662573809360443452352956180013757642631308643171497600563837724813020104150014919021273211035132759185175504345143837677151323257852987897411022122557835647699078439006203331484850168076246210628959106456187254253686397852294183475492523860312313711950178564446721686986151983721255174198747730157512181521894063763066803141096951868665988311414318314246259298838140058515698208937819828644685935182757411057749685628119908354385310305098890219522973971283074078917302762854596296235493479530628221279284346021613830124954137960330663345644281362443780578385383024953296213449490060095332279571081273014980986705732390233400666264679743983583101320361537287964105014522569717863311112807665031227653541660693921562933720108126462099677066664120673804936420114303838841234226396256818979994469570052171184003258653345153760687966444380491433555991338015438002852552246078743639383673422277684531707019888880082110588044578959908810856562467725407858200272741594999347913173087387001064230223508427646524194033446035359450441476767979281715748587676026405677828595497304604821599485407664632432339741923165423368758324124411295907711908324145967256165277151968084848607286565909710859497416650345750392527083695199344394450027573006657097696743092261282299068060963286896687755265236032637435435893479863559409638578428039980246707557063469614489427778909095349154936214947707266236016764642358442642585541568427921132443946809546051081770840575892581047812627900491037413833024107142341285967966746924921613963972853386385745907718209644613390224029771410660188440766718851858387848855615804570144440186256607506233872886004710369748486126859371007594859198051829565270318472787912811523434614691987225692753486788326619895586282584313645735488376771690875610422566833259856056986896997437296993953338570701161226418219056504924277054893820881623887420846079122648074706299582125437170227028078716789290385150061449124014828071806109831948296553827875263702780513659808414634454647193134460706406219105485936452168480327763174618322596251330875166330094193158336514475120755050124293497563796719057522183783951200753102093555691666384346234690442160229552408994005430043518838709776967994194575337975515268812388368710904336732235212269654088219180209414193807922785256622408131729126955813739298751946070388313995540575575628521177899201316139875373069300950163932046064559541028980859467661084404188732281369325394099759788804130653889186706952536394271949793222281806693161138308743359691522771237080209205075086631561560141874960033370987440409960355380453664010762704286791971327075144798719834118029129626889277623649008032670842800477803651328055405773291057442483160999069479403641940677848424210944313023862389606934509603001640228336334597213372335441706106423735890006207083019872141530728522054471192069608862936499835539124044532084116758414602005429426539707479024317455535609735094856127044941224128439348751612727303785182800780487967128397194263531392326855469533382907820278128147586320958134605768610614040458301068541808059943986422959623442329400254062588881385587214357108741011871137942407415768890071464051688854729833680026174308222340898516230083141812600532893185120383713486222059858855698866724496446994125261027658111755854756957899510364163000320455368315307525899856220245342267654812559725968806566120294451738488835587602034547069998124588438257253677272995203980583124478877411615012564064849691513154301182611645128698049883348561234692689646667447261093357719655886614568866483406827054255947319729661730763431492032408305212150085932024107203590069348628757638898011298773223635007950785398056789554850975036341925511774024028120306622714029150731446637871495295750687098226331778618778571000789700573283856596025729194439752388030033568712208210616632245125618835778213359981055867433580771708127598385454627228460114852976013301873102103286652948352537739616022025164128881622147290202982286338974479122614043686536104600866470053394620920864105816648625187476860095858692688082709285044312520912265560423322399291813512713496166269783521704653568081011889437114748554870546896551124631370771265959566934324727236036593812953888180062505324390645404807336867933931921354848248724013901825536766981153018205053588040623710708424580079227386565536312059055454503899738497917253937063213253016909252186065749047180828456750723194235272527134310672757211066411324284561725228008394743584437908325546480859960546194846834651646018761157996543171422829455585132320827082684892849577186795923797644639314260466250450700360287100526406533699059742859603446934144945771124435400188293460186062761103827001486325483401888812397199906233886499584344803458869699531105461179038050557291382644010821391422812951706532273713448874849779324199760668610892485382503892038953487523193417403306757051704945964035788412308657282912490309916839740860959488895038910377309591981101564792133797732799226189552967571215012827078283620284628452081262157601439870908919888540293022894237066307036595505138977211074728373551347756253493581418711375141834647504269306527649604357846782261648919271410098215540520583606002274007061457896212924471923094031360497466706064802007706542227646828153828080203881089032228293570022080719718912875342097406621566864659992515376848325264495668162724982754955967169193538734892808745996714045792239829851360875092305673118004004413716894245866817813166557331372514511131875602303447742678519910950074805249259974642987364109944482507952871747896918294090367900837296011060295984920532588274743190973687527676444123633476844042236381288149693440112948219178326491104293608214297950515080408710275132116795763498225570138376262217394867156833619618532103569061007082776911063837570211865879288162599224625532429855139875383132184269516334742868923382062866781788160032258138733125702444054665712345127704597812049470495990128709886774676166247350738929262944842288772274020366793219761640316383634877066973235869494819150316076916364486728799842956540440119663686873057896317316684404051871407735458037048723837107695582763470363520074368826495216957902220745725151127259548542853662825096397268768750655274308798780216046889750701976188763641098456264298289403935906748289111972510817445920390994930856326705246878431935030213617775699596019401604122068576900026272286697607604555972461999969064068730670848621610433421860988101327557324021071876354994862057516995314827906256733050776840315616413209760588470729813117651868156799707156828050698453282883310646022004143687827311247074169674657792558000698336032258447066374993148543027964161793563392998504757340637100978122628008177775375755249336321305486426686680844004715626973736111649633652724530373363833457675776006227076038638151773102407013958694126649085512107467741830900738911557898635810862839701790292033688176081397600513278823882792602304459896608199146366330776848307290094295060688752617979294476202632390288421635173439642971049968486023905574155953838491343589974453668075501657927848648585642350258356506677081756093096411482816484114247545098193497281995474080715288524047716825243877997523607563037143423730211938068378527785916103783214163646519747087461340919809201582555950684160334493653166945255478429853880358690628532504507913905484574108828023338578489103537885723862084919885913486612111566311954111674567030199782846025907728461088169939311033164173048576918767357973354165285676003792820413451623578667757241954700536775385072987014929294825004762356810288782472828604377964228331812156803581699181881761479384075476637398569072618910379019220308615449610488295401697202468676832601083990672632593451428627997533851289265943374476820631970647735447516091571626769524518259400066218663719425053647304256657470808492403893534735766298881125368490998449099482311564097372278556364537482138817811580877936454618684987904749245310939461259049498025692582974044358559504312752622141552066491489470778864451064280007290664459273629329004299477214853120291465467709804074304564207383414634766492217536405840544849800252272191371626025315645103770874532141121456144464926643598768054715032815341740007325660207814366993592250229594554354100814154076519552959070704972520263900178235970285470686303604439531985630699454316692545376630082339973079904933457259887360236386716939177532352296251177969262855446383815267975303298954396309506239470423370631795841918212760622425624277550893864071700129087700262910256891001783141100030400657408524020085127056621564712609142457522231549290380394329711776839092695574413773869105059566739260558920207291165187459072472114723973643860732691647302757734795235842801106846922441598091723237186477337006398111398405087510123790276143721874079897637741594193488237723260267591975583895116845904611814289085342077491832258259122125906893349560694615537386537560551384572245119113582012716565929474101489109009695377320249182579521466888798409718864842086194771847331725044658201195999950771949894154967369116992702016690806005413570102992167893862836840794580090879973889229729179234302951525698703213721889388520337313856126450709568385602896806197745955599390828060229815663698860903079259673949032426679612984360978806285044867484821129668964915958418260570252928020374434713939600202610149631180901243399773394812836581940433456168092426672828732330283311464416954230432483508630086124074781847766405757426698467756317486935268844884190563695730769403540811146538189255708452668811521110521936893151434107972584730719612277123144566873219910779861931276874629494339630723292970013591277303062112385317383686604352837199710542707370165065665189323103623367255769829382880157951745828830680490340544159342672796224081698766649502717957012633245829701339924205730830564896085083276582014373797389921363164180379056694324708493089505134089786709212027786052710003327398502486837646510119008212950536124528107685151507262611111591642509700121243040566001819289630959959939277385136845061807468226917911635185647720288783746965233424701982025387030270918711996304312765307750830385699872301553111102237664181390595791230386729096426445217404344368685418209859699732870341892033769300361961281651531812351769298090821099332422530672071693894761434489268550827609797003931718828353384843497198435504440756194543276749254995860472991227633586367451152535585503530980773347975706567443898397823500406284081883433656860651263494268928457507669233436702405650385690268298805153701342133856663738477259724534450553947768899334428626978912972790560978874789647719479485853490134223313925635540284609337701663312429912988683935131596236515002449375695462864181286535014323344613257233411621448234207114664320266800232547453635464459752894440618035590637623388179314852859627472854671442611063226509815953723499870102851160140647654597267411703454011015142372309819247735001427042906276241174507649120619937919855405538178705587306294725579411566500118127741100024441640599400068458773552411844126704075576573113719628014039252440478542195629617465104836596663474092018571881960186294636231695159742899576385378200624822241230167148992797807042027561796513776071912079965097553660712961477271911484813431717317481457277665041808495917914162900743307529891805616607080089780165726636609083408742491577615138563172856013026508334452559363140675872221870064879721785289026494983044216069303383876405126033074325296515038128980083151130102702289803204271801545834644171531879783366903421476899858557253924965758742156309342576225547265435858772410521140299495496727326704288706105885611264201389476574301347023603974492613317596101484923975583721946133618047413655351059826007675509304710757368239626810179399252073081195359821464307409725679042804420045412007580301879528734393387560251077812807904658163056779176821384652205765040892657319929028025395112019286604910905132809126771979300885088908246977102657336124105195013029255590244986495236410227084657352584209438454814683985206207807107132911627845581209466412808825389701821693891328908028738680271013622614803608555580094132846132311234150639481977301531937794274735588123649625000198804370104681418759869885158598046679871004444800257592224434857790115324052910151333194138324634343680856786793752985153716567211098431495917571848101900232488736675816578759811086887156800806084631892118396418559477624872644850005140365789485218956397582192901979457238021832062662358086920604778534824784117325241667501962842338929593997268212719323383356398016412116822781154183140637048625455912351558870099836320022703173412454266024836129702340463599318004464422522814422755862744228596138434095963374377860294595282724276228843172680868377840307741021637220937366668976366084246945109574927934046535126015513438236717668206936262789022906239282058414825879922600803828206029449764496706440085511789262120001483482797882261157430824730539951433967655662306578180589616149694277287539812522070713999576109929942102305135275922319983576157143693193489883135019146694633024763337526041829442231186439096637059812126931019379421007442128051334823109866981481483644057712523670071949892256744810516777520266495973757585466941609907582852414742569151019499521694404106292866079544731835703236706862480894617884543607748867123446092173145796548629744497916755358221237947091163543517153102732157790364948998689791761111657162955383228231803467990218114512911195043373511560389838075122613070901879574008152443569262764856840631258902019852075800867347825229712540081793860489501377515628493599448307310800423698022561485888301406839308325294512165265997445760852104479747426609063074593078367286349759205377692047762416012806006147392140538085570555203592850192562626599832103760163718650927492955302440479177251554204658206034279240409336238817153330514238336955902707461631204660130269482469535576445597298310002877650152885852948415857822847648845283901289200490815744851748585725853354557369830607598712820549923277922943961076838007871545749097383375092944165722024741386497067157603125166297775518831789355867511548944814142017200241209912522290861834341786932760230382583420023420530823921789768283672044161676416888654248010421839345093991291170438009976718216151091880814232470583944457059313796835962407725623024636203490269698020670740966644441121563025602728411547146252225278837754441705047172009227852858543321388979929772722917815109759895749363100402194632484023138642724207568623079664843073067175696989680947780120526012532687310301645703252585510909922439389780312435852852317688939522736520075409006336106529832145324334094092728727554596736866423009445216167855102395012906595676117367427085179056745975914972366614019515942567128335493195759005405134965186701321586543996587525259051250461853745486725245972176405251648021285392597088667699928576397799673300623082270016996647589621411201267507890745372347297522940468216466609075495550071543951209300334895908170854285967993589092324836062273526144404584274279672883750967912583523661651601905956298268294910006900860812343213268718925254117979698422576468970556851987630242733734404635303883702002042591567667211015970785042505016052262988245110104929180093003881422115985616482572926617238544745062604374011777788695994523613931537069079691651684853765253076690839709695415201068342372682878547067123334212505705940926571164869057576545701160233686878311821827960978429174878132569438226795155125847006779720548447452701245338113928200885521785076501584890467477231250075577463442166899310289024820525408374217714901105258184412313878010497800192032777116693622082862718797585625841901289601759634018409670098192085096999031466868276636884258929170752502696077931057478374555828133959490369567349740816509715605060775228395170774024053765162951340708262107106788056136434047373329811126355221993198394532209348938554124391417461757759471975246131826837584927444054790520073597561904442586319579908843659096189204880624451272807824868121281925868360490943483680470932270672552784128436365253762698996085211265779207713348826861038711243701995223513546567379149402931036089503991718473261640503252800487450805961690228005502477577798911971113833940236688412679067455291530046495524353957364493569209693485626753317328373302927123309529358785175737526956658802857912363118814348288148202369053242467276965532976027481083590778797641713334752537349969368089582934424367044323206840852059658738730299901169635695655822982805181730709962896935152121318073811639047106149966563857545366114546018993498744270407930442205311785224120497937239040643038661109319765331499726129630405765958465648044082177358236233139876794763112435848126342222741663806699420035889951532720924849674005451737008626323655616702455676368166492050196523462260387125695339126261166405272506911504315323974780768527269322908353481155499961776896947906512070771626655197470858510537644270407144370998190151218388679464915374972320745132986462932627893877917284291843553722644723741558371296110320837322480167733729667149257317106230147456271146172734339124610834745573809005606509152419270648156923350577015530778359218324299961410341661478300130891128384070321813100258893683763903171026668180424468395803007263271990794651389493132596545195040962472708450102371816576184706266996614104499192951847747388273259169555937496431132672515703136455833153380196378059086250235272623247776573957811762216547239220103563499119003098209457120398146066189350767205522025575230227054686317124943664123974594489802853828284456118860046629919468594109308005467646512183951135430271476161111898477057507005697425039807001888098768842806735123594592724052360631095273247528418751670239843252789390596921090602257304968915265807405113280126279500214823572990028437495065467932769016713266890535408435472619039601229955239932522943213806456029186453307904727102456260663434068270561476420473042448128640383835802239996003814190360189282002211104529903447387943486986125791801348212629064848207390516507459489687058360476175394246374038969074217463706763291629526839837804609855521303777682623635396030847673959627854011465750907437143362118444537469819106173584374152436260967970751026982489893656437572009866040125186923619292638365061328856181731057677538262073925853039176219742626411156889593698201290100659593191154130859544439651979687584802904993807227655685284605820759472879182770482069179850311479630867466024985724761814130916588107305875632251911195399997083682223348591604492090703401302837701184484696293384922117757378252794076007415803722675660069914256096653641860320543449251896675552104756974374380430906199832723162599981046777412459202786263458001707367129762213172310024322008350230009648756748466141425673084187660001647851279711533346720754473937173660849325035712805078425027374428897190982157797097237528416149711745281484273124198564859310858289241287034189632416393713634007811032287181542752618190425314955480080827867310676435651391313544329590725149825950476271796914261527926638952820826266073369072818400069833845543568858325845616642340676030315310571213150924337648172068389439727253864991343760431433006619123101771259838294991643174511342463352167571770450987508071770221190937676387877574832122799519611266522189732302432846738380347266382839516468281939269196929889216568066568445087744096831287286247637646757393868012521198395470914669520939014005412815164389587358331857172018039429389701708965361330422460542469519122348240981789294395900742249597879797101132900150830236274847238753631970397626717987394774450125239514725831737632642508145471079107209856899161625292001057772449371855608951615275695947213425830043854605556301127008560744660009294548237115375130552760621913232350133674178120585589376085699651084744574577536782399480815865175021848217674549346826209876712743874565828103122951646608517660694132751361239632865493554720576106174958056486810947705226683249686551053471200570403937553702169642869185023327916547510564622939109767363269232493132289059874991408340875596653425160469683571784173618387181953659051043630115064843343608365075782377315969862650033560742006388944756895181451905316822412881242161600964135609002343935213025024379623027314738681719776636261444173568510440138579486204231234073492715108300564882430942605313320330933488475477491772830826919446460683561167984058548336618007029386688184492033573113024982195077037215079163432516544845805813870944703995744767659382615092495251430713843382164445875130510133507830380410402153441174879154033262453567239543819464212083027454642940245303678572798548825017741998963646641707601266003674631309331811644162619855780598364794090084739901565087428846039880752047451493553756303827666672878458707953726321680811929905544892900308930337555960571696250028627923481041113689127497819070294553898160213914785745022648551631399529460229926398232247020056088723885981280398712956352466871974930099915746759356027285419537599134433254406656024308391554336855859109143225292024845894625706374465688887579807882231384017363145042311246954531615306541118623861502774822900061834990184081248082009409153136134594063380307571381242483535790960906248972907958184716122432831728677442242851876206150403835271186245960766832131718667953303074877926247260759430078259530253306109678928642786450829176657299125330157013665384838531718295734496858927245055267607125498337618056889826076454964984816598142186846940336690066440792017899640476252748957909145934537016187330302694239953953177707977866538200690843616764539462260353789275073516103774333789171134659502511619079498221782156542881733459359583980585423751747638776572429447577267750483674521977291487677830650933589539719363650482475377352339393712435729657943657574022321476351020866608807242734295191752417828806111509414480081973925719237865350947689888253833636411097403937238282350651584010937782844690020610188907075351099407977258703600183461091931920190195339675256560395740416445466633219595940145882580268141385418626868606181342903080210157125081621880119426604816088170978498809295247293475317415464492277987916376533300165940519103731878387992747775059814388027338958986893280113073940599110338046094452838510322590742552185233273836439653203666261395172039869899498028825404600620870946939935098963283370278457244877026983600431610214942569325852808642902897560767282696845216856264814623869685545123794742052828719853810805793747560029951935339485696149256765725107440553657121615001710916141050571823388508427924392603917342730416690064523751011189117970676781871995822610656631160569828591767654770633730161888205196122735494209500831444138731586121736139215855170808649962187592111643007453838272735619674296207940867593747818303378783854220845580638434401756768961073842747832518472873925803552375446638467366800289408787701996810569314049125323607414435278120148393089818160521576420971154195178133917454884539146244183191022614917677385180031799216680742599232352490784052808821505129484204824778012913947624242040380559793929037004746682525365035878247192678785529429521815612695723443872574511790662356741474165261623293934454580794308126658821033259578762408680854736502422857105919850169617220912154673655620748165784889412452598484940502314832922764093455470922545240509565268867319350024120507689330939493766252775134046948120018725708510273720523652201215380696358588265171258091228085795137152168419129284917752791727841303750979140550158736955722415052189758293487939517644345496418516427743567460405608846337231012853905911478588556697172133032559348968108525879133445530212355762842881775792176712887337515691584837764820095593871016097638075320123837502123407361545411381562945478768130448113732150174549343339185650279523702601609354990875967951559246090464230212390146906752945783365553502728493082001562540168908307067677221400648843564890843625735499468215526973680190161749350212642197484162064501246609735207700533076019104409197596567375831605372162315484744674525719223520388436365395258016518549273904435833816082178741726449314349646548010412464473596561035441138534946777098612187363968524379827937991168762550448144610433748309868572587601466415481199557610073127722576606553949134220812906170758213808945779944266971094047296514729550672424806787535670897960368632061592615152039970719494900585342077070658881458367410111778578672771996182470669510528349894312912318481118480161831555469723143735454538936870625219159069965656620456040475179990627257933324593973504427425125280466246504065875423823558570422538342261349251621772975598836101995577613398539684763020468049741386348264230522688193947205520305560394547355158846828120547930443457092712753617763606335104262124187192826254571251436376569194488641534224648355493706380170506370594352246753603062498807046705849051656468383317564513028994836159351500991064969249708572079235186619766302684272438584107981101830383524278620557223914499864203198364632420231683105290198531236918967271445369157406055009707908674267834782843108822037726356153287657949286242213123324320880151076670804307149917303754947927770992568602219374197427485983903342722890524131254960569125305928534615917168738116383930539155584583890045090602476936175402801743369657323359317403896551228355453336399363708268158298330368576944827395963683723809767582930980597140830606378716365690135134199892442233435113979698066633260240964874286609906871779234802206688600627446445327209401152436300508005380137044320356786907237780244894647185084612757064469302853438165182582499082889736203759860014482231134723885482291941707069518963757975210200173416708887255367315962214429736773952311730990977880152979134960475377943596536801305509564087433315687917928259061728695189501583050939712443987433942365306250756179913640705892038681802144112070680074114152076442354362107523576593432387374888920782829716410099315939034055069251529918956068827109768075890463242268001619093032379188484720072935046902760915043005640636960798324114144101586816662638110913747034368692562102656997742819138604707101179031659359105079894483934080488736018409286149633738519979366027358377605339468525291171277935220978825568596931104867027601536613496853382159884753507550157719252669758564141285239233980034244513240709605045979714128805400911723350486755437046184844277691302539461502945745134915581063488548231158998437444686103248706164905966266458342223915441740102094438473925041282538442501141689578920984511214819161469000714911450196423326608687831162592463485968757968493184991162730009274832664318070326946176496067625194891741779117692480598818275553945192652421220992087234371405288632764715699303795305380408397973438821846587773361087107587435231768548558588840130450654097592616565153742408924900840094139740242880459080639079939521420009669538579428667958155974777100823313629680591397314491195914799352678171602137366176986896645439522349078614964324804265719848669883917016853052387314732784347776373694477685202189456970293512678967484046147530558979166940038765809436931280147103194724679726605742162088353354195220347179005791755196742116859316447431474414155196683715622677998915531367658197814703024071939742865531682963064981676114216783920447190097667495201495523288704689128017669090922700027872277998330793111529253896544823923958814635158234380432849092523432174287468913225008417320153549670614085692126645199951190612316451824558623924587383846180961922145842434567204800707040523718685560358588348937258552412570614845803381379724836290588454277034366472486911603163932512093752283830268690479530144262230976212186330733971004067078279161506432000525196095087348076167272959980722298205417549269085504340266042781947208733598432969418816687435311462877609561259881789853479283088800048631067083700905299530716607858581259887393629651377905161682192227734499165745341327342379881535261536868502255810733361008031167057973920393476686941094703607058123907891151876614552099787443250853742268072430729690933789235826498127278802562486344345962170040798224242588531074881188497686373622211694555151762427379425156039303509169227582861854416223958555973994891151626125441114409515792603487028272865313122698154312734922044061521509831132783317186817757059747816880531162623472462079777463443068344518236039131743378914458911495008633778042271694480580686278319483861994676503130028148433310702393994737620689621355874955717019239569532999363251782084792799086536881788268337254943712996253855554855203369633577604942315806926994262369404539081227637896810038417084371833442060262057299976785955948957695503527350641088999423894852649855969007764513543944194066619493820514034903649328355455782766090174249150956043140079671054452084306638882631889645178916349690017125423526196189459979751795587352603620832757258178550992525860872367505923311025578125787374127263160993297383646921737138423716799063662587732488407185197056842546123425689063949155580131903353488200705873020259534462119627232451877554989708673882197742702951374348986743677397671493207570339733575810154561508298910687857022900794973368923417500377322931265292132776095434281115769894431219656158537427383939972503238243208599978698260607273350245146696850252764069201794381366566200319020724272122887873043525545536837526080239436287330948473213989267214334363256384340963559980065557191547724483981143765640382469139332079253738441951503787899281233108656459445529809987193782437196507187018305216319738431325633198109621392261520047251428844857165650782698245810391238457919881147734695938183620917838816239057737914700149253761155381974195265536120838251981937479385413951589564312902302594559895123324098273277592227404724244605083848508491797887821314003790601665765317809711589585690327739272602433587588291422582013672437877610685141598351030848371864682864729376282191137388598164076041700269955298023262827364502299008853625871581244288509104372455362988887509291421141155104149648076317228310535260491441168714632829665434914636511510028032951705810582989825462499301539989172716291607447775914404830950400585857338020904914133891046380937295652717953236199673218845457088887698499571624674830182294167506218830797023333423541162217369727932334223718133840178010665742797950863929220484675966295301531700428710139735371537103686401679723132098261018228237106282631682182743144847136573160931586300879219889276719020979514424525511523670732747486865779705773037396532662294879722129733900057163730913049375556079466580939735814812422932513753602975420279722982124827254727743946874913336195808588255408294357377733054885721310215339120315943713731507883938407539274917750929310446547902297257641504631110913448002658987301831704833620148997492268568673044167413400087098919155765942284109337319384184367528805402889657986448444201654031494516823032707926548573309949155942997792380586846535630017331666359682559918794245891967828218558942865041964729855335779831167446727409300859985871212088665688042771922897055317404502516714921206545931811398717810856575914191385970122442237336635227472119713390831297298595533882757723594852451476842621747016974904481121707880085948268651885570976404895954027090457008326097697412241570792269997130835111896712957853174095786863992394112267852457641015607676331191852021890679874752398916206069826995269481947623577668018196208810636943820016838092344560977473252224626326908506435066928601535538358402298658364502173915675016160161522358933759112970950648154815346582655703790039056539809312671825645797664902646633002170996362758649611679461700552124044500578814416030385708652754196479063447647653305170768127105093623252319331191807009111186667761087994340816240455343272448577469067598558141906791005541093999883846051611982550523895575658220521736537766011788822633809843058284214072685359515037672990199818849086382088598121759028908658094261911861676648245780633339341270290631024648840593898130842880461215523096652283548917012768578650093860306947294606561135198596646942399375441724159397458935281656286346773861246055968132799073180198006303394572328606624950085175561542702687298080848359146439418062680915988576078545840951224618920270696726466732195847644779762941566056096619896174561600105928123456045405434678299888858502250839750044751827838437145692662140454102393929809006364345779989756479995395757099038348947590945563016013572572563484937856801173279591570792589051578223594824397643406725683599196538839137377651341175559243330797182049429465799358549491835100878146033871851850656993555194564010912374376247932495979260370621915933957091617631957337346828939810449321770797521309887329055154541552620514364785819678263793708737253661519249552110401719428984085008792959301518192140777353276071634111832807495696263351493639113955157741711923558108068686176812132911727539142233983745854141938299342683771588762195678165609260826581818589489563835534711163121020121506998195792081491367250797938692317672462454936577104406237424336197402987086041935779550527825013694550358167992100226915671264865869424126054444460715731607769041027700309005325697534945374250485319154740494977744426256334673035321335095466115907104810151751781699524473115416892092128544039337067872599014322892959077123053152554815551412820539340556308285651689215369300853371108712146334894616776963552272522795511305789615891946109804506690627756733490484428224210656103154311599678301854413369783959424458174251713069131895333911350403664723340412862653184119778825622617264245726344867046293844205830245503094311222937749492230625306176312741007590044351238020765170144136582634766951298724822091415577061381236106461854739670828330052029955672218771444773169806232816013112843894004034363401082397358848294352798449506600615712336543727941368402359362814587316293199949201567062630509653848194691156568468058599316535309154117717510057078563932483982040298144646461849690624740920774575222799515510297960384454762884527622718392828842577457017170490073023001015035282666363983447596218722047784262191872124011365917349563835810673113599786131521967975456364256971736160325449176464335263087177534987315535813618968778189287635107125491811111683148411954052123551749615343494086309103259314933239056746893888674825437742772704337099074192946950722413985539911438757784995023017196114722352439229954816638049486905919371918808935793265293396736205032213394709048444430696949532447829610062065689839772117058576453980088753770062738485049936632130504683355245803661498898469154629770179359722541249491205011184429384670458400562694540204860876165360460093202990978760983259410549641705598453975321333548125609395178043975134805200019627230086802519671548242788742586480088406373479764682355123870264181872847419557046298054194186672574414821183920316901657698252646884174943725390074743539467728514852280751329157118730420404525909135223750631496445926693935838048882559177947614873963120423899617730831443315139334864717962997597052940241487893446641814209288478766126976489548182210178555709903178958723715594243468238911728061081115445285146735583967088068194579523093190082887610234749870947347001078837898502949975275334349022534505462092347356090338932987184499088761576696995582908763538383699150422633741880958255583879190975481422023948931778803519586344054038629142488353960145734493915672596671715925140828741484332998326056755692784919403316147693728737447038089512923652446698876587495101404209847178979583938795464033549588413988368371144735455358095534311787556654264495337071324271350914962723077575012737506174992495787905927111465078993522348991171807298585113129516741055943368263927485704490317785881537893076485102377117987196387158983075479922468276366547063047031915406182632643593282090039765978034636502794518548782663265720876386917926025716701588103842185995362052171424399439960806916238895182009384740364788316421127432951561815129334029662518298931391549901738443167068175178479259976213487817910899866597253424800684176072275279084643544478751692345994733981041400130383337699341985642449411766718592040075674926706441194870311077991273682506896889393546749608326485821090623891484313207642611976723647847884823923889279433191381854839774388035747903811712581026571841233548513541542049845266974973803987439605860090105106113964364743902685761176210612109189927967258336174097027745775396412081041430626850895685799599760928731327992125583923261127664003878961775912752520869433996949320788407184288673592200701738573224584710335521233565414421371236330338838844967229479986242320924661578534108688132941971291049645021936612202348154254835174491761760467991284579057002595814881196832278323655696215154593141583943401311909891752849896230388694466863237675101423500869832716221603520358483001494084020124581278149145089807723676081619256987113395956645098316579982249657037453177415667278850089040805053477650036976540117108782523271178168389074666420129108405181996863951664792230656542948565262960408886111915305866263166350261247604226806012735277096755410916232899790794977628792428868839128460367361202803562474969137287634980610782413885742352735616312009760210486737420347186255925768897649831526300674566096720672614932953872955020358114416848409973895928381345166313944623927302148053230446898980921108489348909194894120747535941733195470266086580225494252906506147376440181119261468631429186997574656558592164534571482311627214042315683151350723715598424618014378450097605763141663125377213719047350680882527873592553119124995240828857662090721784804741214434935381158708937984193606564081627616760714715130756389789603761782924959510287938895490240813946538931446427119019100424066155212712036822288545232728375033057679286247911018476848025981991242424329999233205275732839606086726182213631053769006334351577017749064133561839411729105064864707269309225736861492597685172666300285106362573621007877923399591158113725549391725298682508800941116187291382121284596577190447330941228656116993524883986018217968507593063989318371713515843040268264018371863860907910663168540909598871137368749993605809258677226572039224823948730294767469003258119055525314080604426482482849105815836915916334484180682229903726109200877575736281266099879429435654832193928166213042115057067661939924293202392344115133801098714092339057211836693790401436027971193438259264052351520443147294848381809385620569162484777243508155830442562307216807265800507206174229833058581174460414037750059003706729368906552206406429158729133239682483825896441139694804518154277612569969208192452902768498024764206871262006225459629392096838060413041610358858227436093999852520198423098109529634564632996208502119427473032372589327060296833794179989206354160437288398622447775292996617014124832455793329636570443140781164145964353492997175999862353545569872022602117154425857891586802669712573509623566794643074689679258121144981647166777098229436342804989923686782773910923285090803094484420114521200036894419100734212453078932712670557297474639483503435042943356551010862313953184312808629611615270207562676240277241520220053666886566665719159170588483299387311855881549799042201327834037462160941414702150588174425506588557662061373851356892918806542441153924859359150809853687453207826138779028649553563847428186747682646705598621247888124878235305479068933338524816808242713837568814581689076604454257843461657560588835525593677280330208582080076888412982991731994621846958894002171232488529788575014483534181385003859589025898863348470318701832877747915435424822875555401328632618969397308605584923492159964012070266469459085321402331633308128053672656423025603032586053479794880809610433393102374680532606849506993416675890864601259555972606506780951021627559064934083789445616737057666456306072282312035322502716209497674283362336358684539119601065688325277958697455146199923272502035440865222004840918439096629563277840147163116965371022950773961427185877169283789395063384499751466733881022740442619816734793943987135270510054370283106425201850891212095594539199412149815882737927254427666551586792209147969044049026150854263730235733950064230372473527949494957718007233017334397734784036788499427753783903220525565520435965062032600547262435731799247582159155945640481649357618222381728594365023501843433884301500177955293231259250548767419926996647947089590367704740070198345061409894557355278561293185659986830430555497826567232637487676197326189590635296316113566704882445746048388870475539993853934597058529707345650925670161135307188661223002300277329791416028004300689186779445345589797341044394615926852128158528601734686751823682887880018959067738568225512060656295617852338040307225052509909493091631592560246908102666532424682878365412981919295751360026479636775957015545187923522707821533674759852516502619685624965488842704919930124606516212561424487308145631679175526376066130735287574058403895858242348256720618937320029192448206628637193942836633962301794255065891839296876855149618183931863083053437387598970520603804505598288682518700775018171573577290559411201880446495901656280296844033438114190550609680240459629079186050468331193992200835796425893760978720599649396776387380644816760863957222273600545293778388115849294358030985735912728758860849074715664533495203598312204381109755127049661025041257997724325952772453824897798737452847691941875737397529451278955174828394523430001265418321685105077156186560938164223794988601405230450047799942068672952752536951792426548428645210065085555182152630308566585705548572675366442184898259872251488807806813841392647190167539922507242811809170849747858129394601929353559261408610643425725538492077407548071264180275471890861422250053767083102440118785220475896554457125548877889955444206333382908416106657795384909579206527218648992916598021939063808294426023560108754003064718498722004779430755974137527008084051629550469185459908193937362793659517506981865750050328647130597978332565596559221102490183842121576018756232159998815054864758883720208727680893964511798768725463001897434375455875155830372862149262483601702588984258665253726097314135413383421274339202438911980130258694374684566830813191592453792909804771827500889880367451196895349004065161962565826520946068329183808668765631793294658122305370509559226286932262091783419184865898286436866294539419740387417778160637601608379980063679348920681381800550801855645133326327933622774314596968747172900297918422301196604124486947056111600402407995750437367809556372326528010007094818397001914735283169019046763491534326136318962511789202077209512115737647995752998525800127847919513750831260336560946012752203652126702762042523661076518275408851932823494017889712247862864105734619566815149937577876348653993467193815334951990859170223450471800508824994982078944957511538022725783573142745673078781333883802584647254271085822142146515502408502787526078875959538217147665250568787606468982352727967196440929839197006340505789911677173753386363961211824886133588869585604317415863776933277432355757371908637652370782264664210976597971413388713362953901659341774052000745574211443756669076740168951884634971123076581328993220944068657222399713686351899344579613185087546416379121910215949599761990229367876014796110841369822811401779151924780381126553754806584612471355750550584615709487986659917214996081271940892031552499978718411014039217113504622561083069520813698843036328723136096080036448043893056193286894388351916828877134000749906550265550418695040242772660128481275306935957144405797043031749630325370560958923645928625930581054304117047247891533343050593108208486046640541391731600461057022100783396979970690059323776244946212652517333984094162236742404596475700241131595520444536518390646461258979289333470772923120228749571643564265168980431272540578794382811785947817851475037979792188730509899541850698127922738614851131762384744281119737455957422355293607929161151188829011214122411998145986558230593356568835662012348648332513003693982989107558045794885379889038662793344249550241198689396339341418018240144375575402924783768445907103121968425949463234555119107005447097824919759433505265215719732995624793479361728612442563289719858272247077065471632242507846339545634251767143986012462453053958396460821421396791220002919412029505996695353347238812464390591017507076202969779270865211284400347167262249350972195235741373738912520666163699010367572209630064071919059841028655111841026286042588097612592836054883316637417728578117435881937263244395444682095754432785282198759647870613248691738130877240045631829925466856193295286503562321000930995955744026720774849178498011813472093425029120583744624849734809811726264647072334778960164012728750417687537488385401727653936393124106337978953923897497449856037746006552783042476920696648632138943024128788448946364111386749569492158868694761921491644167257018058325017643000139319874173398425162996169319903880168646138413071277930765395692743853468331454848040031347404354167852180012851413637874117959317724989094140593706526323619881387145973494252194203544315580874672352979752908045480862063918676294584221323137509726891194238243099051535384406505674313781517437600178484463152384028611243211001193814586472980318225952860647429667740071527591904122754458896162212712471732859179919590338043245974319838300636857141814461664711290044776384214629451171132998273591556432102063079813685466952506303158615988407818234874722997786933976688335694454767004586781161688713132662010673185206485855890528560563135515553724369028813771290209546107868302948015618583009467626949447976117703740575782664690131220074453730747020658056329220318887564338187733661174495627543322216896052321682767884020803958341009975806788709369054849541990997327775754857299786102370055026600891893827556549531608818608722145097099189710257525627775904640946887984672129879285160363038757387634217706690704221002399360015585111217356911579794931931001564049091612773442942782695860557950758668210202948613179984370925778102659304192855196129852771007300611535352596730350511985774524475579812568359198107367417013359742330414069089792299603357561400288398616598712479344295890399599826963859641293685192373685350552481243534017871854443321818823598961613111999066659001129413504339289450214304226162710726280492468581275205816073874770945242905020965931958579082157083386237410301461191951021220862311230214170253884757407456876348556158394673883115362452017434718691560500339158960434185230689510410754073420628849407877854621377342984006932764789703493326595093585949239035666255191322820386148804967501949475803810813672464347474700261859563305083959759144530280686258128032032575603680331106065309678431484543476396260683064202020502613096127708001484125828825474049276282553656994496021748999285062559569719247901581212405481075909509992244762452123373352960411571662042249480531034336151511850942339958307151743399055881446719372464151492527918577121270598005852053210832971123577299742914883439006174718694038633326914824660705665227086000573046706572379493268823769124262618609229740499337725947561708365837889245505677282460629472235915592966989670803767232202279850217287650270379026242870809494744747181793352945696806332823122783524265862062243565779952560826393740103929775253329506692225216988224933495317588428416563206800078555599630795016166040557675238378004469968746708935074319978632337481324415136534540029359668292013223280095706891671222906727607245121638765505529691005210593444192369545078043219879693000024099252602484672481571412972805060448143392248169881329174451605951915730694531433057541216857622462123147742154816369753098490555093742626967620785284741503551585579927446331331715469290054292064275786055237749217933434404071729061585500832313694044820346519538980598629143894595370342117071519043539182234396499386721986391697256143473820459889419989488639926715055928401092290240742883388001153999026800485282257442740524373798491561777160119382156622297555625640443320509993938293443890236122315690060732557740166725553174178822628596324011530094657348083235846936766485762546791199986719245311211430448999502496180436626205282077834039630420598386583503235527718870353021755351970829018434309828427114776647085370482543400022527743350017074187757650264556284345931240809319213171993144943500120954490751619060732746200090182958682459206483553171864413144741221012552237840977747254489118845475691391476224915171448333093637546031657742275541727204389007136491944628202480834132580881837329618450669248747782286808257526725274640275466875199912080855199982729952841532442927806570460486712206085643800130999358709040521244059829275666922563616924928815339109854377216802127475781580067584982842076180237939330890083278419123887875269620661219542211695262713434834637115164459376848372675139217890096785181266056005393776972140136319368993276960279762423108034732952667043412311188279711338138373083067115805703663267975992272545476881095562042099696302127409524805711371984707939864924199171763383905662515507399593233742707502195285281194965492155310756716265397697783190792675578625085066348963665501527574877834993189753344184532883992276540268664954670678375047237274094882323017064789421084843757765678425983757762149372528718897844504779302818230640807193477434321105032896278472332756897154614105101925518317227043025230673070290941381907622610572945724399068414766562626985082446284631765992662576634285283361158653651314635419926785487358049094295816881380307494894224700575104796424439654045375080117959850140761419698132223826461603444294227547857363917173528790863306162909585780252389336555136311777606502365469248596385999300083231150341483704397532208795136333615870251085386012428672402386052475640207966068875148008144427169699794154036670785637848834093315282903604077605596010157584797026663952330999728566532257639139503929962798070190685388449460912552194883276322012609668215059370801672391970580802810134592013871231960650088973665182325172184633714295076501889988000622279712538522386546590870756412634609679265557363951830802589910855540270847169627999567850686987268745708190707432747458383442488266934640323140874509592486086037091074820126766647936240983243520945198972286658636034416661643920309427389093150401442342918762839587902143008079025069971361546927564018910853601804688682352762236292296253353894750097926512681201902492914857398231855820997940556445308986471338377099522800415768307603794311546560102644193028533030339451033143297065768296995079284884687637943713967559173853307205749499655952647082111733123132976496323488011241086252473617257794736459277049271173038546817744665233827760184393427514713898622721196827745311925398879834724151024035334700999177318876315391017222906569188378474325990841131849000839874420489398687891539553196326459684691348365463827089932208355979931760750847748539241278780784713067879519685890657414959216699996900657176380316050934510108507019893433507620282624111150160110651604950360546981547855037860006940769662478212435525721255092295561340355660955295547741988928053922770502680004166531311977151868929338803152607214112480299905099084437751561682948884366801835002856331608647973316209217425596090871280273767794790818982732508495640714893727277450961404400861191009148087376741940939319434699954921840010546375257598927740466407672757932977816184964879262759571022483378105662777515678377423042264772620112210475895883892851045970839830775591373678492521543061127221500916122021050962299249873422161488456820496067249647550823232976653601155550144715779926148071297452818901710926393344410569683602838032702290354898566515895722329161547646030768076476964765097745577362695088637547384229218963740865417905548265887833692474837311471520889884303084234019062588956126974059069281048841520120376683245443273037877166569718898580654868519426178727372991932486165688087232963019088372174155680989670364319322767825258712778365094117616053261231835985695906259735495243002832644197416282384191156997789759945410836097168050036706991603158200085182547525471541616443919259927793380617211620637568429217789978036071532008600295152589703073755087967939872067440296645097700813689218903569247174330260229747618820958576713753694984731927666321002159283462150804950886525986939874751812257083932461030313544866670163981448313511915141142187855001582903310569194215865765980078089573136711610450935703840442664367728223371974692181999393315608746731412269509745826323870853969193329215876463249897701851773880938803005659833640763559140675554580979500857520599222514266171075422027621569302043782108475448677633892584695073921272669039365402427378916346986125450916823623797408071270305484978519044966056652118853532811046723736626956656133415047187060451044988399457421818883009006159780270770659790390324937635615712334642792323588068002077756681067785573691669174674179802058645494508963776508592972413496288637746365023957721756847634592588070044884065442139864727674914210951766046200249760573724408005148660704125561135308182572688265385516428916197645169769369692757857657412627410785431159878113573907738939960374030246704211801946871794128897702566086600272640730389150873670589358751586287931470770820811285469721579586713819548190497302964606804573265049013222566184499161738260712765175644763912743371582459034114730920987350169124343624302521236960426560827844946970145923621790559457752779649124214340499680825949880498549282211539608216297724180444741535830390021773055479654846936880383932091800133986284218593616017947208043401451915742416324531732578139801112477182750397501458977089862772818587974407073648725823055509772583936004459743197283183656082852262230232098911347950719645225867823323532733610634478418740959919790483563080194145169282979361366693665325487937130094959379210769320964300841125652514528818384686902619992594222940624555985949529434635105482303692870097504487898899717280259782165186237619910548453254564672320298468318371341962098850203434192686924604832088541621253170612036289162184566091305417562615184968744866825645565157755269440291808415632703481361379429475413413936206914531877813530546888815440309177177719522716134925715649678562743983859711176158944741332786949161751286274974768510601215976172365582432756846790149862579204811276496156244231659438375991883770110822615655356693474882380585917362954875710340667952992900251163598342016927991189562157914949304630453399797368131044753450395317138236001299227062955774522359139562504925551965516788571874643257495453351452756258718500179948409840372963897163349406250734094584239420437203424012275975016408695186420351524074604506008621420265265396395405005048308960144509614867903957221727088979970534059438773185148363094980182552553350912449266264717624280284355795293661147297749314464755734436667033580536632207414675653142639253081630355514058970807021780961537369852684920068198277423313105144993047563164257929301499124019237619556293286566171206950752500980075276005272380405779675247239617992877983811966218805974778821509391761727789313085148599052789429475992310533902808518704942510279144269313499253465378076306713978243439495108647344527854383629065643080914361692570161076904480688852971269426631335899158347797189049468673054687869133830913474324400096657928160109015449970659752918929689081406776508553074603678145986819324918792378358081256140095967056739595194204713301228613659706963588865291092507557113763639923043888808850710434812749899463851958505237876878591606072625689721749782696638402828598124498678134175778868958907499796369930263260042700916679817217149845605006069454697029540431341923317441826787741624116533939627939417261376867007695362574746488836379712959007415143810472573052137720381865302004804094059514387234122812744703111260609998088758823300399567571322330930957957396969464254480833871359339696072119979830832286547981235265303112311688506870729109948774002292741241702052649810097261941052525239752846162209272195894078248700983959412905000511355656947861352587410186082734520347952951405353573667946708043241972019151489907965146815412564537262405142222802481941814277624044592104560278704410333148038005999108641691692269200256139180873253705024143795547557464782831728254662586949340106397412432980265585688992950388053022883290696886093566540095965970359910458671962221875745201764647360065551813492344744733458242554031305270576222067832132625443459113016498374690173561109132488687811712066869322970382753445080947427374065736440792292955168492117924393398582016366439196849781479507571553102173677122800453854783188769677183295290053361177712595229540607633195280946686105956031187913857141817731988531232206077129082072288445213946010848708667485837775241650052699781604577767160985260977724050901509087774173611630922474283079630011811709120623048932365912798154270772329164215095360049504406374765368914418824328699147783378822416824278295466451135033682682263305069235169436293305252725975585794522307524071635118495718402976050358090906073274790700899777647116092443170652013352954742053265595930151080366782057968758649697195413818529827516915798219494626178606536687107009011831871065415363080774548279356859566393343746069721713075865886482739737457062725178456422387908299599405066828672354425040514252395258728597795681303747189866198473839542228481845585321857742824736006583245294093633265910732628769568234551927398329191159647796987788028429741231161515116871939742792165246104307650854082815619083363615750685674127695390060551199927828061729276948163658404444852044718824786950007935120659443951938363288962831449171318320021915487169234135541097896858755542361036554624999896236689736080101938001585346057582151752048940719710071928611544716864076500037531921291467280271180106076241399326970819224789246532349369019134653764591543777200587203724729638122220537467728561470581805143054511512090889119976884644716442644247668344895335311617517443564573035088443323233258408271003521933271560952101309734314709475457109796382014708800913516724059358922752589394133116564525197920572610253824306304508441715351838873797097344935406540377145924636452937739681516901379643150494544874558433458880109929208885159980177819151655689494711938181350033054846909728004447673216652385567788936106030348883375334195760532299352859931210169165830960113614462856828241282701491532802383527614946786128271728347230958346398575701242256495013669347112531085213410188613246684822729594048396380062140640491067773948098684098012846418601159690675348446871604961754694414518058844096797219081788105861995772263157617654678810411670997367543734698036931358718871617536271398954988461858938550108751151437160625140432127325514029274050320267383806295746518624429899312835707998186916745311230719746033257736593996829587157395607308892052594389801678639697702483041060667680076722231047411341664955344921854640999505414026980123777336356792182480723190211872069894005056478178162273294644569594812734257735736895462486928522874171055927409862777274145861808754771305472182362805046152087756001415843705884686086352499596060268454290064240594586689240576956784349116877133671174875893055332241697281958871929668757269390877754451386691297260751863794635664174067312800406525571637790336755155173971750040527995060054344919586683625545342461878150331982663330887705888908433652807163159142864576826865984106468486223207389145704046360134773440383269860799612170700874058656263673196581438160288456348422113998911990365737914163948837925161083302514270486355453368163003142641701931712866827599992401361867623756350649702433398223039602403351757495988582039445812981924535082603759838923657056658442193844305353098363696565945351672838612696658626890146894931919398521584498526734375740188694333785325163019797219462593488628134435772832580381476853881035997672318962348362506301691279643683432763125368463151859749304215372474282301608490994833513035321023982281026614475796968706222888018079066432064479576273124441310894674470179931582010430662377144657705019505175353569494110071809141521283345956708330011293518456358990485509773540981726888393736334107452736658506587508361925764767691576790346309927000404985873668434596639969710264061612054444165850836791014918447825719464840928929099109505082419347333447258118934708676419369945352943383405516892987320849801846271846604703270075476435589011238549276042731672702788923605154127203171970972236787964467185452298128943705091287889388045815116116577341017413719148868475091298112138447116239676785961450956584428580134438430009072348288548043626062278369257827063465530720240345839345733627194921096926567060124295213000931823780600349430197694831834138380610391925033201349884606670565753594994470157377622523260626128905875112278795170721439866959805194538850887947131768324144100800764213738297796896371948227634677154973920414609249899008684054589673734729136287847916882182721070732989040720235308689251294275210759610803579600080899365260167648548264612133470841871853240934481853928660402908468088472491903723133549860980484639781402044891830666162502377886988285479467482593212751854396286275467289242148755037466351065237045562095194938837835131500156233418926118947654561110458279390756520209100009066022919858007169836595337039532157156389263227795415977249447750457609806853392518979415186557788046618776364349057480642070743741397544317670582903389444934988782121395682415119680675570648851532908736847359261014411929277945332198748070697999770750523703290365430250282068021506460374713478098169962394628553012282096804135194838892100251717612795193552806250142240914336772882717127159420459427904658980006167674224153468918082513580076255404712145629115253258001433436771174039800686121495844348448215254609893216925749699122814154514626015940588340672952406080374762140727178147374386661637547532371514838779657546104445856747020784925445739600216369576165461144036631978577564028075201740348987778593365308694196531381528332618481644030990210390301226145044440817248509201184362908599303270974040921907690815038683249476275429613182498525663662075396756310044852844845933127070391808030931617460742323908253732349490080004016716877733476586292124831536754785879630444518150079732914409900911558455773382608332770716311143167011564089016190757579149565644162560041044373064053507972460434344270874663782594314848343181832943833503813753234585131838780009412520822196350725621597040830562075509271819857142795057813963694505683530220274202496142723530492221929688264812982092764789555683435376338240116734927861272480861340667199262404605499439401837601815744415863639559016316082001166029860029722569183940340035609043826114652362347712408957015113957150792976545654465444922255239442703065867382277677995783894530618273629913778105288360021994155890878183345502416059973545547334738549102675675938072939769447683292929586877809145691989168140016680116949631324694346112206160467925405270284001888495425719210288772705571030285019379743089545370853986223250754093798179804020323191138080086484024231494890191570792218614683889134151757946901588039483235292821221710848041672126234804783957494513273336128539479936741982572022703544158673109646946099462746765083071347410888092107288418324255116791242648604568067846071615842450217370408212608322181467082566307343425312184162436494794339357645014997488392294203127023940170529509450293540421208399953183316854007832797804409873716770117539858532211677185804737158561613292363892148544204793009297590045726203064747638912648131635499176583360531377465752686467274541785898349632170401684458344719589421487757595464889689827878588177228342336251398056631298146454528579349788468385465693048788683798508402482132009729788385435418209916715067462512736107359008107248300496151657089002837548982589608684462777459455920922394582089474601456586138988296556417563712235869761790482990419831291597362266871630331809916098992038353444001512361845247719178416123986116606661687866920027363892004136837565881771936102361142731367464167566064890879665426840330940163361078399185826132686666695725719869006606057686269776259217368222072848592705148096517721219220057472725545295906057650463456323305610861289264382884678912626235254764673822908791839640208653365993183588826165966666652340114047255778523203088507249759079983649731542793278429869716013623297891839818874709279203396769442336195292463673731973575163532637004406677819339264314199961960502706774476203087333037463113224954554818592221780406839987616076623515181357157495645747250388360898099160424680443690932178080446987409718219155255225970722796879918434611734758328271075826291987310321258206391524166503923090957909219253666134499353501104328246561114742661185320923815859994686113019803753168915695167633964668459506328861607689639655386787386169857440643197491207550131534138537798260160176503995956029510245132520319743763935795041097126845603899536226101463840279445783320170906057087432206931800536020305023940109804078540244300810152456802721195980587844640113306006138201954677638199430207192851163937526635919711452134115675732829965993586846506843770075622574740441537933303060444420926208890662546429530479355005109265424396976736664445823432290561623622221873828234522139291780645219813974783807681082601010188829400693636392192575662456456893126082565018345013444238934954150119852088375989994983164808172267645662165709212817926565257569999103126797058595127217170997601534081035599710198192163879755191027360649101550130564862381940610664573049872371974381300768566355310431737737197383986405085398091025617702849310078155165733512416017591563831375150750730991821848941404973769815355040071246665218555845510125835209745394198548960073329104985142309934152593225106287203869677856737252735519828442449053615841741617775531873296273075707368851843087161318775725406706476389192004109694899852217753049981616048301407854738297504582625575788788732820493612436879588748380621051863727494665952417017803209980158995509771730922411475381393781540638176811823633203629195104258482482751512185447463838963703860952950758137228280783102695854572016890239679068158761253471655016037345014275016905281664378763282963397151309231867364504758684123518923452910261089627988418961134993184358227158024117612810059519928885751463016323850495836758084502359249846474890399037386100146106477179900190843857719570362845242582269457104808795191005486752551466874006574949824410548110319169248674918646252495658609240589074315147969338832337022365509353062998084727294705200106124788170524856676864408555883134567245799372691657248701919057201935477211689167339275751655001915386704910238461957398441651675090682280745519013978964821430694073100825155980151001987039255912006161106119348778363638532968146106833146749552429929238385749459302814181978264547746826699306200234422213422523620616788073642824879894652919825158818787020087967669427821323028049377911126074205295362089958360882060844293456815943510555125455434266442454061417933990534911372484613099894694379574305684321458236009035419883382777689936857343740691351353866627892352356706716620788941009487329326258802886162273756736526291129560043845392802499315840655025667725026578279213811061212778938361955804595740170460767750769799665429006077519519097926425303266158238610821376146695835761330961024695532765030813763622998105373944978415408588954259193709988629946870678491991562573264898832758024885260251914251570349317934696529254549590920745722438755182562556790808819010594762521747540325542411610477731172504867507824052500162623207742784544187571450510959607162325448344297733886941075654917482343983575514351830946886213755940702380312634759102402585456736022386847609453429522762865992214547463357295299470745209332754717044578739214300194904955168525953417690217386506005852878254892046295746687892411102256413426922137892646603058198006666936689979833245605259192581602433953027560769305687094654364539235708153492073512711109251803027450444398699850981064480057802281745909227727581985168124131913190170161522724008911110976837347140051982505400939375385168944424205492482939889781694814729441686163466593477023781629865612843481735836665157018760872845491880070462245046901021147141922377566959730282546148946368575064060037887770364884302612446391996068486576061619554993855210795798385793756968731068441440320081840998166808552559664298158415718554909236448033189010294783617152666325991205737017942139059016045412848736473179927297520168711968719718946049744987844777269820995911824886436647622423454990942152888550137624450529994568411001757895696129826143659454330487958278915928619336059768736500483136863427135278235713609466534520002473566845832235879084812944407608601446129372622643794628471159704728200018948668547689381275528279094885970185469075455377885779486140185286991712118973684980649750053678371617917920875419039567782731745098506174717789322029028310402734011440779650633931748988464677018674495536914382346740218852906536113853610054360940585414143138988631633044881170485541613695168716308960386778286032366183366213118516069901177329622925287002185046822897395178779396370512529076975536544273322944049461422424164073145400832880125699832562936081732696249677323870193987590274529332635694285819081437897916427040203281963259726502731619502059949888099594066669268460339616338591581086540685057156625400604055968566918914021432852483623688473779747174303080131440144479868262043919881528105873629193252771793991549734060848775523943306392894973528755305845703110451220786788478429779424902513175628183601347672370932228257334781450372699425671656224376769746814434447380325816269913017292463349665880517943195574032484648820581391276235428822481389640912276179289260018159698848484935274042694790579004572014442256702990576099082393622645887115302653003839846611075802113019131611274196035495607512563397387616821544173991394551769308780899703276719688301220004005036579923779627360741554153632005684806687264729347677832255355308816205736075626572335413557628432268440584805606772889907220280466409267539089944367573215619871240312150029585261821955469321252381741359488325232373963423435298489523960718267516600139939681405393464612612408192970776551883927028550244013792271153288937722274423491146230395747959533911545485401127624294683514935802807705586308284018390091914836228980627918573139726987049801484869229635343815740510502007041259889488899006363622852775134099016566280875575348004016946999748280414283964380631422499234297602775406306394970898273716977801755342845637849782245896851125450707585675717679462965681792675249872660756920992842058959156144488298067997167429899937569193576656645431558817272495666697834819174424992507132908286448375363410578443135064809065137114811343571381496748695994474321760281225739078323875415560938294429633844005600084560702044785705061000366212207336287888118678364172933495471825126816388443934329556431324682121689088212903536997896215914321726638758773074326745102712556950712669458561751732482616524717088926170798239179247370287089252856010155428699413535568560505079332714903683439027676153273720524344376319193463884386962306933435226838958396296443830021580375543093576744782769682430615670874778556128286068006749393925638734803558321712367315296737605316266360687495606952213001935791277602057747819504049147370869950835192295491917823637730726855708626972758551964200882745644640688467117393482696968521818250414113313130055765778657463076763388987319545792174197227127278628750659431573506298672666947398592212920102356675661988860669171853607259326609787407073924546841069821268963867042570284661880837292841201881746762025951498112011824787602749549761514837207844306960801638428290399092347550369219489901761184171696649211519240264855629343890863516815928240900346042372246002451379297083003466094020939503540381570738601963221487922375365207535309776034243390316988649837447117093915594897382234208587628500471017656419120813195753527193326497541012065291368668392349417342294815423775559657666218589298302452078785962800223075473616220129378022263518298451574987795870065008370141309535003446383059010541320148787726222220468425277642598857627918827081516568622826677130389654055501955863248445684128887879884388530198837524536622083273547105775499871338982919114653949527882676814690885535315112815321190052951509827828996544511305049618529327425159894192988221036657394315369543340822100432243971625529643600125856348672008469606882352575722421621776477606388505811607239496652274334659732660376676819375322524291162942539861494635385926046118567061649342044752442953157214353437818848324764222622526223944893172652023982241973376446541568945907434864519394990538695222677599058188049001156454219712471173522483038295384032847029108097209457142991373643772409045010791274956850382773775205373783026707098008281861853270014577439871106080905996262815617257875383670609919615922457893586532462676228490681035715152954930363365778888178251300382993442176080612784564268607703167022849099399788179358220973130103011629449723992755292098062975758489798376002770136696058061600439358981108759736236822344712380356966055082393491088214248666786955366098804303719767462328424824836029244291793314163218363379576420195704707122024420744523450969196002113210984313610822364400851116796933400696422500848198703395325670583484947537433289982889037114348866604541544195526024333400672006634193461871734622423499053889510918583294581810437196744081182621743668104638367404782844986397854529834629723392226008824095177131523454179957170692320828628592578045489560097822351274666342166952666157345379886088802268165071451838529752464812889672759957742327300000787847996992442588991121247210058015021983870476475592434694649465541269828646112605852992750825021121859306233448943410983972512749416173885042288010984440015501029403292884846808505080997897754724016301356225531715598139519910495108196390005944725038720859736593266075478417438414022586414028454894837430459491056180141819848100332770972226445431713005290655274171154028179879817542041623477364600255616122104165300769408809195842819799390353076239919543793250660412083995172020053715492170654189101007712865923489785451979119341247354412792100271837559322025459564519341367740895723998900539998085531680481232673480424284257195071011532370844668290321493889762171999828603445655710718135836321722701940583695978086470627508371483821739073394701671181734081094329954842190201671060967693333397290003235270987420353138234758851005082918255844463636779244469612238422088490114819521573182475733381954362717071204915300711796921174684265484174335206315484669861529623895866938974668642177019437962789450244663106464916270449360773833813251421868442824414302278495435675702412139361180187523607053866103127815593873637639039100355653687116422827634956812145110673717909926663752883120584134954990799963724024619318870731463600773251302696234931712883858333246920403775147167072431455989800146401766922142192175618274590870197301789724503206477038049723960108910463928233890382450590224850048300418050298977934398143268853467289491509365428896313088535579813678275868150072698553268499265139012018200601740932923274125975485649343458140879000746898261937163907728978005658642059775684526297590807848331219062686912511774178981031315533996113251198314575484196460311917117809306751295525116217671624798911747206187624027389808477959389461882926610567645147495143145604785848555132178993900806377218057139099017093141029793501741850199255161333917998550110688793914405883450620784714210234005264520872401682488799053838066787938745200506392307238939374206217587129845114732268237345228196035845130218620667680693722587906547409175322901749347851193234404250110864894871860571751214627858475174114749703022357196762313943909156131317586766131790579006143220516261247594880280842159436565285851714489389648718517035120634820721567648536277143415228682882143625837950228753880903762614818041157310459738998612343886977225509620395467886929770617694525103223823758852666205614981352998842117249783353472048706527634092458933912884560838470918261483517082353811320909259831739325273272669157596542871412612333961265053284706149662804702048152994250661614148295483475104355758859877708046761812583497349124653370292747107568905320814841616982278621937037067015346668307073682651254965303844346380431315772398735168721139754315536722720930892760026240756719960944695742729757578122425205479393122300684279056349416671509241272538442155371335993484037975067876778576337194401049946920542516462571581000293237127032747819563481315983335492215947470568997362637124213205627881974424554371475707194831183832290900894354175014832349203549272886724822573702348873237571371386505850748754201642827143169843461320071778103105269460405896162019957820631742670138508299428184717318500320368024990229651906934582706179578501661227296833406746866269015978168250544917541284424144928251778487510126474342683121994699323198236616937852861205171155222814757943321724861266107739139465113453461981792181968539189786389874109480697862505399656118215251983278203167840654938009865587190133054610501194629684840710061076535712895680747790864896212795863110110495467780954694357622167118348887297675370927641567328397948144185608363154354377504426115513730736049100854634071509953251306181566285723359374698353948515038592383121370782427070661536423162900967374319003828175531750179298661622293383709074990615324398148227020537839075917861457266086817052206324253477258583166450919303220996288914985212633421364888708961401104233046976965198537913063221367116613528516359388213412736470661989175658797315248469590290212058814140633000291046497785966637304453787168622089797538021994483139814501490175180534230562071669631380284132559836734168238115203932843344747951402367711449851096526897136229197952212397592468928766392262961857884232178827861718411060151667500700395487844915221867358910472315823345815456912793063931793991573003588451093733504703310509247115049905712431538052706416137002450805886261227826530882101636918833895090078677516907631776831029930988171003551081658266046382968849053839915353137441394967987070382770946050415110229702945934774357504500981182085229808001782976812880578561885513714998874963416859903840028472129247535319274569194657597834786225249350746792034577325615375357959852811812716729461354658382647386417221084555412731851012881349206773472895874917089545298938276412950606243886444334526357261936744617789686704451040399220106799432528186800461005408566353454067148705450779130711805233410918891485669630384971929719146547118093766715235455278660747376915097331607380133939669246721571215904530423911773909265980258306552456588891959891082378803040611903220026265347602979191674854567143595210464877380470746878831615983558852122016014132760240978452805576556451058225775018798299132927753529697757526339553510371656952282770305717344956221569517001580948324227764010416722906028368983401584774907673431338096102476638766035923447196054576644782617219184110901767983908589012170465683966112322491223455316112121801328921284732356759469398856048791630620298275082839340962138380708932534681014424285459897608995959125845621118862119242163821864174277133470947951620922915696349581213669381030157448845698637841912475185688915541377545133069767777757601085904520082037332506613010842526903969409071385806000199310388278250730027050180821494017341544961649682386652100262737091236309198383736941434404399969172876123176860791072286745063568861835221671225081844660054712518955196678213072888220031549687825831640770063903012712968601841791683604163784340023704234861855660222763023308346284708957829194751759002100554870171796094921913293946977934860789711900384521036365628162636229950959460096700212705227809906839566778328249817438304762885729047744036370421741150432099337391719621873661778452804985899032428751094328711581197579893912561639753549756839308653063657039865297267179422458585912968438478753389870058228727299974304383650562714010625792792771285181812185495651224968429463518110714847931120944922558420004091893373402046249607454481852540783057211715028631168281481607884857101057216583188830504415642411403486521091874170146609111781502018759113374789691795106390973483795513030537738859657780903958834703184968826798561390330209538565108765964316359546163011138741304919180992670218825777773604482158181492504851348229334447045050934563328747955131408400728372995492041597785726616739121136125066328592450083694268952013409701909157799550433686237969445846492733249896574700054444177396540063369195818996072354473300546058919063679386989281531922555224065884195456996882631995919812656246636471972461558405650814504350477180260518165765379745165538233317712240413358737291620500648978012784709549357460167823353374194142940710403148837472205875716333623646309338411988248666468608081481431509476798153552944790789525877008314838622978396605375039168377297500373838819330342504464184803600949141338780157059350275182351132125376044782059055701235868188441699537015864038377193479077058450641353688838830104491553586479501739099498819064178884131726374458332756243535637336163950615707389544432297921047161280202120830166284488260862614500967166647970613227329481679014397627608577879597994723677586269876354410095608431474012775198522778231510935008906745840518528119180146028935009042644199639017320542979008430038564009045742280251567782534202204163581122107582224999595815931675945265722409539162966516639078587198666897311445199449941303332306401262300591077113667343060953512059639691300151122153007217519003395969727278056649721084511464386399875849707246693730242646764183961823778380269131438057891387435914343423226627370671462785642089980061927723153208317570330434890622346537999491145584404282796473567401536988390637492935266563377516578514316688636615916036054923415782397771851178690945978451777058938428812766022270021190898488581803151136048174582532570344123185846423503589072357602548749616113831611672380114143413855679076481929170291865754965853549046452566322248569639821002894642445149310549985000548843304816372189253450025449915637399078463808040168522044959969178575106615691401822568776481320056173796553388250762390209461360423335837075982123015102826256292831353107611389415793310335784192456367848787808055494007333300075110135523044258834766907493680893176746782774995688620095500350574178044114895055648220771025310778989082779518877643101662080484836963179970804143235622048763166475071389557605042140818391672956768216836950296533510251352651610994563272640453902851814297012888696932433290102624735830124800493839710461695995720754117664693292249165445705416281044843189459286585325418922446889322572762810007745664652748055541191124700636186484985682989840188171756484089968762809347719144337035286823351285859162936260828164827028463126650673215661422256260490025742450030558732153515440307666059896783062834239415868600899251986437961021798296881783774447258423348673123653901754964059060697174461788576462718603818594179065801595442816446363990408317423779274398874784705238421823630887189010968394982822240652606706724000601086987372428574099844820532442509093370966127089912177910656099391621660568168155461637793222908033783577948310911118491688806799507964907124532318753907259245049190589556945529865776452661539723253127134301995372131820522359117721373882211432026584658912880594822569410354874862091758282376655722940175918885152806702966834036384719185647610692145317343615196507658611319136707770627945291491856382033992399672965817195521030373800968453112784571331135005401879381571698516861972805974150906924189141018724149712617366499968522304630671579682298648065536697977899552021530335964986555032782384771285508309452509016153326210338319029191772099663973138658071918070007230094352464014951920400512160552172798179489893177258710644932457669366504266433376004110352582782847059960977644229702592722060144626010541568206881408554302650573894673605066141214872208562557902612714963446064249416916308374293748280363494640578296061191508055332594724229492758357713209331522915998243336001712406652263643202458303413962298038514015774274132332209229827365550642543023620938868516649849782380323726275558356943127797097196900926957906825319125548316625984806758151072687245038078625837354709849573631809441273189893731421537790082956530370019069665922330844511103613380173701046117989203946004410573388974741983016439712773165991567124767811603397467424983235481812665412556576526244130490052288002963569177551507344628477684359280463712254152699225276771763669957294839244559959655722696464018036382633031742174941560146173041393498052914591463509473759549805058464630739689712257575119164132996492465198316712255672017405081239778188970366819620944671494955940525572220963922396362592152063164751855398085108920678989400999531897478798372091841159926485334597203803810919319628143694613060813367856973603051075591884146103997719175298732663644138677571239175257111696879122566420554208316984300019603296090184777215566077597998014642299948954154321766679016884763362151641059046660834357374616990209009503363658866012606947427385054838607926904704865368172653209995755157216250360434113831049522433249752176666378586740695324330534382955564394229617483226999508732329392994753484734008942105136776579689537238036612202800222858120110671563175515127926836487751307974119969441580389822495653037000359790871191667669959189886903636860452904617656179758261891825291471552967535405584248676927976480416295297136427484894573067883573881183243085494026868809536541357110331984776582899790184881390709861900032704587641897980812811946801373755908492242496363391536969132644891986575994223372331657845887568025664594717573679444027729169811323575328793861311003847661692587723431369622823901611876685880977398257660456339376507124483347581579076586248191079171644828545823419682124544690937687621196188219153493684730218869102143943247937580539184847990464574084243407830700586577979095524251170543497751456484596633639450834819906239828031658303282313523148019731425004729382673301150048758004645133649185507111782799589094237057169631089206403312241130278738583306190841942582059000967942908194987202971378184597583937620233771318984768789344749471060369299682811249648532064449441869428504352334600427029048421516844834537180809305702534020677237979736197055433362003569684940897250983341898772108479540850901813271722380943835891676110716141668811368552567717323385794919430577543753519245485832824503775711094581304162402230214243369379411003251241646234747372321068525223992998158453416276814523233149668475061979659154698343352068120646610965639405629365903546944755252765112632484747541700162573786870655958743445583174674533605184645652609469822921028237838804089315808631822480419525530838755250187324178572088740516752543197392747461907694065260488112963471849791852992802813592288720685662677031343308541654611546966093070522399783764683905210505775821197548093519072805882735120692180537049913479197183956459866725771485752290889340086571522577905460813793115563667227039909126210404648985365197624404059363654335764151926660064789640131549785555940809321283517750743325992085749719445634714057234428033514707349411537668631463883548685727683423502602003737742714759981655426940011345045617869208951551888521714215707943318517598334931535815691295480871010072327021421894556904009820679525538798382190640622524785157332171106484275027629627994917065983972522680606148904409052766895268021013833843937107533182285520210494577538620193447660360503178037022964261807160279696736330286753120593659382377607492420534054667457945657709386982909277180943394627048498743618677298094011450028767209586303170767306244554411864114773379608151555199362587251235071776402546546172908651641474623602212435644483959229429254610096241942399682756618756462960179042956645489432564698536741150945491715729942243075802256315431646689246245887295071701576651425952186024036571758100767036870605605667917936985767555353278627641554313053254386452996895025651415632257294476192414514505058357679134487406225653794345446398835507846571764400012558329251300530520310696976444808236710358944534221813543224963918250773626631800084820112778757574619426573273575679391346475752491399945663749174635897368132015921211270594281193563128416187622009317350261185542387938180782516675478148654946225243541980263486812186259743849758532818159654169411718720827961414823991374405584446269402968133173429089291293191719911902614488516996642454201944956544735466863808737450075500880422277090783105636673606035119328362600892199925069628860209329965030156615466533887400231241896411909821923803800141408150460631575633948873979916656971072969320346543543350008584439861272282155647010289407170491044464531802418730326018315560335173442136970385363149986182518860051934392492218289922794596663665526313381311690647439748044221814300698216712313063765635506114546708171977008585883671003946910327547329537422018443309682449307849241353868877315809535435782085102216623618398900903394948711902552691999091505646503235560361396734332326448930023668458356424848777818643667952534715601951544355320774542870891265402331513979941384581456088767423148310573228446448232147977638970060319848425442771530083465995674502300240864930711239724071629386881868971603648452924595415515065589367220536617636589075061156176897297475049321317676572530505006048594991389223068981156548094864585217221479499728225147378657891499228138141618608285510738117884850233681555301823445869613038739215513150995015428022156198877074771021237190266965796361597657645333897366885322295427092039459751326167140556895118038838589770490098900992739736023571059570084447771123520311888577833185146659267470493811513733517883861836746557186282474315377213429351162824524423031335183052299981405435797302518384967385603681053271048348345222518146875742013569507887448660399153113473819646991103227979752203896393257426269594276839574814709230922724439233944665758992156812916296322641328688225139663989833755967035798491859220218999812997862293616070812625953481890515569244657461038099887751553983278604363697232084509794130923814463535824989722734180282330228723236378296474827328519109401814034619744568985531668946699779209808175888885923626160770747934831807555101178680495396381763168753759671283424506071121497427065076629786224289768441400527357048908076986268130467510131689531040899307315526653944536440951259578523095468630607936351972948623342405131505767093606709341417688430520514521097547710176127834689034568874245286244616053307442548422912697294401078277935407649059577548891759365576433977646569322436069399683162276431047142148667733691519255317425837330821776538903885882336664608640991240758934235261794557812960862157498975380907090221696097166797340937208331542191272697319746011872420907092754072683834574900748833112989558982962651006611494158943811339285839448325409866755762560968807410863288973136970664948601203926110962629562790696713870215296910863741844009690467426796170255852292822680298710959956814916379278970248284830045249709659545992067331387892815793425718764490524906772441986544370330302627983334424864516703407160475306386960388482989653669912635457413409298436981679720255875528555848866365461866743606198382024841994889557429169765504629527641607710756947244298428816677815828842330126470220468709715087374563076181193034657582087630002138479448462721538829503877657608197828909648737073201960647103629387760608844958457620429457578581264630273092245256815376828181822272993655227003945393087159192187501232480304687933716917072463975170062487471639065674052344175185423822588725615219687734991833230023928507105416005398066376282079806512141957776060081885607174731167596326514857106240029549978820042918901293564173816075841584323655241498813470384047093866635076219629676068151576574339730622510892348762167143015351169601056812695507756248084570240512286329019694866759478314754034581590525171342658093169505231151364264605630933052031684646522495550172531988840974867890286363844888097682094776951674067201636795459018783167760980921374691923434184055686277707439250922369754518181264584778330480907146456403740216678282530289304717942913901252082606705201506579641416890123950747894453994557553897454200123546268733547789823557712367240179354316006451817119835682254095411226690699420379899533281309145598494309035334813506453044895347518123823143281282885579708909739667952081848795385858850340924475347937706793685668205721152521130640214504078417528515634269173840672480247259947843454315019045215395412988131164220290071779222942911508357138328214645030781498059808679511808048517715015556833683706702156468400280484034766207125204753733289757233420825694811752170397716592633995708282770682371078836595441887428962912810483891302613595338315986492183009199785442857023189459783871765940959913162036549882742709525382120955775931531005379439637446672407413669201549358621600164573660771430442682841411559247753998614754694216666619183999892661524848756913525695666887435127854506739636976115718674698730553489021489268397409661779788461977980429522362379052079019261518973511637696818265488560631819456494964276474639780067588044327176013369937074617696387583737942571588698521335066462243849998066078490363289714341784346856000741555695197968874159398295832083949566553924436448047669960484306661338945560952196387801393446522829579866410769229493877586301141317596299636427921073210394492768818716078556174420272912332248423104687538968454650984932080541842840189184377822789727720401544653111512549852068620723424201464988486041041229640118506253174405382554812168133160333068207585054564604483475187832974697116080635461120441013778554317290113450290814320592649666719357566467750235186296760074039823381850277115985667589120642814042009027304429717728719471117003210881659618605383234969512793070615124761735355630532614959910892699101043789161344063481975295379073972557861243393774730816864170586139316334741154374466029701828558137970272541385326377489906426616563447775299002875452998179043373353495755521883342865692024253947406590936680938950744473895612126912598057344622657157765733493235988794023260915800718712240595083254637838817365293816775229591821567162131300255437218172528719917208601770187067787404741525118495507696335850679101783145936700546202938008349114772043931868928026540820121583816339924706281714457213408710831753500205202866135260755109976212915405614030006318581169038223272162828167047772801195676645095585548585179796769007246444322220002526792439577650629717014336585584341367250897068571229233608425875003865759288202648977593156939228684102168488762887052252557644809039879601706883104888654085208073278310455176170529591035571883783630236737761258958450346751911939779432818778652005120528036492489656759079024856231041255131933309372441215277900108956770555935765519038702774584940766199553594393796743822101798560285493637690992527838633778026071159099134086059552601862489981155567735561825382756599700940336529687816171048396586585445848980438304615717565784360555849228958240873311542620984093429418478476285559888600828185203519455239726175941337386047732880581896713522739326577128526920361292711903239769474125729500336578303478907539427417648762547937220019942734208811866770342405958460478458506931425774507695150525869945973348633450435877010279866362447795507856588353466391847968803258618471167104768556386731662545238858010363271261603575529653894160962222397957936282883183890711748255827150386075923411482973971634928630834114427162231022479359982748597654339577852141360096675920771268812267621691924044620967708280379790179962995301711714613860457276169298794516015410324614668304026164847700922616410626487706781473178718536413735648519471020148652417168405724339437818540704104982786005759310482960001559689826869247074199246838522477573849215649609977935688877779160421516880031811813552297836014418371031861487174591852784111297792975662670614216403159102083998504162497599388090947829207577220039876513991795226978046023084535050846223291305358164789672351313738076923538638387672377749055194493047325481273457111323274015279601513560743344940987181120101752955484721311896605939459687846385666652717859227855367066879347468567893533339551068689316621598903047482220759713932817432881880865200500065403940821286943241501424796776118750004727405878949907815234584659343888789611996981948783914058869415642779113745983334439465448433176886671256227823525318650890241240363000543436369757646739280945013899335488258672629958561283366062107610621393958091724406402737598994428755507958181122880681164364253785005715946114982837032356463812666398486123912533139072169627835959195135178327335651253265582304028786922054865070342195006526683397220893415554231324738513687751966659352339384718459007107888881450140925678332099222889538193799832908480336781423727045253359414518042006133279468062244003343867285493098201168735780193379194233018426993415034722951254850985145700950876103835425595663105466786419083299253653350612474013288228191507439193954527943691451654817221354616939734955302683974680557261493389560875075649058535825865294911169530199530573874903639005712006346581389667073837842998823019789440088583533675118422713559384734370173508216720483154652777407526059512949909573550085805575169595158915184150962988728257365482890317730807237399481668107280333087796785731480142273718641523813271442097336728672759372145862366159898858909416371192487033764307616676403115875800184093579343472039350915211937228179514889871767470791368152806227680753809831939926257428413502604171455558143027579432382598106231511981129625473655821158370721652174788119738943528512757636547215811703584339278169906569806219577509333628290238265017679982615528288829322069527887751350228302606696389386007897454967748703323071526224842419955466025536803097794192296968603282357237539074182307808209963348999164392786963029111245554958351220138417211132034288348426670385207796468210278999794594101125701203700019451459088049618958400491721366229281600534104095344026728628738636452699054781453993680351184659536429339003892888268255625291955846183614931252579646137311566786587083157622967943524896793099734076160534860633102939959386455440632513439135570002179739713748279325762047019888670476185171697492792814604317967667268566965862015887526633526636647625441518969357944863793051265946893190942554135262489521507505148010560294018563994558014527362128685201134135957713151092852857636713203254972277327112420932530369386375589066868028617516552856410410310833148770470011372964069227418008965821978016474044224456724767262762155441044637259751854927451965073316893244059212323081543942818939653823181236985462595056611647390297924906342351575145347320123410344966960959895530191475832102153879089697692707519627647790358678853384465571786918736627559588649432232208521005344337314925429759741950093426188153619738811236958997882006770384830942790659627751956456746703113248779854454486778596198544915263523894492361105968669233359456278188995596513276276557433311442422769734128230908240986948155011653115710115587516884503745042396548727066134006812575255056529507651202031129875719302359656540047075614025924852965161288452516840659269362999471484039264121904771909183836256745059584037777479701449355945623706788356586401535775807949139555309004456346078182785021382238742043595641008855351261654098269014798258002743103620081747352801303188645579974755611899923283082994662540678201749500637675319904889567673653565229242464345153273114937432219702342463855235296058261546098044449630987263926160073963195251317803172580478382349858850075747660368131630890882332260585235075741333322311787869883312563981967601029723164242480104883671316021368204307033106308490978884665610215217571007787053943565839808831407061290333196123514952052711197501356902799149377082170317413851732448234215311491472407708978580034276977596340747504799982360112838857513398007564808016666761659702770284219885798282754442335662804325153583890603172591090677752932585454580799872488349368727522444354303849083515834247578450446591229378430507436957902284901613932333855741949980273880760906952032084517982039674151205170224748587345186740571684975001887601134709051033713909448538227523452146033891963617805956913855110382268559850167326289844786609601495636929365031855659894658065584025703848031257825995396049873064784770844281609877143909231544247782979210246987860567019879747303496349301499031248554468452173390448419181216394728679239374210533539076337891104134921159058675164513615244540234620086391954684460760877203466494277170422061692222891719992190486491430865800896154263569030193502202617792626515168226506249559187645591084243786413749255649814561472975503804412932753965246572704923435680566078079349810589862141493668120297328699025679890473017532509779466784969544736530244479343628455941072599472059448207004955471486988518086198606504227580829617425626961083728535722678745837251626321686821390397941567664129414317219399738728470618367937237306667881754345661439104106686365762007407184199355203374996963601505641123333183680503353477525824875130623239772709513495442506328038538513486246385380732145402090085063177204718413413911528697973664008704501772718232237538056749968487217563172451098270662202560941499997152912610942399582198268306753973967805219735121681835689888868155071469054279595270802680136240865218788947011459401195979596535271259207508131863159256204217344603061248096924466231635661222737060197455712394661289210294502614526055173595526386581335357029193063463437406763142929456510171659304561589900141151007136316581881155797075687446466802360987233244684217530819968178670786043895895730198540849561383525102212597289526018891906415202751765828576436825653147127924766304881979544574634472415788548103936379354978270224821642541757910625918365071913826597897858925161717990148290317729825062393661283904565504335371147917202485173942230593326379960545866777039023936122848668860286908458644310259648393500399976606412354350367638314865483558869358552517609136371292509660807779794999341364281267828313894907006394084688443637644024898756836171020163425951214090614699940342881044876109234992872834695259157219127955770440245937920407314665773935436571458910062506097241094469032503933326262351120424271323500742713003579262530190296132115748145891496490461152041957952792068110724444093732463205323799929037974822404800801425643013753134464610239132763055058260146752723321351379456673148567358653040640993190412783337277280021212022320993648964609799936712620893062912515853600336288442566488899617572973730632460876754473713636343072638145901555926236847997926565624403322862318719914090605048544747117027507892961384604348805901361966400104770678727019987374933165001444366073369620741691270581026626295410799393222409235154660986943282993698337649749377210913344581784166801153129846077698326940742104210337024538296236484614095039511654562031781242840972397157338424355711439058531181475024626904708080750928148452278629320974783002088573056320588887757751356141208666954175407556104713499524425781782769192484895648935419351123994478436745229016427147584521568756025729938180883842168577310739353361107174613216193993257684079152511806212913033093305656557361673437857561844966807711676592490769250276106594575149439024396987056216470735013259914725973753574084721744350463707059250072991752200271998549862977369961822530829614256537972486641204933979705810000115378056843449812903959313261554411641526565727396748555013897400454241165656611064015823251882132637943860785755495702916553921665968267010287029631437171636448411858224836591297250285171814855956944297497039392941320268976083473739527714473737359344010278464870948896821349999197603524483803901970410728551320402757870000464221073056039387991250850768152197157136636752223819102426659345058927153359705441497267678405326891427715418711234218321624504404422342024803246148542136096101853930385204134500096153484399318641583033459287090147963812841799391959798716600688441505952724547817348790731047131287738922714784661497747130842080452887398850136881054656708609490433935461754823216185672469339108284369654621244659099516207081968543933221285801166090206550838336714234739414918056358852706480964790746107242817677341994590668942526166312306213360182975367467075933457636726581824822855284529616884588240310559485252970713430771464794940305815156015521614279809729885029080397829601579625314344518544060055644585335796749451955787781159250622984232549632765147933283770072833727161867212388404598652532549985845463303743609358012287663335219454063994710811113241949989043253758542636755639749381011996629951005018904339083809763516548884668626702490795362984395455074859587216674212390129378746099246215581496851269179969106734895885992093352853208705713413568338761848279662845223302986757147402321042943846781520336605539369872142729683174945763334426715076026771343086433747230189732369345770487635925229922595285824586084971165334585306431348318584706566146394490730862399380553946146303102245311642137843743291926166759041254238935004950744655914045671172751723308329887408870184016376113943960805857416066639481091857387547663455080513237039665394153493362611059408652079688032090379289875857518718115211454870596830561587536847688624205165815941230551825247639523639317251027260546270141001986855850660902435257164198046475019507858235870083309407507298188101039182032473594622114717759015587146970313716379139400332023751725056214245516189818661563174726297117300553232451262740877433928335754017194432813092171911910368544401316843240866402862590108201033203548873571202892812036166605145577856404614744617175011229247118795579364350314373303382049352051697872259322887856981861737980988665207262972637932583187856553339611511691623239379870866320271792749560421140845084915157660577223530996551823527928003869331480984810469542559151451684897909756601981870500055408622861526193127036539571028253306496300449411154804791132898072211444489720311448377563827172253271673768596851190726696582136618921229332885470300452448369657510751851074300308085329906772016743090198935000361800049647397038262172238211944057684357348222025477403781691999429749791306481819717335675956052225298375353503410791701978860584045244720270629499814401237676764968194260411007189416725940557634723933176965929550386544936632014218552670427926706830674642684079231313125241900400952109173579262691520700009335924657735522495722343734251227490346320659827831262442880961647504778572470767461765391743928962818226820014065282303079168403855933623133717388772585428567655193309766480472001623763922973730400298964481072598954076651970635049442802953608268574930177556324817331130460973197307012908800035796375669064393450964606939989314259234745275344246019482028082392162524630584263646507522834698860787135655151768984459958618979888286050895074791463483705209845031113818055046184083669077727945423767481084482947554601028495045771318473150010863147109342509455489996994246590660597006307482349865555901649392424696914719466856900247606877831830343599448354994408084720180167642938139454632252779732480744607534020352050346987136980117174517298677780925548124910552515252803145941990618235079226386617894344490508151075894133875194490308522286338411925680914022172975510548871332934862954857707608163974109400378838182832526514718421426881970935075005742330268701998330975561048117670736790998390770751318216771199996133752323355391183890523222003521555571785298181343154814142388977554426882351570892958302548471065572194878176491289580440487954836089494222359104405236147245703825756529656131555388494076058247382870095243473314676154902077736556317355460900703210540535966791591911058261630931089968470199439464215051021704336475479040849434980906950787509572176124665036220516085697011936174209950337667214660752903831118284831754029467745428449473193323737917280347025678039195160949135592492514016401982043171931657783423599658627976969476006097144810357744749321865224099579259300836607917218414808184116349178736658180566537230517546932106084672034500110491957364333627298670275305627165350442381481701981993493135870340358250599942843914105958537029015477550124516213804812751354896523630061430287500521665070197612368373737114559065652289583345426985251776022092757737163615375445381653305695563895112961115854860005523997985408925339615854570607532055295617393075559072427673281496739361829995669842011242770515330218283539789874336495271840242355243160082466844309767143808294077923343689520328558823633661327607778516590881248479863975286117090357908710938654559669972749198090377542076572225668222833722028083966222017659170275508208866315445160678867892892099956839985406172077244062070919646452840848743344363286845363848546984490381622219415323924085306487131240311524480998228377854635610035987020297673422012831131028460395229903350203154875534635766679551339954042028991001644152138179452201731702820298668702661357418461394462474895034114451103777927382328870353118610833375537411757156232315534076504616014768300391541392909051578780360416724068945112751426737340723558498875580490027137623896796775019369203579162175183325480174276362730983454989487696892273185233757335659355810339810608112575011614366562706368282610168742880684024457457307620419455100565528426155532023197010465293946518306408677107239470811847131500917183733378013087326723061696041288769036212731305700065187923146396480270159105914149383959804759762730421167312299572519887773946976288706372259571871161739509069368456780255165582790545406130407649686610704097749200753517908707643563517992306620223704055715375081522721029351241814425784161789071462034381684126627178517271518979280896760768790571359587228242193574823251721701713282448432989838175515641684596300652562576699546913854286275550053210177488169954996101652427929751024326502045679257109960236084575841127352480025217408421882474840175265272830666561809374191723854533553526327401735123962129274086338021507583896188124000639735731954509471747696222575095330023386957102015503776587418675885961531009055730903563938730037906346243539379227184866082820467513697802403201310519342901652206827453211509952449201938959329412423770363234154044803910274772852233021108767352722241724932897512174316473547143073474749131880631766140223317876008895321383664911705786839578257787791586336961531706072397753648172033231461023275459374972670778689090383729306024032849472346241328026399811806303817840267753920499262359905521718339842856015028573768338398445375769722099787761517109317257293770843994255894796101132670486372048165242983527716561359208502519699891933537261297484866695536389120584274077087373179581094205874391824600602178816115742630790196174296073865205649190395536697961049315401108849174694894136974592621673145308946189616613320167921437569297074709748694856683967532242722820834726273126656566304502022376038610669724217568891166832432334874142347126319482311354881372823839085521306779982133764622786769534340599862355566437961093426774668290388763155854618996200726781585542214597160331310870281853098710424748141026283563646806018682362517065004103704247338137611768699445406628845793011018394435836184237652293470587911178592029656431305203209553257898746094358636733121190913698344676264549757267632333580500021347339372363152328757355337694344826401507816966216239491025637391841547368821678536450152770964061425664324434102656098139166969818662354332183574144747485854192918807249450760364399216923966897411353933509022442919441577522613836127653076219076070458218415588371002790842278193556308085629505880118026739236914929380766140030907970619216915774141338007777718580536277330750754091750598249903330294718968530155432046112034789527114609979120264230758331007028635928673047624666955936676064081142960845114312334056699659161728325232769779060917018285779671358884788762156940387519650218615587222517189973719029059861865790338853166488644801410297688636357799787535520247191380771328762228603711754714841104675180101531907204731741509089679906309817878827278410604678423020122129822468269657116669255992040709031411565013793507583592105114405761114951098284426800680115874793253862647802844146574385442085814726440077962857900502398549478650028733003912807890463155214153980655967208721291673074248910320355853929057767077864283548791407658446097166086641003431476431380103046537315819980743665516813513033038693384981936620615849060688521722985143890671415707861451256343349721006629078154292445069814733767210702700393385505290189184390578410852771013546896777011715563958706060075462516668823320839383595866731800265505902742687611966487206927121478260992870932055981351804948224355351358106116329586430735690874037129334149879235408894236868369528290353788288936226934436141677239087900705064659459812520524875590741227073011327864405897087067407107550860301591354249436475977014201197885954435990736384204593803383590396532691326043586809132079542674122657818381381384067284543193483720602892733721319288812654831830325394346634240904060550666700424165579778917205772004942065644128867848859069120696938953420652084024756948154454014564619045997240247424245063573440523131588758223220566850891891390571188387044548634778749850509575283230497401031486527535669280371080570209314133727207749394884521234937022121533987739956183493648793714163753534635488681501676980555067628586562320049640866771660933173103248225533452397264235107955908806572535149272804510359149807408338813683144281457638632681878035091132035439281062858925343708329878361611727294602524053462827619366450140397498439452898666933828382979935436596453235869247373117943239949328745313366228083773612583564348340903641617929242274173014741494613519948608481735698311882975470072993806143851902908833724272391431631778696150056334071488323944756610981856925676054992043237009340224606032420192314494648525720289146975292603554062294303280418644808558289874777147699103804438969068829728362779100150479429083779760861089650783306769354007176691729799134989448686778452556536016807361615080557648429538369243052685216039141971469335700413789727613607985939783474254900849134223181763647482762402251396601741080707295524750485931723283424932215034683663696393776380400193303108305581204943207699378027485762033319054351626841268429810943222230495098529079014670369998967236522914014363136443406323678354633640874529362159767138464172341046964651015837428124188921956946011634691102069757040249576127385243261839700993948974347441413561393505597934999627090339196913175282550971250851538018324312173017033176108645711413831018047252071189788798833154745971351986851174246299006108259677092052431451178229040341430688583219757016577117080397574072145904446288143935120755376613688691319800749546495249847316613952933449651643683711782763557633885182979370334052973886212493719243664630103776457997560700026893778922405848240242656930036575503212482309734140739417164914997847872581013145045592149712416441187584287114761482419775850560330315667590419596677185400090538609816074969973276704833931180848975436916021684101101519952503343765075475283908237728710091364766848823924842426509910082736643399003920428921002902251507204628893384670318498296548928143588696097233951227436252662071551303429792883939260309291338684408580123164657655667899239790359281938339054036153412673460733907375225705516137920593521821076153827426671058298801767012816161666644876480498539647654459150858744156239349647032672173760610069701564348504578852857762363324890432912295120021151976439477237123821641199929069718202423845311536480207078774720565929376384421279460269224807275640770065833332166256972030386678183340442323936857634110147627113849530054037151921896537402998340768160373519430706395361933493392377741623730509446759857737802722372821257721270699538853762213057673911747310642547119506397907040385342605644087508765354543672262255272242630265832030095855027101193424695803588410367878114222941542956808800290625743046461686244295416008856379381234704884874208068556793255462789564888804279952520118499956006103397542388763021277894321361244739417446899055381915627947900943275649263688725728269549215528331425336143299867155995290696556486140700392579449538639857766389934321685237543560105362767674399831609461786797641185633961555730328117623310280732834652423279474657399419462805555731746755100940696865804977008347621581698258979881630784851557062528904693637926435277471612689125018108288777941031459650196182796934420760486325396867706116904777010262490846824125533549624344253697529553295482903076973657564783494600924978791496756253484430939927742178911950945415052693193942530560868330439447552719916168690835189882524981199706807815878302629646610574551529528450177023412844936750495899517289766161894554718034112798230882669005673884867114014491510407855932423442473748064092438776261800292707863256722703732654148845197207351378755825118604432464636622219884900789270160786979360479934855250168449819658683034631848804002424371533450198374813863150734437813753192917975223065480433844109833195333005301749359307034171561348906043593928714799879044920563863953087559916962010380522861946514533589448644308536655907528805107439530175667576446033558047318996915007008378753975830641248447796115214086118778607449043229857308067095129993114965562703687376555768176130636091512600548611224193231885528343630488119585872885191411803006747518245906478826446784230456047257306470503556893716081650669501581287610723779182170730035233386346068025159928770710884667292586288044261694941652602656867556945587687111302056532474218257341497120926884432632885557168464231015669078281167174329130845028063601973257173716573635542779667683766982623563472450147290915009415716621498181049087113345267136489089984935878746291733374832821513476153264278316869006529532852243923772681504805019102834177413327352000530149330570692993287620599432354245716332365560901184725106371787852438870376146187985604592933284766458248239074986685836065901060187674952048005335465297933317092971959416009954393432866756718210136164799162727757808009920859411731947082079808056449651415137988699012687734584074188249211603992520409621981936574266207428319122100453163683501077613447200530805516333179696996863315016118261800407065752971193514763011325373337491203569871361214730141765587167985538165389260425765812576535453206293615947238601985188348455339119575019307320025180844401487794280718999448573379351819435138812727436909256693488689753216213229161798406949896340058564889780776357003465237964493606490631113323425745507587989600513220529292688731243083260646350166728994081402389036990751153039714208159989397642018246280343099348634666986117371554978125301657797582018290323851868060811771812422899291041537444391868617203214915674536853356915665589198766069129714402279761916543402764545150692286621345035473676967090047674439008681084025117643932980832795690585593778524470787462234373513673083837442699784288046927873375608797619561955140841169149533301866339918372009391168352906624222352693817648600866513142157131973551748908253722921475915544380050282981626229428856800768266183875488608279101042960593320323473453918729989336639374153540304390055272176451839904171994208459143389718939765814301879021910442414796331388265347007462806323245924541001031854259003181427287592355974489506148262390358637564439485520976466413246016309269996224455316491475995530589599019758135214807496785943823757632660177217136579876550588512058558250596058621414370242447573167236391075750926688511679184737014721857594348027538143680742779091393468698744359900749316850902603354243823995971963220224137903018104905147816442437158483809229840646060843913821602613205257045415097490381663046921987047969886270971086598587467719281432573608172224047618585737641705631563206240054505149528828351070505386508733090105725379317384789868708754519573388169595042692106847968425533395818230183842438708487952326803605179576208979619798513432339309850677052830313566577610508877056120832443693399128660852175737112656586026103669695965194308047257400418159306750826321868856551447067456555017344331139440443077953466757277604356071201785357515729245580739883186644813131539811145409180645873024956641875720466454429931841593257757433574115697756927701474631203582995875993213745102674015378389809979342910350455708921491610856134565934255599363840628776784950220348315330601749315750444389677068621467248233602053595193810781300581470408461742726371668205699922995743735858035650785617827612653521358886521581356955799569289153034150049326538864580387320421213599582010336975778581806097175762093190559659640209573463158732996256889036302730322576880459090048606921234877307078664557595209173253175700268992592508240493647247611383282748892033400567648555450005538219200261754507082930699859771392556470853845195813614932858865414711063483620675310062275840089899555424236784348387507302434365076188230922393430972864551825636368778102322732067422997433864629431646456090072783048850530100630530251830370809150151777172555940730016426599432824671301348271034563325849746504042614822409563039118828280957702766382851460527922683016768151064741074920294384324545635806046390375217964454770200826055044759280972806525891767894277272055906890665955571082546325660470675292506777447933109210639245473698475322749550111446103153858805416200720570842968809915642722483589919676951828601575160285734472342651806659679176999673701041631672896219248172278327980333377048330422612640172190785994033478911433014089129783300632874027261103013983704548409042944634765818070558187214052022132061916932449050058596565286227450450960009864272587660752194529523873199586807020080573552563196443573884620438898065869330401306786487702938369248829905605916226679550934543228163052926414996835213932304244603059560341549880989170440660347480145597286589740262997939213804944991774657480407870264113742967610292614808190805584224111908848622276534042972605622674407001376350232809697004859459609533219682828969233588252163858914101665685219062201299484805414034366556215799804279054224128225508041085048048476552903931057073526689543952761609844227656547612676800771176904183936716239244180843544873981376446507469828139134023556628952810965397674528254264610509887319790921446352486540054682291613468462449977442470952795675650115398073598594440852068637858495510076341720136284625075186760433171675236611058736704106564808795462440381584168298339334423668933505099095943723309842831936738195748532875731523183898763504282158334383979340094852607622998673439911444932247138246314000080319956450739512181998036414204182112060322276278476011606960325478153683974715191137754077381494558990411145713601826796348116144898470851932222999384649256311455129725020729434818493938514268895811837728292038880089525726900463864659866700568919049256425441723446895410962248100027070215134661281054075978591618370751419566643938509893043822425044932964636510990228897265287416125965320630119771296452384090892785028406018352836956117339396392858494750091286607339976203365092235520321275674075010676942773159857952906680645204640982975228315801271443390625753129568154963337977410885758620782514402948281527959163292702128685270889931346986511153601867250195147535718909245580335241087194145915569517631209347657891620479146128666793842543002918521158225576588644011159279233474103870279614880482918252242209662535466431986912900517790011724738902040809410709520285784012567745692917562648859893482756408157736082378521102528274385736727189702201924627595255652107376241774146064653517902937060008488752092848112500503816947232494915858948352529724558497168917435254153599232950729217238065694387381034992646628346282474936814276657130150330684090242977508886863129505990127025612795398473549863884140573467035699322607827969487046289788205385821846335637945244702107120015791368254505647757146013002062011898260121052981628943669966978254463835179043034811866384123251971160893981945820804874107368021584171912270390853480851035659188752906359602969943878238309362735535512012663350601651720218010349189360352661458486274128537596694956030783981359204036568689724968227665335453954473272979298994589121596113745304254563203979926055465680147822551819816165754536019098710977229096892810524245775609010771951882827060665991027786798320487922788934310341466376199276608071474395211129452256998772118062521951572967171240968325253378197780939373480791906932863821812963087019716508345059922518930180585446850210414699095887988001184934413287413933245720810636577886752883960065774020945709723419556390172670001013053824655750156860231909736983634116133142799389884299503068542972106642141288482138268505221271026827930574247099979336772790676059903940205821535219240970095667136769633453061916330277186772760177165825106104252035508504276990255638221613839023343436448038150044491518399207112420869606777415136874476567805226925845726774031169961397036779588816030325919232607634212290379119617757792509732338270308403403801150611486296538756070785641480496274614448218371880683795738360101917314031643971203945517453297813351306061917604447452473525687149770472576783891267118240869816684879852303741252814297615765716332624085759923444182798753245456828017051099657648780171831786862873923379174137649859849920451623574206487597063729373444530290551161591144586758971735165520515351519485373349044451046948412200558160788760903837282358161620203120805271224332875685263783884542492949297838660361129189359030158107078095889342883412350950370983418597532117160550844396279200299822650550663208842979484048222700537527092048394215462244511805741525762578931218949429206737163350619174692253414108878803377023243232891386457474505808636729197249192365772995904159344535567129671796290857145865766209860602631790847072796352976756569995667270079622081989522544131990520375984901326329238168015679513519333994824572745154554181019841855355289329523546546299896237135781756477830708348604254217217263439630634799513214980574720235694727098262464923439528743157980458828089747650699737371909739780751154017735881351835112418248033636759627332215732874225457541340850697871360777656607544558118758566487760796355123907751771210350758307000078481466753188709390301943366526112046693946810981273608607053161421584885594461157071922811372568030329062722700305548270865370777171590316313953042010209423564867230618067608657026626833704010134670373480822353949567290197438164038519956611399858694406842022406066964280186453090603614434130693741171510772012897104850620659781354316233232892628734004529512563239663942897465306203082450164420007110831895583892329187952142670906250516860896763501285213330879802731041910981604884243535209488068541566957627953036379396819729744882532597923038543239398778396014923968579789663285058683994345881307899138982103149158725292660085758506245687365843810312062809988166884374082343064554453665631510515441647307127141644746205786599612353861733996853626669344003585178819319610243834658556170190673596263108054168805058346880971146069157065323191369200613703806319352448807757043252911844749874495615594372295364524328902085441013302920450814860649460280386774612819078113999282857671148926173272194018639345572947988274555647853716719832391119666520283317768930778887073354146062820209283951204093757893289986936887823472286056215087921860541766747645737766678944766015607547915325633754732618554910314035118842595571600688847687475949870452472372102532695686751722569650416471141622183495499716637174134832982082029411267328187503385005129932134766481652161741135537985366081175393528657125769743423190710938678604962211271034861508751008221774958727615810067015802015265413828587350415463663690752533594533396933347267609659704309219393958693056416541908673715483667085802500632715573061412285533422618665457161916384973182235755413285173292117776054014641948240143140243673218406278467622061478214419680063922754441602041807276248977166151750113993955829452403519816117029553270955688305354525020681441265831485141875643827878200919422775903449534079701331595638658183139744257022897570041775982163296432682639537245619855487015060886027389394329384710781204250232141400418084690015338128491028888605958875470511662271750348609270861419019717249654311543252233831780776920126440919639735206478974687796069927278737125233920005292795647385775094654506009550168518116394621551624029293584438591907080835939155240394501349070865666452693210112244383126749300930189923826718353716767600294895886052034626300872572738535828858626368322624466414739121950463167755714023655527924034984419750048353560445783912802510965972577748447860012136107913852779732315357025461008283469628035916434557224648475660100790859222015842902085558434689942826649225760910383074249420634748840920459685374395310130290361373212358470832497402399449182468812391807712047529218534585603956038838033451911548344764669721684079059514968751843173725899014659452965953794919219025057098226584712394484419077524643792921660002386973308914069398151961574536451122891370228656567589418953252706519562762001265188708865633907183820897143694395809408119195250401165494900722118367649751965076586955168995137279994166539654558297036574369533684299432266338939963590716609919593813696190698181843073388373628630258459192916682228120045807352305504145437365775712234068143761492829160440597643116766011773538525051109559002700734298509036565291078927731165845729284367055854695105102350336815863102053169911356525656905873829892594817358362244275218478693574189396255142037338812205010142589804641350757775598356619733120479284312749409807859576385622300783589130344889680193006740251942502311393272165926217854117570844652497516661307329946943968641066960303873501693748502766944375438296161923546159239038716458545469327467892751829719111567664333388005158854608070590789650211537310623034386922396086365017493534403791720300975762886431541034729186732302050463585689862705583161934858954663388788377994773746611944334128948222755082716585852195559394940144000207013576717615637919570193864071318300382109069343185627313830952335712474627955390694330269799981863671587581262885041590726491865635516560194274523230487409480290894287375129808295761074011043491813364187201111454248370664186825713278104126334280590362902210797515969075471567781222229425564805836090066200434462985050398783510922734001195361904027293375915181227776616288454270020537054383410733460657088886962881668035903985835818927923763825879136672915519910313945720019631235959544162889118551171064612481985668375358579803352155216352474117388908282280455145160750636424531609344007101178809752276922029951815906277045553879984694480617071259555027840735795208997400108512034749680539179195347299833062052437634304347727668047088866558923598097156161623946941082471606498744518298780936166997433363404296925061639427732906012842697676494818570072604397928773361971921934531143310228936990704747020026968429466424214536612124273259011851808556444170288710994774256869014949840849233254422158256117684166221309334731860658159716704543485531369561465058035961625667421713926726099867884658123125709802603871417377258933986673625458184447334140988631324399351596365927358012555593566782307083098271273669864597698267940898773503587509380141737883517589899503285795151652097666927941346351359627903442403753319469111430088149458991939942558260972127656467468239169469403528845320845115710272158880642573584901802266124465196200487718272958912545423328161973163417552039874155223637883871274854281861777326476346661911687362455412920202998039223710681542615829895561998375844729919561421090680774444156378855917340390697780579979007885905156363430928574977089963119447482971269542532308872361909451397368388241525756846281059967819898798379180030527248188830909238591001923833290293018685765310591619892516689683216767268689770282476703582670546548415885521587760381998210398315977615273693415758160862067145760807073240423482148390333507615961888653709589029695282004176474350034833341377347285476494778804702714030592336936719863304774157924034298788837146957458174568241084215630262090536299724067717674348338757593967379362292568872729762019583691212905800767373341296827573655021254486499102628997614971670920210281002803952987534705567985522891215140260037467613351376107525137900015744957021799902555145879753293566035162815263531335533406751245404270901279950125782270304378889698013309644827018634392458039607832574655284312335262222603884424645173085759720985994494887303875601333561365920721545269582573739575866027581044248554270814692098922421565749881735887079217637265820207580088203360988016052156394569170630374480187980548773785021150422907609895008499915547126380552126478758406214067691866272914421332267541842607080601816992219062619094322241446659168191207715160735899489604306559525072408424180947576225518548977435674971343484521585624921168955764502323124897735053753601324755840988508657747716477736966100820124597707784412585852460388563284934336865474619944508128964584496058373874031492035456519635877296885276444834469211832489126837991392437550904353060427766840965049756775737883553249239858716732996289286033134477238323921858248985340785344862489770573674428235779756204790252708210017791014354024333380380730145170622961973102710674711370899209839415185797474215446964149894073577497645471007959126241958961295181932546838949335114616957705587289242146420524258693659776711779946091469432759568668057744492365735882992497460270275026819309545685827382874654250962253324935256398373366161868102975741841409445426834522494863205442830354776154924406938706722191496239588491804274218239176809203446869936499484468164013336132535280644704037357728892870864681088388738187356394739510532083972149281398316679487101729372203357116014874585715448753508585005801296746495918348821109221140724594960190667108668251286505970595035271456507118561575234075945960986435069322170418650737386705095050388506912140729817781523155358777584412003775263562864546464358133572789016990610036160188754566147290364031811142545738246719241313911345911820951510011018409241162824474116121742516999956785263211238119515614126377022295451372107284803723581166942949913951233373738756202811285125769409278794968880912350782942427750546802272008282983094549807782647355077848890443838616032028993932540071717420845951429138657755782201844100574931014951327336270452241536321329093489248936283973606258386689902828719716225282565333105333816036029650274008300823356120781951209867656528109856336142632140259877073424112653407973115038412999411724546377026538749692785595413343879853165536182067069041087734219584712570284603527550176782093118287250600156823152497842007499565410236252836068094052593597679528274050268878788211692377470095410506929112095396768793722186263832886767398739191328336955953758638015166249222462195521484930265127513405415103617279082132064844407245511493552896276458462476698881041127844523589540715905209913174424514521894724279729318981285458287674233096166571153847079581308435945190134606032284221705908099278789840460623849037202673693043113413306234393646340105315630663260243059284539432138757202325738756087525203484746779497155680672365142629627713390389781088470579603993960974037974243034554635138751627822764965737260014912417291092807822244879288888665984247644515875975638943124649755213765344487687406016535403338769030626951561535023210329736172338933241447112477607674120718719953464813354524730592648600722615259789854905626604439297855212927157074516049087431286456711687542415755239207627688946676807511524478012024391365273676196609654204123957492661495530955572830225190248825055915473843792999446361746677042237776836197239597470155530160342813615851441403470675598779864148327704334714585577587333852552471392278654859892800199617740793211334734095894408528888304783171460070002178000802676965866234687791736976604527403464996074787101596438674900696524313971450298797595581287781177741081193367775473323312536727585565647037095587994882509297155735389281643865687417938197994286673236628586552582726226286543970835444882656881513944898558603344550101824443956617076771434462902139763427650885269540731814266972950699600940105906055475823741733138731628156571290688912928313459374599345734660748424069555092979286857611479816366444795518531845603241792937559123109849089525010283069164286844440293418373783945415810582869721941632318815907334495642566257324373268749824446525074871717740695199387551824983951986808297962095717989988075026050810129140742392305995360289717374653852861862951934929005762800520899085464008279649185934090793484435805679815914636377592992340418170057587456128066303898262171366768488120675993618601254162713519546203830675990212755136893770303585987153672994207215294578004657937474743332453250085676021984006897880901067690817695031684340714025063253956252396292228407431329875806925015169630222080065142144298650424172368671944750827361343965550714116706434485211858747705210697850327808603989440248806422884149833277772219176081131413655876884487528488116686134685313317701041274750223893207448083507297670422030840048835319822145665543412137395574609633011163728784915680509325745512554513877673059471343369531192031861696480809457754487568349440313988608719770688475615927434229330023072261407761548943365049509662188710660033342805249011031291893443950768063927296754401194603202817940201515683748530619142747771140690682441451556314539786010907637656873800878867412028785503732251634175805570451993377620487228634100328495726780753111394805397582936054645500360083636394309085688725544849631908644658512491530261296677598280695803132022769952287244255255330994576362885178954745013231889450477086704848380114292894220818736282884620470470671758026951352553997520962933277969342955917253829447851205893816869294028901648653777048152512811202479132153198433427435752184551097460869554068963549481849675017065967449458524757900043318753302438205929307629788006483738883233373898357550882132850430670514878140771960521056639414585984882241857641804926594756135710956961775687833125860958728536139718959068076899491146895419369580679333991021598832001299313030413105694286495442335973781733750840157182242377552069300997966476542945180693199178563718317998920079412281232088399910514927217435914237910593381938372363256654545103733294736146768336306903945434320810654391539309470205359459863454005994844564667371182756355884731087039098964159304577236330166707139468795484572783067760991964422243705847637759334901189300044736400233921177116403753557751253752231818757881189134501714634734608218582164711985919481603013464592870912186987253117007679672070529670749238730616473225951288404841050163067498314605450959978783647081503043108531216779123943907844954080994082260634652251412441422430185674874532837407410658760461415313434701149553956578239061525706751896989037231273193447746121295913109358385646765864582403125435794987291796275577573139077494304032088595274607861590961480866878789905583489642411872977480775469658108681288691062369935067120533248713849877301314789997193143514289147706416681928276099270907021815877861317284849195789124874612081795966379697358511905991666813977151007133506108877823811241959067995238443540037293174998155927676395155696149578052704542052052388214501195233396827573257919210930625449624954794575171355379121404933280623366171408201624799694113907210167073453393770942771474189152467161981034647803844509882930129619019250339901043534127956252576653113120549063635494468872066580247560919476385881147203848741281588809936799540461067971186306195149248852708413808171920611081263069124994729499399007388441575644646664117536642536994832186645152395953064953316859170830464984078701842438708034829499014948801340531352892682629609226938004515006660980656283035940127857277788426603393773115672789687027218862446298383925004547838239378845127836251307798276681940439633346141624886034526375197248483180458435521056007489522643040684142973508400428318014729155831022498149751147718860563331259729293944875358196197913258101812996614615830007239085520514082042987224022610010852880375258337890151265884762812462618477604573787942238168633062241700818552522493028470818670159666037310178610813294940706166847684783240048501925861163683738028495372909460243232711669604303479312343198968687294313365364040110610118046626407547263361066549564118182664157746854160362252423830255626203117716432134086570860494547705835409743862642970076728588175156830009832719666226914828942207417384001073594272701728126603697801624309058693634154308272839422368740835520385987199561210832460872704101786179991671828763220664689458245286258816498930107530475324302124464037824957688981339198982160690135942769756057606561122013560021031989046566107971689428542587817339886569893181156506140054162064615129523944747479242369887169746998829180703386246289483088515596432150853528351461487110245457018529647051302757735160290758284023394732379524259043233729195882853597186503444776022556177662663740252019295551231998336653458411766436265289011994150960392970114620007419511497128918354115233218547975158706216307180964763120062183489700144102634703234179268929981790218375914013503399568308962547360425335025822279996997119497896447107598549809256249870887063753549188254950858828312489997287285524862445155560032190225145643919268428287968041755055982534200186530751998119587881026527202364487730583478490263464376901413555744271520865330589456094298188778839596864317705322431378120073998815464345851789585602893055591562048351965416654185098771110185838245426771094114973402439963670832702519737421672577438445920483784950969728555490836358200139592662258501759245234135115814449258397182355740810632205092561539251632500490229855393969532124217344116152540931052078748419457535703370350478159003342868505928289734853965608728750952392819792515125428765612246972069508729496337634416856759153654014066469178580383287633440066318927059193064037581027792927032604143224523020924056035623227919341426112764988357463983730630638153120788418051733208455287521171688931002598721417186299173640175124326874778233955710150687884092629550137010089690984007122342398013072972965305090103485609955519325464226020752042549873742622408122585318035319156100831156429259441992345032935576347628245099985076273276025574466335373914030374375665036001508477582780837668241224228225154910682886873580188295742925046543026432367972352241985354654958975023784164590610432756594928511013993377088726934572370609383326952974413409104180572854435727439906202251849728330751977142324337810393257897474197723695791682951847960056893092887543403916986533469813229219793849898121777183792834741130749899248797706166397803124878529303720620980886340276849324815566749719389422056734626739023015636577925418788180256217261865349373742498232416738828369165610890402818067933800046711990940496259707459579808614775073198009882897947633598292258843352986008456880949166335575326506800015111890127501889732011785410508597890205224720474988773340962726801095037392279778083545785061510085360827062688029679183635282774905421734089055067077267524416996307498678894698358530176673170111660538136349007592851469551067930344919287915849846714131408690504708933362674794172905198265705530314369714025766819762747548116531737904212570206627284494504845960186382030731521479775915516993740769074633690204049663900099433026819722442237391482072537642316233001171523654498326985630574177232293481042952107249264964987101936350392228051565734654875392206797910917898445251857177049016797916196145722042751100353863285024908610104234380601037872323250020957716170090552517324270415548838742928543600530045649532930694880009680147347518733010579488192760724916125755743700549726185140287580070786953690043640923475853399021951377699746178177114138086297958733385845797491511241607505838008173457125521427313279446304041648597973864721069564262471906081563432897578715024448781481369370207730410894481213932312609634125480342999625158479149033051598525567339341145095914418435763527638904363406688627901323284897446298881584763446074153080118593984975294768542601314755251151863813433309992542414726214460397578069097202743554205524674913972109525460202324984963235486966635453838118145738083994192223176752663146047308956290473649029167484741340607105594105874985081299862608474865793448247331889439443849703063191605676736927594721804746990527503308850611732293299107598452227889327359347485570086961195796671961909219645567411087647611691201334622676887879252997741903556673076265035135499177062153559381010146133197917426394051386834152782428083511030062253876179890239004852378527457667545010711059237809244326818257992326583971470132763482758172467346783101817186089293394991407525659740939078222647338675010768378678011373250800020030290683071814450880761416097266149490401106517135932376940755384652976580958647035241324232325443360335376943405081580235943836446386781150742651816286054510689598541672851367589767079777882884440941818500374327407759409133599408204073844079099357462256588899512796123093314886161707068404402553010022735281816054146622178480809477178677784236021748022853698355487587320920106923734617627628414103087108034763059636394550542417490627836307956022306313922732511628002655489919585374302369999294815869652233977956330308207905925396772577100059419064899331322858355485833453616551511499276669653028678802329649558150502475780364629230564467683505033263429597749897028498025267964950310975526265966696209374390590012416019407468868933283531469387938363902814773882900921730426467369974272623085814452529710207806607286591132936763405194035175934562736017379085993290131865279644412205432042457487706773650246862848703812495806891599051650436174106147027804112732246109916202637757012958683595873597976445717065005134004245414037412223486454120969435220460027152726607143509603835670188657076575575301988054667361786758817050304270291951849808716920348229327538279285964046564699694414690374057996917178916074184708227667819940456169178518748193931209603620258235553561203500270927842261537589550999055233563064080385588079049981356022856103619060966094285553820435532136141504243887057960412518743771266174215769258660387690174260820672471772514386597363656302075370003998600877842276419983046282152950635677386706924489650521509285276731836021071706790430139956607197057366249579648910092112716587721774522123343002337293822762422706395446075686996867691360580295594517786416913204810842139190848461745410144883345577024514867776711920970761371978411302374825598602944360034229756367980898456469248247657988291422419851033127659250772821337032632304328109547809674230104597055524497589545823506070697100416948014900323681615177320938426945197894175291785022732388716864379296227653230782839417387599342147539404197210023476632468388780316802826053101353505229463642484358092804680140880699815295199742483942778431786527928939282445742373048040229458361073760053553212547410085045695397639269299878692723908157042552679132172652350936513028545662566789123861266738097367987062790824133344125573810800594798705161381333011361112657737947510313748155363051879516076525795609491939769814139313096862527363005756682704173372014881775059255298134289205365872698826277337845227178618619929185497039412581243520565703188534896887741453261646886637488973129457761757328065403675293092033858393219376731016839805251100357822902773834256931043183642300090747745053430975956177431511842306750119274889949194750100191755558322882908078015461111013791917480901491038009698623676270291199231758101860562961470367258922333139678570464298519608061938809253677597385950643088689851921270215965071933725429948685800678935324752953224559171667777495083426585775481503836243921888286953761669079889453026573292161201391135600436066061615870602905161672687919074994919403665498127956652489275324939792002779920723977892981291696273256572221525816053142702888783937641186388428126558193763936968956421935476096055440076466756022993741232840680594389493032380495938641515561774057429222757174628417563951476106787892976803511927455090937197581235952295190347635296130522788490221838517220170295497376679980152889220257304741013229931437656654075545410230619922052762917873823403159698662928332314548949983421025721696671919734248815081826762746861354538357388724298787342721711965522428292913770821843519414862814213155997642144806821745613303530038405022049963163248878693332499375871226696473820992461291469992033421990727517482416158835415145534115729087375930973441468795723403470184989025385690093126842649666711171325117125198336668352809693825989557786444097301547308116038554989602875116643514158019210315715185908082343180610227587853787616629635377816871014836498736476420597922606793242656941183073323546194588409881619285365140939522832848580066120974974651715033224851707170555275931518144943233156282620984635409583405375329784139384718557388283425309704370224636509881508366435249907020772327108636189807479923971925529859633726146458752513832311746768757600907038001575634896677468386150269341553033271916158693888026447353906935330162780307922771966313575618942019490716460754748908392815632567222828766001533972657918048242260729485410864133539631432124808798668034835060302204203316207014564322900060318962024220352483086608746195077310165707683172505970768754273592367948829775697743318069608659332476888375038060619544950746906751557432442906388785304421274320202097293783618081344312076272999041727811012179717412706943357395489507327282648478852095252084839163603434671365037680968588993079079345667263283748372911585325185477641242055441511078823895063682171802745946123504611652416786291363831524942877848595225228524762230086347890201270904148555100068936315483134716754262948107848282895795429187233512737726679849857823841557331096532507836618189071888761376856756712620811842185928363850217361143296879353240352138931712064975175324185895700426784875202967166376733734114790403128184526583788374048109557795094192843118266367072899430610542458582190053226924632662086143387657899613537157195922019511836088207685551406177469640348276816922244431104096428485845654767783795428949791966657035430014502835134875622049329776265340300762979884707992738920788366287252671638061386048363641974226797132849512617657418631042299678872014400066732537197727417943673743923344984298098517486042472100276527407563932200387359681920309674249854093262383098301952185077712042125978167435335233128141236901408709328939844462408609136791618118296781343363456233349171274118236429192512744515501899597646630743732222839852183696142748027945428591345550732708906610616150172109255482124440962454305427841440733612769219107558709261146236267347466727551759719435929575137641469318633244996970257934278673473905501542794186112286146883138385994052887495152929892991033891312087044674481398893611663931983756882538761064832009268533251423072676749172874374350178703079666435788853740468677753161812767487505256156945909860948072234028834060473662173069309793442799072043451115403627059411268700401445158150140463986735167806167311457258682107373140164072214888012300210501611504777386098279137390737305758266100405750829040798994625876440123949646429362522999343086875382741918938681573084153163942630838534084762012134076665698303173042078647436840976281737703158030536782937522614151846328003895213677263671873319149987911377530520277876194288790546706781111077857518088504173503618166874350233408189077623395709190181580444593973876662093578787549251992999141311428942172652774576345879458071909994961560169352292542273256944760635829193202165632080811104693781920078927461518067413378264308379710557342237679700717567995948994785826885002369148611541074696131081342948545580591351820417222541209293608513153040551881840749720826212113011636387285722572677265054854618407578051350810536986272630280759302048114059239757478321666665701653066708981162969799787672728070727569808510362446845929639281908774715300654610255698326885621286847582075323282783064068120833088961687454200497144885318822908686489300125554256783262719301503272890039992680259335709161471002437578763382970498591465847426423815968574151423356255193288979704923697879612767573339663258943707037731044659248137463345312673648006765360790199501442180639101143820099024930932998554614285463165422713527587744605941671870641157642362067397968940870311280812146179199715609355344963475317294569018735816426504961157074607948206042080405596156950571904109965322768203407602360191079620100310195078585334437417217739674103543522009465661070290794791891076581255862050683856230025220313868103589509918145796402245514154619325137332336785233462307849871105586127895302909566959606281598675542438963930704105918900943270434051743459549154987949623476419545731938627804212411354385515101354920909066208458875076502575443441874347871359257726354504833661343350478875789623531022128249724488652685880553579842130006992259205590812634538721460156185311798202201337864511965236852603419708543611677846877146256214909887607020917382167901997187080231677375554761567646774493729901088476955081981346671556791211750283976154456573052692647478666494594962142638305817045376238055747285771080038956882362189917846097483079182010697867740380918785472006742752716452020767539241245247220388697591948086976742907960653496381607801662252838770699785537175425129624343363048866437570845190525104921390295987384336015799375694177799508648085000280786395028059348701356196239679656893232954182445372143395032353401964289869342695527142155042595456265806866221175658640881113658305470580600327402524264807874843863363987078993421687481191059194547457753193149756884446314965147359936065942164825310962138190807828162567759403379009036551911354792223593078449112103678091412956339160614341267202019319271091105330667413766528186893488926388227492999819066815159113350975151346259878786750487715102391932376742937349277172617974265145226273898116071167596927644135809628123454554867071838828761392257280381691583774455540844887557542780760643415017358314286383394510245161371940096227985838942842553129597897088786258196385305510988784370392595618110814866188961804088028642587323704606632431075371844637627468191236819459356193433722681197284141472649062519623149594911085025976310409580903243535776319944751632251124256899720822923486993259440864347926648751506447619718984570642715924466604024427311966157405581924656862960527658542259526139958041690778654377587120341025302398552872694577256533077029436551206165290015926597740553555122202475200499676809511152815141502825302710261575770572357183946471533955189966933785889096861534877511765348301866170312261150687389388359081360945563794476595266452792808285099875106957176488380707496082628104457315816095914658381066705642136666106894810857142166046303132183246262293104375803903773288983240058761776285463216188707362726771839661735961141377266981025381266770217408103727245729006060006671369406852352862335850024040198948780668069297909702951239344543172384979706150730032353082453381355337796261023741235883496012000382155799939359352642922992977290527080913969553178964346458846187682846322391841701987190018481493681457666658624899115885299879825435611256054742452692606964847242542056550548770562127748209624835765457053176868135370781818137728848890804193717227647966798116370446815298532852009202045161809941549137195606750105827831175337274372328934716698076887616387477688168126268866718881185715308138242694838380733483898171539103722680943353077910915443253227507824868279023154233437119993759661897553673218725382967295360333854636020608981604067213120150102750280690280357568891981593011165347214319187893916623375507811929178104468769789204159736909450974407532378891927626036071655948653178536480001806779403513074849908123989868651047835340359700957573038100184585146456732776763628394524687791721449989558080077027684629612329000619575120924261510448832309746596522419704733320452213287765872921678394671923796072997948487734911750938674161018697711262755578661845274655152241282550976590653026558722296214004233139661923177155213026389505634410379788813090190488878949817215288181353211130161937524380641761091571906801903004376234372901528044286111296649836629519541063737092492978639444711893466309191535398083520762044048048640992065362483137454604936308241280720003562729165687208481481537834824492334777352962198299728922749876104684836884344171176845215882536835321499546475469107730723262862487398455167001818794153116569626163385363972757996348381632026753982843214707323018127681198051986900100289850860017811353882903862402767004991862127463726772856543217025827287882898338366525220538428120728184998548170840196868153283586985313620304596401849375582208006905235779876596434400916317777637050129930918871385692341585378517176953667953356414233398505271570205013822308591229593628312717252605010910177623558987831448109410437041880565714256257836756483380321632090240652323590596469914991014781163655129797510803698644447691443528311761851417200367336345590356407109482596792142019616492653934978022717268691103293477720268268856589852252595503295086731607464487879120071794411855676643871037290508353819220607806826699406468618071961450932258506210843038453236135530240530014874051901418366895095062550840590917569725329185582131956934319974163688746526087339125675285743591775631323587536883873829968833135402681821986882038425024832966215824573321822257076568728035452893580206340736380606803575714586160955005703481613565611888351678954077852482843995892600010856312840306898367803150113961398359435956003989821750618171411356078136587149450035235497339213261130131500628913748246359854342654611843986391464530016059637841061049588063529519319063903090242633117742351862536199676590855883397647492906586117882841289398286141038268381775426179341788260833445446853050871882216104035558167838982822097628881676992298147550925898802913145576360908878268422084937238067565669123644249065131602612094350740274853181338719946468478684621521051549038813061154336717376229506221820388189721300756380707187665459364650529698068637011297119395574061782112695443971297563024221615692524879015905901925391033637914107157213618280490196379874319977096490973304286453584051057650646626829651417517971162646141501669021205191824012419328863295959751870992507074020423094023496798607611813573495366112048572730010099557248278819476542256053794844638987344886262748800673044855661884365251352192240806409331428207366704552111267487211755135151994340034349328940162648888913752138947332233132289673947160872576446622656114362498812983023766724431398682104345156618245147293164946687092787189703699200837158299396413693212677282012755113840916418406962026006562154164787602456931240491571641182335424904611687104766832439515518650238752348336168110214624518309685456683937556091171717280923185164780172343758349868574175779800194499557681186344060786543180093607278676959606903259246061367613355276983544552049166428775789685676381205349326868311956105104844329744732310853471873194562800242286404817282086242271766019688092565701192887671268133277258388513173990396222175122528662404659192109913373651322952616004133231611933758315558298793592147241520588340636878854962682186395341185053024579496828797719408472456781389558617417068211822444797024196873723504756533894783030915820269371198709386744056752840112121856346159725416023747340239089963821241442419168429430195108170305732704685249664505065959021482646620417173050916785594425656021470374953930727043206372725490685487946553825184101936372757618655729207638495755635244130935896934817040193805357251870865526473556659796972602186401821079887878607071159879331059424044799567399018480921100364296164151890710071661409150547658745496385922264668116656265747739959774041987987813665508525084175744812745062431090466262650816660996729250778686836951888718658197424596125561946864307103598944572272899164352537325252445102364059863525411217483405567983285442532211407656844006512850828497022381487763506195236434621094667517007034101399515629768665644314348526785691039987678155583073913530788126223036707683416465359190523118283111357711743817205444368415150180328134321455301680202205816826312808396309293831893834384550961918986477016815503627061301451091067515573554089776513475849774520604417020533537049397078056590005116194797678770830695415103264348970902732825028062703630640990598788337294287172294921822961610710318067204187905527938371656803674160595096961344001110546990342199305568061898772736402600582930306522890895775615967899884776491205595260744717928798337072305126970577507963905119616631383951071535750878358720414875559810674496951296147521120361575692814874193325289674935754565013015058401208489245699420081379972685983145497074977465138734606235715850839271979639353764735328357025071430029369020411560210388100209468406566162917703517735223873248437165517296435763467710345940359685344845304364114396668034334298145697215259167347278976595367839831502448008319576235549696487327428355429825066564566263292053343102419267691474762329765106377875879960956922915579492596090220413707682403213920213097941262174291116822650918080595027060958530339210869566993282770204820395198008789839969042546541902498700262046455338056935406123915466557876613517555663334943444743370337419419774979638963049744007572803838395559670768322950483786289554562974610949899098940010110947379306812109199335228088191567322874800725870448708261980796661940470463203629334478928217335391071438060727614435939672195534374997215068793238157267043556602451789347285454047806935727405309586215538067020247195914962270184776624140597451544429265460538927961964437222632272166265100101320120126035577611944140625792070411814348628459748578548689091999572899112764180028502965111306863248953230919899090548497046919615300462379427923168304845364559302984644241430864357438552786679237291512685678367653214103904728635989243511278892064883060894841140758368717181039141559244984485179450136864917759128327554125178565300778358567490634775249546367517582879473051964340768158749262316831683611619210965670111227645816082791015339601238171297872799612771824761363061931312674346199644791426057034879536327755410607029089261097252472431707531578560898304706669163474673279820166621093297956992234078838347644979296573804509115582432476239877113712344894994338500837931063457419143863337815001705297170765688679941158101051201982745132884224938731715375353866025134679243940264122197234689541197472003579711418834113169914478425805880348535461168621422867810309733857941553490221321409758590232163733396851176993340552346464717948008213023340365115689068402351413321715753285993607472760052868867750575087313631577328601911403354588511576413307479850025855727735393016020044151528659654693256084776985574240691784118703940307599804944478821887896050165157739850257176298208936382149211304464337152667087913622280162620218664291309979157419674409914424271021488459382473682389573971224616678234194182785806266196214228152229706968967611713539255234615544277289689427332569278688374549584407017105011431623430273189607288410528019580324205046835655482450777801891009949062548298077495957626583915932847891864645164698329596926742452268120098135611212247462122224969156628022227516299799151248142368313243940539369165587353421325776759578229536541914864658485335505265427976885818323178382797715229323842612739142122897035093262871779574165887541269086840553986003529033825852320643869454242245729168148167144721505033575982939548387646427383139709413731768831101950839887496538362069024288302274730359793057688566780232314169845156685223627180962342528608077281497102841834424404547368725391727517167978287688340311806440386222684733420935737094225988188531053417742498363567922137659705205493962658926085492104024224735346929959516215629911608897748225386045174180405555263352101573956928495726489407883577685229660711938337950451693893845031132335224777264309588723267810442885582218069435442073323047400492977368277915972808874954026115528327569470149418946464971085737191544349793025491532037861496781080935071927932699439461759876438113533182407021208169989198002221947459183627009740003262158066674727616249521576414333997913188143308906210556248230862671928149675790979831061507897312745500994583414915793577952501581857486772199666013645392413227574817233040600262902451316010615275332324949270222486631379638459485879101799873962700358219329742706472146454203759415862778214340417182364194189714936162774175140800709460403481777333395890696174987734410745419225155258069348364719040369335585206519433250366812557321806085048573588411134820771999749771356123655459641616211028855233661374863699877124571840732075190519263999054094113803430945928074887815944974075420948612434100424258235877995251457457580825443046028816419980156875038959389901869106133921180608590417142674725024349019309419512104465182280659964797096906948405150470374498735314383016640529599593549352098916701914378206429420831694540321060075664258825057960541993187062445417403333669437176972345647625435001847212858875089974232350378273603375522466305915902663110888765456010637124908195509355688320316677802391150764506387531758897009386540001103500320939569140035892088838715584485677440014962560335752421381237213070273929507149299759010207054009204318538182195802783177128722725623412699762370106847480182154660266082871526102468332491826588652665508344451776172646373863750785645451406340884739860274373187854147969458601313829392868642261433526627295114121597951373626986960072242631013107427844405338513540423652635842370117134268420676781185148193635033562430516623222966130585453697918479547820956392583404623732180000138251612520227920192662673955207832170390480152958798189271638344302295825865122369374484132986521720251077268031245540618826422533395115155095747547360169421966295897862923225745350463434041985141412340488715680764038534054465792860758834209578037458437475644203326818933905923114369166458292756614207426398036613795444031381522605730544516045966221834970260937998378158283293690476489091476524056392985911770631792312674398436259193373889177558384240319604294984809755282732418416065648589292899994017291235467673776882921989040491100248170285349694049925707555839896751230817919294085901138324178456990464928772948207552992551434403131184977996630339440576502625986751620811348301871952499364720134696847509173121853636923994530475844856640199059847368566281624387824812384715933389568907938293258965158683882484717632134319774363460237103509758649873432306040932239112198538900633197724764807347231812502979506108266828578972419084917250523161698643471529731011414857795345534151653060727333726829042313140201256662639914679589108912361184096519830186606188898776731640917747327171916366330292571713834596812796574873556087189618349645209833612586194303127972894518881222306376715284383513189061705596826594757544199688764341691723840155968435482015276324126605054712318035861406082515847292858267109985194145261820263923855244024169902975269495674438749944778273225167282115694671303587610887957292192774062443126433353836063174657523661748932606148934140106298663582549909961076763286333769675113754959538382604997254470875754205231074155546311709244755319864041794113487780004213374747445608576616303878028105312931926404992971178632908792617858012870834215316616340036523463473335163092103158625940823412010858847997177830230427162261314068710132684998472296997771759515657187654645640931282309915832575951571091533926118797954926250105020124652938369291182827169455448683699626170927961020773948819451425734295496186725541787911911584877479433620888005025256668790357516633068266081389792923825982484429810006349447861406198518236405565448093109895751532879487473698912862821376151372151457992340528429697732964541422746414690188207753279314995766572805250767414939466306647774759110963527106438116184924551119950373705385485838002992734949712712876741039083055865295216678642585696351649252646427837077812025593637291927355744241793936893569048095930644770796202521734001896449038355904573871984572887105120102697837930749242264048571382716693901230010181353826248110952120210206126412131096912000960064209066383657655670644743838837254145445767512922047117049758886440265073228257405008330451471819099696835921842766073351478840114901681289569460495845318004194850123263998912041430441221858345280327296322375163978238443531212196845231318739888877006606456528441041115392018528950626683826519874064409829401744744904235471029080667114446604611605327365594417164697179115732492030669531171147102825488463368327862108763274185376814941989262895298503909801620698058395409884594714722625937934955088669000857057147731338896097384204893546628081009072764426415730015311680178830496852389839550210528767361755678615523138378519361086467949223792958085083726333887544495853456694173509977144766120144767085521047447146315535540728393798927499805218539431109836882182336564105757255998770183344261232379418613172433554013931009875315808919295756060278554201124821675506322223548475238513885853805436604645001612551249406358460023496206468006925140119706368487186529184547921364009941628728875813788853829856627383557139300642384513235189297588255419536483437621265429535550697428513427599279024036693006158550725040954715843818097882199495554230762422690988055600774101317300546045422046037062710859207787570558552734915556037947035748439699001901207959260236945318207366111551254927888528437445927648892977843430636078559356587015929959285531458206621876900578588505891727995851626356994785602111497173165537205842478102086781117716080661646592926183511698315322816865987199216530137805965203704225925337701449890420457338966817589777352072235590912080537794458640955015622593604942539978809102935885579882868088067410736871237857544229283913241347946920824725870722618045697109152536959479702324436676635216979457561130428352189399563943645502672937269405217576410953057576697247857259638644305062423153997703592540960831386010215200748250273272471472699126392297620278997661948306925350170287518882910596494628471116697317127264850753573125801177139793120036169457089520584853738805953901261022120481676256675844554284816082593573972496405954567887741468441062318399089353143072405376162837169475921647471950698732521594309186989146815615616341245006629017772923045763598469709270492968397950676592115788737096001169757440413522514111068678636544487780852787036986978133438250337872149796175031145505506327026505335457762061322955097004864696273075730844192495704816104565961114548372782766646698179990203770678691751349120262437569700453990704164891874717216126878455263214249317141664474587972825128708711246583326133816677780519989765065515761589447705953024345474424876137321253815157903691714318310336217905895344040994107867727891380661065527435530740493367790467206735858325038463424215070528477446308396538941597485153394043774222805267407764018952390464937894516600023795235877385750504811232585992295189561611470361719806757858441522182019953217706020235335894735333143356000785210575822089820803909092097642178491212163685106646343455280276042782731462280707523869836094713639978279190416854483507086581484342212046371686546343693568181302920793773165142596121161627186996126357546587717947833198995388693079816097805692607499526617991940842265932960467536306499053647006714463855565137894242421046707188276709735572862150585285806487011995512744375419893062900500826984442866858650471034448225926976153160355810701795150743960168623443953968295780696153211427737165888495993217519121292607924619629309676395783635972374897650392575361519842266278187937754905931769391336113290039242835859798402359737835512009414577181478671310742799842673266154009288380132515438727640012561305579371783396964193470727923301750591245525032751828716142271326409383924012193452807502443334460799588926127273145824261385366624355671232390932269527087206956765148863350941301517747957135109713003914259948223944754824189127263426521168309532590091930751136937501711007313636378756073864114163660127767608917972318668944988358848045136383938774580131859639393386764316104991529030758494768578850990622503970701923196473438110690173306429495071043659234405913526970639015629348944091358597881955361859457721806027487392899885357066437207712207400705491390216698043706338038936151815059886625649150748376920587606719578228529655352236793502502280747601825674405744174727827193108497184289995456467992208017790709860228827030417839312758398411791736119243382494814531075474398013727241849750902883639757864036370481187085362936171788896635108048166412606750262759575823995939212683505401732609474287833143997691694727277235851843581232892611179335194688254633942723704752678671663017824234845585451438873823469735308986389744814675370128715772510523867991154054020172604352702953111814520975887090778505957687439465697014322449416004316875331213020621346315376135498269892814807300512270883597239204398625641290725519544449960444040930084875301699280653334598406939483020827437644915420103817598175298572123528484442727403669811626488645387286091314355905145363185072069415844867115326063322151506403850557864063224976990479074918106624978674461152964144910897245274424727169525939202895739302813882334818533490672442189660777088335464037991435449033550052403492285232617467851710505446346941679348376597937354333644215620165450164961975826338609415480929613084422165759240091432445608538871093513639364051209133063579330774988025315327280078158409834376968718339821761591662621839797760936406799343323124948802107242656545668064730741459996503872477663358980533378989079132008039266741396669742528979654789825569270721932696144600237753832180606606700768329709967669498842337273342665526576041252411104726586068985379425422804012428877998999551097973710049249773941561054772300618471787946353735675347495339362225427680007550636769027891513375402692585490465727692588074768985727647117071796392965393944116598006998711797540239452983412509600994074769207512137786496092851612629029225530296402097146199832647765465763468839316080456319044880746242506640376687376170608193585828586241699760963077361630138650476752323549336104814510120686975862895855101215898824807990952213614644603078158599930307377922392464084070108115275987803141235343760739631756944933479938232515724724910965988837587774200724063313127153929733721167284233326996584103283611446588907917550897227450933041373777029798664459820454023353408497757320172476512996992606310894731797282031223499234176769023995253368946186857640380218877472569072111781142389109864472101470516481571409849754735644399476757251103426637980796211884495365595567029165406552288850086813739736578205399347525940828532143256845219858960161343632021577945051676303507217672902500677392054844753011277729314288801002044646522815865387800693142888687933683935106982947878991055760768983699594781486086886206281806316731627620592507895251020086272736032830850858004356168405228018049422377335793178993240218771933540930854434610949929598626430515412008066860430503807762843376728856260285249108159115247707912110387295768608347241437463046916640815033277830164372654255174920500705607913119357706765335572372579510657320426170226072089145914584401817249493797922902858195840163927823843978098910808103127996299536119257397029302266324921032606962961960080271781800561060561709267561947014638553474040624146537230887907016168515270846290691834032039397511861913783734220159023961477996101273125704727104718209630074407096535259674986031114377196708409413299809275936251777418612935005842267676727160960681431548407924125821176810295561708594584617164836656046319935869099038348364417508857843090085320560701826077984700821060063296813663545080131120265027051498486606410442389200510052563118049922198193489249474913333197564862413910709402715612156795633388457444263860474380498269781602150682115368698245766619517644661424932518457850883429256439112464537406163501233500175234311076045139393964900882768675216195422449856450553959775494344265075470510719105327304980045972224914377131520703561577803721178044950868962210625420047624520072743761941509713536357222469084523112600461857286267558042552587422203563904091661884262865653990468640953213629720049782709069117406031440594205367981831862569316323200632312060031229170651740702302359885465333201519718065823575874069562763097724986221430724438888039082394982547419050239489037466063969310583982012107531314310001994875244830140719145694295887256229895689216955604003502884372952364431467490781874870171916822177778696200694632511926940306020751820116289381817277900948714020175500144819094675857721089069365592875264343162168025194914744059479927136432970705276594373654724088677613916498978650414238981451677372312080899331066850715423054007454767265974743301749923038203432582094258267740334289751860003809229219356601504086563829433995210201491224411697825534650205752366145610470169685641378369099294549885557435188094990844034860401874341388615991685388634418293422467956247871441139809045085623141787328838947751176444794655641839566887788557550715953877667243112937068689057383417470907496318998480731444983606231629687080706411381165735169736218664544586490154253619989771716984511456623546215105860740438927582626847230815086053176606570519626396607587485622610117890344107181039676664657246661967422074945252365467235263847673067934361015936566311269381233155141046653887320057644769115055357832664963809078907237483642085716490173577022677490582956386637066668026948370476893754749133969356345892172019621336893610530107715893658998396059269224638160888913238563847638529824071298265825243584820665396066292560393475501227042225189854462074815975208110751777042467893375107765575986458650700438327058785737697237649656360006830228235885210453417966006684660069095776718004641060915037027290393618679939309574396593111430841639596527964661719431998555690850839862397184041965226361384477538119700512217494767111877535676742759902128994428616820061650024331236077096267749888918487879164793243253503977278219927733314003465003423101741806360466924475463322230128099095632372361703006707085977157997289830405975245140300688456627198440418189867461660233536349142071708679953389983523534273538699987826549118031568785168481112471601438938978451204918224335947086116037089131669246782194857477509158996020820523326169658126439642439833407218898233992560001610526948986531362712429127391944750160787644982183467681536025873773953513051636901203728537212033335046656805264696388607274592922543728870235455059778158077426490085010269590990747130508889921847565750973547839489228420614293777885926990753834116676336891808855168572064219860201773186685926063260002496286753640558312111150062051267571918812067002772677561619501185748410946576866256373276902785657831623326577244971565539274973135877843166183783731239846061709286999155057477136307858870264046729217331613560489345076663724252514553514609718837043186435281621612737748016477515897716672706943535777638425784163773360206643413565767060408500869877152570940336705221128070033081135581460195000766223160843142252137146308834254565749809567090049155765245581093734650747324988372360547357180752560069439705446769639753419507923861552518508367739869164970837934975154872735725118570358767417742778803397734074600455352004333185417226631612898267419668341462451774082955461256062396959484494301718294047726378851616823673008679796041481532598437104534530679962617554506397005617461904384731197086261210147893834167303289245785490995704039768753405696803588223998520927917980748964105092151480829762664879134797298111423307961414273980440805371790099253557371998932959412125763048311418491146014136032316155685799482887052822515470843567769831335351454264184808176649047132585563828591465928874348869610407487953682624856057958326317281370028203071467477343113174495891430156839712577798232900414810706866238242091544666003350881958898143841527771383642349968096379068445019360014736355552768184162699664108102933227964439445866798036878683342630556869914041604577012002664565868657893717372317996215670329064282506554890691207892981906802479172554554065209205599299865652015215979680694845461120537856816653182597136144590144859679927176671346225740695067520666921017760314096957475543900307176649046417675000854488590323887776530496992872281152692660442670664962538342341687273482398122032473030696110583685783182523525119557386561914214660340380465138253695973114278969194375852693820084511157194539006541019425147900800573399186539057726514910908955173222474837815099096973378443642310834609653644259062516059593924453709978788822963418481993414874173709260110538793975061580997642732132260624030411460184904057733524583286324682701564417569228785840248348453246425794609457923248267674663253178294788217574265456003951937106216626712151136445061501622001338408092025917571496727388269832205539147935661380026206797008193308222749061490202536858769931079394012699391173565161154510276409031032462620973149848728269295910741113769385305579396159327988231115631284708450041985245549335580505522878135403448972620425007670207120651185589261473242348275332680512898661304252701715420397892099361139621242442428778607848773166718759870489610510822799536145442077627681552254761004068292095483199841261226770510069326912844949017137867382143740507545238074710349730916657066150189397032506912477430804103536179581311291403204817162394165770605538743309323840589657592552324761062473395114847830659334079622533934299946560191966485500983406034203331639639361612837626423648056166723502589105308997016317841320465806266530581426551344073987294355323111012421738383726727833487099402586269999673057628048404754838417385451748832157707227935181975188940039631824962861073683899271571066839096522905122678354232778927292146637584423640326781890036578905407131824288813677340349093304790793548917926922531039468376695249451630722690459440976952522755924059046517952464136563341633076328813225121677221458664175022711407207435239929084495688446557464898839974269731363399070367444653881818514895350836525055552981608509832079018281764567153413556387399152296888543837141656560438937221441332814764886001169723106754025733327716120509259221893050199734531966187582453963382967005897477342731241721756162990863513740719541555250590340357000106138965893801758019634263184250472047879593056795232215819403858291203530083444211994771406370689007973948069409920879975235047689338163725255500625433501565922797257726783167525053474096440124010997928427059171770863476870789317670173830792220911468483458702431339468640736509059418082481034534116560969098357157944022696059927261836907905190584850327190601871330812109107836450627210233289101136993634579331652081987598121276959368278616278969509044878923184338282697986014046464720343100212497021247477842251321247559929179177905389246179365794730846335343331635370894252165156752625487198878960126529830149445727113720523965887309707718690382910743681954656407885499033375996154890046741209365578753614817478788337004409543775674680503192531698910226146844640165614794014110171718437370372708004579491736904078025863232560108162654712839590600807116557111758682783730420030001976642151952534313514920239914411527911518241208547290983666176946315474884943935294659871287969034911322047725905666506757613017128794665434513571828942686685957334660014984666521552587023680460485631013399537053053851164196250607520415716578190292982926121774426980835777346250007497480046676854152725728364556142717853306976881988220362415109760088622464217529793082845357247365536210095408253511263733380856072777355750784221620106053598394963699938959512542004281551296778135029990062192931403887819374580810400690101977346941984469354811499224302089189507249413639420173486319594556418242980987625327610068273827462021451981078637519384905136514213823730230967914502647061938258462213368413418528272312638166923922297262008224351398603179121237533716252452189860605796534740534234969066621156023106446476550020075287041909230490921909584812107023119642415007276567717337760267903783350093654215137881640507816469318634062695010226999410366866997433425564846250591293884304617351571318863898211480314110574808978163684257985573703933041527924672917333209798362124512023922130901290263084157569260442373822078745230699958654304401397730561760421452174560862772479852291279792543803864987639124353193241597250364329318154163244259672643239677794101178553687429639832391012908881783052527038157902680155386003303241214185139312656512316154541113298007086077645745365149512910568724782560004587348111464405743670203932877853825699223348267407267781273641095146246526666176762464437305635602848229272398610262434700261120272055071783663029872536620178304788404732714445461613623824612704300841972776774244773259104571968391457458761177294168882858392464979413304867703562217325755369429661904482511029674202598020042399546049342048056297877040129270818669076751573605418464898868318469250694316065674391984660420124767647287367759348343515202273097562091667012440716083154816625956095392357973076606513512957583404578366237602167835260562916079840341136261864351214120374073146737210913024269116206786960770789601153523557289886774021779157801153250333763968802222479230245210001249882316267038265261433772583151610332665123778735025783192639466094531344482391500496762900257397022043804003190458359212792401264082450597996104964012442667260702213414799177955084706997214412857265104221838930070374238871020948372437837627760022246637924476681270915654788895426812466294083712142953619516906260007133905566647344568528418227641635542348751850837208213788018718780497513888497147865263120871635480691860001636967911227185735010258667947053593568793264671597444660324706940615532481369035945547736681764399444483904406645426537910801710861388329235542112114707317735395311505354400131387369261463996214211213690165518867734920247408586259852065741917434564725343495697618113128400946324814961885483633466832108595566470275664019774414325712060586947981315412738803184745438929597818721641193040362276447137206617473615651175885175912993820985317555555306512169397609472434187604064954602467155067932994042704214111736031422865434594962678100518066943548345887918260375182504357364427873522475042251288999403976387252929028013200445909420133192507465922471229441272888881779982982883299942277256408021675762312217534384145296252916860279298189644267097922344996883718505190497181450152464607372429029367385020213377473926106315686288875427213312181973694853060317805149487389637724725075260108044101633493127799788498041188685284306723525194670577781827848965848383556041506488112219970009229865831613802432904459944384195649445936238796355763301472056641621118355793999071881481100910549715278738005509845229862290476518997064422926211119960920129737416264393739432003220550082254807491351941270716075073783701637084522357777217294169626599240641524180370032578218152567048606545227159132047467426115095623694812554218324645734631553146600178240148750711262559404319286342328501942127554968390140486450839095861394752029845277786938526875971058514176783059130841275412605542100087615118460007893444105286836679269343345392106793772127696508899112337321685373555352991356458493164594627746491747603332702523769212026681507903480775804271921254614739790467466697499854257651112356594602940790221830979626641862290935771507658436883318450888877302053764110661999507109947885321770481368947992054864715441654132904666349175883498308091185214405856729399242089969052678949773511338466093914603331329690725619868554032808945464962120538179631994198925121249956745335822568653356458010985389056821340668429611385273287716329789880806348462411664975802315423304356056216687809414659114818054358111772421978672310361076874033096998103062734092350156043395521371562166216602189592158286186630140978064929024592237956018948849771072406916802978808337601677814687676637927229684290428945341025650169920153370634859721911538592851344828609333596047624517780803763654225978806757458052585887403210450505029820365745477597598202662910039202154700520308443008596197119326323445515050843793870280440285836115055756141433893143400600878971849776948586408915109536355252617415839267314339015658456624861160345411983756229903853964636870058913055472810545861373294413495563482244412583464750577438165205676691741659963057931438889686144862488074221853519844875455605332386531885315536532286611757735555641021263309155983543329117621027001557090310996842717190365565437060196069061424307748831465027600612434976835840122171057314742947390738593856769590200664415352868218974832539626735201694934027351247694866271173514683999642290976385823255265749789711582699212863673598704342114781244598198941686329824094508104807298808232693552688751750624137827269965437852560782309259190343090424087341270805601902810730287322009850766397324471723578764936488011187121977238970347460813646163606568267401857155489283493584752582425059867759986674861248276905335067453436211374264453748640140020140476614500946306720103797885568497058463907917732476279139521545463310184263484529864691190414711213956819144574346949944183919052187796945687168791483605814078269332554282599992773145459097536162646707180415164123643217785675704970040306983645887967323129289722331860401434414732573684232822739604334062255606297545889224940746047307083141812261952241278169669624753339111485765114639289238317679650282433531863995091004353707976225473029883707784292733736109121317775783416332884363161919801548700606905527982108626624972720458113094390583090492633068451817305364089813263166263081540262984097386362398377727098770322993577062699156022037530742523364041282182001938884022008771124863430097823130288500109014842750511387463672052238920652135088251058637561810866215102752529001509667620596653554184518023060946848072187026331333464228122216411219172051093077954154862824400031270412873162798667502877857102772155820838688325990160475842536266479948955689107572261706556739307657428511294907885134527164031195351476739019333125974487835643121601029021349090711274732322640661343841407493716438643957345616317560404104198781236394163495648987630444211622332955065168665450681931889640084894904830144368066411150135819832624528478907184528608011519202708859001354909049665243536329608788428634354511900579263206331011338603697432359556740666069312693586262670915212481405755314092664033091582647303484878727809777113601424864626778778172878737324077781644204512995296443378583485115490673366888798399095792183253995056942469278885559997841115353488114208648052900779468486222423599868038982533870410450781553643500604898940551620146020214476077545397725392140555435406849120197692351001370865906545067920798098580746335782991340294298647117596624249047455050733972795387136419031221819778203794440732976020172368782132406470897794500040131556806737214857684380805750311818680396282489528317436961189853836974131166371657438248133892188919467276280986598546540783832679317408973709961336716374706658559715794829363345954482869317356242921789612470396207837316426290060894678580724647364336101044504965443991758909536743955656688019108827216552149638110872478354271534827681151156462306945480097976864495365556538726714450098221748534087679493617903217134498220773449903012214843117241424062884008849400429487437205100844735373346634060973322546125083750305242219799003477349024700030176083851027105198891358767610088440339676126120103243499604180576857141175592196328716956106919275489159734869943562240222480942891988624874224411140183534766412300982013245154694912943560707488150407693326295724203891790978880926908038000447709902138821689400860792791101407180530288049978248548724175633230910029090734795070379606795117848317859195397149798507934727183756854450632173230195498121853223262494941911164592858756245195225375410479114371016520629896723937425983810629156279122546366934265462159332217953289155661035674007854839286114576957469086154035700342356401293755091168463661470431629532942718851572730336037924044215977327072695725812449999849185772587861383140327842248874246728902785098387461706221331788051265081200347322660699296527424287628422737697312607107558153734019810787604645698687356008667690512437069067207469786622474981269876444807948846544904032668295054919388324623492533936849071677344551508651961456627602479732453776081131697067165704818996965976174080343727694882340809803598404602532429929614275753916919339425450221831672978395346110705394819208754926029532585145724939240817689916262728050492444882235436302685709919774162684954675899207569123953608930843562209793104502411422390011995516507262930603831469596005638497305659458750351755954100499916442167913446005283697561964149372088312808910125122362933753045423450860881653893630084462259461474918952999067156421638685392164582967974989338267034004719213398489860858588637242906817520463453162722826827136819391729833171967500787022536374423824687297615382663061821385543718757497659200141261326109902896962709502255264246996405549785475380468391528301991282023175941759652217660403482209336816834521341113859613915515893199339084741661310149211477965397769964660453643339048707780905900960350664560466643975645044561661012237839639898274474585198629843690784963621635414908842615626428775185118347838905425756340251227687636956148612495220795875283957800108626146629630281653731053848304387904195615262415846245132368083820206272804253569118449523032595931816898880441501354249994045741456501804307784656065768102586170584304146003990172980791799199110926715800158516258728112915029502267281150677348286711739737592877798818283474514516077789729688790460188644823540917975523463334562197254746756858437168888635417285575818875524430441786907621981527231896289776415870780474918095829663017357770614489102860791008027574693719966642797841909714231739744633856785157036948004352991755823853437529296682252941682749399363041889810046386838122448626462264326497478182517305819486527500308032735199709247914088643844721649766616526167432338583547798939737995280089781099262701968922555955045276939139950795081512543320890089207447361903648518880892650196202080999589937706781826783767887515274354193400207920954624339478024365635491535498062571957472915812890307779361450722002063854619109561914999432118188567135380937406603669208498575856746957787238488427055426024599452637777538296528038649407049188152587941872126700349332633749995147737003734594726118661806322685583802457825212765180764597929866992629045954760766824446379049786712931807511257805319985507726399606626377793059337415290222194274125237964903349114654379318595534807863362270936297500545349413006496387089774617541223312389444089490357655636220464437029018260671393383918809275826620564498645187911529296229515474241032693970737537420851603199352516831456834161870698873364803129900119030614916765073692155552435478922822337086171581690418493561489418540784711597927585432099317859673982181031245623304769333094096206792324873842866397858080935081067635059457566995091236975333059791285319455352087255348209968412661368614529958177739129878760780721792424877762796418261344035101074146286987049803474531692510944112735597575923651727284958460228412135465250410846602919623246740804708528755893087971104941050684675708214837883438821004178088797482022997738069867631169390039023808186257545323999839236655306966909221553491056286626267183450124491171584270636882819966436268755289259614191205289230997261495948848512408622774517021901787974010621204754767673825479235050492392824859777518568340806908676521953745307131310805210949813248637755019793523088052922254374014426469426623954469068198658785867727394165982166953818314200628877067580696882231304622927010802234118690009677564009387239939240564911950864432380580715969030710752952866886629237578421832637980683509149355285107721944533669654236454558911283227605026094098312377422631999021264593458037075892707601726289887452355194312206545002369098164704591830427429633942323182412649979154051063727583736544296509096717318771295010163417397516800336982355019129284821755349843158455651382377856330627076084758668270005663248225382461547716098308232497479872590072968837569037198455427973060246995899814305781330426209618108499410838290694733177600828166606572583364146597899053597800089659826881477677742679243305906590385883935401162649855376371800055438972429607546249146381780384882828183219803990315076202980834958841240293456552977952951038404429474912808681922400319537388357236274445465933122788571771018494338799409423883770642222885107864909891991796940898655705579503632964084698988849101433443906139259865164959078274442366403060470047405206150283699319581715513379757363708405046120206073060153952328016999258383825164060535608523868131680743809518388158971801688654832039862898406902341502587195079428897309960243370207836059716323050047027059236645397505049365006019055449828426165090383046035385257880621081316399476331022996891097920924566763473056435550445579350337521230057029237690156671608206343728254104368136329600907818862696014971238961302078623075442779742417240717140398231378157838737248985751611292958372242907361790012474212753996530055562168066866175043727244157043211797615465871581512336554438050944620875605194117775499751555674736390016865627005755854096884453090856118742017888341255459671955422461399358430123220835639571779637569523031177049022013711252358464727911725294504570902657342196095317436297800146998451341291695972655886389635881244830736451577115218675823692717131844479724433504953497720905768928924086246598544351827748768340248235858836938254936997350412325800823637464436360186068721431722941726951617333524120983262654009970000343573519734743557349231969733048361996271867850338546538034939968047144542378659383684926128513914748171353722381704753560279406845730306061686664266282602426778549603323017104255734552328376098002299460002470638549692776474252378692373169285639950686570176132746409010332189833388882997585518228202455181538197942855047788156708437335592072811376134964833072481726676025629782335713016888391237128938469901646043649048635705594979287796657303998533285381978700172766250447453452662615724930213516769516535051830205759781358710048273804186239828977129046586464291449594804971605902728403455382667648350129886932470180618580420401648458604325617169270003732043890366872875568855988388138571988890437733493930589736716445379894400473381424437862493067822433056808914373854821032507653881069159152951727851271360862203790563707598325510266430193792161918663978978388596465173679457359466527212901577221964371107050354774289803204631729798300611541145134372765417870951778373934840948607155885135639541897396528547922811633711059797974308010679490393569379450164731150661600644438417694669237246471818940879706340463840070591493139085056689110826817987315053502803923184354785074719266781061736652776683258998474720895617492549156747932516483112659604452996944731843285673060840061370604102306725205504791456393911901322241864983551182664442737511667195955250388818054920804794536606086559407031605075767196746140341687336018856922199318516733277296404644019367245998949270094209156436034708500834508703461253845139902029432846329895919060081539674467994333177850499515637799589032162050617493472919041808013601717065196368029024807017782588073196002910828398607359860415587386161039878988260824985194285194334193232457045318821958168668064395151915735882867475529955322366830310223458311393424785905090476216181825876600432258721373082581329313931188315155493469331380460559830804558730185430034380000409967448461543143009163229331846694326144037021844363029087056868165484623672361797649836095646893625741309371045026470019851710797347616902315832181446785313011200578393699353552530386059660755881368406217559071939333517391958591223748345573624974723068435759197298571547790696762180479711925475528908573968510377150903431284542174293898178608892378890036326285229775583931871521947921962925080524787884941525309310967470179390959542736680878804370878194859338876056506712005883731101549984842996885902302466093971304286963594482583445365539638694082166791171938099265185288364912298451057619519857353585032466718900154423780173686721564141267993127480292706365711852684178141478002514210755784454388187342893184610353209846117167925061519342233332537249970666525005846782214544038809221863132392315124334728696781288171703815260297689233768792083764183938049135285016291684329462878521051450504814902311361363772563683617279285240793682087902398705754626265788446572901014544683183501977130316544723882582209297824631569720447663460346012220673293344737985026420249092684343217694238032394205178669911838845453273381839455653135043994414320026339325194706202861416922599436219278376040256637996892188856964272099267824900471328819855138285538774857664096248084715214252520636361105224812747996643297490901161245821500077734839133453152559067237453755403648348998500606528477719893678885107331138017941180092958222025083758617391854199755560660938830608479565404555430483506423196433644589999177900626757013694112106491732316828790543041690881042962178518820664678192847399167841479966745498793854543734936627437815487375335973943429444419760249299985318678218861734098044668686446537276703583535656025066375944492790154348315513576173164940723106002381215120547080237727678792956396760577101145293328525340332591113652895385612398468638972858694656518748778438112659922533349768121337044393538349012367572312719242912981074653382868546938984386210567002944369346943616604700921685101181046970465602016518615205285187318731057898271320192601663761868823248650431330286196726886101661263000967396876539758222094107769865897785129778496876515377050031833903160095184642975404560149475293827023687027227419506855171216880576297180972396389724975919326149238331799658645284757946020535465839518954809004188373731019848641518071164005238348778332072261198776364384093019000016793979194252556581039348551203383742669904022011034409519577855808550856602934792750234710757821782074428460342105630987365945557144019892180860237731322470040462970688602755025339757539386132211504467178498447556604877754754922986781323514263993366456885218322450694638331795827285468784073315518586609430076450611375847027711275726560334886238116977603450780888635933873098954596918806017303313642957798901154936339008458289265600063131216383157687815702971585117496360385132403051196104462739725981465781424103385743899489428130183043474697589322138058003459570121449212299702315014698712626011360113248034052578580565079440055980015205708929862820972079165446776272534795469604824524451582193526921131785928032507295821622281617690977969552372761725151546839290785774016495223665104802264881646861736744482499815905896275394982528976944939759302022620915121897852309912781870438733544609090163314672453543575948157034809653170257537388860232258105234994043693408138296223071598182756059464316560908694804005945076736198316801865955195800937212174936983517194241944433072808903372946502310712901565271408215183672331160783029017426880606717526635095942242212557332955752686691670904245476966641907523607279093294712060797062723962354055131284326999494919278151095949471549554228385291299814246573469787170901020166447471874741546118661132429241404269591123410805600760401240631504349548855935471280049639250764341744511879711059309587607681526952999381145611726227760881265587222143999004329252151905620523406623255333221859820543749693727533149479460364238123088489067376260065187273421702227545108802811463158772943960675876552009169672988623364404999023768747988325109794104083069102400743201660053213767174202597561981633028696844324388593779702340090029806871026947866856760000534961854210041293246109282108040116191368259101530982331686264456314985221629134434180091083133928035058943459442029601536977808492447141892118121814523559343859379432952945869784792404115447584754637969442116883966203254517439382306165638896004290243761403604862847731389586583205570742186290966193021828187329579284756331667573096718554870990759997181769369437917733567106242389959550452986226258465434003534398971425413652349728474202864435391944923491808692676794988193408423421003185704872144774775762458361403681070553711884887782737373153228250689151106356465193594863430225010366651482869178860694158357810651776426429441220188711913422085194756026173208954449865419051259853570453762372608344773947171902140102873899738186253681275098354614516748513224436986235777071112234196533213286515375957892771259170271676923713904612061924553834066280368182294420351930332293029460152733999847212565967721346388326689489973352565796284279976005291718806386893676206765936966811981672124635449578712678273544511403862427723629504983728471721861426843621970348333724734875321626409831286750056219831719156070500437011967370355535453247719006153138970025301301282794617705050243083319968501431250457104358150725126984423538996247258165293341092389229070845234233764224550467770929405462736109789236652860185501649849770410971744971200099911806045527545400701932945678251516201055323007083821762794756437638290266404040065127558012964803721743586924156699824236567135833309469422694801091216248562700788847770241357552338191745648969014293727072273278178144269951272821610179303225068653642687420482295115129701274064067450302105766027798711278460856340468489868824620415387591792396043452144196422181077789510692120927942588120252454666202281552590618702533356989261173218651390923089920050234618976205792789710244335988433060571757830124818759858523739689262842391989709946892461825090776747259949307432252780584910021275688731361262617215534228706130659084851055920386606969938682526363295948728544222316403444797243138584902917399538932321998236087482341240495022723621096101255193838614802725111743563605001536177446109449147565415648841966945072794305752516440040290413462264273143912331189369153287753888555705472138496778443349328567662511465565430708301992608615123370847086510084101701672207476771965202325054088134957522158390720376404080625568130243244655329950670830168990730894882032138575476878309958775578154723290506889643610060080044317864842911395990708350534220043406341418144587408336338724478789102684572062772416457977310265880346075758373644380702087608990282540210750446432726192848300113533378633088643022066890781796054771159127591970956283031926217556331662847741896594528244847774947202239426935154522084830582613666395312929432383913714445058066400998706511753480490650724657437504344175888737954313956450730163558189648257385737675010451513865099597323056221245920414770975521657437149940282128843349790166041789977887540098210097405682317000970838130492246364703375940366214813181631282712084888406065119140029817852671975377994149523517147321080645783322013794454420161701998057352974556794074447465157844285882662658071396459116511267312845158909396334750457559489707617380564780813604470844192932900794953404699347121631242176655580599744836486515003696386286119961523258103316399909635480170489782303270792629205869908098533794894241229592799892099790104963492857654219588336876056599515550870469076706233368264599459790479413161830336560872636590314648691866593792567449410951344184871949100727609171143442371732955136672898306729932016564276072118375316679612048864234534569183830248621175684534956029796682074287655062364082326364667537079337277579065268668401608245853444430934894184492273673913427663871080627659771352445628770759760988533033834204107271392861603045324695747319772986174121439989722261627674507290491053565990432115039011602178669972251017818013630307807168394696996192733357543567764754479963017493128753015843605841675114868323123643433416054321176633913364550658708602571062967040522695212495429333432557288697957568646042156170428422006015877358459717095493085841171876643380939742320097559696068154304624412736465822178078723333133434823303236927273212464047491127641728217096940729904201999197834216580703962054147937012918850063627861929083436308360973500924918096379572123342365209203789385139272434012916258208882359528069493736342012532869691834522366682639330266852925946919494706678563395335235568300877015536028349150147108044099912664414705827251490791730271133659574556595860106369091200163816629822881217538980452922023272952186056939928921198599641028563640271446046026341212228114838292328485940888394841689758314564467137629123190565830973005216711510797237525803453847703439631580456273023768240855174332071367917049208352517518722365790547619397591238339888972337210892080663382606444553018482907219305323510963823895513300790000593741110040408130488623007621374271690707385866869911489446542682829826562014815144085340732252937996165808181494959594848801162681807231394379460317778907753484108278457712545886469350946262996019992751446956994854938709436400571418830518077467134657822188115828665906945045129525234439036687564205969710603203973659040597047327383840920204329458829128676420919499042215180928394759280663358715119922738834821674130692676775656197179609984601413634852800972079225471858713802349453447595652726354673258694787010735443416902265687766869074251490351192043775531345525531139705775178730383721872738227283769392410915601116253599117772449337804158102667073009930148069398393092250216918266472291797423391914795244135798712936764238240566470345340067768889759429006414762101191859860133127712318565945884839899314315586477211815967733340917479041370425925451436248141035117748683201360557818833143578004006673768388594683141891421616431828153581403285291090647344947503142544012970262850718125787172894006335029732966945113053185213694577944368075812605083824845893631683023158952570259566306917644149924479357010946619102308742700200659404802187399911512307611858107394754308145536575519858901219026016334774922118486374555642234777639134980496447226068946371629408084681826026417443297900142399412274189106963804924239781079584452847600736189138157454716226869475712933968788142844707053468019694179744130328068163061023552958301041225675704410367107576789408640005897091137124758439313085702139689001237151361876497754694636196380712748582218071968290721356840873168767461157267265816886324755599226569167436855510156844287315881711230594425682902831575420455172719124279845015928780048025067722870593475069939508775502347449322603724992986186520343059169708359408693332417951065372665406913573951514268222225551851621477421413707877754709834647095784352516206135990791670663315839534069655647513769329702120518135839801746684919789188440201178995518215433775522484416866439153622634326890536281253461173216866536482041935609430390184093909292108948152331968691663005237210043080170492290220877687427720851753151277882374869825203140068974561985623261585806200507957976146127776157494501093576416591161685521582746208201400023393026653829386772797515105362234350122962246900402901769321498230242760757756756224093642676827029936110339059987214325016787673886939753061615628917070099983730831897646074999127826834437456946245471298845799326624623210918305081367010847905150916553141124003293194580707435618523425404403255124365761708126070698905140034991272560837750738117965482643902855318369318958363222591100750907169533794433422409925556282081373556181802243428821441635457497459219612774161377037434167365110963793573476016364358515018082596045635599241821988510012708355908431657580597505323363882438267325083379064864095689010503607792273957568326620382807445834836255065376649799753216015925367271833079175530875165065452656246504518766146966962382781202556905920417017249889316660716755751729091953594750272617783740800237076413865225103168138082625328622383845792099901125284395982543472121030453858981848243719030686861524023484278273851306134205166317743853902172632796288950221693212039206684040745197130399846686706287231821162714857240058578248275757761071582609965014237934997939182752574811347232663859473966611129103799022307377326763590798923044652658438876140773942560138322027360195289195529703979512811385234012295410200699091483295796859918638646734611052280449849127165171048158704595153057354613564777592318264634749647348743375621445565629127765723691711066334393921344094117134593693563093464094371619835317350073123824791844027214154362946313528051686808764951016792308889867316809374495535416536526910394207894090125295686552682810201885120867433944977075730411070982650993719718256287732050077976937347001513191752434610590811014201608937246775953740554629600342421885038524998467338356918818428555745027837651111591897703209799135519690205211797735052290292617833051498643412102486106656717405304088043835589055784046731454131286452829193971935840727719832573506161461607263924805649134167399708588393052093933911046339666391013672853153127618032616764892691962107419900014682687412493203263411713626130822766487646966947018316213460171329644065632590746204292340375469087510774777947769954720316639179394520140296151021481791561416714186006116316799913071165610382777972590395171477114928773862656825205624460326417012853700170748033575432430695749793289670445784333305647484511464774775569091539636883619658912841560691732102385061324769899882411364991433033518058850996229703628297542403169576042866192412203949245603704979088920371394928448523061094405849799336726635478316793896817358348532646747139824303153201441575559584928851811702899435886345569449520960368070786187213447415593972158406864867011440412040032035210584320017187690545100833129738593185083228576120912266238324833826335903979915748564517636287733693141644402125162730657020987943979904872952449488267876287437662745329504775134920327390303055524536677811260633547468572311633014504937729794604245899056968503754344455304869823590366398956943874719477795829654714933329904674411408260143145125906634787155172679111520691640279710392874034271441382726548271943121652898097144571864618146402082944174492257284451701950467101571753588405291949608755779939727617384260910996534967597848606333147660325307187979058563204132971541426944848468590961862157959385337048196848831791356362464877105944636868040056106545375272448179083630486962537430535492595460565509393583920200752199601626979980863003510022093776095810341693269743595857792939226839413247852303002325813260243530141423908784753445587578789130100066278889335329842106642445235754683033016090038411225791669885860694577412253906145463684548930848126680870816232216912782493232755177486350250750633817412289317224882782250668793533183352604493210485695834891801650705305337295042278062341866949049322982637642852793764624392894281136555650955810750385888233759944150213073546007142050773665717610385333150872658949543932627214444726123745916035634395538718408656505183049998044685125310643833151682328410688112514817836037347705814221606144715442784190676566937993365752940777848203035988736761902221434655481704533873676986777034452027784749436839136093467011157045790000245377468195021370699321094667752261528165630177613926909255910763083591665539811413410939023421563935592307112278199919274886248957908468738093519362934508962482991837371807479642328826379997351574908059468163544116200877148703913916189755628829605339554091727971225659521640624185027244005947345467308045010226240966807047497202494330132757891757912161558776841360974019462702170473311112453467008197957429370646527232599195634575475424825674084808208695226955696129503034271541183856283233632615403087681408330505056343390873543094600697350255759923052171271817770962870216945027654628638367226896280470398973242367926574440086324298845743040463664537705069810322497181712572555824118156076886323391430777791823577537803702147325502639022121306354906684622400740839622841754491871239997390984549672676027966888168425467600953667150381352579886138554266108275621671908529419476956096134475406499385102786931590112897408064151924069122829558300012715262661822748063778577518769168485831338205184947272698785174761326244112344688815999933520218005584262446221123569219226380365423189899790300080926363351725248786796741639009391629074980322078862933980639826358612969729632245266547506896739462856537889452155678061947195235540331926280920593003452825428753089675853019329479674855110302800326838868529667745272363142093811226009022867127727985336580071046141111798354367109707558257059363921971518599777403506545397752338986233722422069374199056369747014753140940737995169390673012040785213862253483996868649837147749053714711533845663576056849892079636022241085566925846629103699051575439478358988133641330661412151915032680800891421979814058621432859505634019405282721764661654318690993566278141360589223863956050240170274169897743937868981920355082644758412965829433692264514061969990704934191950437847029739909939573669367241598192394593500329980160907049176145512917825962766069663557129514016012291081078140395931380726608851798092086221349720050509249131610544356557306659114071644685781281487445562291399239853803605598907993327382588395098705334233314858505493353319754090933205193945425089018079606447848634057907267837043371696029602533314318901524776333294055632262477437108343076184154013727019589717711394866650853423036405598804117333609013444860908456061619806739965707010714616174111112346376558459458587264678501816423525921277741315707908736583214293116369646357174197869484915597977992441671321581637021489555003143874887281812472133894152820634837704986436686992840177899279254028307494734483614962486722763709560961076327031664309767354396041127471338129231517467004015917754076535374318325282037032056716807047655688166009552508121341088664231624889242038459446502423781348300380191928902900020841442554903169999290271669855114349375082680114458698133005561686342844433101819492188724076649119661720085229408439326942707678772484757979544560871974600115573307634628765199949695642053883158779348322815881569968857182434588234577688299112387705907945058750447651217048684883488297010804280008371975359959454336516847353247919876663562608129109465970509099086886671288830135385086170020480757914223601078010319463822818937784782926216525459852302945196673366526150849057162336101909763399094606713620065325931960643535954056209901211264369346304716506559411328241221585922694453356837911306411753820479599033702427569111743413145548249433093836290500653918456051907698171716196054290593435330326702314033730081884175318628898515827019679107715942050140647622079777132127452932820410874816741559696904023754428020506986515960239994915843936894545135373176287233137040045237035382413344420590362776696323988374403716550666514662671589618470823885521182790676980308672832345539049199533385670591932670462952775644889660644590891127379831065160033024454733180182294591711527586125594967206194264504489666850368542674207172836519976275048404405389088396723349149754140825706300080294043618064403316521878636075175533968963015600574494538666189625286669902444790756532564828817937933825642034284676216106318089863470354016585733698088965841487991350274269379500819959112518267567400002271239915329784097474523497202254148093547538617862607897482300384484312971303890149239705858034608052231259815036727450639552074588219293767861667354828288527915620181374590479017843312939403198249329272786534743431974063062579088513837071405889990168078945026804449893914726654271260941594870540579477933722444857060788298389545577088277673585846371446497199398225778453185909148415381648990218398835757850810929639881107413642189859400944430724847601184185062451317498059360889275665507998667307429955864312769369133233604097840689792880488811041113396467338553790041896256805521153236732151405571439857622071726694341236825787610863887884126387159025209078085939627345773333769218646685938135885644239119284984227420689961049904915062582735254185598785241075852135660871797625465347810543609564686136484068977034252809384165425068648382374683435397481970603006348080685933713514207866827969864866464741709460806252526895403167892129566888953410330120859568376369174217320400208917925633989804796281959148964240005113824601813937939337250706832666940006524945726161333761022853770709155413503250288166314844663740767066806253353547922844649808805246921661055469173613577940333751067552380556427630107862203380349985033127602306680459787981738833672132829442648611100200748142466348292618363038344176353310410757384672389711228224061988025207422923236335893847356997417011033408179343680266195178473938357429409726059974763927309569584852777951659317044513714775233813328410879080325185038439650593146796369152163871454840292470865796924176495417857989364944850746411153364331162401974670484552947418147843962252109709804070866699175283175801938380138449392917408566280243524703269066506978403001297766810069954227889287074185003529907032114271076990109837817584515603604764978407311475416782991390109606038187629210419314069563174447732043204026840048982229631989898795430897575895726672058650376964067139435255703104201682080713101692007033954763539675245593202389017861607971985715370853295547626548438639902389080345183582323205775983074729497995418983575870738475710286691499967609473052172974622817700392986337495979295670796859753680046516726503620596830170513508939910151281220384947345671102568088363602826761215615899686044098134279597163381766722543807056791296343149436418406088611135951408500627885783403273879508217683756544711011804416151682966641153715028914489297623783497669027780632445346692538923234694986837363842925908754553215513042521621282878120924347879255836105361464340544344060577809908711161211443261472717002527465945474594432786615903060432713225552921797338635049957720238093506326770678902702003343088049939500560439032283634017569243863004656859016400766364612793695310349331555062704009830409559365603797924773915962675667340416585580960794338318542422266457292268340033197650022044860947967460063431533940812592925449240611509305192370038842413836480685755547626284561358677726638299680670692327118455807545529601703093038423637828355870086434263152128099668689516376693147257398451006156090152022924287887289482446986875105791734444406372836165479996243126504391482062750465288360291419710356347477842611506734491040674669840127991172410530082464554610376635773870101137897158082212581005375047279521656823485735697450558152911164373642562992459678212681762708022441922525419064179747737332594462995099142846923749962694525622650658546272174530430164150204927299124802579773070578673914087888737958201559961572878714046422718793403534702446057985866556940846020944236038390804504055150981981926519926102216308859590490909670699132615286107827118785937110777141904161548883948330332209269152584056186208670131918873727862881331006635273188397225317248188938789558578855178080800041256946187845355099343781831301880094276173129707265728158305945560011140014495205393139308462773065935332669207228068453927609865268967838349305256313778685029926715751404132832950514145625483291043527543549209096905197685645717413792178892777578251230751507949279634256231003285601792499978626110781480484069363142395876446191289777164300709069808658463476015089646246166779534597728660135208624576065728553571795776692546632460089264360262067423533348623583489902450054127832720458350379421008086965691402258704096309017716576942317410881628538303370604991095567771246949041613454707656711081673988648002193834497326894303674009031285373916512915510171207245868424209511869119743128544757620378704387774520291909996969482413564159057568981259496297196418833592492126666710396704364351963371998410738960301768736126060462741934018028565875534345985629583789571813737163605549817618722974422762238148027699112339868943815740875297682315512993840003631942712400090673365363551409191589190294343274427035149550358203163096040126500494580812618904820237313958895016714917717235199852444411141487603922961638634924933854347286957111847002315200745458417717715064746567733904334035945006349473992691883707665003418129116704346676856266167586843454941645861211424593183183379498677235041281888360087998602081785075098573822833621466465423094367341604951328345192873241454434171230183775951717975937125888980760998365357347357964845305618036302546512793756233518106670416766116234104060224936522080497340452959301426619535462983907604438664092833100684889187528841320357208394196721931014771120135149254722050967477494589786933750245371293067560125962602644665823755385337262999648423128032274792747584763813020924503152232111246889319735699059282566013989080336934606807181409240737386348016709445965982205105867683189214983920898232308506083055621387332346909656204879567244786266030678231659453445132131663892862531709062787592268591669968100188233485495063479039849911058220786721700561381766523624672834544621588414597798204652004267249432513168655979216351734373490933561761651981487503237385202161857865844930613356288257245325540832989098270373570416385935108268080131568221115858950998464439929662140573646367844673929561886953146935299738783017122643531989568892396785027555360546048036223406675372661335096074921602250421110508319257708807315620118948496369526535559426283463617779804281706699627974373395482749080073207995997931277401770318611335302872526229919162084484697839008546608509010152249120091375515979992077724955290080578946510130330140665926937668793900268675472148367432102966111432419522449535899518267990181143608731335949930606325175059934652893929349833870194671616332134597917288200406255152897720930596952472906162003920822389465798527561395473061116114394690187646736726161398863091890451119369009183957589640723697353631212302567095345395248095888786099126339088274797557358419029882447027119336813237282717338674948379102276917048283033057132610485867091838033616019170499534492614164363285954525515006177838597246034620655733915043646380571123470106408045255897053706981011936189568231426151389424436667889230492482691458130594900041334852224211707600793196120505717244308664608402716752572112580019271631264744178906345496579746434250641142320187098338068039620101142835756709614564955345589285733205446668298863186549518825087270535611371054600498621438336768140225864551682524778210532947679038295849176458721429272853340503187464284796864097666089594941380535994661894739306899863985795547645925760542809662979439333009042622397321583861667727675156244099725414107170251362243036241137174673451218852263976716345301742526867543852710820515386546935960940726427273629638194891914769754434486752443949549255392389039626656762716804070124547482648519342195840012989949878687482980960834821809434838437471909623114494749386212938782153836598325164628663368766117219301545958521669797331318372800042642496203207511027720353227282661563541283763673761858205031131502918185942801091185028233551230125130744798532179881321464781131408149814738429923482648212836054668767037756639615383471504321252615596952677752915613134161052642934405148270544491322251500598264446088454568682809112352919613831808428198565661306727408077525799118373234507212646154609482226912451190809915607597694129121025314294524943526682827108665692783101264764863885645323327658976421313364011876413705936542191917309829266556036558682254470201278816443220927462576660794965570787160912747154901181108380629011172276530651749225403393402738794684247106788466646488701861685132304580299132890958236028432287041361150479066393631077513545904876576815325808649098215938439188087693268044809026892937746141436751733581349457777555878611497030845128052235903651468267717010490779369432240455641916506334221612936351203454546716591959376607919971734652763739100603585090372831401521686822992039660831043536311959623043609711018101214319810858831335556989806075914816414074991861424042375798231059893324781347245755589293148420853416437398244690557856445670569938515647219582797922669170582268443397584778558804039452295880626801703770608893194739831948751004878170295164112752646981858387757856427879710967448326774105445749941122644677213920700774827562875027646909682643516561115620197593413440027514369622830744894547751769139869683982860927918845944652251550662180498663886905244178601505886491605696712357035828404424559611873435967615056478078358433645993016153779194243087281112179124544825331074821763990919647931821185103797847040206745849102348572111020406296877675118147442115752790499535904197043752700871057497278513679323837984215376699418768507047030536481362295715445178520096907630666882334841417804660110124191621885388275394579599939366749012988679848129514120634338049777161617931391254993401220482891025630158346903189622048342577469132823239361898656241196993137787529843513556088020112410254311663518903444436082675380910754410888088519412060037893343068104947336856520230651056684970811024765483377154351125758244143598969959075764971149809874077530577217700584923597424286780880675623671947715394344855286612174131763466056265748910902268306353262167050677004278999522391205953567662281344933202194609332884693064469580441128577649753214846763632466237669336781979059447197575533328310059379608905186790191817105432272868238164754356550222601323781774645077337954549730219492491869032829203315770357493796544541804954545942601084185920250838410536429535957969719980131273004353057470481880408543385004112547957374328095454942361685830751366437869764227011665485195433858356959714342263873859382958568272847065709637013692037000430647696081138455452889672966637495093283619925265928656651269750060635014799573301290423053984260146305468288202188788756035687560295853581462372419849882026775225244262983581653292885439388881464946174582985585333996929356407876831372693050621199993175826474044869257517228279132187335257818204917443259278198364702793486817045976207784735235466511932851136350948159834389093096957741173753239396745604647396487235161251425436688578300221699261785806507393668239205015158413692380820381335416053354320603010709301613740971907870374718078462897392085184284755555920439396986439340605915346947987102813828004218261417997388817662804533063806903223746145461344917353979611513525335046017388972239161547429592341078491903157388818913342134869984397996801968548250673875402173011767351183920207352615099919207055948929632189939165360287153166276663202529402275802330346687710226834282808128256180272907493617333903439085578642701669263073665854676771843760071124748773207651289217110905729476545311239656852978475764649995666254151552353319845549161975037758662156398436681393969424778727877220984055815234534930685261925099657387431102524464987327268223210665882590680519552129643889156190656646968729681276328097173143644917414706488392456401982474411838011783255989673301031634682838873786422996923993207186345921919856692513461664369185066256625119154139214754937864335606375183961499225200260010810400940764812269376165875755603526166634391533708605611111126536868285207501726290823236641469196452855898063564340709828687541875605208867614584610159810845447611349651356165608685302280529767469836824500242737920986320979876487904274532516937675109551167418691369230258245626162228832288511639001668250717255367429754086618513253374143885995245655596652789515790838968700901335425178312576381041588009080360267768296942752054969409964656671437902805656717247650802115900900806270287751135765869104080838743721293164114946476185990153354852310880892863565117105285167751109867588675943881860388671124215385172172883301382439030247799331519753570280206791825786720956239695147999465518120298134571802374113048927465924115599098024212136493048714490879304379734703800754597167424000735622099992992455777879391619233125090493640385642171262114996114068987203066034040375935133747866568438045149832582464854927809710484769431493337852927997212565722093043592112434186671255706565635252101703177472662489408501404898824253576743653916579876752915151991677609120345127268290164404469505780020840987178064768325722607141244963289853471520975370862113064943552138426654477510991091480372512324498260710952200638737995471356670826456619288023384684299172331309039623001246086122692708375464835595194962182891073317678947402828370530660623059749843179316285452967668282112876352580679412763571538785080531949681327249217468927090057852357546147064654603487281983745488772991200626519482494438871867679564800324146488176728446819428921486879476577295363833436949231068188658815031336171702823966264351901529315470108597736104500125830697623916227753007669854356984028628443389828263873112200608524576647958372220902124671290780235265547936312877215649055350092652394278519879021452522555617023138407664552620689871633939656389004111616649794386998022243425058844483369837183880508630161433626136157925298798160402659908971560791014356436598433501033369555244128582579123380944145451788433480775519840984454649092481629104600163534451558248477261355738548045708178842666265615474126427637090594759153149183900788703219203490370247792804359733947619686760266696450378132058447082986986737603596988126505825529127473297028798101405175489817810270404320930915218417510757324396603673362791795338597376250656701538064659846610617164445591912869442427290024727653787686514673342099701007707451683572466971300569769126730238853887614711769046837222457836150876686934148358539848741527353292910812484621738119118757545396611150918562395870654996765215989634714990086961943510065695466828140427681782131674427190130519390812022581259593660923474798938666274137338505204281418374270533754912443692120163273499784225973897407293180355408079064137207190149722002753921259765251338692092360683071720139876372561185828750830009055709565879770126466143065408793043507193134101360138132071699279559182596113181441396164065972098677575802558100091568127163722437183141728526686537817300414752761909741058758593031898837497016169046904782762447867968994021788391618124442972294711410586953231729731473822125556074152205059668933720447271773213971385282862093072742786910140174797680461633088920039741107215893761161441655894301331008826127442874953701628134814511246452870677235213346266140940065823904572251916954345668041971300881169967861562085436084343674476160978535671362302756062695014370683068128468181383815715077935539687779340557034642934531669615477053167682348652571664883179589620545890031132801283412740127725559454548007025634483213262154723659130387447570441054408069483407104026880283888695554256392306395797309437241893921413141348504619710942462553734362003821518058677781793185561600306246806059774219328412463011216826411032892009994001666990469936601277319549460922342524853543853799737666042050810016536780910571775385908595335635801294903958236194109550093423270845052562778988464781053585264904817259896578447472143187527379595343047490256959876069233506724888290745765550988077059184772634441170303401222724470169574492400268983411351142036714573371322479847016359939095277728374745501368570966151634972589549933971827076332893150177763837751813120827553664683911579050299926989155430039430341602309765535519960897140439030561956209978619646172526349199259514832471637101131009351883410227628128489188100787735862279214335270468804729863751944464762982392846115240981080791576220624505166753642988158369305632501565678276170273039655421653460180869090011230827803822369434650387495051568899960702778402862208652778207334715675393696808126285998390837974736427216637824548385116146183576110961808672536879157501493335502710903890124747546776518867509227091958493231733502954993335881853020431771172120653735145903453314163729494563687468520457184492538533888338090448611342932691273415891866425396173936233181604876420151317113928769584994556038340956891609957041664364868191201715107112509712594455582419504903215416718159441429634503490123268187081654654684061724407301939025480247369705635602464957777800925381787728892202480859951667202659540489281379714365990046256622806881643745216758507512912839754774350729977370948669016491460194253430326826017632162427438533964813317277658148058491366508859933356792214367973834051989893498180076782026761300985654364291462178699491924964929054185617625469189807372758309527729193085334604672694106726179774424808454982573281891831059382704657800112328244084382951928785903247531928142936114125559749686497878801482121535085287392181290267522637299431678794835280537186413450067415756227834917388159165236698578775248865082629127663600531469100359706258563103881625165692821597989092349295308967584710431751161485003562899000049082283884364016788555450322516347395619548104098555153931768108818938251398315094367902983777461703784741404047586235073295822910281359656210631541291891944887774199066777993680904275679349494164626155973980525570380585784881606822607913821266995084199498002104096282648876925584741850431055494129508132572669894501771188302492527717215887025220451112667071501319439927504071570589071884951899152728136853145690596599928226769641070648931783599952649967936272427436141834705674860674787410936664002160152522271089745628744648414262413621305617689775040951647179332314845192167169446551316333146583156424250695037487230964137252339880294541741391293074302039726656398283011068386548407102252693106163654452268429007637586974539261340185841436213259565303031967360243868457804481577584089292489004721595635443106624334706700119218134489923967088803113172727874716909574163557926916273446514205929076206541962525010001314442526308452089084112393197873933276623717378140566621162504569361253622392429200692059095339797165838128976285930207393583078775981205819223086513725852988387479877726952326489955892105436177031598499893767535643821789233760040916651071832212692581175420735865355589333251263268859845658749973486725938706200215883570256582415934348851680794949149762879976751189975183363619073799384067390282152415785123577793971881853716058125033888612363678774811678855824514138743339628982664740132915935831106375251676740175180023475558587546450118855196616638909018407820416984011558026451848477824393213252857878167797230821980827671413398147111134166713192039299979220891120649638701519485843220933441971707429374650387223685385224338289861685303538326628684357894157363875793586195043577986254278914333070119567303448150879539162855470641179772520491269693314124327194278830403543574319684311696383497664919406718690902891881269700985714231926794603048783924341184423319658616765473781891145966437000845274363754326040613701184347689707163209074174798403392965450997557338026493047940235767549626187770560328425455510892241064638083223179805107175324840830425349826679961057144304168697515794456995019119682099830525947499041189310289994715360076846269827238081695281430016452637530503494874014533581061731768908126764940704077729890865544807338036913623581535818232323793828855469697430522544540988401903967375910017882557284552527121928035835143316642518099502001699209462755144398107438994698631769424836869793851672074704032392669363241658794894399023241046357568931697370019018091041874885830653186271426292098186844155759404855711378433863558913530894994102490760791730104908436062310295634510492249323776624106255099354024270375824526671263169819629660203370548974602999577791691055113805895996038127251431048108022243918618267425380603857411374661252247822632315336926219821189032986346076773664555990840346234592337972281775474382718946718411669022557987828598964160625424484156328119444546673645876417931574018675518727837075926961924501982523227198282703761317791755209301060891231574643570026190518290197185404742740756985734047203613571560974161496427230577775562722804489320592553865915942964065506355162879505305190388764183720991433974669152471269228967109956902663898707236045579835759970847400207346635985752706839630527306396215106082042541013853141558107550283111499224929149881910565208430591013213747427093988077516765700726977715347065740326572441231876876093117665125281982265327132481282622135502197642670166663970125956001241322320604857860284269276707505304973632881649527747687931214384595501160826041980001048199999477716916812986572076683240825763444639939020231214577437043724078711564851023856667660319655004499309598131536018185152846148356202283379866599763373914865445260693059119351851754970593040801075794684263560999119656972907695693737828413736922701953462874696910084456735708837801900781286347126056862560659845956287370548372168672213274768421412229955385460501634946508880348168214076036322566073856267226128541357878368353800625201228718632413556147172748526104277470919689520240905047506279278952691725297262579921473692991829728482187871856569592335502940933116227373772568410419676789149616484327429158964119192058344636377539179402331446074357344516010567420127542839787498554156302853110121543411186572951432400949510703449456362033154790123134815070633002837660584331456342932987965457232820793099227507211236492442649394960328550723189124476005065482397713761734809603124864638247537979026006104099524604223936967865267333577892571142032402463417290724861328133397219255322301549881787853814798440939228013583837921907273747692775325940271697896389157128265255237827369067738417829248383404147081750881249989969632897076007574441823996641324477783624841064271555116009567614395357914880953720172219898810785367056564489755917315132349658575899312578984474359676965762322441908230322745469331819598168422509664524593260971189948135802513159316484275577409167438392058447488959768809280569856315581458995557681223981346365746526503963551023458128875796116386417598183623277575901346741178225799197959638725321379103953026496867779728505112503999705080206547141928278915975807946187780234268291606883053346268465622271941049887690843336212000755803961227956474057391682082491695085300310731713034365884745087615255116874717091507169503554569948636620460175338863329910530930075342876769504511465994281000200040149507987139117565259110897890690564206102918403815898371383651200920578287721716462523564412642311599021277454652260677199441455817322962695987653822347743079125313748018664914747846590997150789739420512084660235270407930023488007009351067965569714962024654875084542721816825197890708194487878612534623409517635460330434147379841710531380126303765250065244934979635495292153550673496351611631715408721678312613641167922905500238879767380462336723991271644185105654837971728858792334302257284763968219577179305145479953164450790317289483593401129694634876806568878297585280259694035178457125411875278029148131730588940105722413952052695540831276405745573244809314833156188688552846392405791641863983015093057155340520342534889643964849989766094726223900649880626957931035815023083823583648717603470168232361316912818142059671083056403614402045783615257557495168108740524493450035242327560281890571326743185600979459288357898723929509848682798084669530339900676165863319366801171280411326576885223618087697723804478478604447244334470826738061529895416755738340973628694718954412340732198619138894368973315852273687697474422981812205404164967316895060530354237952534056779275728684737417636929158938588410526857034877719667824838867916450200037950822816369966734169952925029544944142767303012215441113284875601809324053552886959051383028541618072352807080665857565132201654297298141005245982091888262151707863420598118329913985908826999345595537515115300955134310674145714985615424519463983342247090789407551338090764260322025115589917169746927374792092585223346295392080125420553667191434846748462795099407223391704854503010825456527010272040554824725669290417930782347534572739430936427608008768158635194496547964800535259036676345440610839013955698111022689758415094513071808795866445419173487407070796742451486533081534806761296046825542475115571259767974589300859270454234706994061757121256491023996410861005768752008214978820039421478040438778994881218009444581519345245293768414308869185979667047418826734075048053389849628150325455258116888962529209048510631344785149383797532101400605276051823630062501535358542267845352948682767482046106715361917499391099354334656507345103002488827358328621524265984650909345862189365253359518633413981328623581731575681351311581116561790088197510502180806621644152246435131898197484933992784328021947001006040537864663513268532260727603626016803357162271576006968546680737596969114736529242581939590256455003192931406962116865175961571823948538862381499164514299748909664904303588777334621545780957967380406486823054651638414073853338704930161558534331779037124481674382987098613430057534775068511576720716788388558716239802401373111161980621426392136280532321579131997576285868890082693494398101486588019187513316136852576195158258476876013812169887722561026152679430921225275862699669304496705934472778680188855843775164580084941400091913801942299982446379967610033267116016891095707336559818202192773547358260851199229661163687453731234091002965270781886889029975325984647390936884067420496920969156476854264481206791437301785617475276754282738511210214863965969988375123045775710595503869249115524923996089074571901514211501966836639822272953132718433490694162836849204939466686915070924239033346200264106831607923191842101300815507221842253818483331796243337719067748567778852814008121270361183898770608985184274597013162312633445382846293136824676958149594904855170717090711150652086060880342327895499072402386376813913102434068437706027817156224596920707320236218605048301516263594454108119709313667852389630457179719845722013836647634760090369496439185132561249299812398964730729418753913968553471746908451171408644432866262355361602981576086400945988485406995056290315833179227174115044037709496574048676379581121819801203655819623744472673879000219266241858939646608194289008897328519343826835714273944549249640033148847212735547193299234758275984842886325309311805185692404843986122059169090116104969801680564245980013446154807327162688400266054714840094598658294839338677312151953681292374567749756120887950743553871329258828913495723635565154038228694452091073808012653825290533975724770787997497274147896260505106306317271282683554712936939342178946496162282466935806376365947494278307553207959249672254432203967062745663880585403621198203373929557989391531258493886121899211818789691597718810243768995752601407529275940164972091624918465293741420296834739477609650635828063446434365252957413834440180835705234535027100562619586615535274897381550515278220538594914027771729006131319808198512798289593707560868529303818058104594960612782614579707166168049616231152720943653247035196990614160798163280621374697103889719645783830845382046407900719375382558449798437825206311541222740529099602710337653257961085499688918742719006578129501443511409432546243947667009851695255557355801727811912678970961139183600030088592864173454384382016562618644462317680310562127111616215120840440425319134671112283614482495493761296133870705813093666846544432708788534479812489322102514277154330358556535595518118800688005826131836421842001806490679890449676978488931426857112645410641733499762537942045178194371332540106951984685652054624107016909507871012630978516608649043032422469012903644715950485394817564065791988007657120599199952392400677422329783100424540258595436935108896154191219926150126792256574789217834944389039599601996266229707525423791448945297049834488255423195555070657368429724705725212081309530302614324435128024652171220348857229182766886383713190571143447766287052404690229598303640603612538407509536202398870385174285514729753051247776951734063082546519068772258377671526252567746582139767865339519294112492497217835528262768295912739254495685462711020626520711040317240031312714229058949348869485424476451058560292862014877377996080002873547189431738332926390914897368619443103127451298032103400267588678836731864860096607790835480784024885096399576771245010850382284046746047327304335595958469351432627888208530748381353913217370698781365829928816273228639320230825054307820947214761153883539122135848592627133889049586148680640852590442058306441489953052719642794706338536113841904222565889934205252752877030938847780456567206292168698193038109135872832153773447180178645955443567399424682930453724760228429484256990099126213993008855839352853197609232883684933579433241506278760413881158547696494020681750483421169230005235348186871293036535935874773108671018707283962513409544571129735466997076092522195029840214322395056422961830332639778837260114504826096730704701277261382247940632120733389005744235511080940640453131396711102569647932371844702514258975486403584936368532160856144209331893387567546210591322505863592440582169000516670511312902000978611032826057788917465257894254861370121122733227040378208794789899656430678728446576604445621937760150761260607324284547410853139555289034932887856684408051080126080310170956158058158017838073269913933905212273129086382188249235959871199636858490014514555962887120732963040280328151676440712888663152328708702034511032487100852353769372497222426758788907290515996488373825673888321583174175524480878254609695064089496025993103855558588333465572174853095036849756599492831743974005020230384567588360380672316931688225151431529554779618677982615358129600285048814908066853889540019518269305716422424556265163794775052443767727765715055357813959809687123733281413841898193363700322172080401272597068516722560381456219312923356439383737828663697735121500188544066298339115747917272976750349431472990222400804863216774949161857396156236334762915648767555692364365824876506387083824965635638705076568733605454378789511401982116390234945379531930823660024790162711417195646205175219429085984142873792245019017132695611074183172399591305062635191745224374992288520928927350695480958081695150671888150793321913740793318290811823632198220477069926718688523051429609307605219140712630029695280628909967523069062278871971505859641914545364466255482953353315435902108662206731927663818920743648114643040307456611882612477125046130827948250894490041614847267656354802885455946432039851584986588899602341994319671601083505229374754043230814287216454510095066161510325897207975217101126590281237774489331148299857481349336622971722225086735606077372213821109336250798931746634369909507123864741541358637645917747650904913873900461681030507747612136124514439108440563398817692892006610600392645872020707058191542199877431931679610837992348959559896490188378868022432132885294346588135151262987655291796549714658173202613968868532176837673287875123835911820211043813147625248632800365152304179917697262976093844206654182418478869297460156162842632131172296954314446183939488164632549783440947629095648056401658672616912032778546862294555617684975829925977704746039837336656669502761734026512176997991861782884972666492055699937603534058186512655760517156548463435987796682917528648331343762440705804176908136220391445029117974044827781352040666683182476108909305506422657993387220679560814182708049859482918653431598784868434642859840817922140993573959458637138717212114218713278748701990160770783126143025527293818577842641295486449969974784903524361084410808456281252289937431259171910450804972687498098507798252132213317966352624844797351755857654902172532388678393110830120992217707652306534083632052987315437366250634877782508587603958282640965097085871578851871335333528797115802506067832005781101450966229316970869544736599540497596512352093401853664692751688752898418038634947434514419627271718305770986351255106675811388010736169848876942789151801010354612010678631178907124872154847824998480331014608359146251343739705566496398230386184400869210807851406453555157748648103857293957063645202760786537850595246096249265731735231366479910795939651028717555877330328217605519498014924947747751161755280058556885341757755680453326303155233956632855723693537347079106294296523240789941075686463122904999635893993542230275295025347999023524438723812350267093373905569282907196270340251063108144827306793619292890309396311400628655319058799174041076489048379030716125649718284015557676985097834019793774473514360611908434370330521300069816294602280444373376621393848209805397687701370011925865122160913226916273857907541776728533916374902588551918243193818203547349048284197902913986776128247103947110722482939891551629515489253388863053867254943942942121766195520456537284730150466977073426475048401000059376762761950741264170683340592774512145284540271961663778222287646704919765537957891537632076358587469828953723522668370641487787064765172202298518689265290751812517640075292469400865177133539713519104353088327587145455014816678825128476279152840765143827136955129530460263770097985913423340938450636546875325489466003153043197111601083380972901456049584668881228914956141038988944613953605177478217777594506407532941860145300771358634925408788230190044191540492933265631124839681862000764915041060958129975317138075447671750117928763929737804828015675594199631472083187597627020956644075491232958139547952926087416518465414922685018546808342196922568569914768315943999768327403359669085719614456793570278928282353606117479335155396006268648941137500431407946693424762412926127711389184048391498691233973743185285793792755667743495353252443630857149023892865400799680669680036687997737633501553579393655517400774382449242751275374796963497778985657954999237624953258136177010462190882067841373752568460282595437781960086450627545340179259852819598238284573686574943733822127648017255981409374443224927754528186527382022761584230189699011215986849446274314506127291009184454607126924742733309139405755455287680971779263993769047298519475335370934862757063994817961834964388574467432504352705032818815547888035638397709963463483436375325108461858209369659565138836769268920078995176750481857979047999682645838923937429791619913203795531260944450069731814490074894661433161360428955675769996119498765765689309667459666284021297228388823669981993849912644739192169884135805549775083290906832170132796744153035997932015594956892070800140606535675402688431537413786537261386938175664579424719985228380554099833423455088217119843527957299407173757774622990862342957226219084343096223329479345924372435075069514673791655164078727202819448715640409011266535609784473137966750021267358976917361159844669170803007216602545562709998855964359374413486609588520208147922871964335108406724141831167224668057307807188736638661256216288071143805006745283646592309777231939970580492900120526773060430867547565011341407776865509445807662229429248136463982581299269478566880892645640843705127623952722883180772801520236091716125511670026755304683184865766661759616551734979119779204282740348566171026600296760083327994483341448842231657248768258291298230729467885451774933167514263075921716517009042883525923512895917466276082759814995226741534009969157690859522192556485632122755776512196075939353361644771526072412546725232497006577357346177382261615256235592315376676610328356920879396098843516334349423391912032341972841779287813321884221492535655094575344637924090908639432378569187448458149733386860650111088070557713559125232420954065637781384647999604920852909737915111963168912774636877732740848061553693945965448120573121861099774114641755142537475685502010384097199747991145953029626725627131359864245894208934921307138445440657049992131818402688082073947603775199456620093110431031174630560528830435393324833579191813940114701717591945764375230933036935064871642598513765976267626022166252451529521444388546163225446903840478747680475337414622880802824863719687854471315848289746599844497576076230540205185209619828729304527256036252429565747145845875482603675560651821564076772543372149278676460042242586024457057833399499364143807838373734597747498398743383207581319734253236492897866052327958705969680740642768519544996066396396661487519653966006062259030547175803733155787894671730362701944282112462434849968117658311596100753332035214782328819957087333245400030964864267733464611888631537906631235525235297406601359185235864619358970495304637057021718872769564345871411262066657322852455535124985806034257845613404913445407611278476799452434646986874166685955713969300352877329936533813937651408484864586748261741068323527197580704895879662904376459076025377156036991467542015030872425789569320754322780755939783191898606604774031094248454530544643964256980908372943525641389002415014192506025542482477662633768633147441238832889877240908996420953233218053229108378266701514865105351062509895546043037507812209282644720032548483237431655369480277925854169881251209744997158880734449771406587123493463573309941014798480988267104028450274958765504890975168078132297670854295990253277779418247984588976570900721622747116950100903715187636753550681914230482149664007976453625503797579143458599182451750602922562187981183235324410466584954211341157534706675358338835292488598135680404605604105562598419960404633172106070884865994137917367406475343456446958393652723298792804273727266825809722691244989645344108975962625254941443194185831109604694790005683296651560424935928840099114540322172824794179694692881855299410658321704581575247392087138199035532140678279239635206190621713624490606672137101324506472737689679608494832747547286786426635181745126315306108793206875142361457298787417460530852366090689614008236879734623820809870347409561732309564204855493079423307324775814330099943420330637594213055199448524157713477507587341353037943102305476464300192969207050786638545146654332683531285127548400834517139370148185732682295011870296883055365434993551211319964283982900663723742123381650070023526335975939541205092748123774298204442096045586804891767557389095116567387185203946992433696444790032726494716454885574162635498735852376373191544034170361032096823060586119925892737788620949906990073276438836120804980350101061406269913428101532454355384097630159570174797107273225161104371429330791738201269594086560581020497001771254766374035759147351984148803959419644650009025449693273631090842406942284978370667760282197160952601256324277670926561199022496618313003060469576524276297711294429805845499726148960953575396791299340178535373599046777327417670486439228716569888839797091363492523538446688804727360765857052986295983510630981836363950072163595103629151544993237574062217520716191523607672450170749994251024606382134693021648071851279563554814873619207087695508021205144465999263395352774314930833175662538811859819938386243500934389624388268354266999911994645120018054344800004582617302037264384202060955757903696317356792141022076509879956143521011266446778642959777008044024731949052926141351947372287613404052334088309724989562071954882060328455174396258646783381319013129809566116381698472984466420318856180390597812042160328331221485848868754163525750717514571135387404709874641821081357678666389271041077546646014156780069935045918172485572379951252373765193928575003775203523808878288482478507427487230527448911331349796829415013898376593361161209825899567051043829734657974943293941127223143171394993178456082288023372386431357324604116494164744648727030023957223851545115606125142835673717726981031757487162862482002693818701223029844252661179579598842780509961130064251263017436185231444410807467075845340761979524683520737376429440547148724734443883816040147431186697637402985793030407935566586365342968476368696151106352042802355785361487071806948120107561612040704563400813560263747688083966553459521430172507108692665544978934323798752280916205865231912164065638969009200046252966372812023082953612128087469400821825031548587202286789919747159103683890173717755714563470890733099199551989201817954671617361606072852824050186731027022172364651121246325327727101667018550641592284012756535259569424897780367030203407233994497042969407236917734510695203136553038023144896938834703065064821212910964280492232469637997902035038979954503653302861455452727199411242102406211819525427875679062744895130014892952256418181717812843517543781898775644162964327680690624316540926175671345560097110513074326214757081447714885496299565394308751633644685764977022289329644272376355897315393528116080492632147911760642905446290171947819023774278497889349198798192318585053162742254173206700421704294082308927429863263103581814171434928897593055385856557674672705086660724237734005155314505417139734237460336217045617002425874624844336562003713232382312352477913691512981758191424497522472413354048615988326794275843268166474083183248651296000247586372672651535686171073477067585396158055851121429490045194945196799433079815782799726781090364263535521403526196770258625308067207239289872195502072311085940435487112367806146756105420888554097039960861031526443122476439598151575080804766770565633024814412575844095263663601580990967091675839585028796101666085627669408915652118342222452411307975470931888342450475860542017079575454034879628876896393158507873446829720030473534897644130919436132610514501131862910335738504940216629390312848402383032442960203558969966700526646420681486105982233953502416519984442463926269839500199819602284801802851155772817548963658047144043307801586151464249631418528975580131032671237473615296152079045182303060128842310177756585826184869898384793843094618982650409341233782588685035131969337740535523509356230068305770389811742164458456072602940932767860777168726989755787334435569967238281765554878487706390606770485138711810394039795010032005695093106546974312794297150420218163498321987437168745048604902945852497578836612093091194595738669184226993978511440780738476954281945934895292018467564036667942105186609859320093318213966575834289892523021889926683012565021038853690216921162618397185741143788656347342888777616924266579311128017688655585397069065414030186851673931890021552801060892587119983916928783233263358517614232731640191201009023742363906934666827014986750294029107336417601971257598209105350465446300905948139224048451419129281346917050754997892529681001022419744487478425451243148317036313670469337634685967207900790672957692152924155280201157190657948366249378708932899171353713963884945045498937663076356105779679110069147244480907816446186169280735490888169257630154096662067515286442526853526217704373512548068136819915129265103352268960455599527598243466765276543446809374878487408392085113540558668214635468999145852942198861446486580991681500030785226431126111144919452075495432174566595046685440433668412640837040035831184010729665655661070307519902050262747414995424316019641543951863961845859608286483767123352589225729422468119771820808334982389955652755595473037471420650658687690478668494741965485470436615829166539715953403760040433747164327332305856767083460361210033000747450332705818104863358249196137302428123407685162226089284399363193427636842052030011426979829477059582752533899001518278089328011984229069953708423344680350122399357808889037288663527346744250144105044732614057923867036676259467663560349423797176126511197187003252639999957362252379977270512115283077747265459195460478059351614709942570464989320227135307724168437275357164990562069931664487053582107412784756248458844153528196560314479509521244302305375769036961537821734559045981232721801136763370173517489965428487811073884615917948134079703255187932423945014262175022474070949924785979681022917105754536390416205140378770273456658208724554137857296297386534453099794481767589167987996896070813644128428670441673806192823444416582385269663630792895503242925421104452639690001514545254453804849631767317874991042406128151856917877915905554039802201854404713691310557748330877201369273805383852925476556720401499860962862775386150873654259442030998403491926226743291819937925928817355482213026161895224662088237968020786189266399370653351505374588789292615228383888182840272078280310731848502307256519897275695332659440799227307004198939423906195502007674738572838729235013219505433766485217305966908419048652888831507039180706995833965690884597576975714940831992878736999060415728443294752459636636292869675557765374120001032493192940285140304842443244138085602132601696663663193473252556444951824269731634544776854328023907994565050264164863718298455320970553487121992627139456195624138122061983436859631710111934101661557256606786280767933489221644420892791575885949023204661184270719125731205608332901465533239914471953964839148921053300201703201716548124366095307777495763557214915501406147589854591377385514155137554959576380748573897089183145573010735225954590990368215868072129302920744072312971252992593634122431389623489707426934876179603144988616925145494762727329032122139650539526270318429540333351875721528475897945101835760506187815428614600973792539657337130186006173243323762381474017952451361504787467211368174331822975392256232408478319407456164968229199649133850978209820000398932892873230744215949012183373038681266727452526952867832980643801348073282360075316414088986045112839109123281510010767855750241095479258139673365010699722956370234403231921466429684520976905902028217360933206533665037155023279709832892557504309358844560607467408031986088162030106203281411200885971067313478128022042563031668894908766233086808647368053046848263712724859510488380565280552874105126586528978060368224526435099863222717808475816746758803232955152900695467344268524080623146708674543161081608514801466891766306115576318166834353694693573046379037315739909794121396825090336279276119331130771960297221997435906916082777958715151664673806023499838631145213052316990741229614455084169140910325114101817027726147530730394786503422309246334710646662019090010486623913369865083923772504064758875750012752296296568330150960389644389323124209735095167625530307937992376409195691878862215966026432996118353476019145605980085395331384026053504169253606450657213756131864592404317223799077589609227398392813319754532401595511120281214726276475364981060388835974706530183913942401915881580975269656427714264765574211738856055124882089175635480177272982294272515432451257715458730439738422706782537562474453965272848046296177870767840030457975977019973196639171437779693357510247479802107478320411291560994940135302338591357563011928901278906201721947945788468193283264907066397002969226682316452331701533476135257965766579353214089935707810822489227985656214965359144029336489480801785063886340239342256840468114477981909673023284985289194874468564176467794694213384930654666910512184994274083347077563610013516762513905012358192171595340644635868081315102833639436932564408338515394734785239899095971836636343898776555890924397449415998599008027594322719810298822519777263061112964757834785327470865621833670326206545059604985407223132646510902460299832628953954762543549555795983274470955427993295917130114142845301296588775735176827951438938173005017596311622286076029837199930020870027661237511669609196484921605907822903787405015430531876621033525096328564017640146296585411554052003467957796854628673714736796093082836958280018328948513899784252672733275606215844861376229845977690150064223734731955563139849814875813675341648286953837136595838597217065074068669005842800772373241699011258960664670822503394857827260012646460871118286024580580052938372385347969896900507482043223683413577705999865491635425216840114916705757305912499506235859746040984609033179546503961792666166479103503100707703994148072058208828485813677548256357620106415171643787216576806353043285401296599881266352819988055412195758345076200977897868881552567773523744827408933470773087433529032304524815613322950093311850870833387577736052211020643362905732829513506511817218028059154291552934532736946769830967650580395315221600571502820678765412791866575108966568266866364190932272150387553944355609470026039638677944800823682481513775117292821750117152498835266433754314368864455480126696042665533851001833788244526047687053521358878702063567834054323772850989382628240340479742012503329740546657082502533708576781347166890552058689809272341607157151898543507108212755694424979519013003646874028095336416285558657309835194474407646455675461159170937465467055087460391448507233699118540000613763614467451143218118019221220704985070585848919632165559968441387277019301842972877460088646045873359335361492206957477767127752326549298345324974970102791155339928867658418991615510034267325417421321374741445858603754805469392768182943978160056146748672487235238239940163063455495357759100630614307776377216390220070563905724273457564364967799310337161261885472478587337844920507843708815812929543495297457771785105026732753826439538145028445330319770993891094574172928696034219478739226536184262953887725158045169003713052900713648840422248020734448416320459740974947961159360959129347312793762102627524942739351562037367772540749842580108074035575804771163225924041092134834419607184010905318849188467680981657065712279338229318417236686543710639560160278261562445372243090562782799426489136985951953304055987647996904013257836673431857878215343555744121464106458125642629039140705196450337582192795535842792239995409025939417763297175973523952474423447797265523492680441421884440121035050941071438999507536905955827966207070982852530664508063964944354167932491307067692784779462172187675002841424528417945191324174580293527249194216470473177816685564295104385892811150201930743333783561684296683165089870987447090981774546243338670880363089534708682900633697695161583439225988811141878951886743948466101940627132319549822943778699143733020278980667299586219214278269321197455816579381811963475089308329425529154632736332375357374487546590717382852619577522460071370906417744798012916264869210732689521905010619054490748562901789172451737308837442195415801699635815787457204763128272107240635591004109996005424675558479752961786055354897076318613035558201076276223325262844690598128229779250756851929956917988183239353867252970487412708437789922578679111649178359047282598868438785719958471196416674898034554247752156824991594075963372265240881905626682027136246529731644510922633214290912550357567373954573407375985633654248913911086644422080730887169874086420078773555632893510829611766337158168617017390895959706273893028830533518739740256963818759051265718140661896908141911992522410870333442672063408399218386856565068946752054713131022415015986785812853710461172119486040793652720214585340783680050841368769646019190244674210523996674978746915510708491324984444823673813497847021479385660651434128217112524449422763310113623918262093974627864436795412571296070500190863449560207502131180998210257656417766921964412186507747241742949024745370684555593618134506178279166314302619435602061442041544453273179270988136723895157895328040833515629019486630775914588322781782758705860129553508282151401610380450120933412804547303300738441533565700467106069369694356213094314763164753594610874779024913418947160536044692257401740131073812849668749124219673384937063736371074251497659647294579547436009668341098798632600376153063987134376900554526741183969097419951787358597345533091207265323112787818109110299854550110459866797030144778594705086829392141835983759484173998602936138286034524756175228706528829208073413686112778456491012231856183190802389740528939003889868952513771121580039778674258462655765640775421017266894422413521484611502705364974493291534414540800029901598598184423885765631641818507783053530545968136817331331586292090057615666259479415234056205770759443146156842283991778519959409286384132138750037864708140922824905738119741920232221750120081975668920988908999131279361454865908952687172450064564838875192154314620901666208627763903805604941022138397917910412824222727574256598670019539421528404467326342731207315970004000378700775568685423215475833417566933347897175492817935478542793477521119871070200798268819847860328447545445920474844968315296023201544979551824802650625186243136240773196926454900479880343031512301900872466823470042526455239561138390415114423237033703374511952857710847546432049269361933464073620514890713701278923392219855360198813260945688631795891030478194255839681976661468105701002290932411628947554820169795869736255944125014120156320736727963606401875786233812746744098437252144019442222706573251933468829628454170041059542656465171090068244590662666143196836968969812515065636058426753685623796505863297242283792206955470796980937055119465302884761291042355905057092080755873316107225839809187678257166819946888282162426712546468459652893843885088595208837503617609741811409703211853772227338696455118754289085276507221831641346901428170731143365803463960108589124139963709343735947809911026545300345896872920148393829620922085185540680996203554478641224678097005440897767756962153391508447067047966533714949284743831276763255538982129350678053114163041145466051788687051497870278879406724153757177286615435287189609239101408885855412906874434275075299481454978939822042038079463093598397783795155176736202443925037598252701018230634925634709378142233826780835332080131725034045974344118657239498721151265860922243696075950293743834478536816054328331194351817586926793405904037254307491907793616524039429457728505623389504353092273902766767876253435600143401213363887462702298449575590114629736358607246882869642090199799465155569695511556686459346929441515333402867673778492532191367350991737815845104455304795101320851580433453615168203729814653546696332063170554088534806590590481977952346096596387584839911838633538896487717747472319745348227369141414591150068467630018482789959209226377159808719175891094807165057417233942897617295773056595440074048927769499709679748637884027951267604566219571543477339408935718863358735776884197636739576159587012596379714841403948357603741476220952317894152536111496974860995335511537553911954750552704944338868129464934617176260592917024163947406436965509199897393210201062162987425269349240385180165786368716905210594196322355437529747590601946152579742281386133617601345546002400487749208568577742773333462270428071191590561059576372329999109019843064794091758617860596274355406505330554720869881501289118699767383829994449038820619321855729114937198992522315057539798454320365179630678608300536260705219948023013826151309734947492674217457514427757389838601850053134421953974357174684052526328933976728751611797652227924092848556166264434401747853607943495940466612162672098374510610742193493518094955746541437904659475388881728782913647451023172378046379480057599443145999632524350761125915033529765469154673199608299176303679337133520854501738204124132714494695892908048590428875585498872075681469688460715502680398267603004351117311009772775921285431362184619147272830347167895823577544375117839838975358127522716328587819702485388212552585936712109020921243794984042871598301280796867401050920197511499827643608448371873367012627275758800826744586902330764835849868696146698449989335271498857222124015989988096499504542757581812028757505058397703992451882169212395947281697870805100788256986907506658793431543219744354468517137740626683161346669152249013473666683951489393403984348353247348253639776590195055251494780415552960150661734151336235871605387653878930227885720550191073407592105229248204849561145166664996318197169882204103897146567123764114074434298920164873852492472703737916530204406122756555803680716901764419968754423623107135314284230716050642117936256440739671104614780842380980417086382123803818638559692120894155062494623189906349933171343712198327736728846988299406366532292776550191064235495003588430227254900701847860510559098427550229543112635230373331194441605343649087186373358973330861912789587556643205274203482464875482541878892919030129182684361198990091010459956798908237035087916670404751347524935105783283904988879517962887324550907054906682506625458139411484982744905482619684874150550640253735018138875792392741530620858149455536757388738211129800875718875126473650290688670280212611455889493829291624211135726488901308830097373485023645524365722802705739526047318071330026646082596307201742672528969108360409471432863376731976045930778165636944470521277678600120958912134260725938694697505849677037916259209947688652178433935607428589109745241958594901291412907278076828341655341532922165449149900564371463335255216448492762771749929501172028228862357870804448700777493881306016512645935448173880902182130513538832128549941254104748770167930294295881595647618331442397388773930622802134762366798781964372583298586769190527419295061158866669919894619733353640140240622473420965593197162761827767035927449005336669716166943740334888697289579706865478931681946790879555994839220767827808543409836106852974920258759410352319370307290710305095481023030007465710318263609213392450393219549629379994245103425729647417723650277407985531307535849605557655530768539942836900864134478674681389394015634076093201750150174423360053715946979626400370535276674490912855319397743564115692821137072835968674680326402019109294520471487725685995184661437099016098145581631175461070202207129945660008091408278427203864442829078446251408743022788610831371624653847636892979170759910041395705158162625284465647390701855732136337908244597393398162666394717617407536613488706981062618052154604169265337552076412921493160097912365371632523952671585968250260415304349112379564895540071753455909641463650541609271933918733493889251551938494066816741201337448233640793981077507744664242915364918376558498845002614730527187588942378279297424635746793544810561852879040379355765322770949674317958527881376805128779144326415881129151665664933158265596858435479316380786476087306572059566629464540585396107600407006674130795579980281742461751523421079644815002316050059836720252116164330048968402508832017771059187047602401176548109371237625090295437163402764739247824863331440978365299314994634523439937404607395029991000007408636276515604882298701234858328345406301753853825303093227760352624466088105434103141169635637539039624949737856748766267309208356573307412612322450548614603844443954552961796063272781363408776634247109803835162606744836612171406316500916632772806818722707043434221020806349446397961318892153839475409714983889381283154613256055260052109851714569600136532096474472200932269835523972563717303360542739247487216332863547714281298212432167509952020742003905842469745783672187282095474148348381838218951130470303192363960380526732037530867841084086587894254281779638976831727098580245089694865849906161981107449261658391685748377045547971055700463722554815672398822071139369490284795003475068326949601316173297178268558427210345926582259542157939086085892961131551662136615347426522043564471796669213869551374196491053614610641535551587414476685048838184551401975251288159061651593059224653026833439917544760620815722894254646105193004949280664304325268647911288713030209578626613664480288109407386183970953631393006731247073967321343591304552434240679969705742616020582982921586749595506441062936100521199099081157793601857182225577986874983580601119059180721226429945352542827627859679783055565036906817709347129479895353262761180321522037134427294879540044457318755342857804482238397104626475999553111834119762832086230194203704786882368605756667687154097746808382213863218731511071514762650335632580472340578273319774650628275083379949614002390972531797045111345293748665242147586768616758477502975164230196587217536479074681350757337142401760290112052614087183243926500178591185592062635068876705724462397979341131725183282977992609059993161132861492651193653235085973171353618713869978442204826513333371882223227628417101951501447049823152335788437022369511314203702154657865164196665881972908876352361747745241308575796645863152084979137055845472485934956598583349694676030229493572111358256561016029557731975575126185338727937975789519084867044571638387688228397613980269160850116281960911990943465908611122331556551645793902277780686967108953278120390149396603105635565321028170770711417785647667922486342148176142286873523871327265273110362985645407478503258798371732462907343907939062619941861370386217120754466642359819865737514980925670636381905836255787827878989146629777705919621073756386001020608430630662367163424276762369830924310636570467511960144969036614571217023005847796010656695718837816068997859202466359721048091574882915749293487094349741602709653857183209490198525821158762344958533561556177163537433455774146848663051029969538081785630061503406339265654663374199037610467042494281006263846617009401621093758773671588964116056405490238924299577177012251661423530387877130560195147381253438994479487426862419545471302388216876123336615536124691242228951660251338169230230539055578543623778189829100076740033583077860903044292110737218140348434742617832404879743030783369282596324494123591998655723957189904228366918690800967295616895261205074439627802769647832998053837350037306527212718981478341506558809740742149038153920410263441270876125627622039143598852468550981170578931204759279704904456465531060737401170440089713658239629997416606155183163758017274482353175219097122897606671362844790093535463639341661853459258546622006090222600171079837732407056332124679824866100079555579114601256516240709598318754811466068118376557166416990174535923433891981954945688025440405774233258758085616421897892311439994021481448459955072057706101261452382316927103093146248207271231990724916309675261697662238121359448337635258471398683576386091017816493746676071811304317073848754119915228705646347337527424624092868755081116855806535343250275835865022533742754284332152464469230006812254652260747971079363700283444939136728667108013526147887744434694702261551123427153367573243706085747998117947268667213865029314405990444029882972206750550963955804062985890784616512182670255481141966890601568091842974065593568264482322122783239455827369223524198480042985408464299504671407431269005848918860010925501004703106622901790042112860832574790680199608256060604895597503311859973037932861842807475909754512762680440382715626144638867582882514767411902484729058353216550170384222172647919946435848332172117090298325340470960749523694178987345707792272512936100447333027197780641233999378571253108763631584627499876781448403747823518454098303442491027656336499643698079102174827635805939762911205775367936975884755441371568365920114035091147719121551738259247932770617128220504779375003303100218109174053449010810184466005121335930733485255885212539907563894457409948970443243257049394468758752077234088926406176829798479062097410357459688170562148593163738295194269755813729013418903185677029417492260918701699813003519189540704309598531285443681859108775476313290117527970291182592874082326920190789297143032585058725678046673226611858116468847779815666819468697410665225172003022691404172682427364380634038751130847903109773803415536744552645610071386838396408342125958923887136423997501811180760148808335400909579489368750583370991864760031709361573121649647154695660624214199889393712555365652963566188972038494753951755192569096055314296998860741484008534279907062572005231460234801207731812116121552056746977452808375053153848023640731350365171406431038804592018443312627783003148595554169211254457216739290118571676607362776754507532675069313045719811608291619457442845371120163509245034359121114827983167561172669465254443411943181338145122334458394022073095128759904361186245190285785306575070691487418218916105009148680951155287425215958606710652252205167796782722789239775379233190728097918689779796493008191925336151845529768271998649848488195709445102952320400849322162909917280630723849708239208870887106087420803637863452148321775464568312911361495525421428327189300275369102958413238807681431141310247852354959520820330835294366659166146208539714510995986331965632553667938881572524368366613150423708231073291168648826765322128187822634662889378663205412655247923509276485033432738011326117118675741018195306536334479572480080353406916806332860267186642454182091595736010177718017746492439883017588729455246774105016238202617048873465161768177923159531270350869122405611446312163805275020846815048744503025409019403756483671636562532177434290365476164157602904206579469136218025987527644238584115408178818070837197946212163882977788066950278593176505879807530732749778164432147246159683122732302381012202773311023459128055203522272387034085286727574806233878814513919067862170825613566066244462437941222560684993285747012529686333441715516119513144599465867455689617105175603380889274594807720953843369017529434707798226548839384219641220862895989459080845351128999136025011299018847789367710864729927299182705137483345487845960187626925822504815395425607554335800765320575261818049188509732657719121078999943940558804949921165603439015090150936694794715624820830549097920404177700277012551271960914052754409580875706409957364305505286764054185535690488150144979053514465153737169128583880943966391791999918830097058332283472593728414329390357928697008498475052500464135799796165712466462361913303014279337601385480379903658831329112087757911674014125899848263932355423704327055695052130803600007195800832724198459164077720598616377946743047825159341632267113767301035425334014085399902719478064015348217662723342657387731445255275222306477679213332838446038168331630616846243164437790081700247716674355128071407279791511458682601018141800094388503970053253969453611959392612482834432561081909952069322627905830191930249369648263220660090688855633119478016186246822038571791217404079528264348257433575460607694546678408839633245934586458143239277192678408337242036603526814392028885477964702086814727821821610954401366819348851666653539024937505357535920275996802845773030918705721524969681692147715704380088977469936373292557020318020925167051049387904569333361474847301192268267991474621642235582324223949706262919583000899511739341194956112403667204569840252151684922968780893781990128709681124175825764335603945473935701115673456517515627665250098181886476732719660579224354085012821657788184233413497364245869175499468713750691000640856482335048392653887038242893771263352733809834290779580142248097648512912313463235618565615938699945412164383698204620265428443499722351819440590908590649423888076316912668269677343401080255700871561680943624713525619474000019468847836931262830562535790759506866455117028215422930415162365751744393437965963862489729738446752715451562750909270233030747565477555667196615180094903907650776021878349171839659263813019193213252277197537877209590897081489230602246161427043627413628670682597143173032164827604012349489575426872785674413593563732310742822439886398993796240782795835672794107841947046350154267654804774013170219361527225113400709011172747646673170562851668766984007984636137581727722409826224927127219440052960678004403198184619992154281830520025452863581234658478820758023504315507793705346592373678150176056400551806026717868933668363793570205725916202457365779386101141710621319046863331783397786739205508951199358076860838491811702607948598198027735376959388470500861146608698559673652619674355141768116995955720226038481719303102888795344475506717445763915140625039426315857704464168248252293459877878152412422639341767670051824549179665976800135273174057967707861875812441675415087310116737148914200591908080444923810733930595289150615837555014298773114778241596948881269735285953355146753990800605023966663365301271682500477343649664260802645334164360993641008841507082498667953512014258090881340230435664958628684417287541261452827232333188619509466034123066966076165556966851911242359527785046012470123017194876065340024731624464749406392194629231544238620298134999943200953952729053022907490254999361489245548463738878242978721697391587603047669319296446576489681898645403091708809553044727283276693218858790097121981856218316407515710227213866357001109269934951881131624722983773701475728563511405173446829332050938558923724496062320767972245078387857224964372428814652998160223728178668475987953206161553000037159726508314739756544656376692844411495991465556949627733043730570075725853160373838938098596547802855061993860963482058207975274420291330364857943612478644609931872776038305377119741976577156174625832096622705410087286546701859517175456938641164423893161659598981853236490013053872133789186305921680168095796608143572743425346191341804744423104275157993370788295110932463027996582692643772924416072987747423308210257094619596611810187520007150764551296751233830414199068539666200991437137391066666775018089899510079104511888775071253864646141847825899737318139750369015311661761039318515798257591422267023785881211310141805580025781858995385706491318547539316284257258272135951208345104668269914986248719931706791873104917173781876355017533156986667138247465101923838291336230622165193810704257798501634433028314576226639034290747398829743065912979050373559264149698155792262567854325067564850432856070738155309173493793458387686507973485275815101203503375286594282741179995918419445370444939809948338602664529162004207354734275839986646220030310957858397811811840227311362349220190778975672879254106171102347498129224037521375454781007453761477435592224492775510450736430756498562989478550711941282782007724599225370407640734271206708039780857742354915603655674589032876369412575029974150582157538679755841244265224632608255314666568835870194561226820965401012733608478773682953752469574053155996818523420091449350822277095101012761767909695777102227486267050938809596813755437875274216562945566314309978005855117798028643333516041579780046375902875588640350246087573099970737430611731029968230692336399816353677321961047598613736330646370957852608204631073847310563231928603148492926429276518747548188918171728684221173870483829754062119080095986723607312664530096154340927478027108050293600015371874785443781318593239388998185352060365030451140397002295710690834364778429942387550445916608313046173730405676531192216216067777439032062608895041109527365290920187650468359385266242713569529486098924996986776993830659305651259896838052656152324570082700631033766176821731973890527601607146298378671896324992231772693017985400041124195988843516172597119335436626551876526494171913348132437282443765987673049944082731278962866955070418396603981039386153258107907994451054753327655799539286624766369763127359664432401344970525885711271158855969030711022366047862247219301105786303550820634637892158155994851281345894688242637323108120956098273933384330719518834681848490036617945527671569450465348162889334145245448813293602313055263629194177502565908361250586139329680644982728784367042690853786425866836613436042463334932583929216288238036212188290543074455164868550841825924084008963204676831327638407470285687178580563568374879551054672384527799061582126283893481778174563151652025000444037541716916524533858028615566825437667493033839610897814882371106683948635556051723058461273335937522626509984059675987434570805073895905125214677216102174517427541062051690840956506921205649984219994793014643265610554230105573490858510580849311876570167235369687137798413599549014801251036223778868549070435776506313116168563986993729239454505747524474028137924363529759336546577125532923252122279161341982001566448178189030403537361837074462306624721442620038315362740171336754410592678925556679243375103522082581722911925612256603403160504380634330877194577947143871048282567488746417962289207745570546944477573705736399088323710344876550054846899279670492088912755731567848920018231121378496874180739887828177618986980757995012687709456962037109073627832605599036462309158148011257385686496398876395513688403124702261679359316378742002265964349272339118836160447389942718568204081851775700829766525569287371750046792890140581350672135919355276683698751781436549606617367650374575006719345871191772073371343476673878261265086321044964576198977991477327428189940110644907336884058387637192143659793198568641633995808453624480442227923268114778284935417870054227285786007703041750995113647976311728781466404961513694766096585386095647409098127247812976851402180166849452824841654794334583078177766708497435848288617906868970369212115566309232741023253490213036431142412282111469978200179382531811070265909876585859900921472135025831616633506530485186418856734979378757280907220221782197387953876277615357069232928829796690271629128448011935635804424263048786377462449699356728806991436485863405683201093191618944094373593113158682644021022847937946852552832022059166506608460011860690180847422389446785410771457663269542018145121766852258593594258898822065143363927423763766578553290207607365033708898550852042439879590225888675406045587089705254343866874841080430067440546191236689185541706215486318832252376804789583604465384047360293545536405851912401130594976021558889396862751059814444802614795699405469136406484468079122943989855942556200517634796603451017406639585443015090427065263869353490420456915472632815324701457118735381635874235310281350320818244833063077594745018356428927802565375890605317331541587522610091978309234394508651299858441081197047203628818179386426988393714860494132650343650541288471283175039703689672497642181107614976138964509795069628425693754829169338729906507131575858845641816877856888104090022207330596323472902707830951662414985614400313053493182451026330530604424676670901039027115407966384103299621192232486772664422579428907795511092750429518694762174809661035649923821869476166352888320694734415533719449851160238145997688313296651571930213804481758725734325399617523012929184592679918050274430445387613381236600153351003636563727455035407256637566444152858866598059711063332380166650948513113478747434667589549381084515339865201575590481066998339242203146717597312917458897684538079977405355612905129241083832529068158512017272731124954363808004139003222704809967697646731173552209691366963446949863009444014819181842778384698699810984582524925162023109369084222477374545877348873273027364284724130204069467631597376722734335065608227744294685991459116777248976190953023238140400724889895305585397196354441641196290101730507730270158873241590878466078022789289143566360181742348051667693660587164128751983823322707920586374907512940934049713207617573248729103746489739821091479412162336493657518182061321834579318258473796119736572242287356178098421455781479944055300854148852234086546492411292155030995279925098729301522250503200913770961881149660846289232338465355776847671192533183967529810948507827204318127409328050271470945568228497493131615694585624033286770205503821800535412200343372408421102223039527464893545529151833027996923732835843181690035799843188555370137796412766654925121960577824786970756807043996583180734675727891967584899456153080481932786231232754408042608251813928046541708489501512485069892237467805993890546788741123613021958357262594651354392917575303485782435483499798762868880925211898559647554581061083078446411580627132360681428965142014762308917359388950878648125352826448036301860847560441264898232128042112270012880458701757721947952485001939473820122978151045987381416520802230219101444094468600215899695903263441212147914576074902116885385942182874829349472851477443419604264489117399583761369621984269217810898047867095431147209026161274395024431978920390702304407737423768340269425313466162152711234100293177355022377513156549674986111273531536993547051786963274608618134390042070089262535911807513532426793368558228563909839172871919562330754180052128925264980925509334780998195707133857664667821669415096864584678096625699588183579625014090178956564889407366617787561558242687739141865077034718850108710904291564384497414243297129657524925294728181766583166990812891733586323225065724346761250245863253353462316518722465376965246302124756245828472416534699695576621274340933694721456946471922597966531474032608681517135959344857187336779924552192531306374944046766106190678483666854715785247828186840984037670646661266771114357200832477188965987316536352049841919152821460074608039112258119407480805010567470316848216170078768034325058287107831564119769136494733325550195965021873558487725438255391266289446595855840259378142860075537140170946125707035200427339064916959884309379082028082486941222127704309118953111658615731108857425975885710441588459524611925246541237908213202868109868976789821122294879562774025070480344429784554561748214824021886535978318527664456561461137788070744367122097879889631304457418647513832964707851096963123007239701745351530425082916082569577969305399155827419656340842252150900987117842320557019792312272689065979066353651210530823989319007952823639200320045818385759046594726663437186849997786130226789574752017635647517769374367979675989241403961559584736621386777799689804242629143334826014043086728097238091500596192492804928632654385911217638857635339095612900652269372450112877626861136953134040714819779896483642608956392422898113429638416841992893861420800020503308344073337658211409824948429180512113959586045491059958359001639316111418465930063335422318603356319858906209002879317634697207663457090674440574818757751516489509791430174254306952727414112481843452915302032926624280165916572165650306884016520203744266425268062459422786278653284444156743079623252689253134742209231099762373175695838633217162479486288895512537556151609828875074164870175727834563980444675912570654637897463770139075004169738463380986093160759448222337394562741985159539532471080208741089692181119003682938822418891767065858275473857027353514166531519500522449410110731573675999525853027080411187462952054063489925663494704196346783078566425612732127679379704517228487100670074951928405737199529371301125414425786714767893797437740782953536740572937296956507447899232006017038465958451397380719117734909593717407355660633203192796500935247254631817347035458800431775693530159990014930331111423845700954548292506340339905004618832673412641115524243381909319463182750837382888808440362829512693274342924775435962815326376697356897630000156522630325005635700287170338583430267040173289501652839070193644085276815013381363685662171539865786503435760147606793501494525211734096588412255251315453297269650774625331215426485008506897819369836103170241167687942455941135209786337445092219460178624676219316684468328609645807394999882801136898447041000527704066434054310316936283356696648842090059928467775411667106809020146366163981951828752657161649873074659757882960462417761249724040142373639069395185244065743243410348422498039001863745263222006945645057774286742111575597721379680601428324070979134307019301505745266254351791858990637404470430152052673030789448960146981299614618486077232890792035993744184204667415108044682730663085800594935666862829143063304361345286395714760821798401673674982343864332230546394462539980067727161878807392020640937182233744619809093548259988999804200844897397091317095719869820351435277547691709484303817327708049729571534120675871007279014204364829079726171141482679594212812134156774016483470656149392630845539281290738148954973227708433807905291821166143064272946507017734300052163813420724467534339732527044924183254041447358283934249195012472621488327626634968452876275148621878284092856044478683445741440832086859090663354500656838305300120170920985872447091257762439412469491413692307705944037256278641718980839287461196931535264680128364813999860679038368902002541233014689538508302332095654996399119998563907814966513830687118181322318107918235598331537935617084219097842356396522228641340432180193601357188224521589656807182748299839111471782897565266679490263437828871109453741430716836059192174361133375042136589261708329354810191041800546325658057334399204466331293110093132390180992281276110199267370201905170063985684115027355816592957057061472864061124450535103838246348087233668530195646186156979613095221436511612480973403585744748630573686672196716927173575138275750742009516966189660260034079216029151901873103584960732053809575821978917485189896649463542446362748618553233117500344865219989915168615402536474784961780346930940256776706715690897100642835577207674223252496015288638551489513322512751086722549945703438162122438738597372867428345745085583431309836868769729455964034694406552959243609745212170013311119631080595967663511385746440690377192493592960927447443758128048105281944171500009892041432751951860064683464001519622324558094794338639925389879803239879468055728535547876116218425309953626864479006330276416584441874915299386498958500781784061911673034743462179845169615373729588903004858724489598867219350659040918945732481440594821766752181604538793063698279055187221623758642210261670392377917091427397826203455492534302682666221527388878478181573129041295970228335964963373554665686476220748732542177927940950732471935398853506730145591955370064133801083709704754930626731735062441786882846069202361449011850847002444302210156913508387580511498760138221024339292110636211224848859910227651486393311165665177972437384512091766763764281711298664145255227618944073566294897065435189099588376213550527563765632416876071908597845175588277713581658852421439097010421702045827644725741548918577871099174623206594157345194226490801746503043181628051613433287626975905330128995400344958418624035618169932664100921741684190221716253300814197969242585789905582597972220717892898975267119818177130669522401044784260130629444120980987450985126848782769798306678426095071331217160334366076362076079305584113424513306126660026101432380012133865501468487539381231922392577851452852107414365310997297499589669601392323448087069642195381727316018359387175722464690231772798524327508363651396473971348425048793960663852375696750105680981520531359492898515183442918760098710918522247784300586342307958758204529499675731623215292154594313770476000362978007545965930386673613125555315456639370956878182106068962122330522166810664976610738799993234079144292127769499195719574272330652817306769517943705337577229169923189649841727746394713937896169427572330083625084653033057876744393208069432444191720235701729950076529312376403218781054468659165001202145765856207977553584362962861685248863436096062253569896173048637534868415479473602531436312738739438603362677211433907674273105429564612817860266641988794760954259767836967402824847699982362369339058937636007040397884028139788108999639993036861651406320216156357010449639408931022254595495817133335061353727898490672768173891250700179075031822281666917061248654687500216635506089916253012823535969612537865089525231596026532701339696255979472632477193738209938491395042226089136658048868432158172072537929464127427311807996298846121124855332442674703879951005652619204043564716251069578905864427411074422704991426103026775716607958406835646467497177414729815247517904686350167694003385878193083714721804814177376404887351963366334063022770481712819952888506391517881260211153942171679281517647895802707008570967144417065947369074426503790833253402831580083662884507381613604245590472780798268078195375896257187092134928118270555625088587649856293021692778624341149939654620776520762358260852926404973683351337415570437697172794998828135840913126528078514028946027268073157577744961603560716595562815824144883523886914184348276093297836399174583283993664400741262434887804267205982009784381108923985918914018614070365181798115428918418589118414251020821404676527427845537658015184306925285529696270644423000550235795167002258605091635333769840423378371126082919849647326114938315174688433258567475365984331420524515343649466024416520169296651210539868107334080729825889603474174408899099037108593991808732609779864513024403609574923708736270597863494813047533307640611270617023594141541720100613942346533744010923744034610273771657686915584308610128952073471501558098208424327608311482970627912040395146279903879324164553426250266185264519026507674983706535323902211513845769947341085592822493489525892567803274214454839673565812142059263985457597451926203069158322276191038128743939179414789251515227048815569080983281868887639218816385119650534208158828736209451964019078475819362765707696987057181079516307708197942106163955325821770069210275764042341946396723832610483639993198492195962364257750406038147169801766292103724774394526610911607501131007520981991759149124343935179280523859773560963218105555778829623676462343563755375382442751801419897781856213788978741015785407125010151227652725253410296545451453019162303585407687652186789721508630164190761552663050471777166069942353162848262603084211492392832011650722134778713194961155254968230573727412366056789052379532337685421593386157084402402247284490461547648265761600288646862562583851909923014843445702113848163729326368062942160997086352028314891422563330794045180815064354944215280309197038488557427983583913473139168355455578205631704954403656748939924839019651427085395372553713701329305968997726986372237016718516044894659117036188605097898111931584542660193725816541226904939035463279013799100491847132219524125925408325212456323651943543089914310342768548662199576981245895633839840112515433654681445267963869877016841009470253657553507674557772488551124419679558427317160274273982846277805459599943041197747981854447023398538016366042006471616180183681361742951805444489112623309005416806646143705487480722478821083572712302917602625853906977236197747393324565032579459330555727648134276407015156169141760779201766204384715943175335843092398425884378943242516536875717867101373177326143453905240544563084546026206868724898118705077987402305998373554822507794713641324422371311702307953898510606038889290473118157875986680465286031342557359214182765783149114222052800036322074155325387038595929345712377421681362074479926179495275598467446020976461225403391871892215388923326163541858633703814391447308504020934718819468135466588768853319989728102409570787062231957526652325081348250498374706413533115403662159487936994677870370124625293028801169004033078335936627934763299650315942244848171208198177615010369350806614981751897796857038971717963493792803765786394007324036217190861012380996497819530574261820782708679147670496863245294198632000730894017412495653239561124847541647926769713759001766227297869305501904551068785363412342147153613481740839045990141304211707807994217990000464628428336902162204588110210992696248503020941028163825270186123501405434472526105223748996456845338646592799707094016103529662621798782658871342222478563321193140644567976632900991663427166307486855812637277110461991976672919575617362284335634513488962179749093184553417294808638904941943851596838289958029039541550739066093137376903824497072977047367335738729875265670743711825594034808677911417155589896053713425000837047677966071048875911033113388186892400358444035660223401003960972066468346375093345249854823412194807298343614758778623561241486884912082399097117498619866254098408417086160111165063343376614679834365545143225588502727064544283035314903921641325134231239965762653664693133857866128624185931800109810899326822584091761798760441871868336335808817348425258871437756220340876346517301008074425299066918631349688934153541107954434541832263054345309715940732208023563194079826655087095723739740848841487828086417418929993642815904909149553367000352028859379983153125076766486714779227950675442123387538223281448194663747971168585580793398683590449690103918435573613736614363361012984102831586091692713805395718611205417458006280490594917447341759294534623249460299459476187999708600092232477652995915128392091534233119614169843726635393364643997502214326850987512255346224125011396793391114970159258348067424955919057018069597317780357549591688061073045997458896697567873362907983022497879906480783482343439873354223141385417897894708264443339223566260007457112912803043000366426785334339545108449707208278532890991027705771519283568484098768710727414953335779499627664044472892622874101390509515527064247214194920171745945720737591567260379369110701342764050705598828234300129607580903169760791691694144008705870248695844892489773936775719133125795929846409071987422191179843656136100508503839853810242025137326456196629043050882857957551418908184712080538672090266279564380117213471267847817626568401854997006326510237154601913809280754092225129159296292593905725597168194318633259733030025502915292057099432099520561247343426993953853956639569184738981948090195893621125567335896248715363575794631086668499823256949145468444112150424682560838877909767138183935172753497835744151634172523140270585709939421614998464553059029117194786883385715380415231137655473027940073184096632532759308047474252243333770314499802076237322632652820741903471143067457886776566590171704831822624260668590274320803545063338847252453587415441864285818964136510974789352007018285466018292854687572263673265464250977099236339547901367997909083933841207018117028403245659522373062573722274601311391335657832734892228209377212734389651104633383287579169798998668373092181226358849651292263991833588322536452731691848068942998856644346863596488830926716577477660426570542830788710372931908275030090340409712935915466892561241127612774777697933156519468618200748695629635804317148649976099246508295620874870170823757989125595918589526049514039504266671864920703990995234199339274246490029631346525644089080779078392987836544914466367905232464458555110169175311546350933389626782106118137053687760319402483974588599637571467931521332507046613197304954884797829952117955157938107364052697722922301502496724755329427711602561304636997256097279846003989130085991183918245909020904711925306348034383158661056319108985734467793706823555086390006893651516751672873380375647694254198050552470596501551384443091677177841702781636935254230277385412449781236682390752619240280894395147087508745163809243723552037806377659844243273803043587842768919079495467458974738832020190767823227544409325524585837737777393182789673952786871784666543140599624823675169810242265778956895705703098135364019754394487276889011463280223207262737419156242688436855355013571284398160375443328545645241630877662280357174891834275947630683189122413033954828638492463429414915328532080285692327303430672059447697271245216451406189184192135495209275891791539534084048970063805083154807510216470894445084305837603679772638367707883360480296765423849377514029770813865329149325823167208216645810241233575867660578685448555163836539068572959629888795730688172456583509972651693029742377073033536756665530956260002783890971957806776641254591834754034006685942154388815716937045378339967076177792693272232973657424080007696495018038906180444956077905016457831046950327600073154294537962734338564527649195572422543690359289288178322612316598110284664787726017047291435294788548027174931828705700720413551004402903278781986078611329479829711303541369820302889245189837414370245063857477347618445127403419777499381974897734088551179304263156509335461240751942700662847981572197083646780537866234241238969640644506751434649728502416041938204426378881936593490905637861811228728613692653290089242727265673249361612312902383160974051238852024262433842499429362982218735657044165546230359892380357697366611169210309250909803732421149063041801920935244854699735487319391237418585888010438870192387581357689161990999359081751957940248618348826940170045349009483600546529526697802491219995076256415694441510724611276002057823031990415499497796149378326410736210776210199570511737520851095943394861259492103849997432869099969870747568291902962694295987005557174582279857937391647310791671135134697757207444567275977651439778962691817347422615456651337760530228512599312509975967682283317451864158773249126969521140087796470478886394634421637073685631204149281042866820621376934154836093112732464900262853578547681381989477324725801049876598193190001722072275730907831210944421196724689105581072066160778311338997495918172720535193763750556520204932323206953870162666806310530248166703857404895708316116141047624391889534553681900073266505548486658943900218586720680711335135162353749678332865169595679518798316824524022735449826453463150263262365968906342565077321664204753202869636456861167585428886600053111557493158957794410719010012282846422321672560424623369005720617538329763962698976004454640862312016645517506309106005520268208948653437561561631661600255926886267680582116442480423210953250661492481405106465238617794405990278511613167456936331523543844926791065903155551131085371853678077569222646104670797378887884597433171944268680486759867556161058435886203386954280828761487529361110551292984510251807143560029779085173151097656815244029720957728671254821947503523074588508948471198139657153074806421727696245834431099121610196018655944251962103922452226731623282716291079795124155528147378056907528730316267840884242685024250152983032960273096014489001057703850775693443069721685490318206691243102155779632355862191879817456812407714781577612373337951288641301782825743259249826653825859852695943597914616120819963778584861235048980978866925567503629585903673776319112668370958069424598059211223450487002257047402051348783394619081521467976625830644123307434693467067180623192641432560592304420791969832179980514590531327408585566557020391441839560606282775907862355351710239807845067582398723638149828460346764041249169445125358933904795088098621875739209544537424291567234561819516687939342186186740907118193089495267574635419370886932852406633252446582034771582465738062494774073094529830231400216935369274593756304581820249540034337206337788182190293627959728621374925005317157731305587251070346242051087861783476225396730031360861427037150071173348277826586118526692616015468299670722510292097457334448994917183327631220085378528346899556903991189661777603743767109071740500654003316540912318727519593547714222122963544508597990572137006667759694454740371507079044551308611916089929241116269355518706936098670075905843594836345572836841773650410375625483383231653621061620540648281108275461226031127133426803011200183399423900774223844260278070900933349966662737985764219087192208080951175105331745232546138603017352023337828708953828208119384945959653268090845335862023800568103159150476902880186858088511658364345009476561273488085403239774627694484708117521417574639389709360115597588376184777190964883306420903834199472055292509236678285134981215588447394887122692626972926414334117993833257916916008973247616726983797163978810827658084539538941452320968837754129072242689242214686020473561187208374832798919998485984573673186058057708794230725219198298768968740074300071059250692819716909340476040127195172341546846328516755941059418620838683272531839891387936126719173417696413694092982359940663977900724328460642123320396339209176219821873406946068003858860465211129646742369838796642993666007513628696113343326242853289512576694785688192986438600801460795058762826544184354824860487422361585113815281960721654964642905603662821468681813333291933550828699652093338502896589468010356504117040105516475736214854662094099191025929353442702400359621152272215174520477367652090612208975996722039097562052728591806508319423069814550537200725606580684240656058607616402297072707653390525116070297541478648815744051963855268164806825210443010857714051583421640352092536141508865727185405276661416437177704725833121905040967936290800719005527018542655649051064117088107627457375733336016524435325030613970016892832772670051969592514053403737147460464220574948454433166327080180885128915191839018414115005724049937445211447831774020295489943503943676762508313346415659781497573538448832955657972586658793767044833944135133448027312999454961273397233183972803768357890070222660942628562169561331027038712217627012155716858364239870573544316973700355984357003000548896781693936952037899698776660897074992535632698274045978614173584229430782275478740838210056169837292297929199435850795098462656920792518141998301219835948593072465511114601219192244401620347453544552590871100249299168395500764333455348131161149780330371607576322061817910158007812491348808815600085554786332488686707752626873505164954486866126431029241868277901124816026810795598839081202973766574488411056028898681821100251320908366382479022860941466525758423381237514942984449716217239575416952429866972956233914582717436818554165696359640919663228969795942595900349922747218137174288843303169650072579336849660919824488403704035929805231511387984793561754746160553410890258836935622644048505239609316791615518720016018245942173723953239343593189634518275405498700101794865631671189739181806911645622649113893626945611462221270322913176600589777286353349310936312639750519506846182257919343299480168341958072148158585356213173876955243609349101317906100783994881311689030000975545706326066117115149550473116019329013695118261424823271034975980619661554048129826981828111035170045522029748002464397704851912996061209028700005437817663264081193002361504071092881486596418253881979735724155863110959398138744289459756739712824069082666501958315577338839607550211094695274120080149025235093581696323628713024198233512144660280632512931042116772214053792875425739968395257262330308157199443740026668113950581199620824655500097819350069754044163631247424660359023554032118765865199921795345957535880221293218271495467205413796977234768963605489044960278427316440919053470895956575405641014137886820544218879619751543688037053430129871758287412480193059948563027316130670244805633881152585358238314043969059797352250190792499101373184420621762417447130234379867564097996073999287967336787307498875477632122334542141312833433036896673692188762175900196011563784796859417166664645799138257836401908498933543589609528850149403112477180077337209632810521214515946030333060590073315031495561131581853024127393488826328160830477360264732171498282260121340553360315546501249428430188963586900722791785885707270241422226485328675417304666557898322156695230669093463311325181121561579340812620732249639116206003984788248624300417358783040755481831496292414015425343702598879384072121111470002929889520132786943264174869057003331825150407106654383642047389966268432212216458891758799769333637599684442461097016995330687237181395906507235197316285576901976107585209077107593350933285056367278985140370143667129840357870897644522672671898587439819420942311738192244080592383828492668119908917207771110383507259892809628781755466003496767863559476891866255172560804942920154219111878296857568603427803287470151254731325570383181937834743676049065727733608827100711150549123841018120298432691157636861893091502875464793857867055790693532450218338512135665091747117250616455501519991854777631545958251038099889073546359267459127487861674809568310933823634655660446124589324638682197779474743446925619465187568274792296594306886040784342854268573419469909721660732689948737858049387431051341760113443338353316608985216038044632979356199116009378678904794142642109769539743464310460722468405153778317595887831480265660504922741594741107805178510874897550163975660853700747519785439000611840696154746492116670155360773725722719250817227479909309338754176381198495915686832524351178224752976970400665720898763116298979356887217995882941585214730626323111912045131772351983543103729635030299717515262732482341228891880787050721807371122402294834858736090140150145602209188858987461527421098723165034894618685653371118613479776107616744523365473092144730291064316900810794414710324186972358500751954358991785299492588403463504870372798991543364407413699825029133099489909982609531163780765386202299849684997480471434618826654238714223869469237179355732053605733817784825222759481844890555655072973662479577047621132898677705633055967791540735155160531747165271836967343482544759298853963825518378569418397246367516703723986600155628298567628642496141866660883340324707841125397875688126247710133198313739181928954856614240320059604211513100544468575691068937635608665109072520778186642982450172827845133104621708878521101614925838621220909598133576741947546702713983762921278130431761778762297938374274756506253608166855603087721136723892841644507160487222773671711167487433581592257451700759258184417648921349676606907042717263041016108738631081541304042568971288567977758721204781510371387604379724733107057467522645782933595088482464135268052592537863403635966106077042620395757277315110533590219581330762063206141979568660260935315621988236672123556998402695717775565986955240527936586599994121452637078797048469323708768913329825272126154342218123320654741574969484849470830003214810628444838263782760551693946907357154852344448351845887339950604010804329449701217727090779198656404387194115323854602703318419101690682961602510905974565333047223989353522460839261735800999142787443213137271624338177830475299957635180227128956351721957902228168256802668299191894873401935133707588846894550622922731695568595911849519280244532353777810598718258773036710120002284959419572186988636908097831203842083396588529518955972695660208868355664963764537121881014413357975373630206859716381395847850212733088237179681479907634782071792971602965170864305121817785229321797712753357113685923206700343785828481149386715229115432978991516160385606693185067026923494867661801551197936400563688357228403569071101090062134833187114824258261767617975306092463529564115953085944373814053081180988295770722969291975656257069397788639301552730413430677178459693709676237114496114633521150153314445201051630891622640499092324441771680307495283378498136411776389465077731524997398581740492053861831850182401180882202416650482741619081922431858414286991910259068001866125849095067272558166285355683051080536717314489578802196965879324505926150755401863292960921427949197791550228288276921561934411776442852954100022181180080198212735411635240423136363640106193078862303343441231915141974838035612994857650990723909327258646506104333653017060392018797078087534969690248540213315578868499896108935325824729261334833180673841183995792765236705959325848466310636047400285551414612788155708397673001491531975081906335488496952609912721721885995916024759669366621016492665574333187044138061876854829910632589972099859641476137871528658845284575638189466921246624815469184434844745194729584502059175993172055070823063921554389857580150708573040553308120254401474110239097813671966961729666969856333065676523367989601530564058922777778691196039122950035603995982864560653068564953016140983600702385737293913203333483135493803405912269259042232273484679779138315566245687448429392956547133228232353273892006440171825169555381139736882332577153564229880543648104796281532104579993279144691714218401441472228119972993909825387536470378908275317323129212634186375355855396204322559476868565153496953009967105351512977359099954024661847621570373432409785793514904110562900050219047400218344839013318190787344731286058670158677690244495313388554301288056470050398977398446695473663915868975909808433223793540149803627385329446711777948671829458588872664826228389734624449939666416197300507508608222507797815800094545959083878312634751395240923443107217386391211562790527093560787960044099532403740558997922438929234622623840996344201631821378978708703023311733163145158975704005011959725606013759129306957245030480391774887424334333030237649480189026712720336347919513368789100440671103327289678069862598631610457639332081885456061373443687324649578248287447761413570546157792585882915689561589743072289492673766456136033192958408672391110021127613340060335622095221811941699314649233726409552276871605345514586763545481207976483919447671155713078881557708787082616719259233820648027903295605578808635029299831044264535958458924933685950565295927369393787971047187053400725768980721410783422249957553500111020830138926754375450992791960965019792982862085342737321453537638999223597247039577650553526586278156089894014309938942725319539833580837207489755323211994046582420953065945320858317870464624671938731001398738936289389207665659237129070232466033308359481077445460233742201356385969362672051484264004647176480314864975410469517055303999616436785884579844628389443739711316126059644759518763300276127042933047596358679104221276159612817302063708568875553091647007205953705637373077848476689946815819454959284198680663386826585863768799043444214278385135283921839907408475743563251178830617945682703149130856279371704914477066335127858297898788382337882874805559022216569754122226018662284427119751496466904691176605113035494672785114811295561137975311703508216458939599887192045563349258856422627594264839241837057771422369009484621508663336827654988627505725613114251656078475989282423224017903627106824271741238224596738376101929676838865182856116148520168154956287537450889766636370291958421859693299336591840653793035224921955960180081601359744568860839069101939347862453727577470013682015961387848418321428438103537667688979510909959142176046349923042260637138803288542751865236568655990713803840290092877275742006471941564570666418154465910016865143859966600290061995519801286806260187807093717857925493219330265651084192631806353758402886342138937941970883194533361824895320032147988346306560000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 + verification result : 2824229407960347874293421578024535518477494926091224850578918086542977950901063017872551771413831163610713611737361962951474996183123918022726073409093832422005556968866784038037737944496126838014787511196690638604492614453811137009016076686640540717056595226129804195835677890904754151287114083692425153529309626067227103874424608863545436398293174776177553262185112647485586491818038151987716121968151412990230446382406889650835750022964993964236425663527161493520780133120294339305948199604353969420254761018738252172711966524222462978613221897504974019517165315304898748360505669527154801765121621380041098168079734535478517520246219450483450137732631069390935035988598826321052841414001575678609609029165074696613545262530732547530215683071540424970029721042464657713750561658172851551721628867606644818098185845649120912302682768147351225295912356697622384753282615770046948114964848491301953671340001803143401238051136817383529604736178236359090032444297950688020042549707581742810920051587113272541976395544996564320561066233809944107996509023983505868826254101504437048432069614620830058162203244545765692318756565514222932145066788968458166403431217542120384260906858381449614534899619231900467977963087077199296523095849600825567809582967912837899666754472631990135059896378623749638002602721271280372007190332531861208580942669184318813379806172391391371142452541538009195482178127103419057404767790947408548585300339461726805826153286598871069522633304688276156298586025104515900688436549770091859131407933630009426687245018590571617291031936490991098228217111303418881419416874105904104754556921931093863614157983757941694045527938937109384182352483469190977349229512595307139832856254481217915270504659595865465695477902009217837081622239912666569873083979636249621037614923347132760069302399217673511891057774156409115337523737796739164299874501639465858199659299833466605930164782634986047986287211118948631170007729933467879533102208785302906484768220247087722697882722570310129317599975415218608043766240038735376268905375571540042554032021774836867599633613159500423889949964185457785707105025684811847514397763075381968197081809353979406723292036890892278320076369335840658417149841587948589109694590567289971379841585164354962922275043894861815302043934524746300827649887776588657430808787541341307659150357225673206408139140297963493742700782840103299929256690860602208331598375281999915671870901630152916471911594792045589654174108627724714953933330259638766452116193127088328263058379407282477564917067772021579613731556638858117457882957118203417140771452947553579710818266975798736591330783868285759503476782370731375931078738540084688378992553663116247942504751261510463457061195247608225899147088973048499714351467705120587222704881123894015563084242325566582234524023250064184629592203477023254431663678834524234786351840868377556610441235314544712469309924054972384215818431201675603905031719972524565657858377580857753875296587611843196719011428331596186371229904364101925104590174899485735184754538966936136596452820863600242776042878575997267236789350943310481163781137073061657701913615155210544413473188519616347234309905239123362574033170102120961038611843868063597853491277275931137615512583588086143609696078414543531160473655542295909978736085781976548586918266365930166972883618318752758568105775675966067631261844908745484099323247260781661001877242447578482757325634619280676825806300025702967517957687924077010327825950051833687592868609266123531195866406424282856518217722405362370108927300980366147700076486863597137065748242066418805996019152058416937539572940540848572048418311972653637539392292607122329445546114043830608888455472262982521959322579596676683095798571389513587611207880657969789400571881906259210735317292516019577563907999470160972554166513367117816883319321840660636568596432815225078372608736592243877575265200781212833881618586750388584003652016675406392778115111868458199386894262575028022072407470229729807300769305350299030708992932968658499970377357047611241589821412780882071586215497600204467985139003349377901546985902884570454097514558451773384812005969986480262352327994453850460076937608734626659015202206123435576750480616281524573157302966399451196823834643757718903063240959402591380922240597916893176229124101771570400726896732414405895355905933752497459666555146355479201710856104464717446942699735015204481366510113173286586432989936828058224541791358609128169942609487581745879188901454907687626492445612664268419746466944857011135284594664778705669332906683191211679592843891707763756469830607726946446157098827211286318181633963433982622278777880916301674073605099360426618675379549872595620032582682304219761940526821315661525868341775673460140510890114566065131777384152248294592892196925081707708956060296377411787353266276600324787319187293783780138148270015179795987032424870185876471358109455318476530890730373245779028494198986738943517064149564804990594093006277657735282745329364839230377036786126011877199543323142317134192498839532959815897143069682311169063709880980582350009757935709752159691546529309592501608247973828973507738795211228712906329949550038643238424051988830206248681225406964552601853561814705128129575209176827634038449369860460590635276881199756668156927705608260532688929317249943995632966640087434150868853522140468163389913962148072377130843590128485356097963244234258597335002413606409678935872850429834088884095874692184869621139102956165151538170058823013454824506583037720414969408727995320732618984459390723172372773505225555870494048306412233528343388721349540006501057439848172942309499753085648354311183029377249071656160503018931362666762334507974153416632205688115646752647275910981101914383753598053770480983400813515228505733722683659544706233239092293045748627565018775794784349898722528041596009731196081424686254783434375542259755548130923524013655819377601775593408810900096330395839742102569482162078387429035759201725472744471584604614004419451027076341900365088783369309245319804743224095273365904204974224026338825169846115223389858328713412227461715321325907836506058798028923224690960644743207800323698659285511311486990398024934998680927904148415993107729560284732270418489597286120616569998066038661086705201649351313623692078804312221012250312139216410923582161474293841740579901729847279223428368268681490950541242823200796710166512178797440562594938913791839387426657739855976346749047716702698381568584368778609847394993632375641155980052734098126250830686482595500428887779183729173641924449692360120188390729850087918862083678323318850799596507200877668342250701300559629485460639310338006962409846734799416469525316124995399767182205049908946878275981474421785804487409717095320780908550438545095692074375623128883194472294012503948867091357550225733247387673836713948329373228982894652463686312122894655728394134751081958915738700777969517675233511970332926553477842126626657002704976618186495385321990992309125975969481164085107764261143480729926891434934653945485760525710686985891865174258069177742205999308690980946888210533880901657848794759904966902256959045488837103415525927717923977445378303709813566514552358199104233966745765529379855593010491613523033562555952656933996721762709773327929804120375937122471919820933347711940958528266320276926806603115723886129903420862187816632535548132153661026850422287575793955396246749701457223907836584704529328949977050715566374099627874261081802790766282656761601872487265444758953735966424841514000403524335516071724658005399597519912183875779310968284797532713687787361975283783737741839312064625026643441685607598462521709586506947887764380981435366133058233958841643177128134689453955873937874432434687145280671197195513231494609576155784202655057731844749283396889800825755589655748878413064526453931674676427894243522757310726579693105983442299584220142405730467977460221240528873414147742446907801753090702006287421337553108994667660074203230000277508786509230740451650940006952970374507654440416869713072190688458826361661200946641016183036296197186589885721251922406071796493047632548264919418442230198954452647764674393967820682923984500338811107120776752224770873226964121000376007970278778381110189338569896301997115913615797647888168527297008769300198030181524950167975707554384139664071545422307244539361131825430686392950328457197322610363857519633077627992504281004202341942775218915815914545927317324211667599593371418642221693004005588524791841972862404830299347319173403590416752483859511241867878206389162437431760290323651473581040959280976594110663286261572749778942322250276197696422060823682727354246626199636893994803560390052934479419997096306769803571896244940576901535476957850882261358491713132442048822018592198820969477750987281874282827463948245794718843584433391177265043073909560325058448198995832915260084255272946936644128057058726962168290498895119135233679078611106005101520912096703971372818279362911106858424628545623544082650432148061029825202932934167703257418140986265134812016733116051295176896449167032396751696313799382852946025718217594969741787574529710942590246992970304017747251122364200869942429038241884033592227562548081488222629163734302167789862372815541366631949624102253448015578860960389521180854444077733552613007057841612033631098799111177140159832098881785478879281355580695256084154713449469152472326303293588071045070473978081460303940056718501036271708121921975450601427613487730525199147197276975343080818433964308940508403092776706439767188849301321751277180869708729500620623858309493356097911249371414797898406425487435634179435773610196432976321307837967874392664124592919149040384282474997890647052621063555539181658192686736473129048872386414660486917414500522399761813423455838136287027973958387883497909965137568122167354165690451089724770713333041578551072933765145855234470344805699717944610670127903271473689170381838317363952033066536784880688768775638525520626432024360010265126019778485160225231568714899183967962218366817905674813571558196442595357514899006471987287653913445808705641902246543019946827778127061884055417232377647521542782361760659785409953996144644662409888525921382247616839090424021110345490894287658199343693272661467486064067566704905492346983548052820306752831201535417015459985788184397345100246498838312846172748705657695989710447548626955273737462967243982991200091741274448867484142796241175130638341788237593297314320564584561390377227159851542127940776884782682315484247143214703996896768557078139541649820998405502812909408942843401326087152749210886528273710935172618352935270711965652390745991201180849764648824063615574449022471175861321051721565747543212567621988750941249777986924320822903797472606428482676052060098450617805020511562738913764387344408615988222992400342333216118459519332040331654041268829151410051175346044859618550552461534191531825748488371383384976042703810657494000520273533891986901602983797596721764733190827634634392499707844921679047980701936607898978235076844961473308871479707159150674059554795945616206401847611429632256723006229360558636544195125810029782794899100405487072319421171269043025931309379610273269292776168085612238692797978167506895130655918778864352680786654889456083246582202049612516465489603922455168615894039160649834384823614528296817703737280476898941720631772555910186086197715460227546326335017825305338061539177185199150678600630600092400873877182858962680440181097350311853355271507893172596966113060279956964625345275782203774937875001959708712123189240594811989463098117595560372357262892928771632609019318270473134022279738527232772958135423586861817878806995580888584315273219611170452723842068853460970223461625759242072328532616105092697007261610147100068356093036018804952048001444295815163594881256196738049203450196251109453281800480372309808243475041790944974865421692593982860122946936952714583832578800783752103059182320682657222032315525532381176883500049282237037749793473772822836901157515964339072765271036498329533732393003394653883948103022833376222844458257770958049239252194621024698472658836275609450190889882439913301121161492651362657216785169452679134725629838186819434530811039875576359993814521262670200215098196316090978486654174213524212947841292029510725650186579095120391229190247172736081000573839205218197550680566881305391000406757652686690652600256147497209481701516743765654299822982695116250816911483231294541217579151912746632825168812618363899144709713881626713222382312912566394119456413606732938547716291731561851290848443060769324599072376302630111617805374737891389175899875759852963328049346335658295610221374079203742442961819753794193668833138032461949803999196346293216191569611076493619660511889414006285129495377272334113659058086275127752064098131409956263683524659858068957978404477255075481162848281133774431751953057500186518885842896433545704400754425303088202476756361974972031292673221813620116458383966810498414436684441118711953407091150386989246858007441355892246814611628988973127213212060622580373233474510322266566957668634147656023123733116093373348733724482110167464373461709662021160459434551310477138234064015933983509230604614367148103843935544685011194934426280207090501376094908281450495676289923397938367245854290092387431666760623673525421330057356976433249850946365622789694417044829225094409078969259501323196449765967838210526028472310306412516086031352088884336410660755637669215279059781455558137865770044315166402322286950161109107871717948314559272390213625881126459580594027399537375282706786853658390111769597876907303673950556794567616295058617175076509840215718658442705693783521624084819985011641431542172024809367773762575560546404670188554885788224235657091505752550260835018322910466791437523917294876428099504237108588938389124155034237963701721161381822024554388786810208327369253299404605520373530520105444587389942549759126155650765144808982939733577419457483786173615753497522389083722703433894946595440675750641967711507550411840086319231952652442436457976842998980991431008121034162184149226795406469894575618791060525826148805644253320303822308138204516899612379242904929125256612187982168383381999874458801497887244209542841803849445950646907893616208949522265207193197129658085500291841338444021085288924413805088851063385464896155410100597656027002851496011959494342049271020775862890080228823218566043326811080504334203842453007726919990171973387669009454169122192564381208160267330564560385625745626143781662708868994564684693318074377364184083928735328762858597112682905882701027011902920916640117024084495316818463831094563006897838424387097024756768194233064860716539403819402630851468979918865731937329343299508661102852409324632499690459505857225390077224728967981465443836487997372995524233686693540906931265173050508567688922581727988245951736699217572378408646156384944792973173470400972784791580877908990167250742106621102050540230255806647819999854778123326448314045332517914084385334891248582800103826200678282744019404049910304999275521507530844306601319885910704595960474353483212472755594648098101812598832265015181338358124251219192358386108246384654783814626635213334659939170230618727580237452133262565201310302123984734890625437231136569119331849131924665436669627564725123606763608977970738629583645024077401744858836836099811587681999223011944837087651431883023466880948554659499376728951125910120474823087450400522054049949744771831421725355636096684766283468518025123530790606608992080158550721651216106152336946920269529287410444670268405691856663506104976768939011579796490393712353124342599970462979713927691025205443736117910654869353938155990897336583498144457398574241366234096737516656169481620924915552742807281228195690046608974766665256885190140126600636574539099148107294906253097892680188784856985126452859996545166747191850194767710443606316382556181535756415916573970018725821150692807874028002495879061145249559448750437324900787806787057438488115053701332349468592035915022245633071585054412905801746641742441553633774560559657674092658550013439162757044290030296453297990988172725027731465366812907582036945797394446183544456534194400240889095781193783417244765602682541993503975070342118308467114898420521868451510366842114357965425831525018206825615834874915649468091261363418171487172903918728683436746174922870138201305482377725419383447720726906629863468535614508474165443188721783234018812253508379477677329420794343857884117976870714557132122371153349706406779715959225354580714248673006176106156958311593558308624014272604032235972025428928236219044380662324367782539795899932131380426268016176644284264317217822427413267907721407829614161495221476082552221901964370283298194162411232420976193546231602151237369828739077731756134944817146398837883019260378922559974760401980801668534369247535309257777425814220710151828226065673693634939251712838818519815866317870905122238798407872774608901235907855279003786439195917914942043259682012218152999617354050843311830517233153927630012561853579030004195440411357598029810119717991233823654494864966761017720862035131013227146598359397743572741951116660421899125214846170155796011033883712903776248015966481996251065325359113183354992279230426389286714105412038672234957368763289712188897338591652264344616615133870507921299619502983034723233007914124919149288541805026468685016701267245549429430492517374099486428242461703347334033558688375481889511932599962383731264243875770777840103457613032315926441306872149764954076530809297037324875479248583846672028239700555595952539495074266185696679367113179844072051447307129767146925628852910087179913563881922537819973937143961376073483722162825069521958888685523752741195529255056447754584800957007738448799175789627391915154732154194491978559856446892463139033217162616581252765196199167098796702725825005420378517820572832288390554843175483579046235806720522045103597127249480152437571026147673644930777276562020511523029284419825302082862043739752465790417836281561930525505844041607631949068302390759556634969401580235121105442400176637994154155351412969906730503968435489636490080205490584125535163656254520595181807809531715944189206756719354492387079059168813743755248793690923577329218818492124757898125387366985798563576079319433754173784987462705023353663067942714824602578438092705277884245246987394329925200698435524426777993986884026705900673895874691183977578917359695774407848460210677681164896109371097977974673415559692658869548501302041608492876340334007006970278791772088821500408607990934528791781608782162474113582439568138817115799127290380662864895649210480376580578507862482996306030784365119848040225318244364406487744019981887059445285284900323809069145246255947116812829729248801326001437518788503201179048866095072634106442942165347506559233592886421072333554178687174597760804762532144805233579093835406793630140193590191010744562841548755861511962585522695939542049688007951133856423436021737070100071161302988649518148020883490380411431691672999397289616816949188271511386180833742733925974456785117130136457828039202912862375171170395993810517420607805975703985176388535766104020644902112593139557836537400176830245044913610556403297719866764852677849513145551956997713807409365307653678367413554684070755172866351836992413353411366401135103239168178722140244900022466712804567526317368476578168079678272267472777513525802832217938125702587283806616964096355377678460196306188990132842332522237424348704024396596937553831790139574378212871425555687044748534419987834327331185852228588181462054308642386311135257762935540069446336691244996761222957233971279272958601549011961674613845205779905251090961859893851691403168750115884056910748540329085487546274460878469534918042110065741323582393806997749267867415719657449310674559236984530006909161518925379056664244841804118314151201216829547429989488285459654972254707200080030219853670616751655074679058498456065851183207696145972090312640678717307122398225681995624648679606004620113787147443375016284363484084883046635219180900237313720130048016704290460710903267519876794989506638188904083535525376671178741649619093142813906428819855111559840248531589611050289875949210140686689391454900814744137780323359657180513273800434473824237087323122409236329039052049549717002552384088781858017198348568952770049744587302379559354337643258167512803695887389425279896098662074344124191183336468829811399771353385343706906743585548614713431918829258791372432883863125783491342426463300315687791265430425421260571289874332701323610941302809380252057982637009315536796157971065346765462058152394933601494499720320893267740662053790197299017718266136027541556346454428611064151477502385823359627510090590433522689634600782074896792346133220291288382148495394418083155909535525160434922404052206045321972519786433718086820025723607956928256265025399404363159168117883820331562840222634136071147964539344117855047869026500929271573808365956756092586079231718059483127921944617408489758766670718015727759264837648838371584576333784566893763793216440044331544899386516718976637058799753110145085603788369037235052451929715209224647456278568874044284777969766775097292150587019069834599522381008339388901974536333108385342698975208589774366623770166279598449669153592323598119758976261872994098245579725658879007097413606445472619467397873971159725387223231899212474358941846459053809131072034640325581499966429590575291727533592982775345476698256042289877674562472600762793867692922818566257202918873889423260323753723075133662089412031384393356686008225431190577243371074688673956551090120541821358952099361023377911258722503492360506960439395808358347775481881802024637313993216251648615664541157656216165252916725693609204122333351499455548356460939894606497865362208879477017555410700426347813049945543783813554468556089612037311055052709906355743308672644895815935370494437765009011298901867450753772888191012128695617509836630992102030191711541204969012855568162460869866438176920254731770526385256524773704246661116427488862410435663911517702404030095297378752058387561346074343389073443377584073258768601558205959443692603582200208425236539009656850062885721966021999563606890909583877025896724383950880738126256575081366735459229067561069380996845513591677026746381819468403164267134629248767936043236433994291329352180728930207571499659808451832261016750498232644591703530147376397468565498394328331372805151922181243432897807264279562567141396178508859777654833932118291055853930965741672182641022815799137494663997205267289831159891809628740193428122390576856574630729209874656278909242585734101420362642338040970999236353351842618267640556430441691284564583707226143859961554850012510582946792291098322947520663712079488848584232931026489389714569122094315164114927874659144092142323496805925662043882646178081797284666187772288369979300200973344056892912435582602027178881047096313862159194104942781916093035747246395654690570498561911485766748749529111179879756159745566655148648279242673231940629471761428657886129584363536304844329758648074058358325809630654624388203690740518687643142668004048987384941285485916374057396618809013193147522881083059691537295050942385160999022035201365750746193909734287145011479298067190329662381609428497723381573420729024621009757211576683414238413299482883031646234038853768621224831481115361105031987226106434108278399361349241986076313763054212070685164080096479026770913648752073693828612359660222693031829836519064505953618500615893845438338906019901623361248883432854660331235901943549779529138818911640959108435737245091205563453808396505342673778629713855630455419441821871066369168850893116722190721833266712439682292574257948967846653070635835823202180511102682269198287823751405115649432080067206121193700043545290431113419310010917556679443052305808482855439390100493228849900655588268380739877733497582163038284257790093000550544991740799686363363872294455231073961665511205605815734330755860868218678374057703073735819584430713127160743274536846541062518535267618645439774689977937406807134727217087246865787020200095907655397991161668932740824613345484889955949143334132910264397986429762460470048604616291671959202461121884095745338023997122605464058666718857164901415937124261277601772954661226329880939501804354908391583117614872858036204370514252470121328077952296719143368362607963927642904121788865709155590665441305088181261883003295908595896941032017239985462113462932428669423649210967239077564379489040457037723958148096684949838797323418662590676464480241754444735299562274538290417944909514891969192323519212184367056572296368262811471998691573443977538576901623069620313514525596235236668749066457483252590631785195703575059141446920394005608398163955836085017887147939828815319439394953553130565775765468660914392190994439683950603526709020571662244812676874786969238966227741073656461212814407383454876560733987814902577863204940246306091832074467900348285197435750533090534935496695950670069178858640147230615597074756447498896906947405886465171023398211289161181128383985701641631002923721401281479508512011323753357913419765774622174877938237862049296137567416500735669229498265169164860755051744644985683506890909220136874149768626593989538416433322333511294481180390276079484137087925301213147444169757668559834839846766717412632196745557721408624670909352570376167270941448686673783687774263505169443466209032297657749414382127690718030228948285966048471694457632358812657747948498720156899251597611832526278439737629292572609314669998797200962044056422277320390636201762697867227859399398539607332857849266142922806427347061708999157016105760477336866208423399707087647222262649943829234682796449008043060383358442705726539732513080390338907252967166830767494012724415180162275854470539336366257717192912754434437963758638067094970433661743097383359275497742408672674921232002117192071941515039983575946538232161024399198055145448901755131622791787821686212435516305219777242476824362608263055229919476269224593771011030615968499133288396505224278318248297413948248181537800086901675066080686767062301997865041854471506421420599487014188659710005944559161840931593806255120761781127260320935825839123247846548592900863582274703450811904584192863910607201313253698862279745791259458316993835929519244610047634705712653610310061897503859279117222798450475843780261038216979888544576062098165528752087246934610860862579269962472714595056076362476572705178931418002473782952173834688296283957750400024049466280433720141343332040072596228689788651099593736521972257918669816490298077200510364497742841642842273500286357392658755153729264775077786981373848179403409156628940329303442974533738011057147022027409783815646183396010078376157955271108147906606061335183345404303841262123947260559998610913583205856042714434266297797177969145198575998052243406203828657190787712998708536577413053345277461277493130405007745295709826949248649926891391099600129164379663499442373257946883779864780558334134210996986543149059409133310754323108261276829688994801822192889215518779835736246368526760481796585964145846606132895648018715830067179805823716546885059877990801325644723977096884821716333034559357912411853615938503668855632269377448613729797270162388303519376311865523664714347564253866479595115380858053891707030553380928656648299378623982123099572130601100504218602841259392144056302320885808620095673517400943026582404995853847734856011249735707656960266912565737077973737022745294378540902638981960951759192989229757587161005908244620151557544612466837174397876691277866779936067281852265901762127216589176058687537024145337321833826569703177463256232679915394624884195203316920702445753710683814375550571111153984250856337629735347658609525834865111987810382523450389806776013410298139841554580790685029857284820747080973337156550782258367431236897658490072750615635771520081146015917691088732410172331901133101582764606139557405578668177196403212663100098725267071270690874951903824685072677777005981035658240067269642960970530289788252507201822569198050315066754926953215224087938659301147288746712116825269361637191222310422920094689156721089227750424224341831297311481577509554545070530747712150054117890990072976352324362463782549681736808801283652065965209168728908853726542092603908273104637491015939584395090720542013683563748388141455944413358344433112102345687698934416680258376354598299961425809653098633788534389244278735794957970583898339558570724062393583708269019290030799894571550881338655431662555464287960402555240832472752859284045200294917566618693905307189668914197458412832922723830651867008975098895447090558790153298129538039097054582303266079196070668771638306802294650725608526903923532752698858628510937268261767848268762756977899476047913579539119823470930938475798168877741575506206622890784551391567687549721037466035281742285879865102549293768961380257861474874906848175254256429168741122512512541991912134576278213508777855468252267971336672870918749863416706487846403684035095772925323483369139137061400388621552144528543308554769007850913164715794553785356980884174076038273064804896184298932607374843873980479051956522193716978948039605160967286116234112653091779662025672711723942760290317623923968557138064739354686158487210842912363415653857149708772316719013739480550237066908688793949789658902643329053902954496437936986490837016875951434478864372247760527602943198722488394572249012917083208958504032526917849938784697846528977007500816182214263292180875216501427681300206939903809286263062050053995507018239392763398588473231997538912924059996067118657932741715160763455597511757930803354984420688812633382783410900706007664155699150006344918591581386617152376252397358427669334356149639074751099133184214206083644986572579972055075705169963186662289258452665832785992873763970744813905216664416329871925515064793130057799113800198446093503500510196502568706995748248617660222468360930138613973351389232571453903417717388545049986824316242076545505306754433411827310351223471488778912200979211697911699115132518965139556707105575199173125728345505007130716909776826581399004534323658140817259633489439109621001889879519967441569993650975912116745563363895026953893772615912380171255553800286609594977281612588884275447415597837659611516949134979974973663497607925928217120069412980319841693159705590871436320409788740541117492130568477950986705874850755658356765487505292977312617406268885545475476241777253537954231893456718954635240065025616046688914029131202475631551559883879744895498061674383139714976762442921871770170623035283616804874268898103297933181943480740384509078273840242221107533336582741078298462594893212509557432138047743138493724831257288580482252864269482036793394002923063802338554796611413653700546535100453136329242452897129382103558523077697277609181079778714361551838252635868486480131498965834227933593310602119645912386049084492580695103750913593454824622525901996824830626423030214860781946663747508165190812116887253644352385769440649559077747789332110129739699310961430486335722108335831666522972966703388569707813817941004353415725272900853580329182470909028810565347080530201965116213618334571469133668749272184148472520168862881955540606023415295058631184195895304800926412637488662075553501654165522563445815967389608755803695583944744192040041517101550917060485364394510775267205334753903189829941518015815813033709453563440123814472402133856793816906771455406076556966512203704720167899971710292955851113651859358772079615780310437940116607252535316379085750118714419349705126673161414911580485544828968384727184215778180013513587183554222200863862025298860377890979364970216075603188796431962173172117837651063011554136488611152133662391806538899794432881803951154952360523835290829568551693482908754236857617207191662781350313075364590355407103871806425792694374651431016593538653847399840958129927386925839225192301675082962197196610045301965745573662401372013490143246697456964467162491514586238884596587188564188188584725440703100351331170760033982706910191077443827019224602037008093282609935335427924393891076507157139984768372517042989748859278274268458765440800602137989525517376374335993592829587214042485276320893121854803595786935478763338864691310570469045642348667304845204019267339101562084535181255911569580873299421322515501238016432230114014024952455407234457517626865014404397708839746477550389321875748633077081492512207561678675165540874184605361080486534359506808542679474250136157424983372689690837534203349717226690590846312310904769990208323731893611322040327361894845458412420826103202453077239369116686636891360368339702499865254693180503244327053447010394054017217732725112266514100836767675186186845853652972633806931486976923402741791120409607859239894420035469459284002069778489740351249265967586403532729740432498026146683584240215164052738883731712987630684242415291626423307967391112795754345208286218495933127591321402064771480831887907810908019214625896042803123272393108711605000017395832588730166115444721505955017577734921733527883163285780322897186569523196562090739183946333181488448771443307190682454522599730407074005417958383515255982066902960788581504627887667440756728358539435017071784010644369930204780172604182258099459748845873067610111279472045261017391476872666513780744886636073383106523961050202769247606479063984471727348580137160709752462284841831310577288175091307066318608189184135115158726029808174624782917053704340685492518991134791791030334976893775455878373786179267738518321690582397611770680732295062704206523493281477290395906041060684061517539609437799059261471215271422542731279135371636177985483686032521419291816946219228869945320044373872887837963207647565587277133319795463983142791947022974816819775602860183953896252771525568712489307475954301977598970654250007700145997685187446294569669289547009994263345239360625369745242896660335425485329193156672086305767800031197763052837158461121927669128589662697188217281613782055446410931865829943251490753090181722813683108903454259022762793468645323540978126633075993446904242732142038417961247637716997453375951197986480390790946371166994572367758382166324104023835343262268038372601999086871451924923211176658358049407199822260533580321902169851186902984597090308098169011799624504200033102630013141654800196533732897793334337238387928809986795038193278818340559251326685947305875801814660811009855979578228870479078626125957036538039349924328548198319557441982209395124880016991612775907977061918073950728386766441276380796129190572308746550912040037682276755192085525872543117271693103407413845086074848807575418279723521611445605642130561283794534706145081338229862911252396417456274797354931622505849877027030767067790705472728498547012408368236579210169960918158477645649639990829543809022826487697904412677373663463143118262956394759192192317396500683646077299640023393351105261720068260237273128862689636634540796766990648838729731103457288982895249949647835703650706848676340823063037761274136581040824906877843441142323205361976585983601605796218211469873578379152173519082883244380420865346882019798051079613539225286526700983001552003340094515974678010603685163055402436537906305926720653664836818872822598091113603574906794510535605789685458851477981758985169232279128578247427704774183033598466277597854827367471616894331891850454340605448167998234838934231535628169554800136626081589766780261214748353136011289215197057791052101494901029043062472485311072185036481619025864701391286451663934678341928580290584097482049744168145238985617973889425306840219240279725421932689360569861304435328180491504336347979874270418460553820885161086422875630544265991690025824168200328693048929782257966456122133995312256175254203791028176176573723552679287428674282665825236500478536682848778060105836278646838929093587773162785345650189990919656600439863890617616829935933015028676675908947799902714691967598426666295468609372837636801078645914618682666833395482621722053093101954043604461190486067794366574601491417286200659129629023127100939756605786852940637176640297347744630659096368106971385712047673733153713559843079241216568117463791271901301529831467396650293822447377047349448814180823600997026450128007178152331277188099011182419613857055127883342745602083465161176841932171302457950712178724818140409858202694498999054105973063170859680810691942720233905306936306142123279371576673658059076585673253867794110687766917736104441652833390044854187551019569892067536438901494969132344201743862213357091244704824581939011615785404844701549915986264656231465426819978896408641127646541699492113889679560290159318112324421727069717142640875125482361929482881953952601191736488219694898006730976945669720397717842995815705950815133488016167272657529551382995389293021990011376051418593813251015022133327538103760099426257950456373516913439938539578392488698704880264987336836509285062985254663179425545387506567173861585747580812555093378000032798285887097431754115806122447632318890699230120446202982322805044936756692685126369399916740228669644907833743860828122684328328276947823113532468123206881835807789067615417407697426167581693900464187418380885732029932030570172068890931403021668712058236484629298061943205684833424307077115534773444934614986435438303617633509203576137923352916244823078694731208037099531643892184361257107639425782588056805823496031093815291722459186240410073171881135511051656221311790731474895811072708693320991086598335188907803563281257750642767320195858454648833130365431341817496108215504522231463759648795572519318954016105094907554767716403650385119918071753714266615823675271750871694806268852083286755918572806740455510919481507565516753744363611003968439960240897621869260462312936348646679001251874858105506835874752976897944845289315187265312095821339810516373350222887580308800137157111903775989208752360379039936617395264212066808796808441463718628735974574844696659034433903664661105531718265184468261100746554372832180596665134202872430216706138118517021060388034781675948896658138517326651153014714571443958079970686371816413786297470884122457057603493486235211851856243364925753032951060864628079748911886439116720240521952283809154009034784745656568966861673509166356409589925017184600721983213056803128045733470668394631102087092074005581895910415769686483459924725127634787327786174281745099225462770600197656539558757669548000916423630740038591297453753282883010971395201510982486607641156325288317238238892206896645801687093834924591469127111194892601300283765938374424334045236291528706209008107441798276033370292956487857685815759240149003539523600449105544485089637235066845981502876743785998976514203175947450363287329457060772517669932736235736559122518625725164460358389660682349370140119387833431423338728999209554766764337336154605084711756686971138941801433718748790085488293300584864005887357566277528360241332140933075836001417537112983339673150936144640381276692840860731298004951829123074043031524707170598073756355622237467032390293852850002226352483974035528442545672016679107225247143644831535609413867476283014647316999370070099888286349259323546561406387762339651565587329530733916735147973463336285234264722852009756614268685794458782162787053294677262060374245550423962239197352107248893939343669260000437706892289679148202485204223883598679008421106703711511765533474318846595196217235109009986079548131374292070000695121717093457072687436431685218918348439350316825612250309159124599113553464517887320881517742976519604400628523522062973833132286396148638677172904758859833612341341936745933619063722108735990112439730623335795269151532713090784471059103905973177886433978943527909660975914722824820912300746721916143903366456710145718187862356955025802911787823420294422565407779159538756188722275991956624878477130218713389548263977328714983728862030049226860343262142891938219386658264798215612702343211842268469097341283635997190159180423505030027447978407357657965145449620445375411145436025937498093233273894309713656348276043770741705523728505572497913076586415373351435468790445577851165296802861331903956519493652221144044477047261062223895120831296621641191710341352417614712822709572677186273657847586341901628666432921866756408836267313516424636330954883989261361878499174629906120961832421251248955483781254634271211122568690768490812936172126799929339332990981906652329675990469446675659836702352815256461374031132265447206042248654990801614074950405230106737238247485795659354393619650217951808402152308467018118492938904538687067152023599972243877787329148084560689889373153601404919588950243981805826445860116593388896227486118849000717728850557719810823478030707609734548228392597261969830996942029847260418171347615078178232213962436678806600937747910179797450523847712660965725067466677527366509076827798823969737870248676908013165352781274426220444343092952040638486124783364300818089620760144542719209808691370851207335972051495187898040341686314410332886384823879894827731561688144688072644850517934001814076914661397680335133295753311112221447627897814003238904716164355893843716876394289097419516100695419505751484391728755864935776701325037961264986254747411842225277387896183209961982838643241465238828124858605274889158387880623355651782223803303977203141307234804286804145716308833339983788715483590995348139762202755531530477882414842078487588927439011160374468636780912406657609986310826422710212141741643848970589795740458394427970540893745902775020677188071333443441000792960238011820368889042141339203049214417054791638690479094570368260710047949948234750520846650134744877659728001741077038120409831707563591187526939471999613797320911826380320264261742612408853586202974276288675805124966947128262502556086377789733223091281571106660708195829246809152970462779937592129637823426349805499876676038852156775469984139922271140181983440123326244208045618132037976865781360457883010028293236832756889674390406249336761652256270994455629475679422548143745235315399745672430229744425749059133593318726882900962409065940235765293755802271190842712301465830412082718993425979619360350342763825458262153922419369781353160057215288972134657358481856710601431007361669533152960093986029111248779188320004430004028120021794708573500659011942590041204206461728645962066906933466219790057536771350111742050150065411263853310160441904622915808682934821909043629267533046144524237885922270307041531120826793734984195539202799425008339468697295378691972975389899010315834604948159791208499470508192332828191933191392856973143737854419884938615602705367801946590722025158771051024453928040460483726585197583437951230772092689964094291425368024269308654832760170181371267157952959172412578545865336224599645624096603110282840394914059060183487981674433074785467196846612485320041307077888356798418629934185841221613857990878866162978932345134016273389935872274844790509651624513522668795142292401834846443882898756049749974429567783749422882823630542769694136008990147392029372319902558625272690690092693333867053831181683205255893056878875021260871644472326909989275439568402512580790416395211945978562814337993979842597853056208880840914543106554829502804021038647272888132346007173711128284159724691083966784082217805625178740216445236875296742668088911807363150228912513974390633521881661009210667215452862267806721794693540883999495928918572905007859136392839824042841786953680486615419180259298491853384815489086701847093190851825881458865592126099766854951639275407505493694487510368072420640922695114219078839258438719311803536019903471321412962705014626199273874819081350356912307966940836545267518193335985649984313482215072133744611001646811124645838125164396880504501089501772537472310611437891834644309318680829201803599001365981015865026708524300174630748742019486842202329323003775489947576864139111930144965481176943149210583239621445851589144179199023668956586188804020197033005115613679106863553124737353301492676529041976492647248291160829054308628951814296966534141531220911026964051428192063147528442822072818854083696668623238899732673393494220560778050816877417235793328277847303042715249771097227669280977971696134299720608658181365724247113692915132387883447465329356216776735880057134545735799802243373862433891981653822826154007884650329746439981339551070460192245868231736420884448199164519874927834591740187511509177550201341129347110025059592645224857686914748763063916203097272079900891059342127846799995546826235491757667239557047190666193380329788780505047308837507468938914235342816291545689887623700478782369132509525174240838286069306183175143009068804032307202779579130985510431804811965106273522186401750749528231853870872709372006324597376592906749207382554846745307920162787497195284958009105710291685822735812437704331335107821695957470841610318833995558832013047549927463484613186640288642914900508248519390444482581651274992673834361584422838145470038456009824058684436291493663322497967644373594168616029530622839063360689782286665374056884185953709933948647439304106617381910590279264113896294446552416364668274572140862307479258862229383752849916327795735019603792074718106222534500404979542073700656709651671923424172748083855359590998383509748753061512985276630250699680884965213985286178558331352206145204264188863225798527341218587733981616890214685538566210265160592019183545374718860258439164572996610362000405809940390027705716522914143216230164843863557549623706201766293435347487351212142517321403179853257786957796246138297317716285158703204460849193366414496929322516756397270238183863307129110749180541456943857717475057113469858101628624192159917724379318633265904825565585215353865223459223753920917445485838060784021685883441610763711625974783295953944060249389264322264860003361057155662521398727941579842468200122496949808667281615891683227468148457642596368143701634949518103313060358448891878026092173532739881482551787361444893731504232728721235248560518106422134548705433321408347959838998882797240947198203042909174406734366759465787131513019893906394837123029740856958258844307561000932239202974147816054607142609299918198874359739479063721059417836061251796643906902045635666863351836972468086152652731423294539790994373811486578954190255958194326318522427144000017892571007648186719561289105227732487201935896689762840144379142429188042656467246857914110434120857139066159670756492498720337648825052742835509528502202577582018482752198136281366251492316100240727148432348000527182060047561645567960577567150336431920713151913569196882552336181441836354053940372149637759156002666795109780855352475480259643662410456740815745307429943708994187104773548381089425470106263067586264445919884104323025562151831993753269683257777492983992112274048535237401950168181123733314321694955657898041591220331524751618863894401784810430414798959292203791184980299335504233066044759265623918453413280047871278469652928936708314913216391508708899458314817250350660466027107873262950625677864535765881558024385117890673427346321012086341483992653970299419998366945416781384305917286704234703987801603993274256247176647712071296498999338032781206560188132386760814912002626620896704981102948129707183254664827910108294564868739047149313152781588824949591188122345775951252090120560644240906824128858962174894486828367753885811153825069970779546820538863097645520467635355707826037226870607104973073010526727363677987079651496403057286735375323396548777743529051172935095983782054022845935913853278026791284214773985390340024412183172448699966100410957122034893010748654557920300912826490907786932978597180351449158860232339800709098030408422484073548862939750963691273223214929791419146331966274132062412394769788481922528273664911578599852195437526440097777027045683119424514941439574137439639789862214075032118679433700819777451481839939027337434281035500731503239418466266448395234324529106695297666118357207554049755566087205139079137725937998286286842530723177576098243725282993799931519514827634169117127310055568711613089191604777525482998692928482444586481379738121896059479936722793511777575879927484413999613517834064288181508974868270291087232570043961041438575499382962615312256080791025622504887498490846635021825545232597675811600854236024958415353706951196087493997199392081780032118728667070166994203405962938521534454952012481515662535095982844277745054856039021141687554181373153889223813389713103054291775851994451550538614884568208769780411725698722635694558182516503784400955459905443699046769793928439362815517880804358976178723823373444335812904663806543956864559950730589895925013243634748148084628833104032478532170832122678565030963462886646982594900818493385316298343100234549904990445065077311867777085139356984813731116265641550251326957945202315900747549334117703499184280567762596383840541806153755548353707185542377738858300529751597855667835095677314318683370218423161646360063909780745257774152429512297123185708132832815713424730225968571074313767119746842541336845951189615340772087782123351699259669002030363962602067824791112417547807845755527771244996380428049446315499423847283557840942676543423288910562396054799427160595616364389973934013427187307461275447869637966035150097411305853722154389481050743547633151087916733983083071712124998638108254008067564536933771497702400853414291979656032381404436115215696089373305857237870914088296407674735654148698198797145651699604832836521146725936553828997125438680847354452973333746012795062278698816811919385257821841354906781910240121806664768161682646107136103180285736441821046718427595738023272422740206089649745825345474888202054953038585650971660453343067074652789191444058531470115531083523859722243644037335070193346968127530216671509257356470232420096421203061773608906618005422346153491259971125906767350827405348067644306172424541272733525325460005147710661866746642577661238388119065796173723487395844381913814710921921061894845829653817852543885096138259966637476961883345952422338497179241378149790642348003054575504804442961147262535987182745446951657105330280639917178816951717301918184016763559588203892451730139999710542301397509190063030010244079308668380559162792159227802355252513515909506365422242505215370237168852857960293718773886096648687024511941115138911928151515231357780131253592187610639999097877652886534225722211867046830812955610508470961201329182855230329461078246232047237962039216570467022917141606977593583439339194028731604169522426868577585183193433629575067136879343122910658548186269098271386961610070704238494917577778247479580979732688089963687344935648182408615808033892569015500358762583615746223263562179722687011614405188217186535492619405160488133236429260443780893971802250298164800097648801732343887247061387719864931027316464642028240852085884280547201422570006637701160590358503876758703738017673261214536845611079476556916654448804937155473214746178648759037777963445969296928513580946777126980282257197887051187353236859058443405283434871061272553779435382838738869213615863273397140425409161215884084315153366197057729307633275168639280679048056471474429844382177277041892589412556956517478920373362141533023202353017492122137657012938188212326870825078283054253211047662750571566639847232781597532883406544240518528154677332874217598841254464858976906225247040468022529770255966200616184636520171393167522854067926168548072268004488624140736874474136432305567565616526177603039218797939885552396737605171888128808517385767477084467711057410242476357276576979614698068127303599072122164266467516872082467514253579469928667692391661728841034940896236428892782560753537496272432830888750528126579660085769764142606399591179064633109601840229745713214956797965585990480012476453808617397187891048223782438982404982990699539395932333025076663069933046349004411225202953266224292192269288860315533656617675935027179125797370495121949107190029807203413023911134582109707824554291432870417180232330491274906063634735985581344731378508774869418359291940135651825015025370270967662361482996317952258278611436421004474585311588713359063306533059834992787766657613017332355270002218339140198860662533638289881146972851043767579857662619809008278402416605806037632657697388243566006708445895923715091622938556474724010220766385838600168062918812603942413808596142368286831000336613294690617919915391191338193089288311530410608631133965516906899085367035137604838804497563526505667252628201977954842742557757856381166774420050663834441397479384438804238887892108677341527152224099796275934861817055911537553815579161198186565473871708502416484103326176068412590985364284796519755495253444325439661181186844376547038238760003642382507647625797574416748385804001571472058807601767755498577533807761073969372283645569771449628590000727340499082250619136815379474321339145531467431658987610458270864069496584195012665518674571253030433702269321422900808047495541314938975196796235472238775883973212808623621292184390174400480347787053888869910238696774503912820378189893074013798195773756015832536714977649835618667915741979507213783268907080648766282551673462849639244595705901605208868046607529212534552925074170936197597247262892216016088419164310439560898692506575947958996615665454086578446373199369442220800907842044975570649795832493604849454640939917017365992132502478995904808833766119814051329048578852048666993972767749619437406410116575002896564431553249544699616798829732310802896859060870284961733632291291441594081726728806103224063982790166492779866728056006723247065935053621316670898948957112383413363027680921982145932367847736144939597622218578324398801662213298473554041578741232402806851966346432195190389064569957224355016689970311394664566110738240147657157832742688490548805806583353208281331512939220463758339938570955146743563510694630899634772010397187560233773552357220554365906552624056484731145779218554043720763225515158371360491764756589136856937636604302799832410206958143031401606102753436352984061400572044298154800563890222861775055525131671768612818300989307498696234723200382106082981167329023084750620596064915587896409703195673571666840477812667588828403525761778760506140485402255436027926807469007451897852934921874755413533949023809517003743313701463526160108341126162392316014008266925418472351720901814484502329971500676971717889563067285982232741610255795257188836459757337665986708413846757657908421314808186338634458660383301619901630529499711554069206516964074543608000266127545268739845488020360417381771585974027711287415417089648515623555755774642597628405649291557552462420247807704765094986850019764547227300280979507039564347705245025978676100758487021114112973494399827678637751457292959891697529106415158976107985011284109616025027048827947050832522702481675591157603720853592930144289370442675887993307378835828095638985400086173681170640113342835316929816091281131490735230375032190056970058853169957822297622398224987254125474029655168134232611643213644535759475924425274104772637062366544311200266136887529531250001377528304648581560308044289488092416153515569180453199403393466422706735197143251609144908466290148042176870300045760686196834318195965113647320849263765658902229449175846234469947439695651760765120185107303950012611762099889180690710684299038966275960783406549351353271819218463166777605931975429197749632986780632887840739349809558143531523507734184537447929271835113646399960953476745794977937809364198040435983954371693584667633860743705064537908411271129639275168759568906914417384261465408094672414098790007030782042078191558797266603484539346962967477481164861012312543080519991413473954587388189748884393787386695350156584128194128373521488966083009562372172803652753275008412262010917328027147669379019978461587423467055704120036203855052390818254112039682495603161687959650792752952378261581892391198880129935468513898481021191043197159137122091812369216047543935394131132782165541060583467186618374394389277738647139864606662014783087393850457100382750642958643574298187075958560978977269178132394270012337372636762134740288417274151254078478534062380771613011149202308114296700794752788642162583517888511099155282934932937988696526335937358080535738225805592730343600518525567638399311589533064000278572614141787418597368676666728862521494776028944035385326620394773240463815925095146829141489377041359569281013370701152425019987086202582071572532343839684032845347038536524833995669566259005490104583712721085869512285043889880394187894994235161837453726465980084870575838297732381082408961418971314337429012008733876867659695192445226722061735061871715493272591715047964938152997768212757143017293713481573413412556298182574820553381035529865727172623413655298696965950584352635172653309371240813026232396200302809616929387717989047788556514297449705350317803649776263295581693379238354578509221389626107238626319509568825618554656414018753480010169442972202787882036090468605312301919536085855388433529049262129802624536242699546541442788917681768807139080877066419551312590765286020557657103189046694114742313887402982066268196941768901039361235604642615363790417032014135952098754347593101002871983350991304856727316432874226925406212684457600672225157864327497705929408413190079759659129158367186110889311832529403960031143577450789919212203900696051713968949375105939686336555199534986134201546285903354307851600598065909993724762672852472180745261844142665589116259660988083232087806117510550431873190904351438623191955052733858884777844442016923794998413904542338462847204513985282627402795110856438358507736978939626274339667355972647863872673477693419186495511500145771911606063412097289039473005685478768511121439080416269079318636289141372920215259916334067554499164077536445108016013780182025052615285453168445951464023597405912365786985204478709933326318106662147228970085418649831763110915977149226369794413515079495905249944188527922572996910629934344755355848759167776942251788441054619341715695844218395932201084178724915134662509473300540418500569714105387386905613542555033090906368276506964361316739508443090006317583500973389562871129058456412500324737525411750721550658736227418103695762400730101073469250561494186242039862834020618268775663588763567018863628761270387654799364205719387639697483847321551376156940361376418951898874537709062042893998686544558929975992052027695244409445550060774558620079523483496865710617613853670958664483512774478326864322556299185797352444076601232785680863606960112617152337346198615183980203302213669761912016287658025177669142564973415264189336819767573158232076836135251841020388746916057153868663448229720976300266791745293066650812009877694356690194924988613895894463756210589097655328216857779696047655598544247407769103216396161140438486262758793534463765312927992917587924083529503093074328063472666810820745817531986554604685926417780976887830945612614274680752060795295072100813608755163352154246388764123205196893040500912560355653156176871667878550848475978993168324680896214010147594512661662377035277348701055353596089219525598858037041372828199085102189062153393455065562950830563183722292668442488943397255043396924772260297013502603182614446032442071893375334827092665604995469238301368657104041161790632299680898758039472556368825321877408037142110351023697636028534027716683424314806640932128715414077159449699122572305578744624303017411154441049291143521047645814593867644407275267920217590669441202842235903640599828656942849375309338429768161736080492139762202796798561017628701947433133281121339623595407363080059375153763096099935195692888179097286963309696469842947198217161722414512065541479321785783504515382437598186055272557298323095306389228618425325600626059106950558560629284981287081187682893433989808612936919536494809825947971420991947195045848608477714908563062737011401776988933837911016295767581079417583171665072770132990001276885359903028663803449303730921111727150202958034657285220103339335739997185250475342521360880468025034120146979464830570177329073474932913138262985998530746837193974696912456927666720103016476650126293067518666724989489681551849031610671166969664869860325241055342985229099862952140630862552999794603027895409740653261066713626903081305113377739255489777921980318300856101391172304810203043718065605215016319411637115111668816559596176045596684767723147999318434456947263748406381742101698586547819792646588112154795022781677033455357397834603670775778848330205143459627625286789543138264546359110473400030958573316517847023673912766320730609827006893191745646176158513074904631976680920246783999403344207123009396450084885654824485112836622718955809831138026232128218809757942704672659681086721926087399509656311363410633736068447297706625191077391448416291923883235830411356335263029322504603489146721105054632040367360175008242422080074872808428471060685332681346836072743009934961488050941414169622689608500447840124970763506524639433604566471784271352545599832394935863018186990193282318131472807553637071257787662039959668113787011647198881981517765251298680284167086575084779936124468133562177516228394341702788088691131957675969198729062225935958866246581940395792764021359403712083089523774641866273402542523332024815486613400205342139393212051007213769799848471618563492801942589749677919204780542682013176905397088651762014810240972023046791819984860836055050270854943407817323884350254130563867131568239347889438624634042909697710079117447790224519512911466351327985127232037988095694703617551271684954593812912517791848043102208216816913209910729882374176182264143274443079604663104763215633259359962235567193850673416976107819112424412196173432525564344628224362695471260663178638798608503244458303108983590382834173585160205105749179237388403317462556972365775257601514786542926873916112289057477674951727790999757216290034626959827146107653576147140833634371315823049773127726349908013709891395350093013256951260377216417254685597832856512262597342513949735372705784042014333968601292524193536398997708244099813035489867042596660812695893565418650736226139228589620789025490594828107627597986333747752081829440673773949854162995421859436360241703919037185373054649524100810530329370585778611995211205622971165667776178724572348731904697215351325547675724407825453724671197227064802631784429524503990068785144038725853828539876139029183219394834692160137943171485547981118826063911550116975214745844068760363400156455451484939788479782337267278681955889104700602225168435149654338721183033520716111431703023391692976736877956124936909621751918314104607401624277615565187147674013958500360978393862991637844612372267820441687805719631794622325644092436920564231090626837635660185535787302426416140276615525073207823914109465031506880408251076490602357936097709146258926914536545073537271437112959319214626462712191868966216347522579447615855247154208531978892979040605751547488951481285629176962379509468046132210325828577623764282904815870452823144179477929729232288207966251447830922417813052333599047323009040192554681615717173518803211214390850984539390311891507082142681144034520177600915025822848238620696195307636765793558000070677318425556325172467369861551978561284635053576685984498570627803949789926199467961140039403698012773085665754929744235660802301290227807232317990522247506790640881860012132082865437169350992193990287952346685310560825755828896194975819709973321129830433813367940317425073590409993280643406913051216393081357573432040183049298319529884602468348485829750403878779929365668586727441567998956682683599818072103099219025013572668774423743969474891919259789010659812252889384997020707856101233341227395236147515025446056437692980944169260051009220029376710543775972574611114155020822725064748713453942881189182412988157447388351031608819999274257883058091447020442133862895784609532795355421305488993750316080598299854497568896978431551128493146881109031631004937017170313599891251179579530492211209315997303168468492114053537132603893165073969740790538684230606403276037555109572384472362040343572985417412572545289596548585099888095533588674925497836856761407303940320636629291559296181723111840890086492225622012643867573994694607228610490446015060158718526164817934437502262170307092348406615719210864602160391676503716556179376236992859765648201150992159868560907797934134540133775942967664151860558439010548601658408574819832225716320658884029310149230510591546442063218971417773398100228369483677621570117588148391520514902307457982248488946055016683298617504633499094782947709659149091931052838422068544852486364531524525268163998251006571949469901642278092162118093973425671508431644313799389635201978782537032476316001254624520355018652671158735307219277755982305040740128452772564377339226726607307474957439648676187737106497982998918728455469436831690166170918900333876821980556147088746989686776403098043454805323362220097320425816428860960414478798422685657347378900765084749467453251836740153610137945870701778667717025881790234111041166613191669477180750117286623379906233899986842013996950686601495629032136153721894265875838765402243967240662224550452362368762750015290463364579244288954496405808154277209513574724254875029898405947366429541344340592235377623245492215671503736213313838417807753305664029493289482648291168000512682910059599894888473232240458747022123509124565181343305610270971516098678606988655216041402523198550514825464756018197342968458248395805174818305997331434099493065609426033235728548349652197744193985948475708990486524218427651601070548098121626317646772501257799494711106480167974730285516007703088408946740787462045276127995749448639939771549647496592379204108012120852517698985590593233500441220505710987578208472272158713920594179413871367295439362826488897256641147964064354664108492284107288950957340709819238597161069213680334538491329714795541167643044563162413979524265454555687479740013382603560549043922616058551452823854946370401709789456501973661513380363130900386851562439100433282095114298389154531685693321639670649521298329432892116850156310503030678667103555892895300404278444365130744503771178372093439097117184017314352885653359910113443069963270663476738484755138168967748775361411897925680312354411550093644048800351414687708437875541123722755621094673570903000162092465819110375604313843353715983447373323515562537066830599151332621062704539415295007134694018786500746683134379503695418862260587826295226697523236135401203211212121049375360110953184643834423495189635067991363014500549933830185256755279758685116235995294701852944242829787987458985597250536663704250782324516018060281908681922388623652289577302169481765625449762604935775641130404644862081861113413363026008634934098266568186006754503271844998453925061550462377764501743140491196657592570407055278052275305467490339926011772017825325422471024964549315988181494704845495233679751827526434783048723561163243570695989080261806474706206211928422792277852191456555961893960671392678400527526027780891925633907632720201072622701691267328499421793735233052932220329826522670447981779082440483833078435566513612585574716019113246440739678898396187241289961766416148706947649290879180747563388057178081916337563666990380333148627900720456567739273587944579646623701412908845089580624571229413024182300562953314104030923542296686281936225399730421279604865666690345669771906748122459098374595080157345983740872745148290265123460981122698700656650044780377046581457373362966322322511746881220206468491451608371234735782671753342527402952471625661323191743303941078652913346955740795379136949552604746247299644332420364802763477727542734456085189336817553019368059113874966738491507929230275692706853934572506468144489082321981235729601498346412365993723805474323824246611979219862033470477736157836022909109180134831716654570023605497223250187479250972202718969033829366755462289853967851257985167713571822851743350967806183653018295301200464432884251973399771463688191665253734035295894268224526883667067363210909291204193269255264036753547970209888775176363290212911318639086949922774747922974429028801078049345163849721009714599351074335375294239688373837794023923301997641779927838052377659837345244203251464526370158028474685884126747076115869212113346971681580210157092005084557898063583139607129364625630541372343951993250207773214653676203236911319378899582960271336809444306272705924992480029801378532376427803168932682233536520732142017112460112970102390161858171170383305023611182390286422451245185344911949950184507443650976284895387924275460766672075662735310624450633934315322667285080528104329786532340020292491589316879231428244119411833680199469308881344530597241359653220135215648534323394364167169817130677587219296390220446732331159457713802805348849135058090528843436848169099073365574578440310114883896557517302291862472145650781234003084929900072126575540074556420925481582205139797843916319703555760802938027261622371480668739631276818588206612513178476102744163623939650771480957174682267957118616179489424057257926638983757682854250672626717716468095257835941434274497356459423332471371008204724111679838227857389479731221879524150370395922190686420639795692412517340963580959269793807291779739543136776741688240717805109212325226079900896080791624675393984705910746368499996376420924661518942178651780383203202167393715860179317207145023558170095504589960319144748775084706157314418252052262013273151417177269136155025384436846232821546312110664094009613955458679845790283021135894780046019613375720037033843066744957033665131014413553807699585710702900699939211175940720849413650943037301242918936222431394363362977418388021920274576182974965996082762400046665029829444153187133635601484833327876161638049409866234624056542400565332968681665981124533673248638186030414002634268847495297903287491756778967639766650210756035707518678125896704884488313005569658812932216418516534801490884613167739293500129677081197980470295122796347020634411631576641488010887356319097940459460076589857204167663820175170363921586065750008021917929971352908104418257476200094537157843583789378852867504605539990533437073300443703122068136476575913339817071174455734744879619482354128960397560437590660542230150659340616382701545959732312986633086507245028727539193415797030954045772995208015026214029711221425873068089880849191624204047446680184334992314253425033028702197424721383730525511931481511990236343185096906605892354064685492280613000741089486154693241177459336861137395462244294306085347150352947839399243694655441489454379490484240982382403801119164490989013832877606485816535028105405552507000871575457019263047934769022202422416895581319506700159678206137466474610414787863594445159483884878448004021151896847519003456922297660794103676147642194479412603447114656106629493512595747008255341927317707627062285738840754429536012745809641857202944971952870493868141245614580647845969469782039046814307491630139238303624726869840113480494398704191575285411076975711220431417661936361860690221655624605950508633572039017686696420991507541117286441391727402174428818142088668714812940737106108449560597633184308825076011579352602379564981291668025081434494035703409186291835962149403720363999706300200588895711858895575744463674700183193990141250461602831207311680551020030731232713907898289175642096819589831928635435018128910332973517344780881444526974625937701706422261985439522302542754144040544235320611777494522335217555322778239480162627347804003802639657212366880912041194736621855917021876432403881580555268558687240903231820545047481695228371316414053187079528255426518914909896287891586762276942749970655792244948986193391010111770102677227406868668059975031878009438337999475880910169636748569020743860348830955411298254979876650744222741269720197795373324173337970146318429599918121462937045221435486653021577723933907092448965299413155294179282861140626734578725799797372966620014163827625387580605273494496536986311736469652738339771969301190595301691075087646315719020468760422337556477810923044035697804317881408578005975606784710105549194686995823512947306965357039280459839449252305935994840448065005034451519647571909326904813420227088412348250071321613660054994954049526762499622161990592387930733056767918094029545188271248647260124877169143654769734433525738848915891025574239796912627210242885950960826808362422381207068425654903992728672997466317870610781127050920633948041541206527806591090140123979843761865323138337373997919681385587773749046501146206621906596573010757051487667024975198552577255373410383887672885686815747260099079212951861888904120529102837028298515429162413600269616565264743717919639202787899549046998724695086233785879738889620604331290037174307244198227722547386053069323814755109784257410801913993298979294386079687334038573020299041614658713742766045540602283721054008463498102759627840864163976406557503320098533150269361228071116728311907192187275679400035300553515182260194082585764078684352931542898338554733567708128450291954743283518702664417823052208616481043882354711759037444863754809051160898445203326629997556486256131486990360731281410105584956016537727477111077053355960534943662992612617205523416670961504850664541577110345160295366940740399973377244893153539958883140911458074111683340596939943420677231870900680993436657148555662441014722665604625711180514678188852611114098572613408711943542330044120066952434724592315970855702805844519520733108919714290606400085726170926160018147321622948147453192345026019822526341240746438819747987273682745536949848959332043710541933915406840149492682219685813031658280502170360738757556527734060402468434399277912279249114855804178967629167154613414551340483569249353961971317501927849676701994100390576101655555390649791474636573746147871827509934237665817516851345586434665440946723209691209497150108707342417229325742673344868673875887739954356659044291235054990757676087507894261885513808280835776525852088065344774576761684840245264331625047457642017265789349090929312797466766038888922222178228088528600550360484291999800707197683092472243406545373128838154829758511894307190503691551209476081611597513302339822114767075844785687854722900610327372560061959680563840200832438501392815119721045471906016222775507244335964138252133892639342651091840453194721618915226732861347664775209239528056354792910601970708535358222454402685773510136501508828720003745020640569504725828218980768545377307904966918146083684104961965653573016597094453456841743896719288874546895012054885492809965735540452697633790014176564641908986324207001363660972494609437823840482982192587710542205414080197467176967707243921565633595176216922862354081806252978112184376520330992659229098780715883456661403861563384545390997522639122420756358596303532117731985083448812919730650690727986486496294338771931551222756477465830195971508033663489305353689510545319336903220057309655945945730116825932263736133520380836272438439776519526848004838302306399255314516127436769264980016089149464270284514579487064044906041103541751577448766977413772309541450467828190866993470748551446529296888714398642826492308377996659728606119989309126767638238130884578879964432568478549599374149703507293651979246961858334591248714761015441358786388161168101277727519251305874640854359762436927953916104749995843636460119670628678094413842474837486705617828837119349197008556863208113430152885426182599184318253737060730167437966075394548098573385888408176535937631309845907184812305000514106359554019307839601631493580362713640042420930941004508870892878144742855115446395301848708540423709741837631507808876905720882530790583238687460692823530726168887849600601970578341117046380973531183452025945071684393581413107415460462348702061865405308170844439171974769184384656934653585774297651560460023929184091286736759114724998901812745706015799791860001612321646965214155073624978250686438301490376387030265667690696603416591716437271471480907090363771515602754831252662730469054724724465279501106857696993308836552824975888427306462821523148388203891749091430562180939549383608273093044545593365561347840201971399496390156428925526206197415211950192469245126155292615699859745529817207753692370327294456467113078442301587521856317692983367937202663105960170269395749899977954646079074841167759305458796558024167189178300191774656490161669080782044407331332898491016609009666633657690212471049416670544452086170350785726149986876345557050851331010919870930696339121921793085233697061099117603015614575437704068207227746856690145440944122141300693480226740223347477652027767196680656232684589236218255885719628739457482603154894366612824059977057387343343125030913419622487561307158522907784074796098657916779487595711511439060999396327864284243523180180216509064351873506891633055854744263843112015495990177540906950791734700469914077585250165857263729969087409618172427749263671831617268824914911776404051216107778541057030180232621723758545922775248612815151459055883520513534011638608340364245792226999059313852290280123878019428377331308824245835839302981750851296979422442456494446932477824724750998398238360776855774622879168418630522230078688673077207733015892253885265531140762559801406185223873970109267992684637815604793389608024200248944957931995837478234711217105532248496884551886619981149318225383584330392978301684194089127615173636181896329934576077553186674523663128450531422324263285286727996048050551337584968366579971120618798471372216266635303889754545022092386726455200131165751694673927309924062411852177238415472492809268991281061293044247305540277068092741299025548878716703483195480491328705685466764207334645506449944283177936032139042635100620245993424736882723257331061193360071486314518450086715387203064767427004522422611254079190091477922068336739764610391107516941290086474569068906194772866537912706211114410866477146971115019537047578637203675778247824123977589229083891999217083790853591998561081233046247984294832317953386015147187239635936460363101660925070631181935768709401795069446521463836954851997985348443273034415817078984091037315228373774216585227699742136562945040158420773131456455943699081005692048009609811329230398524441331998693743360238715717367370795900763191446715418235660718561227868136445058102458819388710057253094416851188747260444679868970174970887402104804385101437604110041568440928847058628097680296390537328730611978099333383129533775944300382318637650440778560840146389332163395303216549979051822995004161158797131437926684668174858507651643540978045782597574791325856724014720477660672427965290735498140489353350991873297007622764806466295450210825495238609799664521763717921448099706788354146332251419949794912429580665218197785465482690931966436220209111676466842821808261758324341315231036163823897368142793119832763579997621041721440167611687726263373931026197153158288781839610971904862002318096040232582452961894061553762112684344185887691687959558786133711099552461511774836645388698205835670010983271295540055509084865060962651819417540115936912273768636241780888618048430526281776060399698053058331279838581768603680840522162309458943764681431413605766333837282601533118576835546701890813256641755021528263718807828132108085044799833856614533370739368524434017014003151716048989682145553122997706054627602269996548313760120246032163412642739008410272829678185737006953998920325012584172862081333698347690129497414506970563709211793814777607146620976938414814108852628441832421801071748585469968122611655911603629316802876233410081987979449330005778367204731653441670540858242144109907624589960175754925557917566238599805646109855567406188864653778698163121830627244774432642175028722886799872772473005657307741947853631219551595780249992065096328059806532415918108012124375527451521303344075651550866954732569581050329469602948919221855257543507169240999624739931897387435303385161379061115473528846168517618594146103482346590066754386187346724604098939989875939793557212965450108691428071883454790320373456251604902841940255348926993861142626720601847027348414016030506091313654160071246739737496886770313639285561931939726508892024000326940696952716769157106801285755739215958108031051352450281946578635749983484369366522752640904451887186121449448392782843684918362840879571342156938338419880375309972035455643814894281923743452198387449818913780005922616945071267305962577512518773860775001673873663163468638249809697337803130676690999888142221296224561368183785082575435149568443745266121747072119053622479002710491059438142017321420485354708473064723080498442570558939333091619501400538121902406232668579934710678627531871560175144136034948748051688881822388448663446818588190716717703944730942832601503627148253409871324349468499443774871846604903391669696909616287318436137675763215529881681090786957989968574961390839195052602594969810192184871990319741332452175040425140944144585204360817503003475800197168140871244902539042181957936830307863072133942689719122164193622624767779965269754512930398903013070980849127826370381219209779960464451065108219299264850589573572404345094504372429572338948154009073943076209484155019031151900850152974836721541792662994665982124711579833214733468796539116196041494917311870245773325675683248651786972778523079929228122966250963294438235758599606432577296588421383937165104070549064444321739213322232433979557496343408855489200109569980242609257789920621006594638239153165908570639332612588996083620396021134684230053980525772172545262721408947014291004439096236464757685304716395981530021273925142280071936557427513380348670559615333581635389142927287126355043812063494483777866423655633540003025691094990054644133048732200971746399451545280090923629114277584100751179229361399156386392248430868066307806962998680409875956737223146605952199560169228325956445423682108533553696042013788900786508861713681037333357949394420774783158711540011513320573179280508001123565699988524964552064407072644672135149627941631525555475374695415158466453756276889621509164905626715084099110932033170419652848394506924313113768422992894388160422383375652318035595438435815730842009035282187150476338286488063063078245239806388040775721456144499396242278321379237854607130153794764162826165532693319095708073192752678615786015063928164995189809479865151467203859215555741964709488594112095580645874624387341867323022701791756823968681593378961467282979603005484183286936771365799205096806456782913262747864813834115166857256654359754131081140895613600346378921957975458827928578720459520034602285626141584584710848969766383619534834462648505132269784862633114451571893511087341757872370482517390247652548558892231752997989036646240083770010035850296957991127935505626364770540322194529641684148713492188173486957285259015231036031191857073869560851982857942298381589889436219709143902419537107052708286002538219195679059158796322747759067659958184345410512760644139190185914238099175243315604461273803818962867522365613585841342587960122129252206635987298756798810383051171697227312706520348068324735442329005819349653713970132665198842771731985920706932896551267201072799001842152377186167013443193730167207758421282609154428141280620877777263971386850881916844578370827139648779323651960179851732620682347420678114637019767970563394474737736562367922566545034427536178877781988958627336621725114830544787274165448342396594858464273477700778488541570829904936069364480136783741292249514840228123394714234466983716965339125747765294805245370887299686148730806505548882954496494546950127565953031625609575957424637028878555203598592016307401548489005108692256173212100133524885129096505162365945232514508827491555024155813219942556954248205250044700181820870123480772691844015687619212665011603715135574951426805435105067291972000995182873593394795868479394617297542673710917516064773717333147647376969249185654583317999371748026526902101134484464777201777843044976592331367445537770056640727262847275744906084960569194044995361647209290748014259642553777342934602756072303818501166230615841522003780221701856009090312534912423427173336055822008219826326632338763978383847275510379564882608779287528841478734375400531648914466167699910192314397451518971014077059705009070890556550698361977962350573437083944171908498256136572559455922644962873371692444742399772825797936829340234676324600560947136847371523890050656439556485967949287159583244721333777432076484528583190027021780990757655242919714690746725292502944170980593805375753397781619182018023673696883992128514843328317951499792711886331456531751571123119296456030266251172440387585265607500975298871965500431922236327310548053261318654934075963900764279570677496501990796756508496530860159100163589138561664075179377027820411319915978609998804989895445636882048736435413052529813285794798729569057694387249038252707930504436266572009407503135991948831621817716219466214457072875323226510560396376374557855661288076706877999481985200168784633604174201139679009778189763499753659442424775571569791694839986698035308569150875231766249506570347808971102592557882750508518518752131557306569842250582342910856982728146771836430473248840366850514713392392656545288518043246623232547628519447197797042214210019320989884552270539193424339707844949759394278573060134233837289434276006053581494781358067444407550500409051450693971334674738963368583384264712165192078300664772815465390300310400710744214122266173708252990515473605758090491964321683610602700822160521761788016730238024319077881121506453743004141781189168863909944925328527591841741345704080162591546808501094914529650039713314799383028623212275493496732244018747007181647226133757291412331800392972656301094291828032564250268890269873586388418470438190725565892403492214589459365943945242363692304710612962011477285430434365303905647922939659348438080074647036644156473926659673823783063123344047368043905554159430404557614549691173728165057320718791120521790210361878080767149489797843800966645445362394551119997901719304353538190483411692741200195374444856191854528976908009969483320975619597398445367306363004999016092090390289485566617676171966404962115948098616182963186646870768618152558015381954667537738210421474700284419882086441315817531649367818893683248472096947186802495979674250499192402123529374662542213298298161240173915737377579043211343912329025659648109942104304263885005170070123358409780021302315313004148979774090480644484820785544836484300128085090419502858728623694314292897479508037619531947830309421867908281950085352309169299841651700777149536660066131678050376573019615403278546826973914722196253884351358220891312245170285433952308948041403915859487460088804747898628461415932205541394792154908965343757435452620388003530861153174019313683714396136055842601343436156708017362379106321630586009564528416063496077192318890845945425742697118970052053598830747645985563941150884820638959867878575302026226599781332140220803243289694927697774615147365406358223989682915962971510974323800695908274792260558495585359855776480996023337056975965752123756491406461317454757408582998570874611287631149271095833437125589658542680490346341754389041011858212671039349730814773781319500941843311211335447872007252372699896474720278889469613401092482339976721685256336721760437635495458365958276650622741293298597273655397300327320957771787360974686234265262966981696191536157166981687487420644170949200416061254649495127808751723805663066631130317724145683713552431509669616686458213929339669145370419139145329328788897655284062407527020842699399992296213884267328072776911157244746949730921383487112570745840429918849943327787419071320354357511776895090382745649494657736999225747348881934978513952468433534319759989828213904981969665719711356758610753556785656894288774978477645169724821696191646470160854976836264671601473870962064826919051619599479881783103079118368399607348857284378803263207707121043397883917205026970625557514083824424617264561434158434226988285017374494761806066479334050674489894730353454249728167615256993669709694614359211914306234618284676032412535332351756390238428929716597302274035164108844657976127316652870680842650245270027641863968524565753603548303454609680366790741664800452239356427332032684465037959289611447862588885016732492241003793732074478143518405016715784272431932017186683746357868839788339917446834240592005948491816789676895841933384059966286320265105915293783506908873980579207540422446192276929490191787850079833694716826073805299764364150203447441306378913749800748183682357609616431480074506256631017600344660333505952843705725877181511283892447916758549997063135821929476375053153252694315123433136804685097283697355792684208998337415457505880204794079529231193868902915555815337429103475153668561569875616721851329498349601070350274617842989557107057624572248507930742929745553172705547585753178883001380605474671878038162642228656337698510528570827178773067289656394192136003321821752275004418877638525023288381686712741434553539391857550639329010260203471104085106863462213473750133252902829609600844643945436041358066595156002606256508280396279224970514635752195460894314263091455940557671759827935575293189016394293578486502857427083344408861825448140691486488418463506432544901258298913219954458126568158402524388373581704280215040765998696045010467804236365433231913561291852309591848426801897158418428897009700116935250917299841253911307354508435642290033068519383517151310100883678852555635615159627332321191571393756468118055111560361789479758396843611157674688466380532463018596020590325616761755369012603665000721025555923012522644105553022248664819826292302932887085208024703848837918228896448011985194175749326086322873130886568979918212880884972875507582605112785115669233223296669684731301741920132344368677108815531341789346448232843177043154115034412405546155569252000776188260863794325995393830049442954775188051843735457768775851695428718874334696455209970742255291461022610783811738173771188780333312885612055282664094252076214784593603280407808181567292333035128691491034468623506039717103103837636556294961123928462074954374293008760381113823148156939945128843871751479663680604120879833428327930049004023280979280504754758538748514810361588789482329265748728071849256170268684787357725951928906109900253670784453160088384755215487608963161347595922412309173476504091075304643038483801728001027745077814162344810134384508891388079944327835750170720069830521146437992869729142194998024650495154856226456140128802596751719108225681256488292557510806091520858964482003792181643444412830750405267682727980836718163326330271402121720991647083045952071189894690491255258608710672054905250602994638102542367695948221108973620533900258826784896529421311690767969097365167491888408458482810573983263884923181946892167230304929400213312611298025317611414460122239116868074337588669666815868204559006767198110774550226522518492684809907608220146414227606481279285117263420080517533054978292258765701274659654372883179181178455016272864465445121835508185209142686217373453831183163264788356210595560215246077720110714488475645052562744429067981085030025766698997575576651653516605736437057165884776836590409337927472638623268093128561012573644007856694148320580836147624239077276574985029329930759091428064103139391438714470650662034080005489613635054722345449889565318864159742724119336498390114832612579507535667472346937991047327942119479217245342807870643277548149263177543987332477044635440008430275254009917912353654862027303370352908760734818523949466966179336536907709162989633140094357984146109773876335257096739891312382232656929223451052922849628301347777077386581830893087974421464914746297022851884831525646346345026431236509284055999248656749114276450475905943839275410910081885353853804747216471327381400891098758436685176814713173341286183571080794010220881498879503026241585099529592519114807952920955620182406114160127201550811267435971410956155455248776474996792468456401461614069710460114590998767805053120369641509098342336403939813987068200747704063877804517987372974024803464832574723480640647532294688774814602536470945123502924614397907764614484939192998267398573642308416211648008779982713670391990055319135959002913145066995201768136010023179537027163698876522361104685459380590427332305105428004017806279919783193658689068554317663704174617827099271535808747042130585021462347748192302616186229870277084812337061991107739968592114629955291315155523932055609642277518149759430787156657452060788351448187343824017947289131979495408826896760515067792020852489280796193959796145744945518096632995882359356280197477381591507164733288236432672617065541905500468026077535706579354273985279242498452259764556521781948535891825512603507804819093531180137889452802254470682751477803369679547909638410650417538529351876120345274530957354371274580256296267390264218167157041239940382546438348463621115825668856571988464644784007971344486791548754262567162331188730344733601017498141086166814337056754393980809849828732506834022705772112799248413381293623716048114108890181177863709214578387874957560133454853567860890513950110664376030355565974434463931861435915686163580334725773945928241422508027959136883926119483344865853426756863607282910698979413162900527555606187838625248168117886850234426513632079242592695541997352936146979123885923899187850795780468408927402830286941926671085865602644977043033442586777038000032472960387063054511737971736829072505482894251711592981580539949308330973836638677303081132190837437860928406205683924490762695340809363950967531501404437748330619564057949304761707094561680726977859498309988315551130304362428123669056079623638820118737025985553549617987074728811432772016286812996418270275312710870869283273175160092540025930643057203814820833960945105924551620565761881050792312535450993111105464763582099735073821104346158202636043625177575779007724907105769061838658072232844603724612278536801874622234692088485552467596216328290504710214731812929629820657237515055670915549007726088418842776768547784538511081331286161724718625585695471522573468993095710625426657767928697666326681433597700913249716337851073321563335019222944716196764317777279180686319963836892043551922951958349393128955799680001440661982183776465809404057760150615750359560145312120145916845537895931572833946382242986864674077887323344349758523225588910549064290204344154241413022466510031335226641777377717509563778980407880423079725264109659635150462736442663148341433203285854933385529966554097661454386093115017205936924634273275497781937731921721537191912862548613288874068467023705174354516827474227380261492080525960774072500230811232372629494251640836584224698929301871937994781317440509579795575057082401487420751978479387017858577975002879445086380717302843660363074010960957414864571516879242458440081795174438671038115604888919481975458501520346811036793075666331912901888495158846337540273186571624483583846837961011584747750625690392375944574541850059203094557384426798109472780716179590848061237514069214442742923122357787658182926513341466591216761895213800291436999464011204873142763303242279083014057253131111671562538753224249815979905260421594414691310927606504200397183127402405187910743241667456558296800437520717523590076340818080628598362303229002007275277194570614821216401992767241210887967879508757430100507943825672880057397166467446689831543308011098180105020928632632178265646320556597485658075934284135784235933665736549375865019769021965156801220818610723539592575201592638595073912851707826410218533337225079285418278886248055740520466333018992575732104560776234216595843344724061822966619348440937575192374655430651717163710465310309130519202777577291369271931047253230857703680589424980916099231520446694370363243290218546811761605648875759435525529716882354151435072597824881720843277588385654839882338423623517062717245606053145295787656919028255884061550804050802355855174175963368350658221793713815694479690156483568136589047896200987528255734950698602621536616986612776350681325998625217884029726036784482481203716432669484349940577656014300472706982420530402341440774043102596748077451555437371426326392394906429353860087742176148654580434173821122648049613787477711389221914919585910709575644944180993510140101517638512478794306873714267296718084886098966092939453679263070216082491099682316221891149320890657692145929365247600327440111236578963613444203836453128829724420357744115448625245085496144514917779669922353651340670646597777394268834011663072096743868112466724822185466016978311066004300536021448915940340198868372952825116450490447700148761564850242916187018822035127116973187415565829254140595656175345471276062081495934415440525787130718645049220054030933370905180084591462459275420201253717586996557994538436181249339474907352458637924602927933116582170518417796282268360979685386186670958483205726790787723795280450273643278788026910732278827503954257216990939823110252857471169812139258349784216650443269369995080082587313068788594321755404276219967457815056412394708235964843821799992815223751798696044644643263095002495889686443684017793078017345687422232650067375942299695816175076929470669939614114701587488351812328565006537504754727060660370405393647058717975323646100158751081892456563024117824807268989596047920228285224534933650890778684168101378336370397593389302845847255974698160009509367137409369596563858980131890090784730244022776550912119252908756172280264752368743410516279295531770160166887164391135220623432498294341871608628430416952312347067820152890844611717697148956227390722750396029618379795343550264560047740270821073174556397639530864418627683643589601492859273641200118899127470476838396385714704682377531602524394103413730206050322628825026601771455022945091278373130948094498490399097468882171615631211931057502147731155645930415136317484596060621301344642389653484108160795463109337667955051719433311625950554832523071629939860658544361595049864004767186908576927502982742940825929186303689789090629108410365009831430300390904982857302722411249508184004284415861602460131100189521943230326152975588521260431159160363831533523799388340651525201654056336420013890970817808717850700714582887012158297724207621175321523747113172589768500148703018872136789407196103964171500209091524835688513529533556563204096593722819320616637755143438526117410430513582478056673819531543005403508627394997812785970994247581496367177963408698744648210382778120881000732696814870635208868092588715564234110185698493494265573970292015365375495296893476738292831853543358528258379406002287583319274748581787244770009868128336934227175588707153928318643473464355225967982899808673231476577001619259134400041634921912395873355214692020911488336736086582834344634813807827507249747510271128474839027847259859680667296878083798480079445944359908060706033268645193951302091560381403461270447118707507003676948071345601920655119247213147043100288758342766693371417431516228393919524336555086804256208917581928182855186782847588346814775493116719480146805963681827902317567312514255979456343362044649322928187465265231028928898983883093501340439262144339040584670730912206122228284707670742188749235274360055836547923524839172647901551888291332952446001399428331036022508833779998749914074901838233297701064869625295464586292125683033947006292968821873265063497253403736228299366193322237133123843544025816830529680660839194782953232483881256062244811121824159956790628110730957014476051045162156309706020861038203934960376197217801833355464363339097908268185859655200810158230855888679707134228027308826758979428115362747090784680335662940501790675891294034917633597165240055725871392732292621628111153247829086048999349561464228945684713953632087364058957688540038614217900923448133443029074975143246290902594228017126714829680111709523740333672657403875523150756348430961400283763124008633503160403532147001068196727582191328329482568102155560734158443702351589006317320045695762350788700734103043973417782272946463612016858197012915835991789986231370278887523180143517868675532443019509488181880727435677554362410836661994173155702618607188356579894567896330036395282501032940167355581228572483240451609329274900015371222953546581065096755767650574280428792942411520251626626605091826856093298902469166819720634543034638706397233537770985498436427205243523853990794764235217617765480784240535132588038020895384729904784419122487876234500731103467460746310527909199023727771513423261957646311044969222218890592576714208167386987693324204835724553418404762813696235124433373347980677804736270871391643944503788248118663443642246672766162016087108215501284241220024481907472698809449346273711806623424273874572127526400117149491611968855138033442071142826139751764823305856275002754118952262237279397862726682621913931980752664751179035794394879839932338241747299604891528770457934674079082603506379724685239123352318526761094909113091104845232192477146014235707724340430726517832764343453446584349523768447177237556888735007332439842198862646313451836323783972714013452294594803722327743470960989378787303104745614513850491090475140600597940548611227386335595401737891257000444977512180942127038848601842738184529124649182455513399432197998693640887828615227177319793031805808003751128953654909743447784107355113208357145904757748679783200895200167203681441774151118322949375662634947122176215124889533433843663614091546030681084910437862186362457210486414927982817372291326937430158273355855717625643763807918813238381416502790109885115067998730844477790112966095393870417107830052086415141086784564369260746191315160525418601525665430145419953466711425672319588892247855462485576344129062329008932279417847280972839420760985452466183469607168418762926562750160020208250074345490068077237872129525888074786602531619708509762761726040325535137022178563917461859745617918766810622100749213117821733069517463208561683190313471151840236640760870947386616733667237976805970729220886321379316966553403678162974260524112466669039206795559971055584513655124555918372219359974372329281584639711933927398906413292629629471145062983165407536375536751052543786428149417879802365011253285419326185169531750601633727199457685032279962119466904935285682319714344463710515027857411220657059362983391602752214695334752720602639227422500010774155188121901664911048278008024790696645443225073277428948221882040046136889343227702936167784020695393188498608307956201974695873989821081667386210634806376375770664123628205896233397407556326876048679627074033367358250479103680646016109854846147287140895195775891542203896179803397059460697495195494806605630504291620299489107916981455605395946913677258536942164464807588903721685652775354447099945586880430227073784786311833030784844162920716437002109693785037979926424999674190242720655984936675846493941870828243624657970273431853678249445309133561015200126629028095229577734865915840553685293033982644669146861524497313001218392551891367311424716010872862860907381001251785566606326120031026215880090199951274529469989924343958923392895366542270751769802757778746606702741679007770700550722055452645852418844944244797203100664879420152606839071553830110800766010074110312721493553894804786962271962102404413887246082438008310956330197169733763240481207723819842158162376020877989988632729783274864241717563685289701719743376455028864356769639344921411398779723262834620542139589952506885377292673475202936105752965747989110574372281135959407070496658302871412784874147593514077940680332771187576701232534973447969050106342831419600519587180471394208827390805015210117748842997484914736764795411437930016626447844688990080141796978575309375812720418098392289618033894125703015833044747744144602908680679845365488559864170961644414495832583940161635515261116972413389544057508545238997766517717395924005551634735858327605824483804142666112273257757641310810118730975616735289120071783415922515311674193371943493124418899502735887223736902801604942038786409278505396265981705465680065479717003931676291936310996090226314786499121114188469756463568688809619177205386387437342323641247498309776589740240747214841035747884558679941260676053924835658487967650392803434546915561339554601376745593311780692736556796223599670961603790845808387430108359520896599403848647824958840937287282181393258098270506566673730571030995456362840965123641013982623259030955375458732085037085365554995880451011470706558089221591550074520173666288564570084651198980853425923881700555477663707599215962020090820583184235538586511609558836804558239319324306095035705434742374845319332865957255450400343242158313404507568245111855501436967035013943283994918225916739446864658505327257842277305755811000749729670281988602918494322651745416396051364601373442596816948677201024587381062078992333090152339785988762158286824631166656637953491738122722361878225114414325874359197268540303918132457065160191599555899307605712798880229112307210790781886861203005932908527144680804925150705033178953316856428744978286753558538189472990112776805805504820454742816799692159532252743033738197136704212185744687516696652354091667197246046242712672885064757048727134298314323026872967395600670233848490588264662607772892690831948345408538812863838303178749603172969670519507710396295283007301242115010401501099339356650572152322883795556759331335480757896720460436370501824581974337776304901996556600817470893690891901624649138118826496305172019777352867315814760550417497578274031752858982192953436295745804053326822363268573724693985822612543900392427816281013115721762691771982472123961473651201635455775264702662539135932911498284972108302277704411833133532951450001074842917196324841374215397506680311066435212868549970348534971692224826211653840391430056002467633239670837770491791641100234781725754874221191122777255683488070807786548147015329070827605260533442491153804955042644224425296001559182956922217229033342574286420671540042695492845660355008838647143498141400800966579145459308612348433310874459995631659298075726263238022364190040554047403085468271939470185180032414653246271098159147943257625456061513030785084283966164902610062777956908244307829319377105339698790962948705156385249062040343380570542702485504442022179545571643033814752715145782952972311913586850908177074059603715321972766430886942497677375892883085202549570786112319701867774101097283077014958125986476020685230774705042518967216483545726282510505892792784045889502059050340825270445174829411569015029652380273731728591551935010850630039194176178952703552372785648504724222888103057890464729577484458639915861490871800682629119229924343545522849440614914208271461527578159318206045800993536389173594859850143811474864072338565528240672841013443140162533337516139354388566288201217696742469272486733192088007184174009415117963129213009836618011189258810957093952738268060322529362575615862156554182561468232362887978290676920316030279290933119754844687393918907419135542791377739710685273797868551040764762680476442605790835496126151466339821602480095344031585143589620571054979665355281352780560459254973787228694571675696716055425991365078402693682066093463779899015593419807206633127639382948991444136623786764646894851175299404003722679671768271753184411940810441787011202611555504535098419216876449573969250740771934059397103073074315097057204728525108865822985280311954087184805991541906233275004389079071173258907170101858609707293182548433769856065838408120285198500556533159881506063274949668840692960435424097874152314502005480616931111887101326143979818972052199351530263754510912327016391060542003060116284883211775927390669358422702285815166928206042861002258781468168261596185384008163573109674169733534069301355739439098449632859074398183383828220561375015715075288198878774270680771470601559181973573973274714365131972031977170725035865850048143503036626854550327439171122284844011895345512478621569359431608017146772727664485285530572497158406411405339196117131050719946033623071108358007475512872934941793048083119677856703781912390828465799374349074065535155269395440149113332705254153935294633426518623024794920073754515093550343406564789412455682319096592549030986595245466479164272953130974881562059917093208619074450465427822291836314265386019464498478178379800668739959787935839105396285346716153335124694360619177513076324817004421579050800446327824791806456740847152432040942894535956760188186186257451187527368454238863168432365972429127111462854107758232109614133321177816034644634796583898587504629915880098759711096942681562008342067171499647329539742235634251586187964256697810046291013340274949380794641945205214064359864239042816955690339335218462717498046260946704168739758710303848890242619884604513041874824316448596384538834230775414702641481209599273003310114251096044098744143311805726623527125775485539606214943081970549351591218008428470842805117169668367240145230324512029780420045618655535095724089780936006929932977202127398943396320688341299744807944249511226145423115673069917860374975807054083271206673409813708733977521177621082256672280861287946057430061205987184398310531003110263518533290243452277910848651470686838411508182233717787773843256112151947237971433478450971767607987810152919158948014184855852106687204008898661948445880495642673046981239746844801351169725390433592532731331056712125651289719415275355629377791717472184016871700111119966208194694662391414826830456170641710935283492269046788221420711101893221979845215768703581656595361219914013151422089579805809830604900992076310837094661763227176168469069859404297165480132734471127775363547277750542870932544251835675912076895488672425574981990143934806013418818710633522044386495377751749472891450736780690301608197267562016849046722011482681051328394106038273902690422650856850934885489347508660356622836490526358617181768835751751841787926803428389364214706279462426291747042994920680830662087801914522015824991019966261138934931780173655142944930152599251109950526377591570134882558617701869757689128421232463565975257892102577305532549478779537963407592659559967716244073943364347734009283538035007834235237422535714864574887865900824943708210838408339216295170581105453678445539890647153837230078408642170692776245737620758817303544194498300606703581245996495153342491301055879053717218083779642761677577067299049456545133422473182499067351059995849394710541012680891290525330870724263652564630717785679676265222222782912050239167730635391937696669751995699369838147050294604530780384388259563584222958067223988868430895320252520827429486046495421584574534804391512606083663754471144768741142857640066015975889443501309978803987295613431014238472031494859754809673288746261439096270346724526634342366815684338068798564331304842628114852205159578977631121335070948310957046469596038067791027451586431303771742852796765124971185799877695615209155630160971024485203181694714949144495204510354134899692741219221142679985103249849583656412266080984318512284709246300385086434351503944952182299434625598282595225548485055543745117422623742902360801311695406838784041337946831352634007622330242202135830438093209207448807297224435403367096788935964111089388480973694986259479775435976850806971673419634196235900940798678823200749427324421142739087355073853669465769418401360220860846863716917704524806642820345343202677242282184343464504439796109062903737693925250302368884755953123804684769718010135655923339317604606226233685826238347376861414521174792989972098327494685635792755871448779423138950125954633937072281721321470988743108949625014775729499305610493027737848002270691596697526708037839481167054718438178428175614037353082059127354310224710442971569720259436969227215714449432401006456201574928390224399318079795376452566751839759821160768394643212142789736200820712183067353484691220476110665971492325466470317607174307574820431463247599033774998431757430244371386872787290167927372652832923718610805223718151143218561566014156468864142427988512692820282965860777546542308796404944449259823828481385196233179339604568064421531499183327588635358798905074751568939561570780856602991657367930779948315152661365165934692368433702189770042399249526310389504755607932864534335348167782251024373937583967469898265496815017569338847107259703604039782936752266808964282260304684539390567601445248760479811558824582931299997396094641870032505252009527176959325007318299765558522601629892157623396681981040902928287811188231059031811564493399660256864783389883931964799132601227819529410476921812800573501831903203956940424432793057365025543232563871425185499849056946090272627623181111102112567175339663206232603302120887299136981585864541568086093108431318225209630180902316820983160386240954908307407753488039955715090479961770160160429734828533745206862225281070654799320613252894242145648383223796536632246238286853600117022047617691504612095818655843576627164228354594194685821320355480952673086228136116637000239934258258362528809909787128301270814215518826700224519179648058145307351593337373409719074678165094652983162117366105615626392577449364621812738409611299218950622150627564970317870110642936630058948662958452007700277071210561661754067050481258456702800379330156148329361955804959093933208159206954910358173078761039311082738000066761740683785153251979622764385395584326904666152484124819768686353721354180489168306389853292578655571629228849530884133069273741167632964717428119584631420706590830029431414411332433919805880464736281107216738016935974478226829496083424663073306238554269726459594469133191127047903801364656231193338616766121374262386431817852454852188237495969409718778350100134992574707563472586647113199484234928405054548672052068124380098451461163345662438162231731092326935346665124210249983209585496165867180795941414112906545583157619290718341257754371394203465086271773643482434104403860127048208549464341468256446724659349665627231655227100154688498712796658718772502324469929335600816667756572266966100686596752977942782193327290508614728065962610876795706979432491900286175774845464970993306772885198947719679939554295537597901582679252769696650182475431217716112315207002201648924302487545265587608331769459337191533085044124360794931878124115609283601513596189055909554515931986307238377733085326826401530495017808249498410859376579546316104719113243119643423258917455428415986587444961328859249637587913591730208039198419787777637710422341522320253681786254814515571286728189502937316030844386018325747412033258463665497338449485099651855657413401399372876568746401452027132341780445750417695576530523800041888581379979212309699458666227110368502105694084451255476664044063372352111978916503497054796239831867175884236832439478320398882845244485750066553127261863346885967246270498595510645728030922882708807957666439588755929005219778138047879714133891774280296275025734487042454707206437567957804834589897690401501330121413632493264716849901581304143268094641555236650283484560295723417627671622007173215388620593646913009830727901600056388944368230273308559636939130259032359317672311899338053269126469963488943602481755874834694822865663093136368463810655468500726044121335433391582486092036854534520036840269902089577162849182093420132613483647111205944197076588075358794362367718449892131177024609907605619260183960436260058737058468978997713439204623259504723586093757488047705644048616490860265437258852197611831527931692636682391030098059611096254172548971517910526209269705288767642568256021824023517916700037728846501116179793033468360613265706470979637819290735328513446669386670131773624268247254476673636821879724958849996607336779358017333592862397948605739705606225176402743215500503036379396866824327530955790585452511395264860176043731121953965303296308386917715731769100050625358469867623894394842464710055253080171784906038821341606106772307782680560695508759101022403589392393563114055616287308295375947319642803812665958019808901952847618773050368782593480154636664490987564021604587156125592405413451612873092705183502800754273943637556727931707585551637896974497508376021373381291002036772935998973667352067426810431033917972789103904384959861905315243614101603668251439780707927799396815293703911836280840388107500444129810849360287488258001194928431980068953045849493567714636705711437809483814368580270661787612759396828322241744502706478939295420902623131028950477027941497956622797253277271334975463458174546087484005484343179622240527807115962697939413921654138654980628225536727258824498861513095603877533634474152031991881908664157038560006307982394814018176297402357782770116410728306341397768190472378262754903501222418586336124944840897141464062139339232811933387479958297215157736104645416801478382473951524378840908357734656471777451335079610953221294321081546781182360516327175802229474577807925368590664751584565510856651515260371674449826364144479880604619005309932436922262244412662308029464721812538264225524611346679454696369444107449021168504532748650095221738019292602559537358437558981038121300683435936862391387520975475550852356755103314492287079405386418255183952713712075891747967408630578319218061065157890513690805916817746681282722071458243665926632670344522837523445650609344079329604779937694041365826406344172672724773503954746008254519882107560479405572864643192363563516291695583564367237224079036514845000900163654265446390866667794688263297193793129648544137355729341335102488334081719517510517354695307582638455400198300365531504841823113209394123659428395134753557598664682178328982912636320017221496884957218609140929604764851420763333813500511652004189098012696751526163310875774692408595337844025714340696352523846676309245498712769850431416205313925689605416947487646798504105562154278207590024036915745856249557231320058242702594074889437949008520721775488758133829355999904814713997927591810708592060081943160565836899748682551013478451018898950487926259712232290612263346531906140369981745368672730173471403932344562916686855072967784723525991970296335502242789418471770124537143131892369348689958215752492033961990099097709050353986214244047182978021943466487726682762331060498459559901799938966995268620789091903509666105274725170157407568493576396027093623123826155719941961285131159880643049159210459293752089446169083729449154418234312977661374426292632772455484494264281276204584203821071378459959967050324290871094788726614105146424016497994152841277250664538525836533290002711098376624313993511629618209248341058955107105678186804039819191834630079936538165478887961876957596468422843665720359217595580311252990961251592104169797467218764595124616308927106246943802562296815486956942078106688016400335797486857599608943779216065990892827035049302482139375123004375050357553729706769369049955984094119712911883761025402462422539295124084296960781121651261738009079038469722402745775767642162148514749994972559114995334468850117089764718261119938262632249404474759663586521496127255441011601237748066259584354880073973799944269364549756945369132578915062213123763556511089239988222361835069375382681351169903941357200823755390447023910119426654745386365746053267336595855349768614508887504241152800583872918317713588444940106240022951976736002197193124276520395395054799027898025601729959045020986500819021630582807036226639695515385913749290744853913601118245774148189105200123006661327487357244723020040244164421467043989247350835567927650828398123958929958645211712239391020941090348651295412823355750789488711253913983524804782302736660363143295317385908318420691915764171201968033873425314210179420036634587438424476376675511171125360143667717334020000640344218790315069801456967965720460261169258546643489716272731328730557190727534836905742644087053675651176301900002979485948682187609705629010757517816234630518551847034759621906741302228497274489092007687486092992574451341697225376031034482232971077046888675561479003695172022868909519724480315641529565918462460277208944860200609781618689894499037116386464551189991133438926300823360602155685860368823534635737760986618359888876959423207587459131958432780094184892684759994111236500385652678405419376446853110587070188521660197175329548245192902060694900253330492994767959970797949453379756128923556374606061825108851325872893879175309465415115208830511661800616304659976829729142158276979586742972270773846518065735022613830264891452783644696122358679941092743952318046925114794579987064775457875180892061717840174970322920786045446028245381185960216926035063711789753693464045056894725578973444272638573478703993126827001920073140489063090869856848152858453095134985267858217409111164638740445911008283674841352850928384413619418890878229092783892526128315755783878355581500301306193653169103974702647439013431814547417961498192720328041034176199489977721216702929576145837257496864095858180133024389145126494288734006546118159494709070995287981379988414721658831344493562572533203446906168667991692633918281114561243199125891949334729279354934937019106833241612266840728610042394331154998232879338975727616064316550692826442803361816615305872560176593293264149674897084509664882445314884128504878889031393086292442557422484020574676307925156622787827830125073635854562644316940253581290017752290671432792461672519520991945832255738616900833227963481967103935980449893935071959432190256628827560674605370168448916560783141358841812956244172496011563863213012912409322798658693741937086666337877776745155586959577684897189444498305942429429057562619939458988792153519912756304485635212426032266035491491833362985037192251609123383592561383781578513703179817871541607543027441986910002149665084158932272952211713096289174442488602206305455819910919322225896770647021169995779010294366706730593055735277237924408338128653487577477437209339193230945150434744867708776604884747031817299751042836078364944140169815441230162944948072895980657416379952583354840157903473301612304629903057267132238652047434860995419338428581131507081554174423967116461629954177208146059919056864834769772257261850690518563668659784995413246454878847897531457568482755100798576909907912611623839653982495899245202662124193302193388556343455942518082446549990168288102471521726459105742288747874072083346349950272896794622793392422980867963393618236368342623194420474578788571357704294110742361918784286936288976728485077223793042420943625886901851057600390185762302373915981580022832086859510579327380258667668061574909263236660433724620504347682133123406153262538036694032832221475769853423556383052765460384625112172942885784462167673960475336340832425367553458807469071361231107948169502309593643097494677648376981048352155689021530720049793953494519370291062239318494798984848073224806222882191157499260654097189079212832163101717864697003004071245549166739567634219721120346717014110188622741172022957379528832201266099028625793241581951808962020597015485690827426858647681475282801724125000793047765544071790458159537579361964485355734375006301848881841884534908266851329531961153118525026596048125215139997460276052914199590466414761447165457678875926970344089896749581739806512197874557667387253520788576520051204712328894911792625590214155225096752071571017755710448378584836223665712147811901358043378468205567182902986501052453624917950846718874557227034129284886689681648465453758397720714403107477920814583047455555514101048624935140154176697149188395411078060127782714449788237935899552605972636260713452308232646315597686041377640055785218459767092598451686675552375491314967907809459741190197045604583304752896082181163902182032682917391355906757424379936691828431458574116535940997702258191650047033669873997456052162959389513185147777286336170714251037632042621857081187157870133361151266448886690217690033073364133016190920846461477812682096504181193439872704919715343562449500575577324683777931147584448195050429378069675421034478359108864642368705781661095430199228005528961119215142405679753605110425485061280318261861232533545393537955908238862791593710941922749704459028325661174773295529563557982422225064836517388668482871355069865825770637904846410701796474474776459940074515891258288294022029299191850044497689944983209235629772623399543142051051178705665523642103784078967711081354413198829681296014383045044359357090366789937807740115005574861962469277728074945026153740308679316231049806522081122793906551208700273964834811184290670934027313559633861237643299079665177210809868488400871423143012258129808463473919726408675732781159292780448106887616165437901764747273322948276937179632205642186239527245070494069649407115549317169438705467595074421868764440284368644797121174214863723769153947854485771721022343061404720205399941953869005727787102445077872926103491165982369490057404423514364214990301069098028723347098751175971519110042166449972644778384110475255051655416911564884148486885285839827204319415224147988703954921429895000242076592290740947850684233429563148009917685722667855029530503572424355476940162401057201837905773003602956379510372780684043454122274234039945253940533390992741960374800250736764080324244216126335061642551922718179473703832133015181489526833475132911497580091035432839352648379364347398690202359364754983687108158167019695962051585600021347472895595572998797478795364765657732248435966237907468293998477929047040675835570871198534490654590969113994557091641462276817772266348569727485630572986245308560943931621260323034821672014127056140486806103785725891520763175534557288182269327089985064043222405569604269865834043978847957785728014235416656412093394800720495632888793681009119019485546099683922618561639332260259708685524916945076192386235705000323382909685750306743767241120532860991671080716572880654712272991859146478588962796886001675040208892957184090433644795832447256092808876695584593728073903546361250985090680429047564816638854619481031944970554514599800639576822107052636302828537798773165837678103097194807660057992664878431406403888190673346849754312373563942625975847732312411251258540728926200657804599170605925073443404547203476071411769636454324206227704974559776385229106259889233258288938885189849793015669965054370202493153795047116362660048585068933677932880940341295117307917424979346071979251888689754263214578673301720960182036523808687805660232769854060990524217882750546529395370633929585714618258306014414700332649019677661750590644681446220352418235899152565709089984763092577807519427842688691085257071404078570595259113364943653022740526036924420424769434921896732442152353909801410498196262790120851351631511676858288040329080040896101840839987926833885803685329597918742755488031137964006151734273198378246495566943400787554746652221466078923914334621305589840981992439107880130358104309631534147945287961865754243429603742407825207490967413136364996520341007722035294942990037800444140426506512796323523144140658347829587277522406291595472048161217869022361051292448514615995663797009510666098080329509288931772283546937677044260115185782938378496779511789856748538541257307669030253231162088329235535580783094308742343058711054739995094851858584342358415595533268933261982312185529902594870309278848577171597682641294243964868749845092478832011677781711117479986046785568554620539497912767633643636825427650894150574047962529214098580648154027568476882528955274755743435773452308995009123466908197905152847791034979398068856804526108337133070239365236400973536461076381732506246205172094998167434542855446359982712010055432285880447801581932064120048146964878956345022217462975513184803152485124172085033616022808186941019382993800610874931500658656760366426311079894275382829994950432665929418102485455374320420376125912063098924318121386743240890275030573239342079597470140325857909571057489870113596984213555569588156485704820284838626137800115442661667970219306393767236407416274029560982984044657843690669560567761218851621845713440627600986362002820636676449141226394055099476271450470848481581884574158582753567679521027363985246326323309883165089239028921419405295204028128090104740118413570379602218202867911989703863170121932469027408018404848697899269241022961066867857971568925674067945113019315896924990963619294122352936683695739739438395427288440998263305939852252938156078462466975341726340208283890130459253473907174593410396140028683801447856956652130327225999093438716549428547570178860315227258689137474780126615315403660620882014213137808811990237476816458803316418185779661614351694083192460190101726793071821097945849784130774923434923594133756613029036540361345578369813464950195035127087459904502213257468378890621165050980247679295558781830436881359153233800406820955831442496840465610212475233335387741469892842405800935911823662393339140443041790572865374860004939355286797682833119987957814495184417132506741330346527550681555821097194412229703265140063197145044144051776841465919603763480894742533004336950994809003077022891594362241946526168775066499001270425185256413505698662808113509900482037252923944670993989785788974271686752066571470334655106788067224464393600531686794010205944625633809018069727525899563559460324680243684268127726788926293680631698391127192664605128577596656215565479378996431020573777683414889235871576099978430830016063295405063951719929049854510208955040957344672707215072548895987451713253337807102522921910123520561278668353363716327830097212317265515672000674365082433938019201995803041128132901283886052538715161330657119943467266415522605366947921512384834204105315382371684493187141445217005900155184128680328648857685649442674982443005404878641679291081571873228320645110293843982715927834788125795838657879819086195996196519145284628586623202761684301263457253385969188713662493319912789190335549240440506817316740058156375744706634507282815043914075944550707931299636479660741273921443333986852730026337311849836247865523643649988212122768003864019096820883822979507371308447816838462202516028301565156981183548216462019765202626087125991460491605960772115671051468232036737886811575617473027486454637710501375645010812121347370087792761127801485079839911368657503961046369334720857152732771087090413542811306732081601358802563885417411876400604172239450847180119264097976898991822037311928893278055968321093737807025299308010123036527379522406299554714877640730139671001727931140931133397289471367826765785047249202732799339803773004160045922923300606872562299706827108878943576728858042060393852904407407832943514574972256374047270001754986757649348072723565637876998672541835937114362139809465816983413555235966027636132229395005301246228037006963204417510920616317242146696686054243692653116795730256343342197966671160622060813584378643003614706547401322508373654649582634328565298898366577985542820433216595715172982462881505637082886704108193325801780722939925060066384050842101749613150475137398311173917228999231675497514658307280727708734623596157989956639197180787805856766319265654642109207424680923792087271987011194416065032181668336651422365459126479915586889091973272679442246927647810846214674957225052685334123479077498911333043195507854928797398646967821526923851519793000032667291173701176850785183971091422833459642491348245566583887045135859021844561430137557229731378775874953657517353650371526611795224710704042180503085746697619625246312228535872622945435298364364739041936178856587339276303565156238961871971525278131959402859952887030264077157172507768722231345321000809417576130084629256945426277041390461739232986165950549487806283016786093777760302969709989075588583095787418411048701804997772649030602686121137246976136624647067696559741225612607789956090634835021771652234186672941859350373666741684037134456274530737947670636027712598175887816859696266305679322648069865464753157369621792096263599294310234794853835028724960342961801971027121613508786852095912288650894096796475643471927498596015515316391165034313594285735956246345285731759709231614302321534755351537433650683869620343597470025552653582545199406509040214875820186398831118245621520704099512025559420054684288322764758321400460209480733283351766916543150109476221315910409625899678032847329748051958139997528918570335461708964511526437357504922127975861388838331483432837646807925649919761263331666220796121185083393014491644994066435588760303031576805638078811129029265685803661569630687679569908748817920172946591034363254903937105808335950784914169908717432717223769551700038138962667776600994976637604227632740936036615800298678870184299437820378214847935500215134760560458141040609737307946490430999920647924660291999078851258255802900358113251847838388364452357279458963682491202945412201554272010407600124549325266789891387999485763547385057832979587878727560200404511496765876242367864985284431437800612133746266377755264510286763965087477388116585092340933724115375703829216389034407820720061023906568965530505734135339257717645249287165669276042076946024796451249501751906149782609713563789750885692191999069774279650177241793475437693304031597169821795761109806105777356644457041929564669699276724520777862482859400235405238449603721075834126963112875290439991836520737196027518705490699839149373929761726019042064625666635343049170100448971192252870946063791729838821880565888290185536968166295878735058434746200752534132272275758787951236210190675943208891047051968169199692459484858231767798329922312541404039973029686772362554902504870307880998935050055135959661827384371811060962592623868147493294344555160554117910413212321410521620724137951471314325636040265283840324530556561573197241933165977718657721595818220040630771378119495854632936412331496743441754311779677441259001731788062112238527462566169058644301579465027214871014192539715879995807511544162218262342390993162646902150475593684350556733089678559651500713192849625266360071272324953423709914072299905338792391880754251771768807658487245783676233451041036025585529072339862937806171857778323527394683376628184136012374315531279098718430015384963547996544450125652803223247824699469401093165230261989460516739999212121506469467119227107277326376773952738669897376013742294810145779798553611049726700080724381816155296765840719309847914733000629603862183889828410776678853988099155910136012221887550072231123655309243923204000082502136009955457508411600640831281341071290958330029316712632302032586802423386009947073740036289968538064248818231437775394124763096251956199276626363547796414269777081889715696042752915729242721869728947680807054969830171037372667493608282136316439082195419987764103606741434805667440908395494115486581346747919384202288355061869007596492492949103341710795366185633531166225920962072180472010056892089806576935052410240969848441315198597520865701316742302685020059335671117920969487565796103171524817493492876845423310871631671036757564092384245912047244385529626881118863443766394676211729234636816710327762031086960377323729316988754211207190434946546046472598602470865522170981307757412384138863540132888004937595403171798823921180755718820440981306506968093506423133031740030688604962338440353988583845739720223658121666848669622280730213209657620059358578384878341517795283679758113141320217969064526462606789477663974233675744436347394209874918014336863091247299522425698181771626295742209533774355500561096629979197193311457414628089808962788708018535988507987112739058223589350526709947500999649839311562527110394037864829367663788138854093071311939188537315932673766934018958970229300767505217172511707698504037837447662244810507885763669048187521874472569601331998289990141892734126109860755651404495509602562813912888509779653494259493662067960726503356446927489951036103439793097441609793062056230038397680977270090533228797904889162614623857330779058706978132755004554873616216709251308054490324966892340488240851588074732983047089338764590778063425894148345881229279637519064511613694284688747795916132448083274991804091923954590425299829170007183399497150044752370985739059728095778177923822681450664498628909559901784127280841290100282551455916723012623694264778107105240123614796146288578599431127479189012010423380544924465689433463135344569320416556889360199596280292365915000079717499386004133829301787889262512879934436509546665351647768903841940043811194465586930571552684746545917339155054996367818627346583343881479723021111483762451431738150609684600509544970877645240732399506040448460652211189580812764246717121466908973602106193876727168399417550493492581822724989223384665159361736754895619546118561810643883133780724815612445018927519932361814831958989804983358467452332955523717190848325865115628258824584240111738293819575547943288675885023044802986027372641642937576609304004934719341022092851478738975769010871534505539394698984641180502008249781686499252514138259229954219267726703237095193700348488287908672055970843863364228984148363355575892744088894738269474195541288845317540434088284450323435061359760961363981713833800600836343765576584559273468764866739440519864336365588808334069807576530177378044709645399264565822789045599080180733290524799779854002833331704793663880324903003610971401879171605560868239247948873990471401606624850943448046829441406620476526573498564902613669002061443396598663397012011732589353798026116890035388740673091975559679582866099279578402916631642005867549968197012338664407340606737026509796176137099484302696291159184739997124502116898622523102121232437703202953075549573364534678418769059757922922260944890879058374665949656191758426622290992849387956834955362648994019926813340153335434961069613046435500675142322728420166570282941861248380576928310354564674425264022456533192182061874945204437572860323079911178439310807519912532638212415993023674707104678577542598203034338597099574871850048103138257751946235277225501644158350651582053790819826532468640622808616419162761849726293059078989651323021113297973226306855134198438236820365759825033824954585925329149222910610314468874357877332754732550247642199471962474451464307092956473104709229810837923014790011585124416162114789740756864783493875207886034237671508400429965838447625374644656518086695229895168078033034314048868027302309034568257448114703380393850170283061370584897217893028854119836817273580027939622504529990136969580061792690807334836805836131968024044937964051902218204422003990596787398089452610388898331157195334495871357843527771964401289749373497185140249166170221473010500640434020483527374323953429850137742489481495931731344114896269228287210147956078797955044889199143086752677793366578009977877591438193855781644348586004065675699893184047232838471881671920326892111267997422141673792275492281766467555275447111186116779065228953492035550446618256799364410760767173133981341829103582546287487666468718622500510655031074553018365620035432088748377421846034605553528354179322955014722311397078192538939861214310576945624782591405809706280859835375214257141785644486099392325151533157877649666937115786545499298828897861521867908962513459645437508070593177012839011664541938993432902026023156800864227216211512270633056803959477314346048936485548304496540251593325944865126404712394959615909239857668680458275551961482038377703045690686905900269166044660442428129686836831781228831226596245670499354884992375849133279257656452640415621396742124787877531868403784632813764396593041109667798681892760126553199853409226054623367149787243014737667604429418276173879448814669266391564319658110080785757833712624278674624703351388382158974297737786690346430267649055681317966628430314705202726506389136322069195289494922522062333572361852118697403328879490709393680030001532779064223277336045486054293089339194915031120045899063006974648644647697534024045146897844536922022565799685446410135022956418150039239982845165151995846320392230494254577107866351323646050743775852414530192933947619384976320772509474813533210668732750420164419036885483296652905593705360758488135148302140244934216998752684423065969140404240530756063776549121863668770830831779146020636106286253092015753159691462331203566449674061492552197910310162430720620769998560382002273367945515101258194113517192004526772754024641650298294014019677312431525259287536824429486353730998182414258512269329500669939277571835518118134700605002070013531282101541786746161845120890779680317168935268498895108287790062881298840657247079881941840968013686116701966185567790489870123947909714333635062156280555198379560585066169646648424935737394593395775158170338515694730722519757043388159140567700215047889156253483027015463837216760734048477635496723866415026386825057284969015755529507279395536157411215396473889239351071459878241179760526390969820397183603499284505982878566398601086992098191870418198526692305996878647649767732781669663779441660290573999583717265201826024362802187901288713175200676694086559632779231831715749006703509277464282257023982012409584872157355571084561971617613009556783251108030095983776108372610261695384811400340009709466901842220280707298062526165336173833183586370360248432261101351615204668292579485158639394624659958868878270764481240603742879702080139133713302494793900070368802495889526037601990246936412042617870790559013572027216582064128102471140459522235166688144542939357027752970923379353856224531892768300497698554010331474318810189057976343145215028532511332424387044370545990897052035719930242108304158140750530787386927428294347966180152417931664837846943211433275771094268842839898734351473279367400349715089654904810613684336558384900591726569903020033808364599641784831562342574864060449863250474948167448782912449606829446498731222556039517635767002452657589007307877374604135858599484039729388729968287345985159128990116350699968413067468069503592840539856147275367333535579768377163107183480665921118948837802031015150314624765536968407140317551615554083202970806367514755176547645253860633045912449860043132959906242658358934991100840761425731310248552140547078179344237081687397776572037898976849493850998461373704639754032706334520393734242731436925934330352729606328323359279556275665526348201736769600532009178966500188965536862528744906890535470132719049185579295463021971963308267643460167077959042922420042234690163319709909186610455209780870304357550057436439641019658810296701651477093924964842864395807545704628705113575441505035475513907452395958019628861933821843431268207962454607159832447845506599327737495117964777073135216032659361154207527433108900753496432368200088817881680342862497771518811576461373371662348822641389910836567722591165356338421370564742092956123730766517322241109345180753930632209544181006282856798113884122858967336342612044630918200465416638055031416589773166250426893334854508042050459589530409549471970181130065249344065660299952105788578302109712857656084514078173241894421066266895973976841953698772794941826027130838159355810252852673961766690367360520625971027937275900019999827781159112085317201208152721821215148906752534119188494274867729285789118690842702655556104177126808383422080886988949175718265180853656843139718259202728026335610057621214062360549500295420808887681202757747946963468449828435327616702187173516433125953228607467272879072412452771331120019628205652283470466367991584118808811537740255330074583563788747553090075943527306201942069951911212892058641513289847774239127314010193962545953518057002698688683053604641355899661097433522112024280775955485069915766948733680443939700202678710970797841819953719087299896601131855393545522872034361771005625228555677864402452904937972695109109937875244064897566962837912380664135188329056547027215709490306187369543864267366375012729390161394020094741797204207748773693076639521391292373851707566732083086657244551550610656975576033779542810504716304194316582231269555780171523544119576018887578096321371159355645296001764937657263256080068589044927738656428127815675376951118537692466126735817141223881364789379351270990365332874613314598489940247287819264367323241484739335386315972185848720039773743846960193576598850669417077006322799537917789174031780215140952203375075920931987990861334635127294605630285474071961562375213980863221560092469316218342283924287131676833669267188864745969133786118806391370921084562232613589897787500897787555950024247977218681404137324146809527187280784836859784677203318233880778431301212620752826014319170429070241279852251798880745350594595524719228428452206509404639225036656108687265279477529125035024760235658637647784199299219845785600120348687834223444624656554633613057680872303960765492677646603555589688597205692229494034491062150724118531778562095348762839932755361591014963301083217141984042470939895351081120072909685239631885626505230773319473541389546041722088120623159475399232102745066403314582554817843367365877751510866540498475857085063275018346607852440326088212155194664068560135559713647288760551684642351450817133057735476617123963936049924491887408974745097204588635414550314956944740752663636996212412187671705756538623931257012362634907883180907121099275940360596371088511808218771500708843291531050714876408086388042857807412101392334097511758597338673329147322870512304418360559511803307017113159904954298264052101908050115743726557364058335626545230560166676115075507577495420093107710895959206337922673028541670584217873312241571904634373617349395068946559204061431269481172235400591314665644821114844436371467175169061946688330440920440673435883391740389082482057964718978150872434901014446023806498760955984601236560412036842138492157020836262960745572519400393121063668742005632247143818726380736937316221579718219215529962322986099791167479458854144641885590212742178706569059709817423310941188783861963693193090604265541253244297313376453177651079767254075219525553557576514611164616122320345839732800980229236838761679679516185201434910465925762402781783028953340328685256684162336277391059807248156752826378254960789283108501663283040383116933776107341122649763025720511592173266179208693247793957536117283718854679978284172023243690465054837477441209274667277084524467716267520183655771352093499749478241995733319560588605568389316405342965638755222816022201926582735782221072070924830268173186966977498323316185739586137042784681315290681903231326244948488141355420013354818172492297383966550891685547721772972627783275279469359866625713292939005181629837878876169678501947248382305793627393251646926136919239264949522198467963434553555826767019328825217591986822262351948342658379316561804186168849489651180986565485999346819027521076144057955413500598986257009716477429682549928488829896859638779245636396440813490906599151986933458355110868587816451086280505656033376645736924361403410383818355916384860692322451638193033416008566656200050422928077419346995507037276440982303943446162209128966849551391211148883449806022560135777671009636674265599224733797618490887048266984004446547368873341468396093170957438126291864454998810083695483056717322318753261169881370609141484157423360935256655163314204481987324304296194942512408554905574486461216415566939188580643003237664536814824487729208872110861497423243190900781658719031154999030678087367341589237720873877103633255478461449357416212545827851387368607515152406603229602188934975135102919004896655380356754041436414602515271345894092317464705331399147492185985519454569808145261849092825744177423132448726564318039073970797533646742085550403491477485305584798084908265438274659233525399076247833589178598726428560532238990304198547532189133056826538426869122417115337711131241949344636513145310571974782550636050637306767778297068973224420847950089622250119285036766777792840136304702512359790705488821415597097642965119973704065745162510214435477648042673466554119633940407478221221736424767949393164976539197706224946612118948804346518692646028509256045096306854988224091484974227017735744256116534027652276063469401435598884661713341535590312146009092338220082189852256898086969497331959875584863262270663433065928894195173755228505257228782837163813368207285799516938491397637743495312499325729004554723439717870911904398514319579621184003595251642748297005138667233681380399209381115511331838357585931425725977926396004298706605336297709235810186697299135871376871432121149537951446344256105552661447900368365675469127649147706046111331242778876285379939771226372444192299248669958710504778911977997143552065748131312937464713162316647820081573572476153532782102962804266814835451027418551467804320503737194293468111586307126712124199145326192579897865535881517724019603518696787557826995092355042464015222469902329778511724233838609208532703787575652482756217952915033894938497347607277843661268561260250790324884723265855102376025169774173564776899056962773156800305372954242134972061743331051938687081064989759756894835536960273920215466962248750021200551667319445329659783985092832844317105605500589853475375584736922978393486000744159271689555875646942204300643951315560988539396578591268120234029126704844189369908614929335224691005428482551852949384580422495687423771030177881223892545396791909450680914255391116435288788032338395261952150016637436644927483406697230687871133334164983432038068927880350643309884454263625203680577868786574552100435930331306121432587448291708975325673801362181319546744099859545600741213984762177414415723689067259646465488611772545111560873211462957539807246818771953996589793991805820485226922715149941582895755859478720818035958317349151883976313107678526928755729892628436028894720375477325464139595697896296930801107679712790936231790605558783287332876707201069572285755565950142464719550337865695328614209448392511928421288648801031736186568994587339427977216630225002971707245275222683221080994223137342088545637432211040835253460917792114327284959528465473772248952509893303724189613009862802814300587759149188226438248024718225640265825974353675507262298951860951289835618760206016442380132686939597680218866219119062525860504641297235035871209385940371426715043903162917555261753883653040290406968911899337990762054891127602339342152348381370484117330618377423390378135544943236317465955445918414199780479625978469561921668823632073543307441491971096333118842427015601841070816286245887985825612328988776388724122552963336113616944777345049743351346979902615787064435929338140940062895560426112799284650448566680813482128157599106237030131031240604351766232396345926582929672472037936724347873674644767541067722459241130017454292149205008846768460812382609656896802427532206749642709985547469900587454983269624960436365686826348295851323993277470883488466882312176234105649786900671242620743572813413484033322691565006852806070672470866556434612444150455336112434184198576351569718572485849040463891183239695902916069536112494732868003306023945787008037682542572418828316495200224638208872283949434395560006392875824455716665406016412305219075995316886798267058341098116582299020592175333197572288756781408234636054731485009517731707285522876993636169588631317351675143159796474277814533594877877911923219981464253105315323179830726209444931013749042158295043091440155165941023562927106636132697948451357162322962659923121662400274787655412941697163847770597172480875877883504243606793479508434036472394660910927817268816571458728254584868186967622158322311958924558024354965576713725566704247248246268445800768905520496312044755709156901828897329455830220749838184044117507075520576396058534936022610379015902190883575046515673224420434726183436514783272002170497490438289842227674765593092934941689009057225520634365760389207588162232243006189106626166098370453335062113364314412154877772731743418676559741076618074640400476193274582606380542177092800143915341389270155004599021683922326641810894951493236467580641792457726276320671628340464474024314222617036381255322323437738981985768087655242281111430712801662574582826375855667266928382395937644542574734965140135579692139819582163530156862413830530635807936258509891736001478768912746966605228597460549967262557399348536911197492582411871154951711758483197880368694003214834969953567308884005647811589171039448819160303259027107095940795088668095133774455131131266585152202767536211634085445639836219525342667502462769181846148566577522922714253962992602716043862268361105778525670130593883849253753107066832602991525939989367634292373797893200146388915281259103962907637553127560596045588513250300174955252732233676442471380435195326329862374362932938982982724976378568898703196093142761683515346390420855299521529901776039183887195989462856899209835921048673026501297663816105972968638087299979817518527676791921497663428809707003870219120063322421391946642493526308271872931653605023128643424444587313072094521220936816975683459187976561477220542676741000910617522698967925886063288325175626118474658499096851820323250615635889113382843785106336445514914305675522736445188034263264847772583779004335068045440544408151399290477666363081326334682318746963804249382933789734716822456477283405648288746295688745004620799050524371715385675041994939742432978960125849833087957933391984329877181794575460115823922641306606506173059707387872019439698002927254138178208121315845602152666121302305344792635119445219770237978551264626322063262399901465386322668177926745468164795603863147242347621672772409190656857135428885822624730769088961711845869092201797368441976945229521633964279754580484604872043825225196284990910486079177321855623479910293105213752193822297383026986877168189291750938488502149872962305593123055140021298303259144601090792503419898439621838984871947031908528479202082797892446249422314206077494614236524626224111903682645650527061262078524347450531849439647441685132551357772710855297561892527511258761142914322288194370688858549109411028321753734608680764490912808225757760856118891298474098390415354478226444557780013085020131937900937009710946690528004903810285396750142093063336365818608912059818251391953439674620170861724105566362227104835049189356699399104228866099875416733653892106108728787845539408329219542810040258889046353197719716225147040169725539989280860096295731163799259431673688598178835346012288237365647879811621308635501283799223144168835939365895159046499533871539130186071279223250864299031471373258711183915746750397156265638128222487886284848576373231855751960928355426440588418917898489594395857306747908099432137547755606621518779940144941926799670381022461790181346667014782644990945099405505164145588360229996268332332000931672123135491608209234379826004328624452631211151794395469749745622793020527835991199534339274671588278984437046485065391119718452106378196433293512274945008440191162088573299560573540397793556494714926048987683653838551493047234807676662393786807746070466529015036061268352294605546741019370047848051258863572502850430185881264485540077323728996912174577503117434764866851229666300692684584026854290667055075317206555808129008892281605755103814727032079244668440734326890533419715829192665514324044056804139535895811630293058590123003646817427927888202720402113215539401566575876413898323673564789158899737126634721525599993181767376399982060275153962539011573219971226703617899910639059236142710005733704609797105050126068753236655996464485521415976960353581624928323461468488010037498496371245644103611512139546943649917326568284905076149416371901157569204869188225831579412842591847330422790307370876331764137462356224858549497301602933317366185469447020868496985016518358475783058495058173461700167762962163713273413098173014582001672810598750174734941856701876896340442273897671532509588152682098440104173570563293404655717203572918544974984430111844738907982320445856151506971124786814617502289904138985174920038196545703326780873519206955684624787433811002923675185591444810635179882320379147586587302224120160315345966446272852021190480156001966149886808837211498087025763458494896835403362163951014743992994324394718907596173149721250282067292351020156511689067548117512423554360195051880907579429694425612631370765800716596360737794924767222519479214810682554176975085811520018709803497880373080411063685094683731423291983966497270947988308407936830376997923075159852436554103831913014974936001804261394594711274878453852474377891603559221603018712450002829172336000727132362457087627966149103992586829179325395908252138025451611691260294270319978979930444160130592824427261438176450682491414015420670781153856081096827094180769410150715065950776415866672803085512632708974415703553261604903569887288145336675425566449781803393123709790804997884481758286666095663796372869844540977111877865378514383738894706237276475573380179504898807805036299419895995918773309077669379741391201972026406581774227882820012061986025113140186056612422865669768538844283954495755253483892320531288687898366666871156982318117872236250362334089583844247586155357400773790748445897786818296602242435752011271568650221366791161204070471545170722494594892097208179790661068302028248373826248127924331490775251291375753172986589020690845019091732389156887509746586828501906712867554860395932152335191702116983771925873796047777978990842468246443733208050568902119181642653256398713407685933437612500057052928268878049570826545193240628666240479714793177500155900211752078634506540539931090634751136366556519003551793912632639492057684458002556454495325618200588810788675271597882074974365244614722894132809421004762335925789199030041500328569535373060693010783744543094286546103995427665206874586811891883069880988241147898383475603268349758412827456282199126280778708616020827007898487260085886305001428588148736678008338006429726747009291254163846040018803469732540106805188607374383121746770379466212364119494988616904196089824914173532056242399954135081045102131601024584950509531351447908104793917364751597023827738544778414720443219270401987550225142680233519181747110931630631918310596308935264679362315401680347620032315279641972911739000882889065019129709595304119692633509387841080013282678976462086222053383073390674892092694500006041432155830031064829567405379802739903642875456650420040395395666340764270948284929676739557449752475291001795472158261257887781587528940518808767955990059483395810467714866228372591095038482277150327723874093967317409179443511766622289850107073485586993491360593349859842756866771770331340253293896290191649180062344513260920771815789788441474618488244475337731202581750555011998570017852753884370581491403259158879921310091332038928055875471894196617336463870886254999173624237645854897295005363641735319036984758467479279589173984849816670002628280881966322225602535460303250100575480671114997760941411410651202388334139873144707465610386081989836818811748751048247593737020924661947035853516919820935252500571872428019582586768931219403640208355869578862867658263735196050585504011415322054556807040467665685620653924029884529153700765180586095579705714693413984554792720598624708853395358929874020586486830754146028644924300545210053346293513276634331089617627572764018301917436732573072841710274910882548755590651563840529314714778733601864285477005484395994294772183041071602092199360617386233864389454155254329658032874907645028866223942366475820489685242303298847506884925062984906329627144526139317027817018072115951882447156739411054431278870165168405596903945569395291028748246193941587148628795170066977657653428030168272267224927532184560017662010809407552819393077251444646698728408461180881607775180103235353382268477007605175826453049762366149422190277033335814307783586718457399116557776430559762204004329687260313806359908242714453436216729941801400672200555777132547849642604826751121302112156909131616159338098357971831041194685483407210386045829799853180222068364651111464369668284880865630987447126333549792300280071612769554017016191370549973628163867222131002095027075818475263853233830143215944491771749902197871715605124627127979218038268750436319273982509594308421421278957295093248491034861724122226070752173378906549376545615025965432667733821614829757269126272660054597807615391889642796458864055461945021372604290503240849807987961161681952624024406427677026084398522992455990082234315000259874841026689180599819075109208689667712435391566810897653424682497609563403353966857457657372948028280428990491735167440889326497234030092010110784607439436499384520599126524919034907859009451260961649919689268981005140403291810743060183169190872024444388489403770922439960494976875672946704365124934872651943783832000031559166636113423061070374264623506311432352154105868334673737012161818916572301165554144328052100908328828224238367391538293124754790874772649537457060947828445044342290208346081007572922166622098811139307880660600071996215833885874415119494831880473156479699433477313849756617223498351735845822989417135654878683357170882482295031590087316218559364619301195737218446109000958210703444365732798187296100865622847178419507716618879169327829269610496323553029476506021162654191647281039517782620133380086622041479522709607610954531868677888326405495766539253456155291333408944722073644558881030702961026552042057191691983978040157228697501252314891999493744325300291166958866386435460706766786177689739090645898961189760455632305061030227389513190234075139631340399088900616895053002827340082533189155361827930869114611639927615922199444591618162578531394978348418890610957811175639847360936931793501509640303451175798166375917047045944476705261134651075131996609437332442930187919762136302244751875193042753564276596549055575434169863848473777814184099690880347360019633630147733967710246753071487357231592511478634333663941202213392002134030192426525849461618595091595854860777772532915521489475706304590012836017726585113075128764353187617676291386504052113123876671696996164340930635304188292312787831303577531724602248034061009256678577881401003486155824858850351482291074242281746831658719654711081492886181978088814231440965698974565493059671124579579183556182590291356628163691761212930097325020616253731166656941187251688503260894318474138863266761306986094891763259740620224559575598290974610686120486189777235159133120730775245133047259472690162424262896248765005636365221240152223323095403461947924360201740563592590627263461900738021714456776260344011420553361741193358338235968817659681818654241670669813384620989260531999071658690231685902534495442469557536131572105297711130752623850698581764094819776645566471811972905732731850347845883682276104328743781619017797692527755172380248374617901395887979360379898973661604980832964512128242539464382566498006979283195519780243316354457841439106764275671196176030178534129322731365264812065331666105641517275864242588242447163045624782453583324313799167548230430857476238420074017151649142019706941815762031153226465434698711852215659379594468314242361505421335317815232834564042986110009217020508675284631605847419682515696673868479139495289961802230683174502914373702103751421527695790391060238648626418353805778742634801776291669925921286006491493010102973983409748593937865477831098609054061822296213901908339477107530756122391950744241129687637414935366098736815935227582965972997672594518271961380213157936527777032858793684712693628309413217257212717167101460758388891663023653857073100433521719159675031643313043105451269639148665863048926596206214316724594509614121616408811393907670440499453650992925159049812676647952016592422223774145952460995675252250816794361342541150636805322766800462971653132861707340124961422970377590839588840483375994080312179486954718532147964398961666346426622495764546467696318261411001038589231395825833733964824571485672431342596026025127684593900137312979897570444671228568871303239821383571809133516324418349775611482017208115009820768373705632392533669971219223127791426745911460343768578757304927896835508340920175348009491897729149091212825176121069250541153085946941143768838756945350195042440222864587538898826325639547690003535278483151259528616519355616280793512907273229321402414603389593980431669636746353780121458272817106112198854908232140995432711146133341848434230899068814555314313110422271499464937657707666381608452733144997482379254577916342097023524350616266550619720239576523197107922541129313452395864981803970008514630522173221369907012445745965514909375983353856819876425205207292772511393486693304607313525159003817853552606718069845243521663536335377452153663141961453221127143566206021113536475834573615980153501740572216786632457402127127871582176488360886880442016245996787450844455777836744123126074951404410383793092881137124926650736412623158330301411422561770613827834319327218859194753398952195772655859409671930137266011320130650280639718883112936164422737553256473182785741973260087699164364340312229079734008468516565362160555620338958809694573780875490104697982953933755384635224534925629344872554475203273165482628052468107518174470433919840198638326402975033613187358721967553896665704428541594942447047488640350496808699188461437883281397890169422993984581405440533873334055861992801908092273645741316482721242822336393580461831404368928234671902537274872975540726061379625198391790606170536651209413639724173086696618309952846918793316016572737923556914981078883353927617795872316849772485708225600615049169015071345312462913715049069903857797006667914712186596270444448311032233350430844075610274596496375808503929059095561910057503512738104489621650641890401346323658174907099852540344401700185241899352293501316269129487301410655175125377865995278370058503284141741411905986334795814631493905286267801047790343719398203774433905289243304164106866816250031613853047842612356727249488053493774827841914418844470280082935396362871175442549133380385561178843160819334117038030406693887999799921246583296556422922605894235998893876777129049616827860883312331965298768173288991160377078649882487409638662246414665309269567373897397975781340770995920536011579578638483711718864432040272791727691025282562417449141542966897921479983341323755869642435888041053884101149175634919134908706632705265433746709376203569534981582162195404842822771729409158638103887083420520643697652619120023222277884906289800887762757220899024985502589521655015879553169075250283096539039645062698161599867659961999077441764578520050974128027760666870384125817542000579693037996747494827071274510882666096020739834713088475050962076172149053588810605311547497134784973118470954963917378374804893820771154801253953847087892761206080463295810414155055735451489936626164737121894292068940783524012015010868172293851359936870753667608415597457417009459510909292854696691532577845078559133087150673158712157622659319558092542653226970735635401804472749905314498036776146743188326190938079613156313797469075028504503041167605703583525919326180051039565641426472665831654612443088199536969568938768215317195727885615256682399527244866337148550368118193193848818192575702432951909686877612815295546179068395421837761101402429986909735341928876570921829677820898454458832801978801154894106505505978581092144682224958196802314392284926881815431797519529877781000467058909329190829349886960750500852364549752971577667110735010176481932560647611963509886835232597436515348871828342636375668827207289838557814634809176532119058381148282314517774473366921162369692235527507271325187828594210989989094541941237575337857990559872955436649098972514267297964892432546392100233525154897321096514977206105855111463978465567333863759194591177672550757570726722395300551117805838876516665869289151632227716615882029969311708825839921591398257782642998927483811341799436753500888321771407227922475887710911946102512420619631591433637559258939350595638103113537671741763146171124314014582286027416011958745847652913096627616606008605745237373039353370317073933593311639246668765637748905641572789777680956511361784941396376529230699683371429259365108759309096106248207771311932911105359673889984597208192311051417583466267120645130035444909256585001093175834499698592048766660898544542898774112589948051716042401164217213938162348568486692875690558766828715712778991859062507408310183260057369384122555317603037831490661729926396414966257254921657958520049297015700673426391576462246845409384351138629623549094366707241909027187534335159026552513972835872729262390855046410456403298294429078366648209243535925174650186515145767558055024204185567137631534696082879208722162209559949763421497859526643474000039137730155641759389069415342706174580440275409256788306026603909628458376284829665037728369280251577319526004947086324264515732006858320805756702521249358003977081727992054686055223821776386523577865928947332101487024803274035306195358935486977110429332240299620082667289257476273772450906464730887629800210231455750369867656326228434583259524327730910003261954534842659134448453525628024691097306123868226598363317563219291932477067191530687219856327045090636128889925603723764860312107555044633709844169499195892606567300841552291121493588427543005656875526746035591032142126088850709136695099927078506992438958918268144958307331995817742348086519700049253642436396954966687779709657344607321990327561980000525092200874996630152524336096476452623642819264408669638108794526826109840930245491346741540114303803489109090085130410065501175522714864779102126878637785840314884037832477437886319679928727201121784489859254474332150505013365438447186665327105743697620302935965512758462936897466388305490463734279307430893029334029204338129352324527935540919940903975866447427623785755412139220622616529437952654446477513356708901758873996462486135765359862142402401097263945386009988947296132029302844231849743776777515919716139438167509614214499504794563785236041055836999957223273681215415595235061761095451484586084018601567066619021184123012798806927899482765047258253334718009422204612266001365105269523800402095586637820270075844529635263158607745183329027247422351025442484141694523503677743403535599389239917483068941065672352123005264538027185737221995222833382171035474329776087747562588680579048101808611771307984067882065497245223966352891796453961995406820679360740166963080219529358026826052335429107341856429136428867094337956188349674108817864689915883140002175189039731572821135030188484113940061897032194479543187535245028833639985789669540751194135073595137311247998942300506935000482422750396682489694661299484115437336653256084844819217704831061300371896432218403994993441437055372021272138211451925476500763146907279630917437270049788982695318026330110093936303118315029132777731450908553955813093664362897687871995150314541501600107168270396206429418853605678532263634351289389763489192756056586459918760109019828020683267377987108613705615270902979061289396880558441952792497752091462521142174434506191015291376017821169128267334617765884943048192861951220680029959120302674388828130687208759011571399005014396345687935825079580359028919153244658474298417661246510773138590862348491543104482766373574337518710841732182215929403862064398607612539042255493309244824973664950667460546565986717528136940078871557092762575962281751963923123925331859903086526450661989115751303012696357988570197712815688178098344508936781018159760840866687808203777281189106443134031827405117226565859625987565830908090987129837840228526994526917670679158373606850763301092791681764857573190981406261558245171360216340700289790555548466116377303275070352644304528836256052456763779644276189831772990198536473612653777299750262709699931773412563778126878934396006218411413626774793289505488596933788065572513702457533667490298370886850451750223332479814666453076049084602339623877098084941755898162032800129744969927522893953052378275913775782699377439720607037615371753857625551550338082209437892990713596672386373056920381429684802795768139604110753802158253694126774046694008256640079981697082600650554297344685067148673028366673374016019403035637045172456328279514550432252921149457640863800040807384915166976860019668075176299176082592507293283954360757513609410706116781108040843856687955162779586549778374011595498863127970423164378137073790152394209495930692245376679758816714825429507136597700967847852325273414461280827067186465857831643538973010395107162979414173370264357226742418348811932197465410528016991032036653843292083278932407120481448551264585970885871612359344063217114143722775793586522808199422537660621501177731803727969749772128281904992692445153807403473919894977812322052913230067212362284911124159756564699923613389885821459401686116399682582101163215337183230063886318656651928303668562926495206936407050795835302937198984052713901892169485836089041328022709420127109432573996945748038253348415467897931912567836399051965738037888702543019866828969268744846214122341955535812564249195687723887676720608162780524015824800124496882908084560456334002177077521034332918339781463958741058869208616435836131550825852785418722624305067167125595868297339829343137668532581595545608925001161978543312030846373622501227129141194355568641745787012472562919569923559441282620422529260723848532051242590275072080633244034015579385112041608135128969993075900423638347859220525684845566199211774909945216438717759673803287956102561493883086039643225988386382860099281313646057405604783636334212984947390854184268548256918749784755943980117266710850314454974618561211050409074458749619393578275285248422930909965518575446565158252005686127333320978156768064373189403305873070585742732547144448059420316262665981883642435038028549558329011649827257260676031651212280996905618921012782519942556399838658678749576520513808984482899340104618280068094631862063471908662542581681094048045317977448332612189464547111191453830020436572857215982600807980700162523351982401727482047385092671168523888804356608200837147400191423463478469655425844971738745921067148479645816899381912190939538637045314914117026930115500849962523254750953349714918645997620217754502372792662519861798045668537616309650869171359792769279578991314373800692226576455931709008796345664138663522270431272722781349442693275205956237522381404478506160678184288186641929000527473587823964581865879199087794684297443732252873118620700736765273162933049123817137402474533952844094521630447566737297520997202908501472358127747696857028557847230288385226524474719214098945765884023035952579533127147901240485729620894087998500489026261432049535275180682094321799275988453655556262336088656287599081880718046963672897372341996123689197233806268713349273744613880144046729438434767441050667924647864807437915596765665281910656139988581691347602494457195990821529762989376895295318048683858650871882388665940217751910891966834757272908716907044377985201487840012073273730822847206404610084978271987526263640530944538645480206765791387050597840058050598878854183527063896932782742776054554549359282162420139569435453735999397063824274678680114070411230028646964326111896611617101133477900739094895993311649947214944230147788746659996748433620600459900540352614130665226717748244794441638377001987808922963416170274929952975896881852624639604470546998229707396138641369440402744554813654848239229027314429815486152040134097388130939835644718828249978894776127473161805833305987827891071188986843460127659422967504983998664273771147108104800743118625201204145641858762203831787880215386070788190768532718476341741990455131616479557501164736466593886831939169899338644003513527848643072282178228851841947763658307089344957059376202358447501363472525056903011441343109421458229699391241477443454879886065083088644944393161606726131050923494010667986354117815086302420156898610765640681807410690708895849243994706490456545552611252799691279095622683303966919047021011876721276842246165327156413896140828005318396145824583080181895823234059121010154361160805237302717781367610590411727569108740337821489905135840178101915379478209634998474795860816792570653638149556091438463856975151812172686740198439077510176542369440750849987906984999420674498557503832449532955323929543709901794127178694487137608711876261999724230777589654881120904142954076606945582137821500629407229549336832003072313119902556267561607299140540876055615329766704322153114297545241460967401589976989574066219160883995286446064463310028325940432764580069551186366973014811669729123771185751569071820314021626793619900427113444114447659964447282378930721750076852585563270484604835424718874029382449261826573066398831222937865139428810685285855011469623947825853093655639453771784130440748102658118875077380811277606889544843825105432164200219977117784602206207887978870340988562297366968502945714970026403698024708714132526043341159778147155361383585701862244775512047259189071762240142469252177414239645850866394841292595218692762013856459641499246253614829643981916552033089700147139468346224958970145913154736454401112040458947799258174118894084265558694557692865860707442265632639398239347998269323676583148961586812539175243738528161441895248350035777373477465051020987690759229862185612091560319169301237300224118351817420605392691476059274742421492465090421684030159552742078271811552363027016741143219232959662621914716174104823032213967179918842674127541697492028259510758409690596137891255797679930309735941655739335916713712859823227390106320478548907145819809799495891984115532384666523736452749951354022260882850728648339014954589318633064700040745106342185249728088555239742342195122298209993326654862314069251370698005809979718348811748660974508939124351064062972930534167711497187657288259075611758261039355618423925404804138892741355091246990482394604051923001464904661847408671466501236754416899873653182972551728321493419270878215941098187593783345102917056687840011788979800230070118975274812426354876549532982357722953452712763411837025187869528288178888001333818024385401068601816209578886698751661628462535065633685524203597529887808055239743087197768040801719221828866298435951696858161307721998961069129486580057740357049376954408526155863599005949497039256070240282323425292987597390071408829730247319340661631660925883323483115391876867314072468961606644468420590904608245074822924023886112625425878761795047227249440452919294885912033065072173677883672356511536662208551159628511597109901875891312622304737363907877570257406872491057898217595183994800418471693778675065273072871336281601350407703085213592129776476684002450462825878885698662557659528181291938578620006341452488941123740675809478466232036250582087791421989021018296035566843355900676203720954453715177536153570987084844425141174228109126551226116621048077457560451636617702132880186573189375709323700019035672395618332547198512475068345393409765555293777618818619965719369275492000735260975538264464795948770792913634701038953504104297034123294129191745695899191702013355519794571597066198343496363563878319570795557657150056043284544828964388464199176250847435703259762161403290676471958348716857666500815874292895646569255683149081485736678539523747233903356611313237229071740175045778023199164390320970689193592235956430220183903663234842143914930796851997359571342280017620550931602850300722322797479366273870876784262890969690348342916594111530712392124137605239673192235744908559425214995488239497152838907869725363628657690550344325882506948133433479510315809502834804801096633663614433012542375860668769633290837825215341180168544730637743162315431551396768938198797865418624894651313376525807471555331519716470355907357897286614091033422708899330636003867101392902323564873797955661081112320920568345372397474877122553637969663379447788648199392320226349266062922475813074758075893220980636153952195964789046875332722721021674449736230020293230335578900601433751138419838331176456378036331576070624599032789019631939554273524485458029410193159293287784512465773497222736455506439738936235157650227842140482002086459920010575448487057397708110496449514349276577854780621185779141770686207528473494207232654983774331943407004039048512373914904471134458970743089370304927257874131636625415585765233575699170107991160878420731639139980607737915369762939517901770356606480825977810575619498681506774828947308789954625323546785680090548162013116844728763247323511030839355016052128140260339147974216888713463617344086767954802572580022539609758252375137198360294721350972225766686856588694333860293802333717059207878822428995983597496747405844471305238079039539172344356480651047996031733394254205392498129526551327081741103455560284165007893167252973622144608812680532945654473410047601286843054518922804573061183974945963313914275925578395594883621852069198938167002227129110741935404537811444324908293504356760841689626318388690082384229862221028407371116697509892034108012061708885751133940483943456760841560037460320100011984240941919008687197956388618507157769197782551537076525937092418564865432500619429645063834868391982782704695296559318090974610323658582708644728745270719606142924226666016198073107798326570745935049387239830462979939705739250281723353869948302104770918107976991677512488949273745377209266953719265060988491832748657598249592119353828414000145418789605068280945279378652093001778742820289528676203117980257374463582130776628608834080348601470209086454190959847131315959245793656613784098810221330012972992537633989022631278385225517855071447824660910311406546868657705963747520899986187296915566414033303683621406561632059934155076253341740045969742039821587412214574491224745429146757496053228929409662897209166641292941340490721854851362542155340626044939415035477954820846164332973850192968186871971753799644434685825970174160393950048611745877971019955948330269517965475461354842943344339347958213442159785867215196952921133115904194217351712334003206183465281040385919076196876207528956341604329517167295323994851954069484097859106827844743072875816412137210084148118677642079601955486502653046603429359743170063856981267515603364183502174214245925593004828566644494450737710141510908906327827822702995158063215921180357318391319588091389270179331831931497705482230690675981423946197821589915901246476513508808886178554525809878030226271419125902584752949792326434194146304337039602536612847120415470175831083219480930045634540985915614174092278635909667429248724191137216571379367062846299865122342390161629533763972746790726432867768003201853006256292800750608082953649105442829059609590094457273449382643051201064680303374993919880696590369944621447021751317335246613757426452356594306253464917797808036462480467066284604422786908457376042093111769904397141671830138449124857349579691313582093841218324617000732204841255833176135042088827943435359171603140111780662006321996186204713693635109641088789969011506634668055417157125662337497486348921522805383071978417402724780504611327176204667848088309765329549523890859431415981533856668066908854775994967498991225360667395526058588530741233976056764626001845351214959122149753500246043254229620375832797541307302718923720199671548496828987416108341811365741082569660936886175851227055059653291060331596834879831983639951529181964904865267786442106844619538769990755915001450402596483130707144497765839278931421256029780466060507527987444878848984501710065890341807823489447276946595539016750914897318868387870735859739518473977139477996255621872933419058668653463975782631387077722721399831210591155889216788725302963578303453608752475256872727635829904089422107384373216126332173642196702701311520509672937982563139093534342201469823629761635049323267218337681113537957586177864951297962886538174610602736590322660287357118318778572056609860403356874131490902971944865436218744560292058821141662588014289496898179189571978649414308331402923935352866590570776372778376207660036437807077235081707159507603142505647548300637316968121804892693010807838511776738750901176133416339021353897733267990102171117205718928739860341930912482834061609754057487188725934450081535192827948301950038740276702991527161292873351921513398977434601646451187625471494346030448973110902532658837515368861965389254835644095463072759409857877515635565538392063147058337088739376703983049169076706853870914512834484802382899339997733579324830640386620024944397947461949808782258298885545180436511700251857440099021051474175164085408897612817216734904778621407172149477764645694650658922739388159533125452120589722742933324584968181609048356963246324595069328618100286329209379804232318347968626785213893295754144736033130595337734760326971685957265497892278207788086295539276106130630578080008159324398027586468482512863299455233380390700005026736697494090265316968835850083508229401068154343582276407391253271503775663839348047092192016928243608360858739630704839460010969982354555944645370751061924652474975890253651367815968258908743082833177822000415314278663406959351211879634544392972403987465624077766614360391457082815175398456585123455034597356431059429111070792839906733820947417523290149181737206860158205437354523947022388185869751386618991987105034301909515530514715954288105671281482629927847521202291483673033391520510294907080333768255040828533388177187913674270303394922163912606757258426131274191393095943411959380355707850851048264259973100557072433735668388390384439761993037397424030425816602258204470755937989581053768270062563658700620476869981097082434531178377264667023917625973823880067631414285765853001571305368889163564675065961004667792489390976535315249328647525510871655137655342616264828466526740940654127221922234889584828989354945405246131997092412938097089745226998364019557680001380821210674278881816057947731931099225393947640225491489951011943983320664009424257481966382714269468286643995083913073576042750273284714917288703675846981032341385437722787552613555468077275280519373833767661735448472378992206722060033858091291624610882554783275148107779726176982854013430847786750152801682260203332276833019016581180928046062207927879452788413604783557573212260202914110236144126136902968697856927457485088070253258825180359856994349236199218040778128227921071579694143461015514027852582099568019102915082756815731525787411156216172243286684028386094506106486807790319785381269222673388772479032975317750616141295514008030171507262727129661891424547491316231391122087327615966590532078223548391749233227606420797817468640182497721562451119250886817125899893846998679073633907579805931144454346403423262346833086182427014215087375411310819147748186544257587971135946330020345840089920603222837405304337638678895839184809135316046219021362582959829523737393143958430442846241322208314113012592833777015729502192424494152983107809627986090797531854925331628498968139445187764970627083169018003986096027316256217619480669447670954935078168530086479285791021289352148095860505810504124222850743612399070356300644314225477350929020791452868387177904522683010727208865444502832028542163257457377024674401125585942436809092753537353425030292884075287308319707559219013909982741400039887947916242912339278030314394417593959460011226880203471925501754787422437764443969753682933437754129351442358745173522897483536143465954383851960260550299909522650885484992963076599696619792823230694813976472393391124396067431692074113151450589554870448486049227441367476784137038237126225047397972616846435862412253596149068190167159751375504293563446602630160239020891331892847914903354689576152351261256237272226369828331727529079714708966271356484272265487174487141349254800756031807917195210692415477043957294734851651462278869866023565934948126152326603188037331256112543144620634439396050896717552092216598446185757404201868338886837804035460720179189897327464166720673665318797159209543913260470772125483193926834702023400167451579512900281167712484596276401023974701875607636247271913810236329442551426485075931406361302668139947465475720752614158703187291294071983641075784291567864740175653724232226800059144626618156412610738224611084448946150623220029324473143140944936738007712334454968798519394959515192096480490791789698870765590165786855917033203681614944578909183027911547999481457201048290565881297173854919622616406011410169254732917455248396026884299644561126443429578563374358514967386850562223251601384793420731920785671811102613432902343057515492918180533100981667318228104694379953881620004644250975685426802038874911576545988753397869379236619935763672159880951402185567877824665066096845697371172316843147590831542446189399640327056753003469400975422820659212617514166137699555830532299450270879275444464294310725191837650061925566936610247413727532726673984842789189732947951510755293521289228311321239196893452818800753198584379969819441444661189183550056666589245334049316400810967113534714570691181403021808259551230885629950112291931938241542872557739677360513166019103213844469340859307297997007861539964578402426634104792024837437357784670192418593024685395875170596385163619409352480567474960972892276958195634394954630021109833056385178625457920286341216504083081896884809325542569854196028259820626022618681682181052705506615092415736424597993620680309716976388226984503450127358843236915226098880732458725731798263328472031164133086689866610324576956378867370518536085869813612163922213164438940964085151518845120927990242735938838580593998095699620707368498360576990085534164337078515168238296470473008488748037227156405857037283154014020566047886342568680272853616786873119924577266225673737389598430727200666415258110833789047391117109847055951763082452082226858528312980814177516301558776035533802319518446193249976154912138663581700455119822280163853437854189975249141015108882996432514670040185956794563472867638400137413042327374670040352656221594186248047568300338209600227899681564281000135522248985625873463816589142874881131457172104551776780835010771474798295285553156653615123015344066560173891879191234195242889760840277024123858237154139510930900111733798738480961187708734521355471564369914347245812522668550031139449128505183638288443397011201644375195291721186648603488521430526321377250242035210499077560642085987144498605166029809124454129502934239297245648439286745633167926431455816818339910256371502351931044687313265050401128078408120449006844251076833056549458766167837697809237714339272783477881044378079300426357264411003727494659977633608606303741695032276641488221874056141682610192765513807493546216230170107398971865913311009572141138958949847740256632602530033806763603599923743718528000268997593399646881513351922356066076044307257754898140523955636243666195542646903804989029150856762560845816515566747989809698290717301553840864133079759898785389978344718016498201438871534053315044137798697769434457695528971289735899443976185920304287738997622640803551612956811046499017598410657122848963264001010021567704571746594405801803213776572988182566075346365517413597636911773349190048041200026836358338483683364336450133452949637696625829680800122733896861053333828237775768000331542512574368553150546714764482812407273028809136184884864080843127098274912069365743301696727397165240379344920620407259762305864049963584886103636748338018890693922161698252701116876494472488328213291266128688088323983525968481858268013516663463343823721884336311244110231802908473444430894633007987802050637101508522284785581448317595008700250636459621006984791613021285030059082415734606240828553000132876633382047213688546816377738984906881007777270620169341290144704304153201301507992966904509631744272163668971342377037513825629763235092631086635017693504677496434532465250917078860134292791665327142552868332530673633160977381088206336059372050810200576760429289916393082209894774587141113007900545441462117630102975322818711080277351069098771268224703883972416782364330515685507229319284728061628527761659845125234085080483391994992975811268930323336909386926683506866370869542449997808964569348167892888962763898831664549003213867816778130268501321323851766665858311564903002298570851740435246468784177800194419304436325973552353698595451365819045257420341937390133809064191553763358868987069343573534214672306093029576086743808155792125624210563975565861693481947116077617222984745545666445536808179976145532824661807448243799035807309949388169781920905945574617330155864781999190521661180660919332369756758410346955434246882994570724729637805801333772475134503599364202626849966812107624220808494276295863640916742345530159599344777198514782670558426671833582100871701835531362521548579459784424400226199062336178646960898178438196986757319058116621411718746351130058564899096819298298684647619529152572017775799055754660424842994713840768090848090235480137631165755150099399601002360048447273081970967605197702638795313460274836771877285369105560457587468018120606201326146952235690618477903594510814450080331302433729436199595161608671616853360413098544378210402130958364259965860475429412561123137543632222151636321777404396885390107639295341946674484169801781405569922953211014798808194956981979535921175105983600498231657000685780093815018566946713443657662407549513827806838778778020396087751909055662232038765443479022247780810176421676879973395349906660504869581306788130263352390218222091370144612481546255010111256882540482840186432236135526943992994506811431348221363675113257362325451660925066931597512445778471889944024867104087680755276126311635959303517709851087238407251427573887813865581798223203708057779602538757636330127440297083370987010611485042599970379090845061231860105481447376473737034644262677929688472772857034956126038124424194558306082745450368621798346547823072548247006530680329709837323160792835246335041780480551357025016997436768349117462818206928112154138258218759433820383548478505517798963842956213499534150109624927019163511324471465296125271839994936252467849392449228223339915269994641789716692449098254012964947291161100669850665417020420940154350212333155284617437516563604208619242637477114481855971734777848996825229371642370300999739037566265910346159310940665934478406978742067761334204004456134589938974564031825302163809951807658745761570967267347478747833272123507249720395943488917293584800955320673796130276186705235298844491580166190638055133132674852202019844078204152227235938510154814351806142870206836423104204313420967913820291024644089056148849196584490635574295988271779995168209000595483299895284528576888087285510320576063625122458037548950724700756132857362134729360845182089948444422888585508535598871587750138636359987359094587114978539916511968670645289613931857604584352983521544773873736697780108570679638679484625549210243866087356251607650272833218164657662966698370725589491688463322062589334794649302622328300540174443520523977102046292744680029819585361476000695143361097622877408561849899446961697281145802523032346622367386761296306610070874888670265925467288205635012504097583437443309776095103188395528226639200891783090803085437474711775779872950523238992390722422629610967854030317573923546684652126137073535979361754119348086984641748317751486512054549288759685603817974192471213584640879004163061358233758730957155476639573178901071045434910874665391662970289097290173658373614892829299169845256243318522406478318405724555152089971590915094634574069608113359885960660034898426360813957594360519426186370031199324467366497498187633734037905950872314078408765587851045775222917305736315181116804505498623602567801426371287463224448076238632566793669400962423656776866737136138486118170234744378967021629348060318973012584030986796896200275396588410499901374165501319664929561327966568185210666860409113640032483790789295972096284672057289754080381212276498457978732052418789438380299104326650897093099116669803793540900838567992429421829224519018034645902047526038069114596971921663738820102986027183945127508340609997904120926302022764098656111673918872997570757030427566221629300096133609248715857738703955400441810857682085911886051850541757557693939705121369191047965716356987996637830467965946869691578330435234304430325646498971319280336454791931174488125670536848209309556539609431588495621654156162900127055243203002202710957765368755117067903662112709294286367708011841478378382951115936893024729723190737172162525088814201692573840583563347949499055372846556671164076050302877783478646237814898902966463884534230670382525428350677766194658032980572841043346555434510887131362336120948845802955702585201766172898001328639740303944232159510318828083641149911003779383700106542505536373729608896024632573583061300726849806460370664283999052010999699487431826040732454018030527891569539271192601593040960423748999739222864205650405420134508769299738276920336528754793760671845698254468099066964378484680028006222552585873866623597659178286767784335606226148636778142834063749282512201095632105745748919433069527467281064369092204088969393233591995764925303113503712381473627787505904816664100405800943674360549033152380998914775288397815631902263175227599584875986988677473271067463468345784248260708661960143456163558692043246451589826820163533199273472761553048618373342642985334799393608692612664637191740657893691852155024853031936859137695606698441472695307222826571847093570281865765606181323838818894097693560233265124030415454688140402827956077048332069738789105024162292990376521560619929721331841519096298307836156725687627171863067079405273243598068744141606582348607283877791864619736126111523376515854960979604209865865066418287191430760930758363334961398100853835667650185360956470198917550359767883956672747312337207519160700509928386900244628745903707718197718145861326427313463589962202247291284694461016532177897331012568966619326381376388842944408269834651171999064718528341027125169134796072114389814984782249354510834004806875594836639051598741717057466367248058977140016312017457216051452903216192921823533704231652391571295028850463456676470174441494540914301842225489778436394847806358052743557140693963233764495560359316889373352259270304996435466306053035892793707173880447539298256202396752100116818058647446399808198464359072948443528391863062488509586773536144290690488628425283641522338536646403484714401964463819418872559081271501290481581969086428521732697098926073640617009003700296317762767981061004740932314511202199681362784620961773111589804378882980206840436687203760934231421260912754325908848632275914000966198127653157994104275379853879325062679230334874790282999425247891697628710065544940367608432298426307380715750701364990224807881027727573836066552778263587124937933358700339781008031340901725110787821919818335561477712868570967562825041754085357486861098936224286313013992397152786996496219604439340471832740824755472996762221684505979316861475833889660164690686611522739843871726882597112848562536130852296101976817566467732839618033768517022129885424734693260042024830480598366268366466006449811296090507055575295096176710396123678871356426226179800237466141585249516484510126356078038736325863158128444273740258445087046422295563734669936097354093146943171069044747407427861719829895705833350893475779837931291841818851601625617661514827806553380707874084579613819477678366607618252092088955089918815623520718309679470265795420225110244105659019367158240412867485984628351184656452219898369447441742762168335331652289898435621906465972415771855230411988126274366125354961178525875570719988819013564100170783064391392815624471332884031306551734780450494904219667465869347285679552382027633138796600644933883373995244503283807435580536058657701022391209308350043478422218494004506078766715424918325199852973199173492189722645103548907257959566587935903908533324742637653798671327585859190890223378532262429673759199572958214122651563031565234584564614528904611928239354429992714221189382920069388080032347957642979580782444870358137170083330662975568571521212666335233263313057334081677880830794233563374374440209366229801214377530716485851967515293301106878406678114892838664970721068509190981522961838534189650873973442177525637644740657414319341436012738539628231197086129674794601572468789984222105164490284974019231817684707291176673549196729978314962088833959912971351156167294408328586999774411480315586476256247062679045563997103454050187675925786928803118034509108002762677049044001267598724984430745879728169778069396692237657257878113021368771498361197256815578924469280467918681144849961632697606433891088433696361193272974884564373829522299783508167817425155891333858982824130248875029664221997392615890901227172001626384668496388345639744423841327524596637121822261344543809399164920662749017587578740057804925200734144694756075893531692874089916660028665212355247680048407690924786734693559335884813719977813671056733057732042735645108928230443790923631801763277662510618626789613768809261700485664156411301937434186242113186600225667978064201128280079139421131563278985935109134598830930840732863607269341730153955182709287745653461634662452078010420513122261911621486650052787513962133053900615152907542529938297400198291901798057536973966464750430996884011288400244418980157692599967679597182289117488827913710233103280098870997587641363584820972935070267933353679010357659360662245100136650389024176269279679174310821410858575294982317530122696136738626928433510090182955984151995866914012779072253078554247535385838389064127772813839731195801035861058718003065745977011891769847007310778662218777068284596303375391406928577635551698972387026182536851999990888847650156868173241011548258896114891353863559183189566643666722272931788890792240793205429875677699207419366532599281512966781056533987624539672160212389432496710937217674620033413169718127672269083921282880585129054045035847345167627579993215466939654672978659516112029255830963471671289966780694499462830739881934711566765859981670473494185864407210044691061600950515538970133867518644427516816880284793378945415867516271370753277280020328570882603457010682925857971600171287168156582689474769130314780582932684964125913413913921003500482881288403417094070007827099942208220124856805038900332184618248246323282176615580278648257538367597906041989249611000353615139707981592628502380914402371319653824305430441583861013020848287964944653544021671356044172806869995724899389929721008350378382837886439690122556035465475888233260025502704149279806287247212382634793476272854110861281347424473457130161214410195989868371844585901896575819332502925821877548350158577970637317077008085675451832067249034949176488748980190996222383604565579311973396149164613952784904936418486845865255128455301167610035667984001616050003720179742789145447320526199121642990239230544981294348334127981735092597393671225137642623107123626217146418298091405972995635669178984287405200458970158481629847872829654545995424435016734971300465079580184837653191991314428429242236028833888427696717548557135158950988894183391203879458784197219814151086442575555194333742053125988216023696851103691226379229564597574084628133637923160855799045534645315995876769853194394267379198932644012505755144056291794720710838916552518586473016565189699218274971924184605965924900216364039062841536474784127024672810132680134653606487827567142065645604159249964721245419420209552272411207989781314490318285983755291990747303787601164333197711153650048554084945412482030816224159125575271727068905782219592220460645884155907580382037595149305749522768716172645023072832622930807080803027653622335976920402382420322277667569959431013851305415378844281825761269003640172309273334774066984488110286453175574705466278571038388165664310068715258159396685460158740091922661189492694894066113742110202573052248549678748479077463618269836578173853126849166612645244586639659269903659109541557715862106064301467198950994743595237057126884267402438827160380860772819949222723388683253264810549570313847321473584448756462126313433993546598720477305192540122959247887209873915912021814438596141052780324440363499391760152184448336486435922113858151312493415155306069434646653702791633416040214738254502183034578258359997801474893854370949382397259879018866202075586083397759930791841344881219757454987680438534917018118005458923074849617269847239535472337536881725668115427019592314899196880428851577582128825619845758109754102612743369273025007101336505837728900921208761896200288505268366834104243180653891172620985928869391407732996199670218964158858260202620798652647418061875476702089768536785766851522660485091817219913481041923373709255606609684728126607848013452346536495848206050100274848693362559514611902552035108053343437524330731852262143239355870351840810043458527545970239300433143901962464493198966281720596389643252192373119882272308910628605060943803826917581540373369586524308024815040107822150536801013395851131941738318435111593067828298351052293292253890347422611667195307600898785464358406777194505364696646509941805046112955321202800584370748109442678485612765059910559191987340438901221768827074896996918649204495610561576232417020386023200118324020690121577036180231922330723652019915320004748764779672352079834345714893722373605168675892251524190409827005401838950411791298746203087640551953139611569442545063682391767602027446402005066609273439348626805533516735939823864313520064161447882601027432576109118134530973038392450799096538851359875154720715228695113853261915775950417684877476384602641039362518503241931558294026272458948265335647894465605553364082477893778069252644322434524122937383233035887854707088810129365591885144037783599012354193946446059024315558622538036513511109464596100364311795137879320495589876918207796411123941551304599189297660383875179454039683474841290965123491158354805710939048190502526360565892092812456092022850604635666205828720513985232123036700301034390045417373592454934020807039536441211356162184459696490514406241436935751343242631137018414152248788607046496361325044419097629532800281891161317354412310963429551714379287868809361301179020563075518581165660765806532477267240299757334149158431940071349628580475308665135431255935372678125746928330144541504426764136814480920763168123421083594392421359711468685979800170705848883316836507895574390373653666939150983870755979910380161308393872037092201575777510565767060748709307389425956445674547706132477632364665701785676933580584298743218716259495660303435865333317657919376819094970815916744216285227296032159744527672495813431706547304561423099251903255657440204172975318892648377774259348981099914895758835163669358268853041800955892629390000027578917997593480982019968936229449773022965696427371672771315775620833954109630451089852230768902260685899046215973944129030565474693360176346702675434308040471405280397366299823277296397923689760912503916376853846947467293508940611806428744255415735811603102260337016493884062120625933943406586955468630655159250441296179863292264553550452615443037830090445590804437025223125267710295700113088008809096475967712159581548195863809916755405674398897460478324154021039792462885358324029841556990434757075373309363516375859937829624137006876281600892062461498361887590021371534944423662915943904941002665433733471059984781380836263671577243232443747475166798915818895018368629079971581258782257000836034651707579193291489632089281590338892631805420945553150323729046456459702358857401424689510229863955822951559936125702515045829408784571962322280551632627252469222741535053487996755954113963556141706647869622885161171505504059154175282238914367283056982081314302527012284628078681508944052790429244351685983188282154858119772626535497126610559280558841192724241261445055771505579489656779463145467070555770063708515762438166087537224772737583192620419765850807710594481026056992778403355256888354305307151522675910504113476375549668861055367660466049298282654968517425125878586410163698393872145686290279329673516766970916493234064965218933926211978912207168799711566042630426242530170541934814972515109807009462705036681686873197757001287646739177330430366978221176179630130809613940640577086505234901103302845610692143739420631425367781868878528975682006512776408150820821650119168853168362384554478924203024361209450351187422123061059510030505196314750561942266252909630828629616004931543336170760639471967556705285425496943590581350105017619723167339283183720590868189944617576115002636161422842206040562614012523494536248515778562986972008657518022515884550747071079512986203119268535247778548761525160711444873241130271143846569153912286940037270602153949531879157061803661942936622531176938466674365394278544868792927009050123499380088451106289857076271057542583588668928489809408476426672104180896734057621895352937427907073068271639650813078597177437809213277539682699068480102386471877332367908228012296213106504804103995336936503784042031081987329766426384749408350448157937417294762038040096848234323160164476195470023955133728798283043861258075679884093880492356313259514886912946370888534755260270045402504261483880945902578089594860073043116063056846340676909351427699181049416577367665426742394361526827222437015354963167750762442653291968890415747796123696751610827868183350202308643096116355667074596827105155767574888977936480681938927148400492487562521424242282605021310870860372595669681307986944130041148280271261417073844531595816467061036781381949425287191104751944578800567446016963932128612850633522888373551873038067161612246760580199759290963330103087053660368899141118180247920487644800065397745769564981089768380509449957731625985852534294413647674964340494200976731518735328428927017338093592260780575387416161426891835012493150954817993911223584521523833876270963821321141464637906252310952366140232324422281279722745809305444366903343903410574808616252659785637024589232820720145962954484390727645442503952261268627303328740918987368070385241971591897738956026824444236175477908688995175144967406493935009650640701303903083052721148984531546544202742711443631478306672081548757580671845307048165898622385921219045996317596355194768653833457536912653021750692406200281113936697364580526109431954468949863235591636739333897211843953532295630695177417759859643334457588010478140371329600545333029920040016748628850522496690138804708873954932415530288286634863596893138457352831246663451148078397592433895631297388142576985682743440768277371196309665930248992373879998017479600276087882250595300378379250811251788656574323091302910431344684669982205693319639707390585785410774037664285696852668950702943996378596123868584548869052402261796729030922287139201638513034357464098856353436297750436759683570700182503005335005737623032779555933839599947363177330484513518271005648738703302825712529106229297365688180962717321270744462471269734226326457113157553095382297933132213756103018579567554143333395080792460319696494061576162959326808101730229150204076072880061811148894047620102973170545104654319264994016403916570761614780439877356017386201775713228195397170441096878742109120924830726322502245612844033422318270550755974684711464195748990935488610442021185125096787758984540924711240734839443328438084997393908337801385487536649747177259946771369245288475704769994048579136164239287780326764278856477528165763559993480921524416433060826452563455085037493588688924622903257010605177433099847001431063400887226267289164690709601366871389599184133893593238024488240500297431920438320330720697360550315947807581411293547015007333509016769365929739848617324816131232700655372321690767202310451104132898288402636190587728689196578311453226599244666335608486072858897590244330889671472170332071422144773702997361957113313326666244223344989680223355213621025090287249162521776937424214913521150022214220535248556958985807917526747140783859913605006133724925886192507366417741951878938471197134488905709650686502856473692759972239612816824740198815460954012685619041654862152619927245467054956282972103587139781514464208710156627391748295078189966191709560687748831469648569695048270750225766580515340418156681870177200226721277715504773385446814857253717705730035603896895185012761579100356729801312651838529746019387179923644162219097769931494751388925450677511331010663220613289404902196777875586933690294295303529192331085400451957575201804977712180079754347489840683657285085399998355301936337067318228758210532037976272562266884830223255100216484439145520046632578839879977118614461989599456423914246982491607038490068160662065637680344248190490639301469617105672357980807657829595728860606947205081045997867095457928242747704856825411524676193953814207017783273869951844832152960959838879009557611989787530024364417498531837368503560162855862262919502561136516065104137200932730613479539215510544081335828826711467300464553287063913558810393247361489087875206476147695407858541291333276998958596153225299348318420263582806478863300659430971447869755694261552672482327894399454725703735143760524402951166654583191000935054388257154718086056536622700683665417568109669579118637419738855008871113754876738171186087031074307856000835207930413964596025187390176561487809668186572392757632680513191503592056634632252481146053948010391297693150761542159459349967344432872878265757964836847505524149284172205699789808650243054152092459820203542470835330610259246148940515114850287758579437320354249498021209528082075092543323877707453889250576751717958411839219112484400220813186918736332842918553173900569746075538590397112631483714869121128379242629653293206989576700656133196556339028887048757472620814569661390348720514601204501624863300707386708072792771742584695902309210228974857024527005216965281502945652382814273096565759932114544923609379734854763461884159293740321746345108743374068860440217321548946908398529163356881349375093819911812623236887258544973266332375057282140499831151199936940889852826865147160605131665674841713541461377083644072313339132165728900941783585157317218506768338097872391216233373767244740424483987706767618124941856793143867972508247296550610205368716855883669101315630288794588889711438448486774638623212421759062047152245240596876085110927871462512262411993309509231892954483989535693032781554537442316914292499555886587279727501426946975945826273995139565659723004974590454227189602656705825458640345265253621310771579840104461078490318644258158578419239310805544448853725533435179573371287124730008269403654497430798306964205521493631551960564840995667536070413899168548543898221812973251640223800929660913211955492551217049101443400740944464239781008750679623004775555191188377996561719166063168467627451017800254335246473071978249494714244793117441461298368634941291859805431979552318906677740150112356873349852503225125614842491164070876442775815804357226927787715136440426954553355825058753125118303655441100096784813144651470043831429745842093157556399519349595940771664618654163387751626425173412786112017998547278570821336638230036238349228943527984659300315782428679734460466165127602525141527666759812153611541569462166126781585115112837435690675875780962490998417271228397153605083856515474928477017554003116228862099471407399302062379431206064308444252729356590863810963553868845798267666739951367465496075890029716577574861330888986315804188144011004204543183732782515953428536869751896680984735092155283747940304107197976371262150716061014504883655303995717828508533261135824991877385048822304959242692000071823531875951768610543232165268607403538392097494246790753338135033250828932384328154365432904466939039203784329913189897217325362812382753106889887841902462717934387554126835990441479240037628995066017420796532083289935390926763691562067333142611761950352323395473268556308823941649843866787138596937422992821493576969795335243591645086326177531821508954158018449079537224684256034738584147376818339694603217717876803603416199733563698599657572468547770251050131024574850368066767511171633518422083528447856685371570693525222484608405587915477800214628442014003697909542528644360378053754461560195705257494229901305778651244103229008102903870564477829768320904902992994415857922676727580514538588545050992275014944670405216438265869262670876527894850202024045026599058120614353577241484949370780594029443796865234176612605526279170379588051122638963682281622341101539084675061763309190028631544601754872615145125896572131442458266380729577460463962045138820540766287303045022543305413968139252179708890079323707238765060423823028314005535076410384395551967769836253584122738882088768208654545610540700694642560118163226869864215201584045453401514840298052328910594266611726753568392142157400825560901776793548811515258913346456781529039084796137249730101061884249138694349983788740880788184622995977324864223899374900449452384361798949076508788323901964596792872389204777863278982934071964672210773657941856268617586725589011173537193744549968659960984618475072050391972288515256702343922233456700243593276559934726200164938059878897509579599931191094499351363323436076263765215166024740178585576310548391263369889513507518966507926844729272761697067910569299155292309567882809255595674052840383246854662311309068942610201588409940005564113705810487720783050452482645376823824384320649859371455602527802463127285911510094089118824177370786313254435328871218098371838144849882664705376397290564811536242348212250694405255398610132144671734741776942859432093069298752693187910462125448727546474886195487278872968406619480960658981880103882907180511821210236937599389916547650091276746786995321433351117281483903112922805191318640293107309511794127160970396815758782460280156664157836193781096887240692840064370526591580132302067434829263218685538531455624415659578685003055435111116497946374287244877897906884558609533776064701595899460702519313398663507546203858749835296270774503557752419416289859787046860161529969676683500960196076959129958978703564708190964033122692249992320737673572810422573149225671856005574826768396887772668995791225296564896146363252574904686976770274079687922718000078236688328510047064418764718615191811095530899418763504326862335506519345830485381163128097982364072002271958395815778975029091660180078064724301222679225521783884641631679490153586108605381556152418605045706362789468472055069180288811110101851440330149130570985032846242038953151463616278989526883862185018411249024691678557493911267476140267068950813486658776162794173888856189126907847391498857120032283993778150080669374831488504717812085126045758918077044978163695790231519833200666468664516472961693135758782131394793119219947539339120751681953688603611448400633066170313823856099274064350279421032626469978221629744466705176235734086940335908910755811968943361100127317767183331258265371336501055060081619478245420335293591309041003296793214444304798931859110175928803940769409182341656135580786725448183438938929447476331413677136795410988817367659177326711943933131300127884505559551918267755822582284983871442366004012607908259299143004366595316552890797608300805238310609531184180724679552600276920946803923569475128699151655944891110780241822727400136099750311733918619437678271858410087090612313787318932438737501267358101669017617201829719047973127246349231100287653933369362233050940429229875875810773783004636837942429223423049327680945475964466455156415318215156527490714959635781838945320289419135905783135999753177200114989077891393663044928918803274353142893966156969226765695255872069259657978561465651052823008010374953753244177483055718569665720545759112528471468560282270733732518215483118316953522301164774679923251553961083378688363619962325593581211325621951124242485857896158102346489429145884703581480960804814185778822330474135299322859142762365285237224323008982482749881791212146679911448981105621299593732193093020377039734671101146672772163461248845988372220860605432733717041055389772482743837456065270981463360845693250903596409271307851247382229346716029548330319169476151257905680219869216826755337229690923610706798940509834221872548387114590817652316439673412109509414989307540213459365535600184270862637871752241372673260391480684753786241266260887951947122863230830930729486890263181325329701736329879414039568752546158785291081290279941153577448445342132730145147536409135644700659049387839941729536221992166001394266037762425468966112786154823850295782082079443767184779543476849831238837471145675354256991267641346673850770120199481246070255996516082378967118555903056181510398607996959647962076179842918253992324834074001051390711290852502307592942774425841717298589807892255425143838844117901562779624816785208879186369138424221735991521168533669928531326271975165447971156366583520428869721653432468797430195594258287721706604886393209950402218701301996339280382402623088344226993549935580767068359853165952346536961332305874252395763359518019320770181156137128941688677925315844506860883300810505551837024275959961865255804764939076838535345915231669387930883099401585504257045635172472574472506208795940886219965416842075472854036952133641908782047155715986979380497839753911699956384506931818098855448820531871763569090669035594634540197873709496206498348500294887294710741918361676803919983368273224843776306164791319775016639489931409655908677424181578008532806756753611377005397130743575061429859592936501504787997222552355678364927706150968173542354344336958040719924362925769163393940755087743713478074763219113597873039150775626435118607451124485449393172396131665942434687006968889076070842948529302717660434985471680400914580086139702565988101982901814675322416226788450747801617014713845517761344402484895056434803578143401938275597670856291753342543611155721559026826059668876650525516215169088668691755426669343872884923667086909478385830988278584887407553923555304530756311086614605891258688401793222101375997483249182879356256121001823998993601214936763934108044694242378658944671634515035959630024545797660297718973218032217042802925592619952770714279104210660121614887346674905603363223675022864830375406273462985710612207255578028390358217799282346378280308370552019273737304862536448468753034878398510402402851592371640722443424861553670314380685493494205592295968643225131584825084596363152155690471006097473839344515279368993203714826542151898066671615032028231793518753675502172785763319207855893984950397693157149986052599620957418411216993050990062945066019227203153746325786003858544595170104208850043283424293368794434961698806698869110161963809151538108196466193298267338766885002714469386195463863973141158084506025454084669023913897788214825083554087605377771892814206528217941137476663481049914498517338131815472520989070380237950014351046744918434683652490507974315250222580922181236566558446185409246504174102339925421431074635664603737808645438036792738278088744394309083661691864616775643198412657863700930801715010909208314831059157833996138271116866043924601811739433070491114484104387378501653653161889381291879667169074375772077433151970939288945962116478240828824038358033722186256377544418435185409346572647046341046649928368172244596712071568731259734592037504787738790697004821483756569985192666817774120918228373027689287537505415106535288564442509772760156860300288555825524838990698374836749660707977892359306308276426759671958148916198804148058482899906836062343150224727583926610038914659932094664181935967905141777117762577087252432941789264581124639631057045490558466953067254596475571147899633930002203877354437141435599071721387090045358379942024020211203514235598958808410929446303087146386621465112664582555326643776681653354412175416401883853866418830102671159369530568914041731872799956070533249732947255504413657641332614213216832766922870956622146915758997011312523106813296081524553876335860196588085587994281442962784494347551051310081087230667405376483916225255053790089756204742844346343803153285584501039519565779479412662101952667873845957590836704552004844683756556543037762224154808422947407905560487334652029312230730216386729904451617551634658499744334112317831249931054208630044155865819638028644615061640347965670197184823563101623722078787089281605603483224389760832783634815642203757172625132794992515509641713975566673535930647191730487391733095957719519712590700951340001043247160443605672914537127943167058268230996832595209972623810727325198153065265568333523643193043553039621600391978749978719706544634284900069158243013341995759821591887720854381687684924482384482329066453672008163135142738557616708812916836037130415110521817774093214975558960173141566190008062023292469776994343438412664892904071767601494520351056448738611628720878913115414147900768540817802604682223943766036959544946445062165603208004690637681916409001137842226853996693124337771726969309249300238616434199645769164874737210704894762392762147048483209333984021149306148924250363432143719265885106503595147036137167906865631650472713771252567954837981770745017439015473208042662679113335457512866439652968386974560429129160424501718054445656190718089358387351025533361013204904338901823863470041243452511995903326299119202039795787838213881629930701138927317146012741486312386854479930934099810059987198853263064582884506836506422696304193732163078364322778003772247890481147012596266422336148625092010812765102428495849761058845342071625436246643152976380925711223738535459256626643359484533525348442717425171873480298516437591322606451324180615363379790036213179479786222359732701047676515404358541384481287273446525945495085600742583298304145410363551974883903914891683815836179938890300815599883719042220586595288727774470888078605660034561201457101350568490340756377822588104204764297118921759888578710896971524397521773675786117361830048932116214827805951505811021841292304746750826424767640771796090215464732668462504487101956101469883854282520960190628014443440296713404014432976001160269778848886324315701821474077700007233015879779745183295809140166878209608201296214416595079819838358590282971545062907678072391880736971784680629979812881050010305570173051743081702613360582016835987306203502625985832758240713584583898971665360172685792788811050254502946762622858998475919955464060351409873681424250421430117732550340715471203548181775274005028970066239363481861459036092027644222072765184743840797680495585705036268657818682373851825422292745979891427673047826654156025190236453804055773174139286304960708214176713748719188693798883810673510524800037079992193313995966806253830423731725927418969282710595693357878505101953460068305083757334876457539556805026971839190074753396821550918529857346795323505754821937524746993569328077709197012729189290372722037553642049446729805319709210791749664245937936457880688030473346089526103156552158279917383031522833633530250701281217023702928309674037017082106322364672928352458805345894013193432122483267029450429274374432115209241035689933217026779606419869457106181418702722103208537394816339149115668227729155213167352143173109086057596727605765301490048958232128877977324299031330966028272382946523947794716646462578254961225290408444306159467680273947197111644177130429536043187280221241626641502974676530303016505354760802373702792612986806095614920250003240820432460009687505322911735771299262218116263211980166789340108370525132885175102181400681611918792406106890234541195347064296119794881474960465720794866288146225396010720368009190859726080935805526009243580441833425903457773214932450867544042487467841262722146019492935035632833572965841610603231599901083381992612332752789036426687912201926247857774506080851141094157629591899118683514168668097755145783687554174229100583370446008757513526366195928331635641086596415824796952870095537911599081522726709168910811517268318457218788952612253277730098722859192607836791659081616980247328207527124080768500361855839095846670892065986633078047948794069360815554446325477630148351851553634360392138636610547453358298538621691252563051322419770930706491414050376568238112196672055730934740602669472540616189286270151162461209361157180627215741556672186115406663442161264195062874353082020056478897786487132969967586107346236456595162792356620504130355344647751187798689011900457039860523073622141464077814979920625224036926445864055622043094149400202920327017381122838962674453357102583530991456599821458631866361490314946084600108580715776085020819746912867736800092723337174781691680783174038029326594864646221586629630837578979589991633384740364265136552191967152401250025492980678231952482873231908335655684332228988728981082940589569217492742835521449065977632564015560637742013066760755896977934892484792277803141904633993635008647932366669982697295968584935798129871859878959431320047894904929807188106296462866677147702627886942133793567958612084329105583611860560049356456211019562340159695997240308631362914388365899524420883212911933214118103067039668012119209199936791500247136228635705238351435358524235475812645536671229312271600307234163407833906906640377341373341488274362103049029004023325011342614334766684238699148004959177439780961606376858262508010053280998786117994123001519274603264964086820983208556683680677629296792863598593333383839497785498896424673494914516895642207945969753450164001452392520734374625382859746324411402854962546390139214143154832183761316872580868948641923530225195758572045489533795039725028395718729880456866905468597164717505800055138572097623803461799755515669281710791726108573990427494464647463323676252183620427270407700737863728902628029590456039978462523894000566111692559867822839610950542052807200497943279464552983114823691317732497570193650285248234522086946968114301951721339393941367703558441350342340078103944372629952039044342137812294142129521174061155105037266592570675585350711765549295505765919208855369649485414732924327003140195859715289993076906252852848539037479826877714917501078098611918936293964524744743241547437089383982083758427159100753054974797270164159966272550170019755436045789048900544545265429289460958055797793351376632720485765574200334631016464435172813894086653094507783392179787740721891646710255791787095933837203737466966603775497511870387912261067598997664040201610613669980240222553451002111488130818073523421175673245763981728545387330605427726603571286101346918464785942751780026782517925654793526204286561788369929252318537109647211228993249036761842699034074308456735243269922719547178574129962137828287158497837135014617122083002551050878311046844486788609147339392188306984800986793797048083629318495101153959898203060682711386233665583968233350560933057516587957179909630878856690539652332236100872572447526709977227914012435005132699721673738898033527909423520163311657833100816322872623077712469506255582202092688577654686748464890293742750799495384822475755452233141683939368552032357243005045373309117723590385160118550032079552511221439239853470114271548409771859100768675100381995634086605929968928148157422694578903784366138488168565119137431817776779574846872747109254539983913277660411720319352414080437717989211372009031375970767018133064681040795572719637800830291531477653958139644316938786834799992338961675383743285879413500344752497135461927171586343159275143192513985926712097360645359849729119449971053828211766236861031100912755023931326725750912151032742614913950666285310096107669043251459033595514997420373195965410877452171508064220867065444857858471901239537866368896308588795229122375275725457211217586806456916663357738548815378223300940157187656832326093118935465944681566188366010335634472868809447868574394338678363461589894972736115498711498570256956835791499790821802638457310944220329794364544545051731473062276062626741964931365078119789348850610310728043029624174353691138166095938202205564292177467431188182533642594354498536090866720079822166635044039083888250632231701058169714328294095860400043671702091325866209940849403910808572927827459207743064487561466577069488154271082985963653993557811322136482909149071087814749716767081019367620322487167479666067651726315387555322678690737997342710481537267892318866740844802528153234269807417991699581977673061600876026453396356007460701760820847364059052303648371882851962204784290050516740508362017642377508528428863111825249293547571827395361067669214869608804837824242724004455671696693370277865426444385372998789316840910670633263808968134084199108729341225051280102533655114527469584319926605625528224637997379509628469622425079982070529260661635959920714462011123551283454452837575648121624960019599190468394430525799874099853028252451645933396587102381143757562331385627125162426212669323066363477780496112951332125478945605055229655754281977135269263950979579568614166230797699841622979758523847882433212252759332340292333492892808055707567567962043815047109801377080671575195957868737852732498061244733496341867814323986841005879661534403758413077081686982551888266406691258728974248625919550546400298334026896746291246903646193895754129792770137426393112771468038976920470354482250351002767359729235924975169650706328380704517739066609340671318255801836220081445935092868591772548418159354161317078484499590202294380130177281460685374274341178817845001110288424794045483129766540512038109638784909139232351613330702663462828788824493116833659969065543839975962554578297230098823528287895917643714334275337110122136793821729753042774605421064879472765928370371088449010602848532803958012140803834211961937102235057350030690817830379210610406276353294220230157018813708556612689815750183803764660555307323383848477778640358797678794601464478245940195404850747972998991713974216368650172038186969367698164026404538510121508204497924676450779145465342367355962493574828471940317184658970662323423937963755124954561261950964665226250860235467718432329122002584602942564982459800337322279579793805342894623421415474101822762716852598628452830709258306870473492530450879858202317417846943947638997701350926998650012423799887148950668142551022239897853272619572849084635942963923875015307859264055861933291217116980911041364927454163986535000872520638295281630705887887229474727690340789725474231119536228583552525844025044621521500588035846586111526922639300973459449120367134658639061424387823368983699687256808353156360442698641950722904652743157292994347556326592201969650571996885720950238124508303041588939763317897697511913271773984601393127583639479284656286937282679593227588564098973590260102392377281941380024785952250094518935531212061168099029317105511134778951596502201092388636351609818602742693902559967833536663216001839356737676928783087014047487532220941122229124269356414503013560832780338627717441075566465334856183327040168876503152379418236008242950259993758273122236668859472225796995733880022039890985769933431720463475774840819675728593457882871625349432027964424631162300819144914852751195003489970351072447851869787693858408005522917990588571810288854290112568069065793711833142100341233165850592597627609706738638955360366983091995385400001914596907925401321988006982696867032086455294092638569197083988812072627996088318874357646890227102767784879007221274499242408462375244587517548714547674277134101283066019403503606876065911361044444995944708950482673222359536045641243858545484795835427557184015650442994583004219836531438930157397801487668656804464712865610832564371481024692825384016587063727604373069309158599159768813383729880595914739215022673069699305531866833634318269811924505943719411222655124034565904274112354131347066735629492529551753455711789993175613862742647848185564105576098918609340708277130897079126810898601097993920922525459755147380520671139314767850935452862137123833762730220362085052595876698994950587894883358904312637760741850506798381991965601643633049970842007765666118703527675730058989276907591026320695053237185035286151990522039821230934064306049085074519531350993625716702035205891414187589937006378465881636351933063963349452760443372647210384595605705175961445899042726399574100019166795365808517059114902930731469057549737348525396434663749380402407092175113639006572924649318120110517653655472613568926088229955059095700039208554579524643916765596506025365639661664328186165604704507952590022113829701816266037226854412930065139106745549454597185420294452188615196860594010319439104976320260015543715513412567477848774292607500512350360489059493975307950985034345922253767487012208024022172111809340576211568019480832906153818505418830777308761804351488447438630402123524942128054982954041226624519006928703561373332144021410654189939762506021565885625432389092142029152792325832192557960140715210491328930134427946876914268713602732764942707162526537418962244043971330229145405755293009197607018254473465440054827234155888399635298468235877975005197293164589187356764549432200871105737266127088329250797367746163469601857178224582088656650749285479284408705512086132425801955824018301571130385762189832327421183033379515718005634320658233744637975548196428825761698414178289029796644505616719369551971471129889542188982949666287390736531761164802727149428457118096354169624264722321170702794144644419474524616915171882944550749758188140903717400433092776103650446567971145218870869724458452311257698546873687931425680713756428434269697131191094572831013628079411919948983639680662632470670063090732958119416320252498114461045404053319579649819130408036415014924648350149090014844914257059399319992360715307532175454038850520887713492970896330947380900633621652863997613188647440404959651906332592523954287165893801048000443356795018664966990420228599300599860301407474009310125237886935937893510156100662122301264987759200497586349745027899593033997399032957904910778469825915487459665579153541904430799113335982430342570580983898521726527027938304986148590536994232971264551830120064902817790400908854948506555950656257712947268880892790292867513289657958658052820972899272363047049228599345444705777107427511006004100910864087160623405561629076710630594902756698745939112022317702960213749695125594540376052332359948371670559244863961965217697996915903591046706080016410058265025184491040026834059946938025255620734900001165629068712320192251654173013378973024752541116231289719837048998517612523706010489093827606372873678041422000226363120149210166708918464219033137189552542380373330037935171525965646951382947687572163240916362489673717498026119401954321872615797167868140240808966898085202050058187564058590467933926992633026764218926066082832673911449353572999598312960620240873855222526531173327179374655776149531141000297283682704867049396527042495633486223507693785239604297829586231462216524440116374139350862754600158966490569682174280239747601689890929859478171607568145630168199705337062697521444587336788411685364451531672754592458270002889781453217042038542362384174900920452801612141003929520455969521737719888482014241744423814374011627092661105922889400325984926305979329778591198411499434650410329025919826255031387120802919240371782820632144055131952829630596923434862474353452090953345637703049973708887102442881562792751548322189453544669511319765227554875369346443474367925297879487407711892372021441900027581087748320932490126316059494366875935005314052346826001686990275395569307306037868454629635343628716097348305110252831893917727192416599124845405447548864235072307793581338819478350150149056660711596113860554204931724878909937561968301177059564902121322709882240599516240533146424240107748788017369376436813418574764281196027128501066251719067364211076578769711140593110677198119435393909485948487188714893890567494489941906589143825840723982451597010392242009375976570716003703919729069160011505160676525924974090646386150521447482221533683422523245361587404358375825691248495408175790060300550374972857878397002834603808532831498263701006177677939844299230520119608591345041895545178523823409949559920743692766154863480407932377974216429029299583311353154737193749957160568574717713151156657819878274615271057331571377722015524678955149107456517065606882520339263218067992993050298264892402952750884457777058317796885246670868428793823506008512416595045396417345937417566203557266583600835078823882966952039378751457564374290801938792369090834214463283495686042140940108938345558789310230068850343500092387851375254096080297945721345788107050044266589041456843608721581750151875835884072419803153001790032387283667245669854514306441537106976063379192797731423341063564488017225087427475983397438279858563997818107438358649733289888623208082680345196459066017355544105915775709685441468629883206892258788603042716427230579686722273342482552783521155331551189911009889092745354694192303523296409267832010297469249187567959637217390554438228734325052038023107114306355464961515990179593342805356764039717359972667139323676283708715642117198106586245885902681990439985614826634040798804826742143364315117205048504876198002059283428972410361753771066496065195008554454323316582549523597685233579888631864667696608507799898830922326267218500119060768588214249755604476283565092061274162216202103875758951319469944036598924253428612794124862224603681431427050732649812462944130428344546796266364867422952894394015437776437565875972733775491316260316799050375588530940830907221383813318840520171890253402727780035951242885892336138486901974833192667888057995103074976514952592508298081862119006614244457273432798276469369027701170505760049706318600941267580305452518977281909486044939216228594916014342402362549154398082638163067475926631584877545929751715979175972096194292058206464511123860687500088457440636174959839861737274944950236373993500881068063319893269925096730984630615699760586813792846781168912437980570854669817339366394175141682908756718541213098612371672078291957260204853555568646679175227215576764800417669764068941553126175244218183212406015644514257047989564054098802389318282607303436452653354256700341565449676383427354263643143545752896041262896730942524584298876791762404095598258174542664186106896642625478676734524818653141828496267558859502936381776375682806912295969224559913843075898613819093399137632949590321116924410989216353803336012914237674127280609627525299620634652474605093323030435967647426290119030461759561699582260836399661887727617357571772555661804082255646777732408824966873823736615712838723743511122817298254485397688618398213046574973732842880014906336980456905848030193916648023610549055923821283826271353242792514187718471396781632023819784175459694545373089833877467443454369756895189519702420265674592395833141786296744696549421112475414569385690875687476834975684108100084439861319097093131853382551712587085286304691000241937111596963955604116268730363280269267195638690437654594835454031946859156392906018074766443782707601477567005455912805742672477932024206607356336906554772043697998564676014996980393835136767117358464113693143228194013502861215516889750497932774703209595275710929745581419061594879172255862231704245787982609525097341905164781914682877634400606833091631689162826356632225425291618135211153071166459442763916192526566785369760527772853928858019514953103542664558513494262770397288997790233392091146458018310328806114609245463972207976382196304031140835788311409923902001245047105102965306684996056058459710422499070670312809335176352396018950032614425075819308662089077355234235014698531813376802214704594341000505412809284831287043748189099594182684044876971713815651013697233016342956038603975830076772164962859293996363255413997060560389279497361854009483597793189041471534080262937644188797894052985716119667967448227789164042743049307424075149199039627551618362157843973734780313506447391036782840759908465992237993945819929436969626480162905797356727907186074271042285860136545652664896437901992756730487524965451498718320565524680774080812102066195700326126148984870898996867932916267132415064750090468962167542792403405200670389645319231529080346173766228458968340400144509422216951379148897101033171499632277473073208313474523592550226745187151382312861228659507162958696884051822910250551243247600127494123957525925342449487174550988605087388764685943371258606553346346440020576361008266380835742774162890678324529080442631570533891320369244269394202584838547474952752408113243859560073271972413767093305298288929812238607085429334803179380412368221390333913816216869522192080111452205156323597334837527123089838613129278735033670394575531184672372112309460289977719929559235249127166343512699294579552638538789575164437459122448361519136864089334412360530083773312883004140171255466609109693596794335455232951753724804143886513077139883067962721195971581815148504742328551205120210531350689796426178456399622060618577994637105121577172965960349288806349356592870064572985848204809546408808982651190635896285604575913337171263800358752347631017910166604607632533828529932279075646656131858331606871775748900994146479341612993623585053175333984303996044237408765740050962716636497191944445801520284009079953818474851170567691926720549373139318403218346057356337227418329674934628389671585198727841084098286798397643460472357524982743924872841730400304588796282562816095939313785876761700443309218352002113444684164562888401423151641286857297632493704196196641229936006275522462842475621341434596538710734119515661476900771407825607894844196125870122952809748710699791957583030191237344201205930865566028141897973706909457874929588792479035756087932837882622935355459834187099046512676073503986278034936192153480094908450461672409144736467195437762555459960525916251423178864493734242934035998134255407413778656284063655734814977117345917106182073913728269265121607230338355680826093637223423655444195002036483241635236185102077302846276762495867294604940256309773965933039194636571025832094877854192534148182411466491752626497752323659621687839979681504404678610694071576104824513478729818742139109260032417041376253665491411390109201971494228142104437140811202033753955225846237478066566307859283804143236718501795693102079366619316862466069119079943850844438125807202618354822836670956902255627772299751153141155163046647262730599334554153769756176854627522394239533480021208087067432532453134772838338469002179462783739938027176996597543053126162056464157684376071231516860733069314477047241540688528473645898560795240749066181093747449386328032423615789209713315473446055962494233295228876440096724725126452995762104435149258596529476864823092363023649765621152296122016403875300112946886635499378179653643100471159433867446756282445573034779321886327876072870607968098268857463357548079493596583597262957236573355015137708277227892814562861134654147016009236973393699878902931581466336628573092173859395509775828339823581475495989971434219299556275548632400855756337193620065414853308317100680279835177059619216594111187494347843641168209908646895960841157423008434311240156502788633489018011118172585504565720490123902986528192272642041465209905699227355820639139398441041065329108717715876512862838536861707926679557202366660402432498044692274586190058850371218413635215068203622919115272723550301610763617967303967161000926167451712652047800578412882652049571744558589730607860084126829437599157253083094769628783780076462972903722928221806001189464290784481261789146887522118405926872821431342740255477798280462821120539376650649891468208411638911926896221001050011537502394444956884809102342310066113514505856885358067193790300075363679173355267776358923289175048494744810525495859306290684456300509639424605586418257613109133353990761060383178887321695921235319117578518767891292931740941408208297941155786907816360995683313567426539388667692895090858326687485831266008282672074525879911116762438898374024894646266930700199672900514359233123233487707135870054147077382970936603511696070160009291500396993360523924989908041548089783514987148232660567683529922291121089600412583938295986120648440482714740007728453520160546611262586984316703737190491066176532006474560452620868256938565022038824887402446923874888321890939068145631905775009211766186005824491943794403464134233871112651277112602555335959098048743083524484887827482277817230052135063750122761081779552422833992456582872401932756668591780264899882980087141210222081635558591486452178962100807691167645405396609730880648957730871331022390717759070442892471349650186621498220773125070753113755646592045037389078697344725756186793441347755717026323747702890331094781948419877269106459092453191138986436529545098798479004059280945778012353704602678048666536771485037325912642494285328712240241204703015313268974115949902308682063767755474707294467645273213505154377092949290377687579296382387322317299710180065025126501762036740664083732370992844221425065069537969072081971617433201095796131449449011610322900478074061269376412237650506980191681584301518959496384189932200446631121321527045729252265409340533213229237873568345598704112289887757020138935324774399630449944596518500188662294156934627430675222603796794901671034888009321073082667555529875406020730757145703542337446532725751898644516831596418239814462275383166033944985993723363470474097113434815626999193525674072307812793626768494136659189917848259128159448630952740099816984322196863650834640857323781737362148966789526343143205147429228981773407975166596133053679998487362819282480859592285796334066389820283053342643863703101722553744754455408451236173970025954786151810177526549445210074851116590986209697610646788322810107374071932893360576212237552316541156446636752161869277537046549391833158238940074292139305319158791415401805137714908543330633977323752114126618200027003054060122337964696542205733927731681511364571863648308553756812511748093195790361396953655918048830628379942980698231847931414929036889812055603909995767371633802329724743858127764165893539853973312398208670525242629900749750340956532980540893240771005846306717391797335258613002215203832808748529547631316128749686937142656464133863801817583406076836325808665045597808740226482514656133191141929770980413964582662891663163277613813965838015728579762164273027419681073312601670191526507775830672139900235932975763535764933266270519116439102688086267510395606257088033291944835024623069834891021363875561173509547485643247103301121799059053499657827990804984462916745579997561598541502676121007432507928158970585457401949229770628190481069612412759059857219821429897611629500682700108323359014558781768386639739096244427605430643706340173580911921734151555210644509167969819431774719299552749348502501236994257541987543005462884007682932727506453788112551593043720541348189552813624644616786056651319064161438087805060057277491342244581114709433328318106925144834620336751534560222605302623892019671792206253144493502151459152880297202587626611118356443730196202521944810393997835264667274224081257591223482163940490423897672164890848566703320753029567083174443086145059686542912612142132357762073166494461086402199874248750256724468338036492368104981205507289783737698527251617349743575451454978022613143839581900206276989351104178056923055581125391487366776165006185930446210824681820541291097595115239055918994494042279349869965887207918709771962629509591469501445104294836286678457424187006028827332785668513132579710190472003122250253975133604437683322462403386511245488518035482617724428032772379996170237684115019628298681114250764961695862714793714442610755005464033322157665273098662613268525209902728084359453643597058617608717998094804316994189058072187311865597713554282678016816928543499504507043625593498406823781280777453880311301225041904920624514501700731683632095219448547890473554948082867029011546448299336613881456181067655353816095267636518023817302933567017197180686143634085872459826280200447454041208888834437666979999113138096091388248753600236673908370483056251622837367136033430614200078837631054038148338360339430894512485391998183413644615064403065256693933136523928911677405313766883384643918201743441648085117918936673056470673213877649277468180426444736452850956504921867379711591105964323662875850389316529204653238212065239681013001009142932562022913067617279970848144386703341259799717737279814427119544961119283301021940783910894489808739758505187508008261425601148175016927219299245631098930565618099249574505308738240570940842484326360935092942124222174860108218640593983854383164314555101377465938647952093931327141444823294261460678504165305132736729017818134603175376807754688943577114712924367528545756611820376757377808537990489168529403427894550758218108660379168562828339906686811976595692058479310736343452096365458395346600244806396415000988706600357369089606166397353170141357801179987637268473682780084926739786533040603423127010025470332666700139651789139830370888778894504867051923926557500861739273772851845370634721565775043678956374630917120304828694447383303865023453937985472147255236735096667680851964239466063016774956207458241416079976382166076700936594960782533370290094437516522528772313310834078195366902715799875781013959558001131792741955971005376145905060479828507388370965874954996922332530489733647083802179298826380232097748911822839900388885114721945217572929252198888951900596238455757579516206093824863796010531639574903446121339913828032597931104500670442441893424678686914063957891468728657135564491645569602356284687779233112936772471445105482966944719694454657027455480759325240489970249184986467628574261618457433286955305855676185082522503243389978809697737908700317679958515394471712601428412144250127767498687669989868312646126436260781252531539285859932416013404446829697827931029529973872395551875311324917976472289463242695616901409067371947433552621958915381316711441049054951445895124764856602789116568333550675146018992491526354735525820635493053422214676587354997544095655245585368574525288351256619850275210007315278137092982139985120815363727853143270079151745987281418468522837181579314609303265573346223831861377627547667484655778293780009186683269251135121494013891252810093861472581009405509201764265755836695223604468191440137187191942140336001138255667322532069771016089529811321302449531445825944836151686684915772358184969242970241843056593143042821269271037643521959060231199329382735516330645870764517032349332836294603881125505752978794535507149220605464900625439514596272116907282403909845496211945503234898964845788599038248645816873216409213273589827067430443386747766482852958643105452015930246578921070846522456830013164308807723961186931434616570765099244478351677201787518383950298907328985810968065213144802944573636704297773526509366992521811886861150309601606233351503578291487887530600182964969046221505653238712372737034744273670682461053850372172436233365395777043301574040930878118764551213139069284322575700796148954877338599051897057438261160241086455602617784101461161592353585287643703759809334700852988362836633137607745429641350037956801569263289414564289392571575763133656825495741595916389471315964061540157233905338510756127109073787908991414728879392538256735810728826596679271226044048306561628129591627399887374443914427618583994648436850659164180691170966475537746346258077893412424319114465586139088016392837537860214496133722574993587557995259806729015395004574588845744344771789747717125662045334771312960462243145638568886209791715109754380850073632725192295004530552047646532570187254794321214866985804893204736054857110108151008629306231605158174380298593339265656015142762462575827289120696727511744403958704914445162044226221085511382067161120116022996057393819261711276117542095645698580104004123779721248526698426460435503049672872790416370821058229450122134607886119758820325959526996459585525468497251163854141394211965233228537284366330740808904180143973955699274561688695048091766219884031742514808220238351728063894174237637009147228330016807485701568062498369100248682973691178697894601572275325031144202278768651969609698843663160504873639962799853529218481859478007584891219816158300754314395845668960086378830940667571409880352864276400581225475729041349158019762844975248479313869056741115737495225674046258816845779569079737094104351397673010740371127537556646313765422979712247267637615492613425682635865391300542972119146835666061203011953870605603322896056793242582256993610807618008932527946304086951759077208997323314469104962758061001953270143514536539511201900999185955674782009952038035402227709955826319447728270495183190657751651764114295485965831276246917731859691532382837678467622849492746474180740857227033266597333354950214946090685123376189920592511416762548283611115283557823541557396883329920859759533720245652881134997642769020172322167540140705091025283626234869639925567326401360414336028260373407940781843130755851035994053532560997420981606370525220475736384592670207623673535034684111754784475943299096401327663564277719324433359980535471757366665764819573968321480349949647159909966650208742428925412874199603407429692362129753309743449507174833555002154915021797102282543011245498884023633747606469029198272467657726925123067833756186890231888727640755844015930439496386718644148552714028431997808584539530492233413907707011704090796358265904068800244878785197090598511279936860113541347926517403796602368998959165166228444268333024236426486444253396443506804032620220509899352720072329612291107577503143120114747547183388954914414168185715460820690351863802701800875233302911151787887141291988206008228839955809679983910636228035223116044026428477387110855953972980237961501820658745427338712057907961099961528032856715514014422944597977425272880357918108376101075288574915947801779053379316416919609272270134699990932427135201732578046450014227988215749328475564606027435572480422255856652091354025005501206282359025518417105632383246018371660539690920018945279244570268433621588863847266579521018519794223549456315649524062855172646119547754889423657778541255561709915960035220208632462330185748153504075215153313150902339523829942082107515028900931541360414118262526623033534261180237596694605609870153595423830073530662758328691346744417410239238994882407410961042477310742434285609940318483123856014946813054662112527335194242928593501855499142695369030976192658243230240584556589498678081611803537992368818731517848843372338018318775470293360352028886022828204533790237357715813486709566088622997058795495235140570546019773603033343872733944849435004205103774367679116682832474489176206774122304931687498670770206537124476028392727755123377347086701159177750455310227197606397276764833390738038724979408378723665205935053663866727837502852802434766007119012989489880717576766623646918291780719799120839527132819273161293540563079458138159575615692990912657259714114355507133031645893395061507252167935336310812178883277784842352273664631357854696334905683960396000713452545687043876751120167315485393364484133832626042571629240922520097899743244046448557686566589538974789050845961223046620729305863008609927026525941960738890435137949515610280577066321995212656208449069687420817646730576627653840909886627580355579374969944015241243772598410503383580694857409441260141197821629757647241124978164595767857780478818212365722503953867066678325336632906520653535823678325661802105565471208160567550014469094652861815077318401823803409887982745386265949754045341130144877107606537084857020029812763522190209453196056825261984444216684663493419379875644857324084277383921562251773336645337497086424875966301167846477797219354012344163240394377317985572166710856876016687238038108676555572485251065278220056392432459789036661674978692758142838170776050980991382675270383273170390031287353642238477363310190176889515414630365493364248435746428137741063948340654241368108187804390138323255907983884960000445875093696330125706492060821021321404469364770950857973636049804492908521244917354411085732549485744529186587477739653703534977551283034204249294629433597786516029643375609990458512932238476381653119530344305729737676107268452623281439159558678114998450134974575390275002179833260163028951446393737423291656915126047558763278045261307061613233828636900417907710221662349169432216556518100667066631888881853815446725137852101257791112603059938936216058189871849075017329662207822324166349406850729971775999984382714700719047479556044564736856111863340672928408879487745383878202189865143203862255803836561335726796810570027774643563412594417100923292128327569200541124113234427085431537395756003582319460407521552767151632423647489732598906626601103168246575315721672265440058463030254906345996914410150079458136768421884362559620696756114113865330719692962270505680141511927395909147069827281303665898687395340647232592772700773338706252384956762802610524771644955682454519155851590083713945946706227813222212248422781599810765331429034967606656554751838171214801178326209056916639196564254676386173256717313290304899012258057210715400330559074195373113061910638536325335343907805873633465081438554854275479506348783933560483587768869290092911622503506703852140643647873346214158117020222606419205548349932720071127426208013072371490808106428444633288708471728337916308527983702278853880838956575358681548107689256094321680082770557459897065913564045532274305079585673948130679374436345886360240854973514354195990622600070594704732142986156967773972959392992693743535351700891828505556937969645509110713711276924136254979484009851601917921312619113530889376777270204424288121001200401505730545139165868232324815218031849174426731986470648593202193747112248352135629109302935496150529420629444521677744003706396711214055091101704630872241894284959316258164910062227030595349247479193366110604645578677648125973593135177933978529733765078632238012596526220048395289529993933085331186898082781918033670668813262974148468587284181355769021621166683193532145519979029848024913321105558045144927130198424758109807858692718944958566040537059197941329727892675978122204915152009803135715740815599777991437043961071719405101337546630305580617453126424531184599685811726868102667782853251091328977055692140917099444885417776560042348913078861847155991277659276905163414527197268182247668296903957708430927784761827734609634479972909585953627453508189083866120079829926441412469729234967072961680044994773517934015051060905444646124769264032832272067860539805040477416827433128098635311250026019362430615333331080736152215412632775073594367352799304369363896226634313834967280975764714016588627956321889265715951773469587101746514743408190739710091120026167153080226873628015652633658139006981071132974517861847894655026710029029645203019612395174327654027497761570908106252935377186511078483693599590159214425758813000172412523446302930700140687729589045086794681184148590187700014566527821110563480487247136336052166575917207421909050764299402058056155566630725840607772438491031784903501841064525873462294223406496379571292433014038535067599603016188856041718606132531071191698013646806288984450873704270938604714385303803191458486108484524723095087969002552378890703528728423997733837051125589736247986810379043321787205630854193673144322726483649849010745395404482851253000690657354684508093762825704473348461984879395058293041177996588688290405710758523380338895758212506192639496628623053173502632847676187904021791127908424488717621846789194534116782668388142184284347690504676497750934859795133154030306322840990977765533802366213051285313450939385339273975780388721875348603704466328232948496194422804779372239802817142473133085420862675265220265131545001706048696094772481183007348902604594066972394025656134835181177963188818211778783528869177197092242105497806413520005954200791870618783776708318517214970861511204374752202797201473582607683259453735621393028316800645813170402149470128022657872251742031834844458104876138002816776215181769154444428274493042632772128693245685818087431041697471033196936422306817421152844699431339579187369461646312757120727677068169581762474213334414603959625475528238155359976161150425055983171853324089382232566601923497905191727500824598094157208794983846727716240302588286589635346080373256234053345818297737669580144566907670267847555282440460757725543456674398889744835921843948258111932670624945815823795580471211258729580728978753703386788393083889384849285601523835941123449239942278106284407514842359032055780439283190566617220436398786077808271448422711029035754031687983283612124892680273145877691210161888120491316800598362486207635006531120405813515862406689684375583328155835716057718073132218868700265290019671281469619503846731801391586587797275461880680416745605641779138682240985077019520296406820260137704094219217941931645796809944921233688027030868413697336508015422771787965753383708586023404076386307020169361072998276937663467385328987600333986045301049213060198242709962752280814493577373141133631468615869642617661736643239787788793431321500728760186491105751735748610851546278489421144369109448960560003897951576990139212315886150205320970769006104371102116346115635705402648296474271526679451566505780914999777121848200862600088047543803209748104524871597663453492588219748722929797422516847178466117881238019295227536198470170068341863971471863574762690240935465839970296621404763032476449249077966564129087927498165547579624317670477142910555473955379060972495571787916606477481456433031843890287032649366702336622303114928545563192185108816538326652018985350121136690816908671771759296264995944997156161625197319970339416359541296700100301563240695548888882699811673575971632923262896438195734231987020385806017390868604275022607940715878286304068294875505273881201002222049417713271460393599031508862294343077544771328023135415062037970082755909095409974177170237207727143045044629048923346640071958880751907937335832599793836640302534801786691277561424333735149997509043708054573711750813544163289175132464108595440324909120655864797101888128667347237780633031068970705662147204032354376020527685801019304144404194381719513660140165267226568313957062225963015472659591313759741523920179134027311409443251483399817916422691636176642926610415770944094905230805053270222248709746305754934486839827668936208497134382337289564927999540054256555486544770887995518684699261799055297131539349292341605180394573926899975824140786451257966167031888299467242331281576556355201876161619478388005789492350130795996284494200233876304203531297244990727503535312983304525664873638758069873182921449396796874569287230715281792958897162205765626503901101860268904816506903610205528115249636613147380436826730906997357643691761518762725817118091025557262433695912087882303408530613935403130010852815072087334354566089065398511286216809054650939456249919726976490299741028840456226312189385127272309752091128671733240884225891119013748876907855971013472105777094495388461672867637956233170399391262437553571378830174880474024897585281192101742827815228226786758688985402707173857390345989349722636461487121330546930455852232424517575990534538755978946720664627504835224878754426835357633267738467185653711654726629479757645221387783426240342617388502421406998597157047230510534153060370328836151522102716000093363652079317469189819743952649897851718205929239147504712386127438362948090060713373758981385036821475034637226067533017296141610268828805723474947722375055303467065396758289146274245728124654949391817907605862798410289108565752950898474975420708475265943988689349038615296734883566297311666604916288879646585975666688650858847831444428290463134581697824737948732415049244617594000626508401628088746739230470761421963198834390615940849532393716444436852928053153102973535698614705109756732247991705868228541242611110758653682723334422828057078518740003074949490629946310706476612614394122886173545243315469083226703635857388572195863093850861914214073123954872185359571616964796561633780513847568562582666756082199153919911233379545283228303730140516613902524414650488896605163064831452258404769243058272668190777464008277250723461522723829004214923896462057716591456863906133649523165325798357490512899583029463384601940265312513243407984209345723526576077748731250847533100788117471434041433209577208060227419005011060783880232898753395470801465403899896017336363688456869510144473278951746222480457526101379582093057877249005883684779684001065834439985370435897621948287797012174675602312054950719914298180365478926698220861119194012903692662783287327156074316470353689780158108572280023894984799359183851538509151854228655994121004157020932503815354336830845490980394250809329404087414391873604377357945189672982795845625570572340498907554555521301292422211012521913474115511916282012039917028159195977224854916740322568963889974585060715618608396391171183926328216213858842821477027206398540205817885893618633478431508413490527486279152184997652520341284680131086971393094823065888108689759408856447055192495931356744456857187875148986263758011829408969072311506820069000652842446015150650890004555563946712731172592411008938035367876845896775601272299572797183201775465363868200784770867213560733305774306987005236724331454187645038647112462421077347904567577608273490938561564931694842813830071686269129272808190191349483259410405795278742273254230947912595306343195921772594300302112575857080953382725521267876564156595864502597768773556655362202228467527415828727132026810942156565413746559939568030250880943327804885649064954008187136113375214179508932756846315154600683064438909786349668089484595430348492633614568102169552608761714202076552426989235830451147417653980177106697422608038489509913735862317206007520636290953402138039580666904793089165860111132389391599428668481022451015378780963808444774169936510577304132688756012392031631128336044947837400300553597817930452223116388366953865904797473379881246370300176162576518932518677934808315654207358934036743962785464521913419493336241495487117242624995760551364204426172418323721390450301960625605208265909007856888817141380542725267319507779098974006427812492932682091673797362293804315658850905305420329557110445964101137210421802913172801943734997511180514549339122224292458187749484329167035111668462926840165458131488047777179065955792359485660756455179998576342930594986932850284797058727165045400732061179065527404655670539969706104688534415885050249041058756124697944094104085772168534540510947043310376273947560537997436040631257283158085895661460829539947081420239177996497687224287937350431195663213198286880892816026460584371708379168182650696054621782085469133236899001080385649854748245189348618462071108605994233566725832705182554974160592072674912335701071189765726045782579434175519577311381687771519367173804587207041404365487991513206563618765620900214008995005606477240325066885646648323077099405201892250121371563829037704261975309806348915132834302068146939360524283631708736727591426321779605981285706750717166383649920577644661914799028884709948812604933981681459484041514516740815006846647710732345525850074554502859492910187808394440029820219982004236053360674682875336755846440643513546157269895770899506538440556219732816342481227820850899367173291754669606363909617906246766929554754703887136842811340235203010839205054497328850734589178283617787742906447243169891675600947180999507732614617241077949614666794469379958631717926007521656340230007868748634612500747413910142295895450600308774272657266889629054332718839133304394238313470083408983795854478746817103007771803062820749768746612359215688015725864435250511443758990576056532225995416145005004682308331078193737082705678241085028961185375073250644808740290018219289479680564776740667614365781948647099490392903851499258333449797862928241336705184228396611031537506849998884503640561969883468238080621230696447806527429261255908293309940075133381488775858987549251460329246300029765439133602755691128635057237820483779581603351625207720878088297715384955011889816122245851032591434475242654151201239699551503672905417142002018753868165755667162914989901968476108880552837522169155938318531076368453524994761481716888114113189126179072441445055111701495592087705006814722522524316012451129143852102432748427591511290113028982093979300386886038194736317422596805702599904500363060724739286749227377054841033078801360755213059151864430361807444972537116453071366884002389537969200463328697718174414692058947325573447409765356418691044723631916653588852227865582466485591883752870875542201671272571023281608811122821668790975563790300015451430782006379056742765128640902443345263498381202387452575538909268755229521059609429844391959977673041782082769336624289740717081527528002897420351126275956890504541370071695000348927657098650162281252787621007160397371125651246733423867797381300732660182898310142716770214781256567453973238933199951193018193760750743714469189053684443548761257988027694720415214925886030531979577671903142807377689584890412726815958777317551903125810674337053990949172319284956940476832902645162166192303963247875741013240683319766520711225281958424798390687802307366115124939370757661804825487571959436441231981811302832856780842813537184693753896748633545331149111587884753811079642199085132105473189315871924240097651344164619621293314860285979969471322945254672522826805569778550459447763351038748874093427661507825624493482410506940873348666257447726383995979704494260480110885203576293946452581101497488820578988914942922243167939572812456947889458758908899103710942873499244987646610517074529879559119952430967151674492459135625367342393081985374528729255258456135782541642537087531678867957536932318603962323271386131982728601833583127749694859216172663565144503719362873373278898759716863926126936727449419474821390400679984825018087142404998139622881679257706653004310980728202262341901312532181960317978551037514043967680471939954524637662513215195166822595143188877764658820955566324103096817309792801900780131479519919362224080692540210755574360858429053766617600442359054022480343286523004705213000439071749715945377771752551265793326869644781608452034704375845966310268459384064312013412296745349182369347931476129819283584796554810549148362237297367314362551039069672206574659438972116609473076450346097164776222878115849700885162661733939772406769413706370062398417226505075078883617269440989639659693633953865985803270632250064664527368660524603547613102499493661853114012621368384422269986250181346661267644238130951798133024358042430256251672129695058919070292722107057954820377104644007299310252168502663710553340753371380734684989797110196263878037486729700792498719501440168534402516873061154264791711003037620173445743778577642295839030035733073163693912499142642633588852209037856430810128691447380395801871702851836396556705122261557177393765468262522190000814289837263539931067606014453784269906739421155577897533340427532789906736278209608001669102628660648007047941057400428333779303262068254807844929195944495246043817052703311327903676530029444046666538778843496883281808526201193802086188710182901806215157091757990732410229081683690865752405172607338244620406618528648512786932059078900569077354430824375929001194530688476976222190536653176140828627202573397515514747310429880039960836119661792874976124126693187358711914570250775600894493594125952857489554452334471751097822221964395709147059326271613316224585169042408275610795462748783381626611511073248654976052323861924660086282809891271138424730313239681966830063874536206246581572493232703790399502437315934684265485174160817274395903163233761167612097317977675376524963525335723549680711151694769883241347377164126578033098974278832909963009548819436759807086511219025768362229799038827673572426600649443121927486769030068381116358685618444313175492956585850890630187927425829191062284464471805675154169387510668540441978376943693165870786254243622415188286236176512238708794583792203679108534720064144367945835437106044640929004145402666573620237987026841777758971715763686909593940326972730980991467151449448548783468095749390821049900236955246036723030309771728781384657609254199059939325303050510326466650892893085744573693071979649722394797973183104242234070405869819935757858057333794228436345072692427588917380081366114105010470955924648178434425746917750232799618043535851528888796216027297336990292083548204799596901148934777658904428019033888123763552720395779741728445576004775183669256012786503816210143393468137982825939300260684690032720317689091448202490845565635502269631241133678300795793067886278581599241187335595273680123710348012158535705691175400295855869920630984552147272843584398714394006029910618398162950001192142325580646409555923790442476980559762662184085300972441609313518196909636123764127750301290908833855844202251512999358302448129378818190724645427821023308148048507624932260956090468661353435436622523052801240128508907472367850922850148626511619955901463398003595568834597347071465171524395864308916696318150406351108607231409588289685038649964949982334725828065035897314831887934721101127375905294455303842721728400522273380661883530606674991454561287447692162950476732401575180848129079007187014982984447224100994822355876575182783349457221681400666740900401904222802468318583921728320899497509950034098783904830542802446053384016404270355639022543441322682387661926749479562516670692944960376409005105837595188336508153687117390655029389455943796560729784235425467707677874310124119779659127373401279938102476593929560172341423514763371430041949984671891412394492524592804958162946488314643143490095902493052912595857814605613922163982356897340365453053666196173174080427627651518307463966981620427237243160254690900674570594901246012813314144638703445416878941010908463126876009934122872424511876167454657604528100397664754409169004676362503672820669808815647611793174342533928885099691634180830602745595195567284622665924895235031911861690187856181493795617826777703363642810780091649236375234386693028922322049640680500346882419926401482525119576471729715307970225660801623634835000344994611337499941967990717505608137614203139928463782769183525413189902086411061632799940403658602151498162095950584636367685811146821127131962241086558638041890281961317220290042219896923457922176629697187472539296547012605528294682540394992435177765913771787651539930063787143663496980032230992806344761536848677867964740805378336399766873309715992867745638424247628559183759961917559221802744974210660225254038703933283358616688705507664883640039598200262191196590673968045982107981321830355468464747051353203171743260324991209046258356731393689772286381260135035362004772027510712661614257526428222957655572381141062975984930795418529579980027473595327766601936920161118411727822062782330961025806490298728859246630915004331107739966493371798628970748370540004599015638139768856070906246249698044853964011398539369822339793752520623231252882204328880550354000220101033959406628956039209547956034830016557951617554181997832279903284502509873680641648766873335582504538174802424481875864587559692471383617061983537628777480110084272147114389337616854723221864729345741581338385907783767127871907299325543465208488051471829966793372743550150516725538832989106999950035611495295317365426580924304414691953110810133122042150955220639256222569927136566476844777187500492157445449989443657777808476517913481904780013584476202500896856199743742872112660111723182305920136449627875426842109130148701052078749981258584783546650201452287022986856014585305601550957645600834720643722949257909843921297436087876340442529090018083556047081471893024682873575249058152273249608995724758842546070054307480446782560813377362601521341428419431995343117336530496047482797353989514329640588280931467105714733807564296660757801481537106962696817236213281321243179109553542106292355403137825300543052992382166427531926326466602465911337540834923980917802557406239771671659527991979339910066071919701228842684652292440730301968047458514008376991394359240145111721679696339224089843850419966676079319878413289834675822379139974647843698829881737772351821345789161270472157453560221947414184988705088295807319889546182669074512541813344047505899971347804005836543494877851496490413835017960874009261292690348762128477893398044171761597697622089151471794789095732672951549918336660612097825239963970812485518503215900601566955314285875162304380952627770073019163960359851534726718127787746094196175310790593939954950224172851609921339117011442197623475874358482201375935936580686377957506144736790861568179372762034644719950936028006651025645438466409279140481194532023354729443944705358976827891407852965974502832854983863253791766571459892071986193699863572302789762187980250987112732173272648777938603840648952263621625201055302372348778655557891153619401931230961264156499342724995755012525816646707662321393003101457189593290027034277413966031275779226613621488705969290036654497047989976867586956290066756136693142223734065569821388936036459063268054617776983540079732745030699037696566626075879042462501453942272448268784230529242498825158411894766617214244947457160779200789370135710229300062258220525085667132030133032429443508832946388095109851972697134524335617961623135128839718990937596743149371380345143095897090108887665962350606782194445417711740464748388655854935249375336621806024721740677095678090651785512464403183176904523886199881992037350856551620892936151658648419610323393741622086791057131911210577045967476301262550763799465872947627656741081720784085899913579940462473276292517431125655168491351125735218854485508660315778936438528696681884859043298722945276839844973493755009986416772534798655308514765772281923976083014153956061412898501476257497759358114865379865486689411930524093558692685726836898376977211520967954850146457355735478499858423854523407723822932655655293657024468597701384426487068982176869801906253900133709330171000455257497482895765272867740520604541474675272214127961360619388189689612620710520458012634840296928024226028461103718967153531107130070748709425084518617482497746732824955260530016353089492981690206351979126315393328894708138695264247126557031443801940644138408712659643971954196708211413433602912040579922783920557440028039416376118758888069799549484936905499938340659797432249543042928126944256530415442659985499351066519863056018652805102623755676037038165096677218056817264807165608030761095876893376494022957089545849429206168868655107857908662245887784516672564412327465050362650816916987178078191328243725252370588263573064283037930746764270485157412397388107326219844059037085354860026223443454825415955688769572279695993714844903531338035604439738996351081379159193915418540158750654366159071089646000425038583510614598801614232667704354509445004158901488478693720376365102086437214613085963654228546779432410645070559904429709961838575061269526715355553057249906821427730315274015365332345495291509507088465990336974341371778303559255385550420037885999717586498095959462163689015032675084384501472876378209815488116538130712503699735059619552430599158270727717404722723781001433049871598496097781773752015136628167793403457318826722304901390568561625236499387292613895351359158202220103709791706714180569836372171673429817863993289517524864523852148431884260675453748540391514594018141641210292903033628459534513038751402487415745724098448267234815072616407053051329662647460720879129820839155234068361074646995340724131439926394980186193852627052163928404298899397417176081884520914451929468991291505665192525053797159297854453833004978108645321051274607292533014164355733534357470549030037104378135462571945700081594504247108364257774039749978611944057962363983205605121008192852870011553530256526570030780594590371353187192967430104361221179475679909355151897043932012067337365341777082007864625765367403305497327879230130040773310106673588911373296426126666839274921070456864141754440014483328235691315742648218135170199621411399334738298256831783443126460468101351914297884421762152017720688076122517545443196165521645123537524574807048558153188674793810159828620587372869185030895361169669332539084322323477578695312697583552010321540890428415211158105864125744433799052926787187040464533886283374000159866389984966738520291022426794290216069150832704302084212094753667595583787795003684988402878628418750847532914168825526260663960168396211878824589971525720669227368956200687065548295575953512611559742212725375559863343003652374689109673717891418708406144896082585889586448899751144730403053571951869109738937077185429172945894458568651331144642093834397036362435831276002181169068088697429494739456324566312054537038233188982401165224920170570431069698689137599294233349314524254468460104197909090342251339892761668684949175512420280096298891353620400013866585653716667507080273972013705781006482794447685610969003595771175219969924346507286573848786228532318238253275905535304470056737248073305753395663418482135192644114906084339516131253012580206385692158810394347431033232443373077947662879033912287643119854023779794090008742494143950983513537687552467779238246123182989828918017884576883770445735911457016863989968365003016616353684624411711893017949135430432174319508296310636170960669321264632365397110080052897958036201557213712991977788727268570492196986955571489993178002867918659951245771441586653010711053141716945061982782021006943966866559513154361116931725381232557306072310250731782033481228463303713057215869798001779019527536719929243347778297133639703503250119545870670298753888625381827232551105274571208767200760599057990699136196189774203038492187765174973781426179304019620985234652380690755624123378610472911582093224762130725382694770059296913016238628881285147985353055324533666407328402693956499125172277147663720781750265870503231030993831068750040479686787467354164981823112813764451381041128714695652625431017280689487379903579175788111484477114662406027933735271242236619439159934327348085366251380580038565949551045806057387641182996943802922361042940909452835397023717396385429270063601949523802542302931314356496301546127553424909775487271533576644793530896096270851001209818183496302842812441029882215242410885753802361433428283085572825658247132173185088816847160800724560575438448317361516482003424981456955891074159782484741550025587734488601623159698903584548011096299153993287605060081298846774926187119890922151358163802496439903751472173770383242125487410589748310001191120125912926807830859954999308267941409824798440303578721958159248116282941938428017021491304585608381757122996299330342679983874242301781744006318719891716088619377835570250551960538853429925274249019357868031578944786871348384528538040179663097250537811872732134405258454691243737197186778638064089193472119239320633322523200995716249451763747465726057787293751347575487100351623060387646648799125803205094962562007252448693848157585025309378945752272096459660937044827372115444549439580189143654692347714711309001795852447917101086417077804763678584507305624515586217953932393414750706206333662465621562426314336165242304594825521591455995215898290838949254068560809983748816592705871569962177040625658745245194235599073741826696037346329548240327419725087144348383579131161355985968179850470711393857588641278516326820735410329940069732031933025033429761801639831140093366374407149232845415071753657709116875883282844484201336167290936653179834088952988681395337353678054888233219971747014360833213427356639447045130106005867311652391186103874903916619329036489337647398232534784278592827931868476140358387028455405926372297133520742042388169482820860994917755055751960339081764599118576125256761149252290578054012726845881726064696458315866028066754797499176554841243122472112705300056730995170848508148177304754985604642792978884905412392110485105133565878354424542613294613085364496167797128622462003219010949549504011818566356601856724762814065260593087782484148509618256813338788870284852381603232163711813046026215114369472673791525052719507656426628921086525508275516129063930892201284932141688918287786880240492204524812021569578528612286999494771674423762721794746188329131941750640384368370084972038478856006589458184757531469106303746625115373778145288551167231323747518701911005882934697116119786326337585718221880536702033743143842503371159890449081268470818031250707276470746390311677050711990836819128350270456648068307337457587175220755271916989130164314830700791740612379882048246880256198319154571710343528396077078198780729670948751504557871283220587521562513980089962084455580896775522233524743941744247927196456675733284938207775945812844140682090007833472740405889249788465835609702423523818612717330029302961719062285189403253228140516605156221326083900415844067212652078940690625534227638214051041724550128772368821907044356247174507329242383716335228744958037843840735881743792167671518821883825736442935144230745780369540595304766450436458598546369014665408048114918404081211649714085036240213684383324396338447917801351203016752442288829181290014286574145841622540404896339262002972093913615915081746863599283391096405272037855697802052039066794011100675896042957125254337337800604291028805786350685450979720159579093838670302884642978026339160153667767381188712337947899211588848799916124504522156423316604490752494595023950476642102742665887992433916733873705516060074912600347982653290647660254454381751280253205368211670981868790194380573414126471165346810358722959987457410233794144071757785020694472399218023046576043312111599636516029681548451368899291405806969320153100130624768712391544106414182434310348944664887067848081300275362391314583330105289208858485069047534484907848591216344912241084123971079380664869670380619062913449891946183507295240377866600823551847601845643977484253109572228890898758663189433102336797317760638128988876914249180380928626737134333820015081303428538786374811133383971111997238319261928133690029394745607697001375269157431548809571630317719295639210406445893788429622537871233246976966044277772679035842274736713973187840831820952376459363154190117194987966373923383628670175716061844049245888777974872631373227277947938691545855233261229752646321972953612069290907519921190451541573666305448204875693879272516635628983776519393464576794820623639148684145501040504540317830262322709265765239590245651459268156996595856746357266542832696618983289054134261485709210977823371500808865667623057119381596600788187723796684483716115721256708814737241843048360888304760335192136292647040426218350050494139900344959853996286109940387820204884783285866126079338563525972485049173288432870156863995839049576558587203604371928227274061025075295719243323097563301354620185542228643881017780983065735601542864248303899303180512371501645877151152185080799338069024900574691795853896773530136055690916286512915952412890709680372522861089416061962359584671613014680290225891606368662699226162448077458630732418667292842808593673847950010490735002476529651750525182099121048010034202101494134058052324872036585761358071031457808749493842259103489529576895911832881296120530741023309876931229177286083900550800490438508577854989149241748854312727011717619026967810246098714709377903371002760312486277600228953015995877547166713563976936994597741634617625227601800181097799314502163198196225902576780640377152752563791738388270087761511349211653451894750679143975919698734323064883079872084319492240065156539966156172762193750360135314569126753441055093969447417206249227579684162066423007963071896448899160918328313477909438158342605314060449488293246998790810519290442258381602428423973951145796624296428665789190467157785757802801299705635372318541183288523456591295254779931828502308455400351711936799760347012153195369941170012162187824955218460033267631748711572629248046321034686767980643419316857782373321700113447882972869467483043970477903132231986345869436358649411730866110987032291770587585245215586365222444976141714285581934569161732110538866530304400229506098478550765674821509580008401089947868656457204704832239262109474218600929637475271126107985303005615842454732923513527465847505897418493363571533874795165126317463818319794047518263481231308521161670061922389724377224082336021405647399509227284430116055727780073198636304740689996830222053425842067472026664024835854990059149492510173618295358004133788066481752777038095157953435980951501130670707851057178547828199837185893423550588475769341517964628214759821219113665200182218249531546044599504569865791048550923412363288080228399880635243076044843562633270346892913015162942554807215914717034194912170819010172417658264990586732547397633825510745976227131707193437399470592792036103757262902848736148223795895113801672529742599505297948226929965212541213586648557656607521317357496794029973618690527541976523150520461755204776170166252882130643685203403028061660326467864818919968302638268848857024678010727636357684927941978675645313101346670038975262456918230524236751794991863279937917092454939166357739416000188394905871811497416916614529491839636601259762272677100571807568126675603654529397260629287242711720850878918893197480071167866342246412933741542664822989999834862880278311517832283396254528068193695658362741857226086860968067771297398206485258545223261354276519697488825177512040508087368773322908549784569045693651247051539101420516102637208298067942442615847612450330521569182697278027196455275113114554953875001541053921432525436594950606810446963816281606761617588919896669952112096780765816305145088860124372289863587209342570961783379274447485810232676456526645819251851874728237102452983479992044258015089342765680876737758857414871260112365738196545513730670778008863680462881367486747801338662275125582734037007508942686328038515822405121430468576068748411514254335897709839723275326190916438232595108558111383904874677619916059267089881521934075916245256223760131523234851052453277691673325869266472076164120490770297926635613882421090035859831825047783019651400838511219418726938990465824275383407141914632962642067262546961650037946604416002960118266272392300391534991372303846023582191418751723657863128619189910381633977425153540460852240704182151259688113243079818093983327014154578113219077264546685140123003726610744001362746831960931446432193441338287743208657035612265802499583083295761834211480033503988284550575502133012077990006849343361773771746918327274955223834004141622415964181102878307422414854989241432777981307283065599614664370391631817959725770675392789565900097427151889504509592053537162124080552644887649256840651595539001290596765180618543039206936821019223995890064776700623285656745190152312349446556121764630631408531844277674179487665060547580193741949479240858594650421771493412872092354820010164807962409296898440997314428866895815896385937147669205476314154078355311192882983845595488875084848088159354856999726731971343224740320594667986844836481842914919610057995779447031508241530343081617230193737705781365215794419502547595620380466399175890446808250874480199144467441649771500834303410253691000123746165901277461779188537892560015106277292697225613471593361388908575051241797389725044103219555279558767368293757605560890352731133347250867062071053419552349111379091185872926478472334284146103528265727355162739033964955395043838783631614907985899608692791679951634089314081023828265098489533707813969152571003376180866273533200621330505082477816030840981390234518326385460516514553607083149731267621074056323607613766725769928300526463127065091028845383081916439127779199898480164484351593872542879033058713329488192870270582448338754287924395690723102887987590429246606042500069359346912005204917228364186652454729876696997579147051152524681937931719762258559531144188084955216902987229098230415040793491582469439803492810599875176690927454141958498628807692744640659468666220525453543878303204844890642496555556851504859411754304074420451703326654118687621281127194261714295133889951665220584759824906061732264090365505379219411982417147595697405731390333674946921987211218419397215352107506726334135012937795547254008365888944839132443247953246870354925646113695776332900981676639810454495957987515855306956860347095570341743750200965758177586177836894599587146230301487224340852877989411710095948274310886066524841612617617750849149599575348657011546669588056151399515954236330545409778087078547157183507480559843085469464541950390945238685052702185920287537639482099314940172746966645595911749454607912970838278490201510849041600325792377489650879591401910049096346210578838656920882689225168971943454973250112401589580895705753674352677542818360083607898669065807012570315163946653306905290516676312145470465725815663372931482649749850332493942127195208608732294661932898059080231424111942185298187134974064453761570528274360551034293771127740177807574734058995399321061665341381164624583346484352289195570629147315763975371276943966695614664021696746032703765640075693372265633680107637731974948973571843562525719803503371284910363828905576908189266349895968272841143288243058038812111060950068522539981177320457505433723034967171621832275049002122100013984515665178376642595294702407367208820311332273628395542632050902941065556258260395105209655521591359261842903770955879090327478997214482086160522209004877159095683525864982166045843308304318263916802781384040802613242923469438912348389972179192629153582295416327056244000216154126605166825686044439876111161858551655141781436797981304367476784149717730247852789168323221711525231713948292924934678559146108402871500791080722130355241000566120849249227874321053578323274682943575023574004300802522506395265065839271609355977970246675920104572353535229454986931170202578704154974201441348481988284967728371851260121940824038453518827065461895049389690701714387965396255091303631054948944288768242896878704558658179331436143139072728172564270551146572887535084830649535875171032116809563723362043866268236961497813281051785556589870116498515911158114326889116317136436236655922566403126960199397272664327435947229072136660850397476291793015304608598197302326670732150881999068854687942078788218862228017863707756615756260893667870526975536777088175759425341490907491801997052082371705031068374014994004911718933006213597104520418847100871966040094219798239056283794745401558290818390066620082847065099490774589490654706349530059598328340502689825660217361942180545166964799519338923338293058525252641119148550795194557131264841853157051191252299019515252259754259019518665479366566007905300344337273711662868799030991305497272261349138725178643235894258526648155626732530493573475301089633048613283826617479855139609004506736667398679801897742438633659186476641877107986878609077167897035925747913363133871623493744382865649573740500540332835674597534774842108415096889991676709028399041594327237421957849776250828678420696227846874472098144646169806877646406840807538954802722400338041218995591381963450056747712262819648724084244725781178524522411503580292257214703128957559959883127207033465476536578694732109904384530369795178097673763976937524522125627451593968445182724287694042119721791275099385521150068709548665328288541800470410570327356274844145171242964867384392067788317431479103836409022771828803608779076784910762354149308526122083323471931377053645162443922521436809577128749276912284217909599506293864488576891768819133073117657560418723676109561226734047624749024179693638946040946527515864073804742790848242609054508847482895170817797165384078472073054138490039830424309845790335316127665266283767298969814990708749708739261080648374650718413509140688652895648320035271197100389032968174881240297052324897840455243762235793747270274535036342551680547363046738727340758149703401759891102365119893926370020716579629105299030021192953830939744858329402852286275681992814998504321064170793321800826372965409591096313415792326579464058395630757668335209327164903023539198779759701787932378161646665723565528468190030521014079275684893242298332103789585153589796191954823994052614992144167771372087497990993733745057765001104546394719770962736329385070325899084298901950334847475364247502925953677805076161329897966903482959020845310895370258613134503477035774523032833126470973542246795627503658359372276437441962012311626009124408017413690013692639669469572757040822771813207366244761519717533704100364855842114148693477590691719068065924171631578672255430024150026488458731964679098288171720359478892262908838142676239036715223632835207775637976617743122932800534230425491180791929942281364480635725679402944777638723957335053691722604619366167965241027887945512642251578537400816640797693904619765728366416033189933259014683444063379969407907863563217808062381352720625097426515387968697601367248084320361974921134374155506042504881622205123533912396898143110549446542964433294829605260181857585001931448242610613480918624707206317038341959353058604353076832221345854144431631868376788563836109211546069713883803320459757344675350016027443744264270590801145393703239421378938025318614372952389439789392650968986084553787307975307648043066476477363307163836433550741588701909369498558110709661223129851255210728736350050698599138191230632903391888527727314250038569706326044756226185702191757932041365904734981309004031802727603320282773801886138497440204696887571262804941601707106674006920637019945671281241221950912249868754114986529681256044654014323855791963249825581896202423018926538701764117239673073889513117585023911525104675246436263790555384096420386266952069623833216034159181520585612491228975842246248599203040388889429091194253548361276629004861001668662013663969773090905612306520915578868138202219902114822380250179010029344190693251544897995130375136252727173605388476655214806769802640910868101881453027292871196095871561920851471033846302825647139748069451234982926078322991760890440176768622640804437968774058534784929616513905202850976536403392666995869382185431267111572166933969772002698539930252793646066271437871853336109951320125547453927300060825604832172018982287518765645571397572289453062509956371452434544575808221740979917354864859472453424302699904028385384593464698366655167288358214703672997472452214968179400542019097762841094336689804550903043490096608370149040485417994299951308806637230713191381913463106415353817247132904087204210380291113144225724609663585732326436199372405905882084249147457186289805088590317490092673688369936224841966638076688962146810346931252630119431806357646430120824101682455619971559022029415607746065496920799300989575817210481189710277581240750140575731875954810575298760881265549476136780450024317211134104816904313837358297041551054626179845760089746305799941128008801054079790235025276258228321922140828950991679588185000847684821645866033863476359140604834180071675861908637911825654705265814904879119604514862166175596842236747925864349456183261948610092475503657091873745106952480068204780893798494479935611573839607545747667006846678514901319766910741998672008103975061358962371276251908747533810379884798477119129941605814233868687004062443116291592470449107664674286515914500291846891930109296265686240113683515736230115704950845663667479909268599119199370240492534640869738028682326887553506668157436241491302957172315474585443937537920525064526291438269998356223860791572615787840883787313533244577608393244937102384714652592962571455827713967246139889305854170990881156772812380539831889355816317745153848659020831738280498193742291159667144573203003469581850775768942774389832547207746010701824010930540651464046356753628723324190891627831085540182944057715804341437154746612530881229725889346442734287209756275403703876300393037026491597374037058025038795570598524342782329207767039524166780147246459847391058062663226081624093480967158284394675869973058409024051802353150175775887732567280280159817625720054952931628552661673200470999177839326326159253872188776056597018374735116445549007205450051776491115244068828309418034959164421426161559428311692500688347095252341104192246385979265041494290650321075601581433126682130856740054968874143733619071331118426867228074703483129626761337347569321666563571303238695880325515507016091634193116234732020828809795622317743951642548801632737940987114844269224417707131389914016899864817639460976021393216285734558705244911840368371664281013220189043850364688706183295638016941401170072079133025593717639024825184963576603391163499246892330676646500932583446033405356304052231443927505057887757213058949532141716691169744317501354239963783521252617916039486072997557866436269801060416938444124008265885603364504396410022701052364713471578192443165224911095214305130644643837124003910102609388919034803514178807718011748400083589458408937230881648613535743751296385667507558895570092698836516359209680650592821454544632814202729438991436250320140905958487087468821090689214652964395963320377801863661447387652734351921859188604099186449681128807992672705688791913234732397558914334233662321422259580931071187919445164151733018541454794889586690537928252579122329944069658221758927598091237674257946847346621962692887092723288887211823054543724517629207282677072250322008190952004832068115322576145476026666463614187423905648995174784060509372470764820086584061755264283331777264479225902649786822040975167369999081104762679819371701839805211582796047538847671964691164438498770298102878927207481062263610812770906023234025388753750222812507569796268372822732194338531967679547326641130185086166209520310549643262266270127762525984970927997110390062168241161204803311015899357822778050111404423345610838489842221057360711911910546981943237104731383670180581861910784851690143812767439185440364613672413328275359707097373129575100984160170551600639641984542963123850666784919316796051440075856327410630249915864923770962764184953871416748163317512198871340278529835023772417519120852642794357772091372016813713774690980778653185699407084176408905059239312455968447061306704592280787798792304617087030336480579896424187847550384368356227945081449166472944096441957789661356414199239664362464107300925339913472490124674658068384870968483192919510305074640744409914233885072730119462874583910305239237107317977918081322662950514796585527226676432923384621773204418858084217412917370287592940167007326525915560316326271271105695837184530437245323000522267173215300624130436838334355438778905153868656730571324713041646858688237849476329244514829625431358965651631952063601874820672649642798954729744026559214328892374284845418347328869936082950816345654053183397694254988869789231485711967243916046719047624937045410095746539911130399072135717662106216362221317805650702823491070437544274814618604191835483411221381037969899619298728874195789813106632431208278687902408493006010473754257753503493844061327398451604026404256702561199894405658475670313638650128634132188393419946810125610336361049280548972708366008170492240208609092724138366871793244541920658447335113420578963619141355828413718852984956164753854211245447176127828704357104453462364021883203196350803226222011962632011674732690831701441639796608306681440710681459900786669618153256124814159941120168604749182263137345701343078768530351071651163265456369512900639628450724903422434147399236222553482304081803207458831242752920023427754292120125334135678430928706480275779787866119114201745185656970027623284315332772980769146183292860980354370642045158212189124948969045156118571842309753484230144708363419312510946053902947936059765801623644290854482464502814266590621285626522171578326169839648348672466665484687105538148018247588933300001765402821291715639220314582538704580904486298757828839629139568212035539501236955332589473227009426010593807858637133834934800992542450331988455686102081400139481964499053602760685348381162485704688129073960476406874674447262339016915327909315329137513689499079431216939367896146952222281025598795815973171574004708352030004888660065777889494430525830224449862290930409960213176319490116103291487521659400009026242181487380553190930138663116480588851324831827370015036327824385461016062236165894664774834705468336219078279225522076214272991541603581432598598815753009665906289764768855257902294819248922846683772643799644217881792872899390115693477597109068348919638351977594337121133876337071831332415200327930704460366594271243150095546875130465534954937946178642444057629864148045651652493702888045783004401674527076665070933217563782022428563014577520336599935747717278130109335887456565717349621307095696827722215851832154192436157712293919650196275805238806316506736160013420601864663760297208646250084350521807727495066170585534355605168896871450674510855583911846121558039283006332964618902089879540028720558425751526692343695025322638540443244632205817199528153933047071109518803545642144344652158306409147237742985895639271380566699287935635685262323006123266712036696273778709384720051638376295942120768466325994057349559004103871399834326157454158896931447563825612325736153680945488092696128837135789343358910598089352030586870114054916388522472118568753540863255378913134405989962194989590501143972622584502401880663115427091196521858345898319702434166375674625094900147102723179873971626779433798344522464005258100442342782640190440315531553159638981785521282719092419962171538126648824220286067436647899780543274452488549433857101711840565559852787732797409415300657877052708580371672608911470805959976028285264928214886712988835314157106247054112580150736783228271050590732155228788558810424618803142777430185865452669337331704428473777409061687062760239481843685773194292972243179506661591926279608874250309600740276299056232705550867268980241524728610202465850839548735777167413178178244215204196792036512977947840555937019053922984008556086751343858172707469671710866298776145087366171891486119659642735310559882736396476529760594258334259029055831234976303469283722619958777407479354169668155371159183085029867423167037034153764299213941443701614440629572600040582794430443200568116768822684030108745880657344603167308561412352830161333725249897822442980144326595376322916461486364147271436127986285174983281367546658314605512397500483885656939339731425129125522853702802220734361062418801641985953285972449333167691382251262863929414075511272262024669252396118575587798284300109797791902508376344227279456856262185809561895061901260026979585754373631806863929025948682044407124869348249816993008643104304150764085016777414216040567773869783110683515219555325347255421437039534514978313082752546599849499447593486915873851311525165160440107781126278129522378710314240134776697357657819614236207252320686300956290978932739170613814792538097280948325509181251060848715607925870486848445912540543208258212712619721868851016481098768708439157375607721450146871583773852834812836777988886060142087517268033806374030221507189741229753553922851870188265629868862782180642156132017194621868628581782693545744907008051032313261138318333267784141828017930924571314474189416334699523229345267718696697910371761214646674956324780995386565022027168900531609073286442491676419074034984666953782299493687084351201897684186103396074675791642663243882247609522712672253986268312823628821015316551684619243444599951647068425451718571250897286158394163945980010042971051021232943878230135990518362088366273790877511132316278416575030968140762150542318856102590634357719733197232930636736771085676549949391254063068935461541630307867503841741794707137451920835414474304528935971371202200965710779113013205792992579557081618780739231730960503990146903598780167930802107675098202192295253757102773080676290421475839462067484791536725051057566713003621437329509557125853331014160645335495343448488668422934346071622218355177593739534260046418559929332374159338257907667835047627158584310954379777491943428544294796649973394871870400634887487535004871841664768608129528435913168271702091544577109520189815501335181067454919716891317047862212994496694520300754042847145609082709022000165227096976796271912376239377799567176975883968238812558745381219752888630589961511333737168116725815563972890421877350800765980796495452004477181575174747714383684433006312777841417812343560408684129057818230454614177934600605086131839381958417013467776030698560582644625823212908685396980197996537508018416201639330316335225462303958462423092876078203010273375590819600901513709788669227542178955944736232890335194213477878856022428061398540108262160097449629654124048040778833610271240050208712693394247372941132351982272137647059277693968385973757783754298717369034495673587265390476254030260558677877661833736443329370394547211646371584663260005473309815434081732762730061366750196525090725391447810545282505860698364006975762599809071067122745463929132522947252996269730321610871153894684236864820431868886556023915584751836086372613921564579664250934828091150876901984822185871844498655751133140873095633110194256681087290163276307678893496708072265738173345579064582719180576641583608870550034875927895777969233383264654897648278394625888128862117253229153654963920842190708207800531942136980120758136289996388312852209454224908334341685754598473380681332252060126740019753487210208142170442573698769163773578993417764305348309576952097827736524561798530519024892352978002167955556578580367705444033236471023251124607571210322572813163191576502208260109909123363023532628651797218401698104484660687510803465380553675181292281989279946229785576721704927961184597845191444974419912964205605736294316842580672271140243296767613443898494296937431471454204943533323607844120944776666612413576028313495343892781921053112202227210262520311541691531469690113413862763850729024135123638941949802469907616414594998411555597907462681700643937356876623777052952779531176318915514574981089249035016602703059769674552473064268126546095058998833538177022640485347305370675930096910269118040883227795889150462361018692636308975023453241077061319691083228707201193723060029546380790241303825516338764079777565541196494925623933794119599011917906494219431016255768618770647805086834017833975897521692244358193037976407092836084291486826931093585938376614632896660879361727162057836393496091096700298789462566923238458114645946905118345289923640189513336941912314824937638069107176063782798301295836431427556248887160087198405994439904471172309394426915783490453522419096762306543870634687664734725673091933304234238945657689175265399504587687757088482713051561852866790067716461105888167192911143546687107151929552609888967506152125355427983596613224876172861186073441128607668494940964898772108459757129333319711516975571382329269250326325959161653837030132614673168479876814761291702071887014171065010995765070077747067806264651919916228190206267902262163124016552605830431583182708781148515444133431264728310045301548068523582526217242779207681214759194057413278253982372543879629287819048354738475197821255744715129209781013958314035437933293689455165455875305947168239829294821198548923423164333003251051241978706866690804297768781752094070343961375193729747960629278292387045902945373782321706671348190588302006379582303531494880694260539485950842162866233971699497398453722893567664456968799952843897672429851669721618795524366214931849951895670691328248396049384055969032540003893366473859911086744562837139215457109106268319819753574123802617303819759646245761176340040296654452196605903796544271311873942012956209861287964800361356892731463870983599121447964409938571460875825697171586324951885576533114078559126935706812221077305450642483542854619945144269989530714891868823424094283140280599433363976620689066300591202286577280493341340636421821875945693944815449727824382548264240308557148855011818119986673090957172840289826691368343430030577881961027081280156604112483598846351696532093849079738755179670641786262974819035759078545104568250205943665600996559078353102505072238461147223400332885195873184276536973081190524011222098558805523739319187078430026635650785697102638868606925376674664786941390914184812057364426630111554621301163952814016534735649783632225948945463944394606006067825124030354396471924283280243365779351791309514183403378169431062845647374543232891224764802448745207697974927566193844133376635775033022294908287390158198402790764603294509250404557880047225972603106282824852994898803747997711587400104427712730485269385015038588505647313788901282651422093245595234839060365572964129522579596666559320567319716448565706118559781892291329999688465262611276142109574432110100565058358210776990721652645756700338253582836280487330057169578787746305604354676389920140657257654393108019546600431939973241531639408631060420404780330299380438657059766854100123504880555715681021064376649607817736236037165334066728037358453015826501483825266547715125645969525713498584253867025195305370708270643745924207711105699447900714616276675976370757188983121735053003176676933901324956520665092344715705958238662422988738903326844569907337343984279886272709412889319621543547137536587469506995780810919518713893948436917311018391840544615959890267501204285096294423270372427086073000526492248786120282058464943742759972845186700571042611271278703761994041124469812408074250394359072534638093345372982247908687249489648335561647658636414507783616686015884946586168523149758982166660545525347098795394580226632916065963502704902298686145415181926659756507513527361313407380530320802668306654050989526427190309100160792888636904484495945478916587272185468273840352301071830343253380987320985358941956813380863881465220156350264157079568403323421985508707226623148078323030886305865401480765082574880725474546408452257800944321569302376538293653207799381885137653667355187350737268716825943027497897676402454609508527749019829389163737827069940664678906451019454389206917107091398790117988332294082683409819607513550950509002917696543986662480236673586036560502008609077949158787175111670418889967860680493219927913155798000829788299554908762419018004046415465794898004358662858415752913717837834667309248410629808982242228949838734115194152880578627747753924734147524392842481771895836796414379217059301203893997621885405772697546891539554860457386536069505782864280034895374082661821802193627699201568980122519021773516445368993122195399757159685842795061869371258496422444417470034847224763979149957163097472363611672141412844622752984744217220135308248503647489058913358188184921694958801284452640660247733527987523275187924262122592673611683324665843922871212163456184746792311394206269260666655707936560495231470020707944310420014865542624551191499525631517151836324442582125134609153076677691214955715646806758346805222153682664516759911948854940570549180951641840712553038976757451753082364013595688692584592044055750856247286916103794456957196648284564296895089160211031909202436723569812503787907779423925355107753992497840237747816953054446413332327839159432689939391714843875755366655026480201220080975896511089020989012805207467290403645422591810383028561302433861514575537729689327266600044758199831091710664999351207103144192338621144616025203090157796857415903231996389630250642519921706069504574269292136821185316293749248499590249591151881129390272298915303049999751906029196391160647552400313737954317058598762822567724542924874633492957144958799251671018770946225781459876982811637068746665350687842749780825765431814591071133139050075780285531571206049915649748660507379667987283243474561702432381472757322134387939779933787827227569343606375120106764798396654438514238145011642843768896893540737582316355093352819437600844419102262045962790735999871384640247627278715163818165912574120657487005087886794277163047148189847286770322273136631862665533379944335598972599348217073150842819504435885634034420864144194403216986988156228407929502659106648436199854181812554908622582411596153457553402752492297219883970275889092076553932903130150692032785528585211915256045754063991729826987633161437600451853178740368549921388806764949106325267344747606508805674856685710449697279201751501275121523326776287033828131297034658874869024147161540563285667833685510840965974611926353305089264690188260166374202274209853339388474484159049284279891246140525291889666951405412897114138446159343189976628285973509045571164286260550654501418812838215584065231755082605574963511369771768417643913203377374210186595422711024067950706305707077732807241646756777698104094920271286596821956558929616356853883669853379384788773054231416050519128138732588018745181307634534166997367235649726920534392308357762635434716741913159307925776004878635221473676777351643158438640362288526927610032802620072575498300963053404301141272002979093710868977237159792417178437100134136139607446891640005250295925010067727483097880344142416149487864495728933441069953396641970959660400153475035400428372516856676188090947062884324320556279206701002132614668216503768077637031740560484126584686024213356868614294765554294225134477713644897565524222191934447010139069491596196006040164174897761909430323698496728688403716266017197677143172761778829658620166098830310053375854151047651707094358469886927295599939263560404416570479895891301224252566571601942852627231170607675655963301382160628952160435552248447125765065899716592468834131266821624990240093270867864789697149551686462599535818634580711018343755888534137145738867040473786914777616296371228714310375785612940229095041373622085003061704732224229456649924570127265845730597843028429420389675285411985192615263659048625522614004406945973091396849425559524471074953369722631238007223213460411353519000742473926869701063123936963770035101735435775043496115360354028863416959769828978448790795788164728977642751879137922077769070667943987239252267299217562123769283612803324360975764450181993623827751617470292678496466563142601786090456220006871750644314285045872724737916132712116085266258760722367490337577491939662250851716751662210683122643156745040521739924183476308243964449055084163409198636800688387231793210825783152159822166297183627635165188531860405378902678064928757004833641506914274809733942664884376384547061382599335479131619193206194354510947435345192709353351991292986188335787818553802431770902123829491102668164801090008020910121629427007709544876493737421390948329984654254631979051563374928786998846299541664816513039583553008899663960720112318608796273375630393102635286174462174989224355699251874738713148084673359351907247831511911424329164312752608374245267659403231679714206185482330773908671130040525962437338663811626689459852050178501959805588012072877903319503480733362273493770720494101092770013629791598737776192423006365340320296103217486371734964963349524007747190365735903330082637171375993640619095859507657407445757637580705699840802081175489422859757737754898096900326792159134040722263835441782199579706120468149046327025118104288792033524029065348101352717301757516466937980305604721968749448337191030172121171237238181524339147476241806727140902432900567951837584377883596597242975433231022449694965242578863840768312082159048649678574249510572643610697902495016861142232561832110382615067100432171993343421714115701289796897631463935412863814007357708540955451251678683036566987406001125117776303783497739427021044666353055072021031172240945902831113572516748869076026530582333266529923178792634248303354427861359893949563962736004976776564967469970191754224626970273819038866857869336813797997386623868079780949497719588675510463336165571065031071691236879086206647712277159073806231385115740188391382817785839515145589001356440723450859387370249795320093809381877871039890860124213277076273472423573481825680894065368975725233265064215984134688027635440599053941553795529240780445995006027861179900929540666106773783541156124471478524474692000733919543348296409992342542169644565032687064392818275833273776351260200600886294035719326650587506661874054252095353799317277923046144526315480307410315952054504993970247742724960388667091000142453238830101811782655132124174747027037002036008973387222470547038778656247641409710391607483693681086574412448812349517089419353174614717431088879346190913771485530801959620353107313326197312718002816961476279051316576606215104995965089053465322316826833326054953622188346159944964841813809810650403122634925826880543876479681361754473062876499231053122442111837750079766993485002062225643717234348702738973589262712648115877974644752516054678179071636164409135827693089143733032918237976703714016551252884264918837650923165373737851108865206828271231132571235705136752711236341536972692731796579245761571084022870763279332193609140946208074792610098352883267190072265675954591515857817513200390458397513592655048632266179000839770285168540140662126064965682730876167511447941813502689453345995951991421351173956009963765012985040328393760209764594563598722601957144709509165130510602621347428946543940013252472904782504968688781218744753731779794045381703893636987455958290517321195689784819362704465667333988866630317267496935046695662723206590206662689267869166546995423455713469713866099571307776239872210478986786883997956494907155721311150492440658356219807782464691277810405016176011198663933114403455847580217206178278167830187112210489708731018504632203726685964563895414616318466077541753159105945492851899289137173285441738913001829804404265461594127112810367615628156982319115700179820863334455252203219478261321726049915442264383952420769209853510767055405589366305121108035274605547719041792132347213162532088354540331203542197978692869762366386168213067469007521618408827325143704546037568153791274715164852953633193994294019747249784900494360590795485539333220783246042384714261353992311524748286052829013277125881692292418395264983499423740864604620825039824038472694711226790654447402146699142680873393302086752732008226151957055605948365804307268864938033881598106894316368255248485932709315078144388847028530131240844516547106336164422838781801154979756163609592729578700811066942263517204414748732464993834115807536071710804228830318508640492935951583449071014459173427298594898822140561390677653122801684879231073060146466191768919522097234722589329435963363341689334654085830523966006396127245262108864604657472562319156805969813674803970815082464061086025662654830322104975592160499755899857288776095823029547718381461277386066502768821300204879101276603969760628081742945911283129607003713747946298022758991588524010787844367252977867969539054271395241704022537287255916848197396268813392587720682726477004277694580523414055167888861933566615551721011107155658154873982028724276661561514381827426263412788106965701076835298477311724484438985979519632533496905118944373851090790218154465407301712629907834169234376005441162945947708300771688941042488736876608112445647010766630909753066195508486914237071133959772660884688184532780885723771635226261020222239351448884052579250893135144415110920336038613732922012886798932791065828824274892758285066543241669381952518549717064847955195758329292075977852308344146067526780406016045208613499871893505941953186617975563849291525482170089117572908964635689450470062739512411931498854415748038118023030903138797423746461904162154840507565520514376218442969428550913441362890574020544775259400859977393641707745813112397379812408645801842845068020100174277277870309571354093717811364413487280885829162572911624742640864716639577955539381593495892078814373210365902562926658266776940465156665789411943813048399545350379072901827258305684802375398865578043557993198809663969440675739912879459282684822899005176195407112076719255636445441853624895704522777755320290406778657621801957899844891573718948849337841642595698526065244154718893272583815468641304240261770576740574264643803167212155175124420052194595756830110178611470289617805534912367773069719450762881248542565431126905420784974753552862369634818310705099344729902675499930161081577112945142205530024428588328289908910714303372554122090152492136615219000779689949011274168343360240494786219469225220648341230608798895754227317358996708101622316890062894219408595970981363070677459922014950462580947774560005645526695535771426297354037625712902858681234705904729531764603938701599990071243319862950829344245143690282332481354057352381074458488085354416910824531735173256432303545809044016703874055148432240596889863069998732158615472119512706567722972942575005610621220373847956097181141399231054247018331395135857164386560276056773352558166990796366245526215994944195841863123468338503822452933613004198978739504647700011273003566793328985478063793066048966137380141537516841575051674613192951684178443248673611726225401711058034452663264864026436329461830896636503504606487080396423725757736472122923996125089715413527702755370346864232291236273527703155089966716925627229539404552959674471039518554016205189922298107257608333351931121446466692074709492928832953205672420101255543018350136522618531659214752156749717800003178262306672364577056080253105248634836902614970521381558324863309740832149612632529789527629631347069495040610668807533719670218240966919499879422993076427449926892355269727421861678633139890827989418388666760964732883362177371749239305701480557466601288578312596892530901971001140098826079059177289959406109798137632874562366572460272400401127564138361486887971232556839524226684773372344391544538492711104360881494010475685808101506035437983386213411841262280834538851966872937832778833353434937121374366045860634933061685446272347504322475561154691970151044913489586002385056634502200549810274303533426367676766265874497273078533246259720292420231728360025910019633499261807899969088632994918758909747797407194827968972280732643814443311165061232225271154460477662786245919242517097372774818467764930599865321668587187842772305093830912818158875463444875142810835546513207394474724879736120820046638260794536151455140907066002460728798478339316344969440031232561056317389399323391594110593688239967997197537003107200722927993197672791676376328538639765835971609091907219491255824364510961793217235109138704279261516348393713508441810300663843004926962679492989637665099533266950756554764230071814701033335304452096482745120067637651333251241557525178052649227629577725942883042482482226322103411055606086638894999568132723448436392621570725011656917357321105901307053757398815855595297106545015876966993377182282107838484652255116073490937887620677018747790295407959413001679124082963052551067136815440940434547772769292981424295572002958581726338666262469876745868055597597045612553280944880662648000233696584839572035416655429782744274755127118584216352928751213388285500040800784636712185460898711266577007411497012611440718259840697791390010328068698018537446431954117176845836277282062611617737203537075575526057797280114270731616076500397016429330974219138104046618794227671272023139759241709040953364133209506841250302278106278698791383276763230357523368842238278948855054924339089959676652237437654480413533163907472725753540344632238125149027052286182226864341329579680270046704110162753311408912780285789123774670124539435233377879971733553025530837975697521151867570834710954549034587791130605694172491564215441134316827272842061706205766790569510480452948778878984261415751546777612360544131799214146701306409434957625056346012029014335162389412553762272713479772879657345799995572065174640434978695143740312674061629779536289681404925713397195132530309137351663413468776637527048821796794104479085401550571777176051205692258785914209756875573409837430204326975561968956696644587524680478765301389502626507592002499202413173547020916592852290878024805607148219252926005121468834302821123365657157468306583697699879036637039647549368793806995976903035012453809869012879775604798298692716974343272618642146786749648334939091072390641345442703181747439597980301141688163042976067558780132158227075578479599919102775955101974477293911526014728936423725387814837824990897280136896000458458408710867312084546555599286049543591480573546038163393114595021354325576751633625493833253463717566785963233792023750330930393020801881162622625948848895134166719143432386424161043461504084560254156742671839999330113410470292461014437780757561444319380504618480660395768364244856716280971853607794483640893084276935382110653286149657760798730523803205474832881027582651110885002150620097245530606614284835063248494126429394136222215759052968815935186640140291900607977182050004112273941897875376210724991789007692779037666547039834456920525232568735325674915784224486179684240451383508975673544595998217199364872667008351275990269850721209914497916302105503560639266802819717752595923912125796549894991350272401737289366565252831985625315827922086735274788578115247859839324223050708606999096735554062216779207644625255395847769720849161137154518096879958133939991366265800905248148600184204311670299264252754733236524033250744807665180327930392144904349911232860975932492624507524048922976560180622988452151011835227913088617552799368668197613376125958848093775996305766097924020397157991534586759980378211409541039860740873609020106745798381201136463757218194976415884719852409502876727690615394142413437380638375572986101120610397912820699628628069030024049877773332614026208702560207325873065201666763804189834067911992591058992203664104588355888531967523533284544220895867557722775104569997124425301458551665128665619336891359062708633974799455854415660002574478983695176989338012886727637653266618860717206703716476921994430417801487875576458690734085636174019099016653700922039710647698071745611767412429836562461185937455668217869301919448030368013465268979754601649981898701267076855556053969858232004253190829332666663733402704845151940618901399297012608386231834397473220325068693383583497453552869240131031281448890859736892363189613993255490858664042886084737797205652319260524926552468038395735608368687162233980306772259688421836382256297136667457254976044155874955038536701101859870105818211291329831618541464921333988955454081993844481069220401552948485269355902797324063863339565658827809516172158146846820026258271080944890638653977093586594428669386296081191557244776930918295210438687402637139157725921311736927116955457827052259601210883739582661045571668030730932940799713693178853613520487098982404296824802683181910370021364185936308132317041375167202792667357601450731753445637514671735659313374719337158666792133964538103348365406385634162668422340543603253666730670852062342396309564589363710763866773984246017279335894317848753429551740736302438679438223154349309623749747477437734960684132070851328018287501772886235266812542189534266415173168463809090426801953316484616388712155905800743096017747552625521637541415182130624623246662123075059840679467785675737301697973784726664122961213503054371343050825569598205560677375119038482054418755017308786314377207006954346743256950455740159576517790468728863665411996793258651497860459819132043220729367124424471240779432962120209593196885213557486030452942948165805780720239637737202511099072852447343837851482313587384070424598739263953937374994836635375915939042157322610488133736235884506187662989112335140342937632488082749278229974917385161834070018132849020369980588204664315857893484865939130893407607091936315948800608528024648656831319057790645504475698498332993525017145458065055479479147942366414355170510492678177351262205804232958796693259887144123202105016713085422199175812238630010071459278296701166440144023911958836038081811838286508054727750672182364420564826304222779764283285070013769247998214058440035377863390045970410995535568554138739290982519953236083997825669361146897779306735409024809041324493687925331112227222669274945197436407328649752925412021960379145967688928444435853962896978611411436671548587945701626928732592641486308343969876265175694737475769789751712950830076935022847825688979713383148942039096208654864635865603609094592737232837793314375732854708362767465766738294006784179587023468614782968598146894310785659639192877089363653235891697358875144993905455225312171295709189616500516966478189050925502204874463636349963167449680805997725923399617848422021933811853195715403608196675078582561580145596421237476142244220633934773934396901425920333887071405486658622331434894860051090876885986853540198344426306623774742946549459817674976017416582389312662525438126870232765065243389172329820375140141857675024827441065111075372043246070570312048804550192688783003172106621217378888570910207741124676734837519570445955574333169567811204763523350442032350842231336356710100854394943120601553914323016654383382766450031919980481583942163784487608289021420076474397503206267754107248493061122553100077049042748617074304032553563182414922954923491715071275157192807987519917376382660405414133819874755669856432005897094624581874809870046312177032640104540136278740520098472755491629461133046842517175923534666410249969087634473140338835283137990857287430884228649440908268989672583895472032078207650107077742611934964001287703213289851646303624373209283684715808382298372720493130670564850312647156328169531579892280349951147997081396762955875820268899500957317976967542122613009083666647088909805523167669971051282382873147177345935630636924288755740317364476496721474533447989897428300167361865751453141478318993951721778475481890709903994251856065728652401509033098910377256593830981313386797330511011341938457626444003230126808301217408829491011573318177967754990569635286089228560079606275257293220379225012644658735159682300576593479009169888021896888474212534748704638947616234853586557626871388620589879890539225373305899955569717799712750112733715497520599439889091547694315026681137157861680014343302658829258416476581845472313498961056684725469691741369461416171550758161013092995322490935250151094568420519801929996940672161853391672111413211883960160913290092346820466930690850809147954438335000221224120809370862662711541547440625237420826510838176830955144321188648361143260786980139615555486336047335479329043121654253888963237080663182618050904254034402481469164220159375267095451085320080228217527046832146746707406638636671860710081498177176382455481806035581771732390237823271100518553674555644098951821394223712928485075630338111307034079032654167492922393654756610654634805549408689903823466405995363818382368706361216185402668422553255004645994999205113482079749037082313617575727215579024044763816909697234077888879554332537854284766669280389017469518985456437127933586304574253381293358898735499756671758698249644720333404108535212517919262122282011462599728716089026098404104668427999741277082783819157434980022520196447371096267052038767982847896649142737133892657752895883153558827454223155472247102942189492693658210496097810440161304369675239344769245291220384887096068296206199737436280675138415318906222037742709784515686208073004888823175583875144431640197903000251389216773390461695218623929854461503979962780188211483406078928451876627959214387570774350599675986589743352869521245148712098639052004164421957252825388826315696412378388104164502657655926065931779862527977909363140423456702700354068195991622045807269905887132010295650363742316787287773508420555342598409021690289736914833975331351842956137281965402678765115834452159719254269184826751442656373587983308010134571994345611071324960456756982001000221450976291268599220736001686914592334207068490665644068714386686280770763076966746620564153015245299073688070676253533070663240075674805535521433588111668698017056266497352131011535716705287317862434171195357236955413486700875205717276815053117167278365863177426896005840643390583776050516413478877674018301415568821315515916789132204030319870812291114430100520824872439127809466639507984396953273021834873273359533225356680668057519160316937717315156649389185159669490374369359593344306328641570801644199794107958069633105593113744974931561899859090549243164030120185730329936233308402008079574317901028315524465014453096367938878490122220422498324055812121138604066076090062784209616940055259933154845415314169210982271754615282608807556928580294445010802009482018927770214935599118198656027993499382719863737262792301285592502946018781883756786442811547070903831808060124504968144887372867135175818922029758667343705229918431376534568696099073586726317732803480440557253082646791870017196297172530512304492640334574850205408012155358522947158014607044675814274620337860259818079306869241201846541535268445626368218368647259681602709739029999921184770539156983786488042357616629539517235617957605847450506597138818373588616667300951543179838934319579287630935517813225219698054540752599849104790738152389720273087843856621028708950159555673059983123089833491205261037166144193099804882932645606519715663279063001204605655063981556212870098992463851206965716866309409773445607376082338758095177511651626607075710343770125357147395472056910689610652988933496294762537356586085358461997046850827090873782473634636017087027509165539207070695269729987508297010610085209298565645848940284261755958097930852358594955147525822204355062536292479860167600452667100076260912582314795660208870883203903217739064320041663489616663605834906808346326939268450850611161079629572971265376505477073615077692873001643774084844103231449092633641987503289076775547504353405450759029106461445694595923048175164994384652886353357119097840419413522177931854509632120269661414794859197142419182166720880808897549544670308420338007392272738852326587851689938245837127712611264114545981794032960031342767242408438964525160640960239596817365871613844193007340740487004031581246155012807677679795738928992362245951890325925169603325113716991098912672618355736499580852493924245888440848017301973582507562575922539514609761205865027250462456522819062922645715045532732727245079963986760780271753608357652926967311442408551798051072281099315761588765530569756068448685307753292175554844902118199795157350559002992763843929201363961591065796406600822927117987735115381922174348859685605004687920895861872858540335495279626500319152693799788781498812559755465407502261963154493629441873674695421242321582765477630511378454693505141126437608962316445311619919102031997955882831099965054223789479762194947323446665902950209491116306310080539980064011547054595274956540022267513689229798835914291117476777645834837408526502166669787903573051520016030770446843670315183503311415810555100395132717650100826140129256140940821452105343747268129788588037094083260508220668517809367513319642616892854213779182704503583134135447999671090431845676897146471302119223582248790390320947967938710472425932210774628908670206502216720519689393016112347485685949774054941769047308258373122653144167360534817025469931286447455528490873084631392245491449249226538501047287127242042167979913703917215146078864258144284136455954743516938087008043563517751498479264727962848633650530812539722070485289854356271923233372714052155888675594597492584965856111076528206513714151084738797121617193577192427116890279633305727535115955254939279895105381381752875170076225414697126606352504642939354033419442364853334915151038602407764576340383212678895923153249911017701754468443503435569384856014710185563044313866545781328713089959977561323386595526282377855982893456821762024078609000322599254820815697210184707808713846876740362550862999648466011803986021937775769586672401061490871818711409551230352275772634418207630741428772505629931419397177498378629600660584406055913707948126038349089858210042569090803381428155485768819598682086940054056907058260101744554815559503001732980189127194331415013858843686251790919396446691978012501315575112444500843917371855214806908875164876460926676743005148728017311882098605044050850606636125284562712629088147673374551233479410223747834666926309644666346448435116380525256351495946771135785824627529326435867574747564564852600200714016536903755179518335618404735457477879567302268089132515894788926600058136842482973496624915936325210194471103262243947454228829467255006607841602976615059509625094929901722007022780595395731113914912837781853939673492138665329672592978476144192495367999727684598462997399038987795305460952539141393185443453116712543387129936550078691057905559053937162337431307078287762485471107987263449657221616392141023175430831841158787414696568309403189969827082904663260618540186129349133676762422214458085513505539966827481076307655220764278850209769758045492686731657049372932863204526503952134081098559648421783123077149972267523802751306567154734924159071722075423672509275789847223124602584847867548749659595878529544199037935205931261069149843018821305818615151565561983894757522598440629221484963578249895058436050190037273658726167599906217525460947089088130720453628146692163488620107026937361950984919934626872933780048802056130456383937479720466624354606317064221812938802381974005860240221672137079715806005402654576364845137256012702077293821376937084155301413336136270399003154584872344515106152674469144518194220977537060769464476553458379154223494726338986165895145761632221039289292563894767537485665731127400008297145803745905647141571373414520051596560352385206485823338633815836616209402455867085047194967336608697235267566111620925915626962448071762104787034660466340932611489336426864558295256544538893348798141650252706834972062123307132292032418052608734511791037857820108847437975395727841524939117513535864455172124633811686608461749951164069935352657388578755764154433592553038264732917295067540546590647233001823641372532395821781026208139259534096075950863909874655607754706788773535156175429468360757899706288890128653536417708387064580331316092703909867116867387698915650994926739740497309404827024703012767855728585727518456914416675333693563043565240702490856551085081259346330752201110869354976159904868943590279385742099869598707106987215735229826969742621668298100623987334689901626473100993165119705717006075551344878638803185369146475291536081541164836389666803624441233726331171772524924483436515226162881236020464331080435929333431244033329781997117368108499257120135000669463127805218542801754380050937119440713770304005955310651493493177057049000515191367221614924077043169958105470433195161588026917481538087943164100949721587570407272563806403528099872364382836835115787424542072659042979886702799367044062630727978486660432796681109158414035073620350501543857618532580424436839494847024776159699865364636318063087657312069302772685726044665735850573833724748894385065899123110628446724083012605248209858382939599647911996428438757456678148563660595199110238087036798104736391603449936234155058959706796653264958477625058882500231996889711464460094194563083024246395572546965006197002785489081550254572863679568192788739822233460555330562460639090393649077858577132484731147951115749553087672866371490716056616041649750165110227071404863949322552710107139987845420120153576655206766555405984189386491442911868110596378278214105662573539841923451856831749959097748333313392409918520495504884954830305895214933099298300009036904789009078175804767639717671585206737276052805071116113104797690554512198580933245973667835131804315105454374866763831075457600166335731469320527945754749774113088727311132805263488585154530319631350419188900385724179231656059516143260760173998146882465782096411433085008901873006639554938375858872133088936534211400884004033983798093470511821707662910718102632222251579177888279003347995363577410957676151304566531090959213660175274859886106588048865939479575484543353459743527198886390016497442334449727121412340855200978983965804781623944140400481275803527495498693975248631095571614757803807059195165801867228857322392238064735608350435208227795247669510067187079210242480350593326782542244331307500354543190115515248548662585507387667872533039415230272868747331825017011416882755724998456842777951758163389713127767248774925188631337463385115803199779992753798737060564306940688650415175176407409400012554684200292137030326286938782979714962865625703825683864683365619270354680210904263245256848759761509920383397887171652830535809586877587494127611217959912916286698280987379716188748154624778474112140319316433787174141998496116144802259324875773020467708089400218844073597015405661770299983127750112680241014249991820301207947337539458054959650544243886951732581620613690979592895095093361449013481675475814990857821883343327471617383988728346627135035212736964195130182428822940669550851615876489337919824344563699853224268486043347787410623982348987988122020206801460949042845369683032219194872478781991759417235333642782237522421705189469484411211100843818001515902457273155211114972356360013797581633206201918079453521955432663439078689551015928787741027579471380540237214362235573748288782229594986902619399669294361620566197787984546537032227510625459183175936118152414038663605479732365394792683984620623345018989440248025803545552468034674805506186203001431008993406016141159626327541694369907712188503279780687153859041052440828863156624066587336733786809032140944611753262159473336283128422014817621762137731872536476976724153374661718644653409413484781006204732934898338345979185492438037651142759312885848785485236188460663720897599779418400941809193404553594893778771119809217180651099875005073810157407789819919576361140106290827295846369917669210691887791650722481835965545663840512271197739001894558381622575719630206713078792650337108859492643800659056893134808543592544011390453190603439095701937938499640457407950349342841562299671761989377317483462434365702966144562497749526307051209051685478346387992555998127046943365900809827289369103911570315047406351999899755140005910565359550800166838492622663742746569635672620164710161963300380862180224750803571053800996966043730892050922990172565216219864839219516706895945269131816932351151749458672056617911204307733555388296090827514928034163052890571598741458721700572132432259164348471195153289479390700440424493854281690117986572321501634815737637502243647722995709787302445287450222721122027745568866889816317986054528314244152266135736512987645693856859859514667112817730357244345978720439394582560754455464117206780082789828206600410867503840197143676915577418861399052580595536191764829192696814155583136211087254082175460810478916634022886427328066212874168761867989604252843407881242086993116001543072714496462134566946825095852683500162231562667318619055164456904253077022113465663569865821745943336459658113537013779908850915658792485766137513006565734141306161827646047144181440864889260444818991346183258395332036118010341243760551242452743110064821316517325383819745863165920368502893703017469277936288242864637580404191844992217035800391864725802729058943513856736982132799201689119640939398645496611584098128928460246169643749732208731362883902171718672617275569945454957656924857734594718124686911164523480883673442356020166160697958806328884367542191406762585286587121298493222364472323890122658396437655021711445011654304587908704527406592052241223828064359770250469239162706952834533055516863056818524620495139414150971423680024317206985745335388207730932103732263982401703873492345121888078888146339980134970263771578966676306535325871424600079057485333746292032342706981095246708724711006698454379055951258418099841570606890532019752065357701330215439332592448163692985434997854580786439809553681179366296967513284285295656680379963779279220037881818019067204888654389896696747950483280490147098499716465819817049465030758186456728861282193611053330341470599613485000639690058290359413557842806850115471356722127531051104894709311717737730596810382304999626276130525295631614286092863907629613820042147668833108092045208480825370205586437195643078706201347909571786273697626858187198053626936535431287807676005823917041683758088192996960627781923202865559925812885288584434969574062163024174735473146634833332406102682077519092458422122495503367132536148350511436900333572345164570245774284064466868727479463880207778446919856172795440525956657234955499022972023120124768713990395520006596347669984222824177555395867030340926514253062164478605224649227714597975436041989773438844101027002534202148944856193191330538087744274408214634115366515373341101921712736828331335261415419754343554312205783439113619705399397511296802403744004340944609215718141115883794402798376452149031214009096583223032093245417167265357637522726546701347655225036323695117368109724982494238140957620215901562984048184047812337822963992001093394556087588512892804382910851713445912930282259588473536576341649948898049108999348334964839592961043646603250511237315087018376972098713651797947539285831267944891719002576814322611402171659075649109207136113510311091050393800123315988674934140492984779556621980846819528193722704654349814572783068818896577499013093229451169762435734219860022426302520855815793864460236221803042890111247341532698636542923007449565035953409481192063223660227249796737715614803905549465541073510015571834151173092656503356614205023943738731667177248968547065963379738922517752027724511191606595976548555705733848516215274172135743711261934452360511765818959651825714273516658193994238884748844791121704427813133522838473861002965092509263380136422399924584239609983232021465170256727126845963148143672893978943441589477823743592909388310055907330853439269813575295090917778820310169268843354696794416007285082956993684140028909897815823460316598330061056262073833213982093531684730924464365668441241894643550875877210931988142169367540720294733879111675732516824232825309577282914880814387647356602852886348886316712215013972855667137604719158586410525732105382401751431214276752684376013482269631530440370857969361282538976802524738726959116871304633664200638832574140067752882145171451862396327246394836227906373564825778532822394032589210307491878709807193539439490208232998043841974693231474805879636039411417737851926969178457272386424108831732856004412545013314019788302776406270879540835030485126599950639869989809782313717602353183276825686897802071385668418140870620880716872375492174036825381016904108220162661510553213182779459488490677858207955034841870947239860668781280274427522197830616301308164300525852618601374718781420284900380855811865663061318157027017635650828615257398682636714837320348994318139141392015783100526161025635655143632447801433814209909846757607521501169265051181456421855025018184013769076250956601814993199403086528884261822723231304519959194905430446449202055737698719615901558940279934941182230283718759671199077831552790256952590925769506491178336368033930050238158683157895793401755378253486713453001287778667030651033593374662126761854914513310316296523149785156857928507593134104809606000445103802611546961578233024253367287117736072123550357088197958043412802031007921740214562490623099063506805933959813770343176753826641690441532455087078565397127895249761466308565727064686093492778474371206709277601574965684142179782779632536912888258940955665438849806826882456602487318259163685807497963084483554364061908178163844636864906921851352042626693973567669418762649379420912868219625307536138455348967508840740620539708056370934333372970559591993479597005337720124231474106047399055522097576252277820430413927078517591990911652541495476480886707322821875811461482814800745686164591309192807060198605151395351414298409678984311478832597326462030988185598110080995487394905418262878062760697799902473605693137361054425952099700084831262195924551025781350129002205769676126893641472105196920522537101184200605339210878635135485318611861223835422428450704139476433190410600709817867752758063258903118680540406757795248437332980285155284336500717170426800865162755182410433901008423365590497266694517658229104344977484165393677700515997577341875466488016324798257422170342359387162668262619741437060812571293738045639517030045845039613547753237741008206017443105569207753043703371021631027386218311786974777439520194482163355440204640763699348557972483831571199272312914487230594562326585105483966308672242540273085805087196201859599533801687006329001098017741207485155863427738130489078762020024213424479025746243785567714435741138452979324893418228776968962879027190351285649149822237384939039656224462799765459220433192736746319316703649098818441530563964482049225345991088444361325565217780738604890399173263201422625950275658993277179245991084168595867009820583865488727437193883917412074617449962307950077492078921632590810158624614492014221245243643300221623596825636047431579570644065249085305228163798932460877031889669367852423559612986340477839021641026418126663436226474573182938940904775193104412991249520773926908516624768210959049117191245496845242040745555667613305458586806330056263627717607483180361304927403735739725874327476150489441835545134913970005790734360733532451202044760052321916281562675385106918983855657105310235750539779331601469255581212676587509842066421705955730784422534735722510735840023388916950326088690181184500924343538136601246365306218254149647133521845222925312140594742993718853183279796437263509039792929869177302367624004538039520529110130002678502645655285525595301434811535370115202286618765620166458891013269346136163256367280830508512990469222885152083258772975814249748198749632627492056333091270260117970967284398431279346645961362389002271775177132182150864331142604792306537857762031171685036776821679085133333921968230098379425749307476203087384328261528741728632770128123375714909084983106340687769359606961701576146495814028243880501323008402365564123597221495310969902123461703843381300575789467366217349181379307165096981573273252738316894600484596094228105801478089029928429274370110513322364202669516131514171896103591349339899952246881544095164137110998115752878911903478292729043579374411391912087601656234353587061215639337019227751711955669337768546656714660303156608572875894239388037454140815962221515989575725229169759927120785114954591849520257732872384236530844548013906907897037741448364066570929169196526906827133589925165500671310072588251186295641101176022013828156659587700607500698107478002171551188440691142248302676500753846172651761238521499333085392294971630414389147152961959070077224626643103739864890817139640968642215259017348103888256388974277534945064039675416237584150894368857601198628060007404044228479955083340800398985956226279261175809081221247878827532206201539347457888347101789690757970290512619068947498019334563740580276843350127204442731284900986401500340266405523283142517274304051170013926327668614403110280080659815797862660981654497968830856788859847884640745359051914748925307320153551269223441332432878801174988810601636566965423630714004148160382995411327548668366545665826412862895146068409034165697971513145130970692294131945198587612989409819272899636563652763322409538684396369153286192029229604784748863144170674082766596727504481055630344621337017038735067835634831085178031413519403169316008959093445093253713062371707222163589950105490012757783243903832437836941720171406318282202926469148147401373207897925563055869351344817413744804865291263405627503982134071471129690884375681875430316311880395818400815529794779933523012131195060435046697789884957950873373883775604704571742406090358214456617824375118494730386103827333235310997434147399071255189323101652272787531892568821146470993973236842417124750891894855445954415602846796525137719769708573726859685236443719817665586292386743200707375936060966103300441009655804122665513227878976193971430845410929441404493052427812669263296774017038550279575158286280037600078313439300433128767611989517528862493607218425923052183738027675926062795192414320340106450434108511327733166473028823258147138264586719154817254485254337860409967335501699792428519314063518047797481031753112996198704838676781202589707945933950520207592709473633588744130670264641227697744574566299199504640308946041815753121914042999587196361458573999709088877544413090092048018265058735425429055347833965219011993301914488090717040995702516201644483681548525332797551373306974149107003472130804946510637045397621099620380989644400545196073007064592140554928166936758350650282400156145941459872924602316873370689501764338097073871014342500851674952685908795885717701085459311134131719074235329018356225333967118541035944441140143019400140719505102741202375951818966866806553295251261703596748211399351001034588738034148272438288750154100430085756962720052692607713387518681458549418150188872335571450776880670972335316120117719550033888458267321118396097570886068659458469320433081108930142397107195605907755048666064702625883158544016593811202165716058735291205426476456000903230519526967441509887060989261592349746951442477663949199813577839458907335272075201767276465252977811113773832960535857536787535840413763216844555278389704491468191202416132515442331796677672651426359431577533889280364367034705316464981405185326544128795759741141908639517912380681877849155406587671661218435702751755982907985951040628763202465507864264966546258991283504812039861054409083564229459877243497061778213624836630584176274391785904815364629447292134916340093682992479898695736819006196606163146629507102939807642597370248908799623984486142433319966156234033798778576238117814228710142788097931374663525764190177734358949366881408578871454660360310774532381667186366458761195447655193402030023879486105935032032398746948321035235348021829663516573883641487435283144955824977676735231286380328959183810039460613386300482660556353073778876969688150454593025240625567938997756790243419632215061180555699884780033825250336357989228596697886106081752989629605302213845111952407695686063870547989333796234098902959528499044111595362856866561370369032878878056893050058242874117842198680852155907011030394457826265423250665322903990162332813295273867209771796773164313543663563885346150149705861022368378723364283847096037805083173757037955347893853857448973873716606583027097783469228584902297241825661593922053669304487062393493915490126163500849617865011254972134222353926338877444742239809193442845186176925509148918186327039918012939438878577335419144202250988740572935177612317107179766845028821597539039408626687096156810863051109232453488499568247430521455449836879648000131397356636048626963281796436682004848942632158980172898912311731440022579405847693416834026105675170581364848379326338108200496665553858795993642817249331883043159875544482457568113050689111326937115459885248081569932383796554841540265116072364429682152977470649416768607301471974264991107830571085484011462876951814258645398294293761156929522051387689612912506208917559486494350135066520321271808322220747453759816157772958387230362469175424859835965878517663094589649756772245412208553026061144235387058106331262713705298965593653275063339781697449536491571910959492408591517311464363038252507483111079537139926966813181997786956659735858470786140379396527657866774461447902650706118492691834306887398616209276998243865849368852691365878758218624929123018080473074688989467776829964841090689187069943661816198172910871064000199369656831189988881464295307821090006209753949405647740593570827849803568892601083378065950452430508293830623366788302368203649487413690887435239954575686478717288634004092664329607489829812682641801577597902643182346224404892071858530017628687690229694366858890578325901339267786994795130209196631479864896937428070809859919235069226691143456171087976125534231934459596229406391756972662255642107563029057402595462325086693153840889141728422432304315446733948278137284932404905139483548920508690482340611381747310911633984072133796652361418899713705138424573397696530736290150419264101896615366719543860125744639504095762702300185528942177740074286776958910391966276227130900313903431657008848799367415783683647803833446790918032336760639458909535200272584799568712871425062531674013474092650516650568946663485889025902428975819672719306277532767444073002893332361172885076373347056782080718096669144940909857109008476355520380887074804901213670667078402113474428318778933016428543907217940589862074502462779020853410323801429754402290999532028067260609802365860710711370265442104936675535644330439621560997318491761548241340903424088057464241973319622876665199165612094051831234859338449440288076725662989201943818788314137656197461948509368999270401819940607968029237864510658966543901291970353470724566020829493107317480567860244217190851254040201231194663711121813087749714392992128788707706115576671200759587119697607705216486715897806103596348589256232374922077025992770552328752847417941414593140889321850309215528988257114935377327933535565276203102743703261062586019220984766795796706976774570646007354463227396883887834159743088498144853422844422178653144844332807331451488592329201414761967596036579110144563597435811043069275174385482669024760084493064835320063512081031347086405053690832441854649964122620111176916691876802308027714647221087023234263244296844913057338905740237841937215294250970763732167003402902249099105252345330287076531763421397203861927496172973752977670970361784276095443465017248697094984500908733568724496008879898325156691354404345553369549861128423045851699851457719929550262387632565294114063931419159328513763451594993901268230749409791251418559367649654726426278507804877331759697147772468209701349076783485093506993852229296309270716529187102660111208058476366721964886515947590723908111118910955577247676281877396275801544295908328980685544124042155700153388266920289860701165416041966472216186889801856264993421943286044604094461418654636359996151167637701186054809522238229534694282263623572580439640974813855074650180010118000609999349662760031148708936967971466612322081236203684491442339848275095173373973584123737785889233194906632588994482435258746621188776074022570480106775669545802572307887945411898768251260669622997240049931052956978607997438843213044515910320634168121052038578577616328307314115584537453029240133893661799932630201981667330473041297201582048048800242541530725915103951709491886136294471113424457037239701041573912520392972334138357757667172027068166548538610116791070434928920497306396120497131921953072378153056339593102384720142787780409747426324068929978220373987558481334634142337089014155348533937335481500954420284061850773840409459242889272843378382785004027885315220203809134203636598859815853606738414974619058609302408483448958988594207113100985131106190768790428973525683960529158830791147301719067894646349005535159309020595868662819206470584582473286778275154923780562169153807553365294132531278648328044932167281687057830999331568272707979061355470858851215075873832127217336391281763077948344402161059347003865025187087251653570051111730301603771990712536206607463190496167683385873622961521559124635776520603318441963002581779096039821427684602367878490687476653846611654494752241085830228727103733642633370888955845547256871243871879981267934778425693185015210883629517942862182580284793303511329766461603201348811736791859669385670354746831665913598215754971990740170042842188172765915541949182847869144163438130976276506485885559070789435856600390572981160390140121989715742737387155156381055892231349497068896304876419008428349143903723895068097601713324508558436257809851182368695554814690474818155170885527776073618735583248235718646610636800943122071028424304903808039839893482659279154659919184579760168833918511918645060391263569024677473322923134466880398766533463173280343928119444110358592735970995892027668937062672459846672749096714752586300361681490725240597491779995659995815934771555973093973684503063213305612182192371919290509615596330318782349555858669641624507500958684323860501980080180415309404921666356899689581651304471387511465876181501062626043415945221379320437483446293340611638660294331945937863677362361033743892639164118916839127620982001324319583986903974077746363319875018028302809432113659380458075484076324586136901581511987327303842318168110514263068437207422624915139338618373166783695989542257762238420958451892000256134491468788656312007191498519472065577516305797932925898990004397515443483460519598959212574970572659820587705088801314443274212668181872997490141799129024615691109059829526582402244101376974897370447502956084126410763441850227489894437871061243519231474878720216687865741209982654619657384967059326625836960952503093671222509211995098022170979388231998660240085210763665462159457809041977780455239552157366093214889692477695041487315716430146118594472404461491197551520421059752776260380929617105903715850614636447258600881050677713515365338094302585906411132082945083730053867290879664637569830231758535959938129129313434888046545414236179242334719190846493199025386929416941623239852562963675036940762615864179013965126473351223127868253889078738399710838416250635871080415697376019318301578408768993235430897414860057588613476615056175078974799012347304777603594305626431841900921106348171356110392155730693666395966738769682793988754932546719550856183011311182166697720270373891655269959223954342713264688450961811641403632086465854799281626346396611482918304471036249190238174968921191408320404510623779735186401488751048313468656441993920449410479608735582427493566814870736899923976380415735006602283917273504667212505790230686038017438973630997257876440105571866249464771843863593410727570346235874327935049807667405911206746257892579280606720802622171358924444529053147486304599867199069393825861196438367166290012868052544638281499235093144153081786665901796910423976661474175360967062625451248695965909633373709171822246741350086411253581101069654011230172831298736592847532696965675653423264642279178236116302154401483803169257012903614083388751966818836475789119282290686593204330356497671037995253531118334673485739056869074708107871919769001100987948048192550581317127105185797789629017711845944611189344090118213955911287100190390379913087487137966797804933133162757914264570762795349376494248761436333919171502882029463148800225631878789072642556726128457340227402772828516383433753541346331535399097229420966609641534032198396321683851520764651970596162781892636568840237935924343309885147565853292258071701453593968440287002418579645024976498263093552920151492494460233234217598192122897387285092112678737659763879572957411602734443495951187355325908044058656913673400686468741080183940270978211978159533927228084758873953009743216428943995094526883271665233890457514100350082131993868987975159727513071027952148590668895245020078501217422676413051450637971301217106513818572961909987959746960382477260296671592257583906502088141039081914374861325579164995559000277644847607386755550913424701422018897997409616857928820461459508789234756655750350731916766771983778155868624390170998596490095225987071644415864146967177575852345951227417659050603171728784475751782486649188538592331380544973316900513262349991302384480899432841357822861144848028678697533649786525498382600909631361066337699609555370666297021814192269536462823564854321547202204849373949519030959164744685360281303593809213157655802689719870695253932025972169141652668847186274061204031036221986259994320296394419388066531396335948517063523764689248819878963669616996523315197828723665434550754542161495209514529200662220593908794171472524716554949811983061997179975438533701009983090532594471121474308344059062523073111318079854581736176849043225100780570707602597417473959174844755775256820985931501927871229486368341691388999906199286512694242594791042855981268873558467930846791415104069112547842710427788295348543182656919602215780677211810262894585884172434015736282266260501020973953434416917727469804398542536926656401679290018927381655271667250223937572894967351469066179438100189461648475910952647822897909287885043602325139332195602664987144955713071553617948853174023015132005381104977719917981280871822335748388111347782424528227441414188167795181466611072614495654879595002915546236122882218527303701708924193299224008047055030172612348136907464861676946364191994607230783727589200905362833250525700496660262478146212298482584456759012621738655748911255426875262984960390759006733706158190268035837577020330545698820887133928576776041743731473266554677526118201275162910452589775896998754070068772224913126208987363604859590156466050014948727428434370896058661167014805370114158687097275789921552182761551240474968561209440464846691284650510944108666574071589404303213773089372540612226898023991294248184968040031572356489756400713230285440033415031896496457100420601136870282226970610165858159973073777722677172255619689395132911121081674498702652269881806565127869677769932769715078351508530343243564374368832417914954639655672744951698486187187506365341520742875563837351807805847706401901977959652339868438603852452419200314663305047400767168934470026407038731856388373812085873383155516049448415162958668815080800085893462294731850047808749248326247224159293735967212432363176003041331840685926135480246128684580037768320939986564086540288166701364855651306764460104481714786902765061923370155242724872834676684610742146542703754378354262861365448735122156486490737474073676820285660587947300288904170628387094383653065985182814533612719494855761030199466388676830180286350024003949735619688833892174569176827973630243325921968719458482824312568816562032874750816288087559084745526733465778495916652590285842956569595275020374556014730254470594165328402531318562888009409958242839096947023451939361513657497150947503987690735476944807226392354645912578471242639671919308229856158320194732636788891612777749508150425357802715202630688596478318966395873517724182314130671722972223239301400265935029170236993861051837962717928889529825451131599371808819866890014342008785476770218760302621470298005263335544862712337836126499380105280961884955180957875308460070587497446381741177466138434667230476347513123440895952571488669027287099426038609837399694526257965597671790954603621332595036214880184283902854965147922286141128102319976114284485969455013841917235317406563539782741527782413866940020536813473563680116570891407783363081324130600604934527430100862154865168704460207978895082281335470938839536411007746268576694964951640508967735027023160048081604842779394251042784612691527555972626765172542248033883242365005508397954894958722800441655663543100641129608200008514246129639488947787966258394713455989683247431714009268487421745413165344089535526952436726263947280663669591980812810299284495643144787448431175924036105287851579667721362364308095622465977413561424901017791691365684427095437630300547289068675272430923293388404163923418871608260203148824509921976720261084274454337437913314216046500098788236001858045302992270609361006991115123847739921968386130046861669355824588121518655598602987373818206641556010194043064394976796024111277797198356567203462361883483194210184672452252210279333318096237517945573594757667977689710672215173513588385996468549403957023596933722249302628214876340199146532322353034695095376448473982787390173224096526037776567111878634831102505928573723937262593723062435134257747425582891256877416179793245932623102690533070114701743655439711246363169295801018853964499072113150149935887429374455045387028721003413433286549291445453076705349125487273182416931869859461034001359659823613184369424340903658547144276744094778479549390721256103472978914393651610946859086773906582077786493274458100432333251689885446708606897586187528294675042241723514447731831252911421530674430975302382990298734498588563253164990444824100579543990959164575196171921936791450234998275452547233028688719902648620317516004173286400849207523304453935943352634075556542596465110737108578851045022404912422906314679936413505477029501693564142493377616413999522824698211266889690683307908589814813455829260483590386412608236403250823436400307329408593867182906052347011063036113943767336628438243588955134380530710246840983055867565222467080112802066206403238806463748101094199621025824256347846942138641822013718278206862523262096761162064816887258581377007886813257229054156936975676733784918938645072276797845080251630002177022162160011261641570424925649165604924181068984650267272034873906736624262334276600935969950679081137790209098282820682540907280044509974043055576787970879473661212667508786483243010480137954527677712490180011440756130265147140515981337124085579401762346386298091592836801760714973990759894786635522811412705282731022401573565552529633488826223074270520995454564592766396536178036453727753776146946782788321297260923758035352049418155029354308896474273563923061734372836255881255361492733304961457977527609167801266208540992850648478145613387292856462312424636726319053480367382747467006076663746050346105318737400275886384836459052508404815284991021637438675759566626577952319191187549719408126668557084538928739984129125589207096961617309340742963515248783053752570459081031176055783619622465384314382880498912749304099327786171012354792459104276396179660676445388430710254012221514049275121568489518805668136262123573620169005086464922535422513106289102288237981789232629234417944862723123213175439140218051208443930810411487589373415567346384627834171908608147408739334255714781121585324432914971145682688609236689963520698930740817307745885277224166416666386709664555117142448925179928152837565329116351082912787844960101594858350435996791657274053972488351663941879179881748059160232993610297522656932915091205095396946823911675046123068276196642773333798497757522273609716480566558043420679679326188678379167626622771240221254277218480861334023971966409884026227687387885017093697711459984860032009327285069176502864971722420812434598318898343957714228805161743998281105081626138816686693262482956103911811622800978355823504021399651089187739274324306190525164612126799692990059856293186874279854404838535154732342413417471110992629535767869413485461136111266406821003250335068110218236178089158087557758815733283547311273830163237135534619235288355671453970274012879932911771906505797049346954127847460933233548093596241952233097797658262947252526155986436288426334303589015546396790774337641013483507271873778865653438494797622049003551335714927404750912791614795527173753786926271567291884493354880454856433002038087058443412308595495758846329916016026955250977576488273408196029378892787359758517687275051411710386085202545932327368835327780419626140915817411494839329277842765157722781136926860804298435541919856542461803781808287961928964523539553196765535521073773156599414475725110354993415060181367589123930651062327316476072396422913043145823756717143465236182808940533978082080535309135106278163596645212395941635373390746466303640308082531388100470515383162567311313400027353577813770291488889545962822716424646288400725567295625137136068211868273425529717709639643888150608951147161493233649875432993956490033076770978989179539585202761490489582598884215551770539832872374990505010407689098491194747074077215643964098543734249956574075866707520394861249604004093842270106319900048840863144206889398174412709929825674352015057398167390275300183267538774501526199860467051794544117556556521787778366436568726439871152696192034782437430247306303207531626575858055490711601284706313578416610217092135479153944976524353385955463451249771655391874788210221728736373088507857423406563190384508916690218829841525713787067364517344245791552042802227926581113172782377352051275787579489879102642910989318001391869206841327331250003407881053426221195362510722339967521508309501470416058534940432489289815518776919682119023342207752656612763320871109416204533734220541788174531166912230927177561660088268864823304284496694219127960319197398110846595410508154186454104198332807104115033197344543093668468083393932707307781080036205399426669377185073718572669868740680614543060644964917002809315003280471642746877209986269626228894640238470043149390479834114983255031667558754071765398056322234066936517949045713072325809986077787389170468552129814760548002780597327730158358446658190623136899210509181857375050648921094058932935711316637007139650532219736290373959507973388027520006472612068854358745611816532612054968346881823024912383168833672331831450240628143339635963584322317095814466271295331031305025696845068591758019552572918410893673509973232473657559593055783667756020280419302566167412827242024756359777317038251503389671215053338919232085400395866758654568097979381373736413891120493172668558666246934186081673736481674758861724822619769124418748809076276726207181196997681866637115329117003914827760488579417970110540970441774005422345426869900615261392096847291985348240550894391741311446368285221154935161140980870500510803646677429555454454094675736603703837562794447664460182334748455841271022742699323726328453650393846590720291909048966355595198265955713388566332311509351652700311574771022108209954098455797458904844034505401923682381526339356066420682530306025821348278601985312590388328559912410698737948921823080270559987507855521914222761014961345168290126469241165895434472440705089147015643101549500691263419125211737651003084373812887261922784601615236530974043159820618056503809468604494774291973170066483723841516164868064743118696904715312570315472981559145421137637555140462730595419820788787545525967882369800079825660139732641313420851384198696369870210241742728171503351003669097266131901136852602814464965719803371202901005851483232638609042118894414700039337420150341966346414200527686317428880483586904393178066087792514843568003773290006777189989911678616444019057556913784231995313207415543466439571171462828815023004327976669878621249458933680048151911327437148248661736516223316470726733910838550402502041875683056751864681083523583425445486795376905796695211645754319711085947346996746755660295648898219365799077286742073136336064718846250411957881082835170153184779817361144635961848096821781995699929239171984810170087145111428533056827218802616153857047363620147791987094112764171467538822078655087559405104329250522151280795264754441659913895853423567452903729423083264251049329412904527995947343816380618980574767359378971286858526048031230954665811990577189320464046260037414039908830464466544441395376818387782067957298364038695645570025049612869007568190016240058027054682186535058697119695376405857982169000363196613357211887969007219114070950985946229388637314035035074064851592667773170705074726261160055020067380761834202100781885619709585661084003165057491347577513534647273450726384888034159415147977945737160933423348822778012169620803181964827342132585147782859232195257951105985840319966611601367802980281532471616831300934643639402696252578214598142634253676618686195147233325279015650504057369675461931680800912327289404067065204222217641975763864028213452839211182105337028767541743365849888259051365839882752731233550035768950824987087788890184693432639817051352386359136609843706213040600533825908836128180067722698734737615050712058216567120975398377523666476292960537263552286037575702916118065175306714894606945820692389166701715576226132026339512714133073934246031693205461956270581156594489926611975210601978883501622500751042339686886678874521559645917603706087208957317517642210075277507413793606364784982996612647138409262752796532898392171856967961419078582482939348352756342592439278395895798066790108598067027287283841125452059259010550699423082564242517521125601613203685068290687085924553627325054552578720468695615074967674609709389784323205610094557429137410795171931594802767159937401555381552595602200041962142299446837316002623199241368867583783921176088922650007101397429910721433475971069633092368289652919483957508171563674793865422518354432871016130618831262927898523217746202364775337811665773639342754592477195418498620610707503378066815897877799379478035085345444992238572130703607837024019172300090590121505669942729828376360416858344215644728179933225834806459067379590994721217228822028757262717516456481456171239007858112341260797373978626014496800701131563842987460688919452243761890499078383134305737994122891768247182555703147974347096589076838107798332387048660271172887510052940968879418365021378070941083933915215499284263944484924361211858022418035748717698290340899654924760750786093158116867219191262892516471839196406874632702833530406844791561466229291482682672399536406517180446198604385014842828688941356773331762875271487410267807444719810735065161966286563250545386538497557808436829615846040610252163378253476346098230867875225800466663334539606179224921254881640626792816884836271133494809277968312472102264666401793967211500246958484726400842950422023322183902405585315037609231297419167238063686722219256454140686048626925937354326702987953263774540894653289505196037651404774615484329541080751319918369074417382997000347150941201058377817996317844046983713470775948465525252689242161328917767881087766694094110472566300091280994850013424438513651090659318834973309266618848842154926971266246989345932804618673747521673734946940081762878026896226313074084315692380265295149175891729555341423619824745433978915693135312018060180670632594331219917193259430696627651691649621596500387156130929704327926370330542002285993190934599875960759394921102032198807161809848421488260255708224844812270071895079358457264663724913977110431333676189379924633108227940712515858686235255132390393777874988331584874449603771381370167697330227927618962067640519224433903452888159102228038808350811734347842269786025616913891557090322185863845971683114893903657383549133274548273772345610689917305610637074623881030142530178198329027995942058207481571330558710826945173379146164684172114666304520979185281835691363837569254365491979268730240268080468348071888812536707189033960655498453398279033443095694464313922588406044910083483477360716518388239419061461895060074919580686719952495978964636897141515673556100177957389754714104793603070382064688872419931611278091254077035068519496869494201243413107894856433698421693351789568193926079596190802005611907882212611805460394089728760625618301621251278195570335352343765157843687361936421441788314451430673037099310226785905051932881337843434577221759940060072439167438186644450114478959987997617630090070991601725247136770342454238598826414876027322057593093304908448363180817200076315587583022546370624795349748493959685604457214323702059287683919472465912311746111701072485469418894926451936117666239671590129715535074607512175042263688479629068799345468806472951648812286572052009625556994550952086873637927828779949587705778028786740470793951360728197498879546932766400607125694617655774117106017150228064355356986991604627771112391047543481065925037783564188382942938189843296064774526596221425188171721745972599722649119033782208189841079507636163884780625206245436630599432257684442766178604376479312998108173106136528106313274747518441323277716998883673063524626432667800904785456969487424642763981579083643675456846780658496518459103663279156756263479164249587727385883475988793275441630495934590409748952548097473236152539465143314959630775462949987608521986370457595003330439319376845184692855351232005902531251425298039025937975556014801727925464926554463375554467844978695112779189003673586727506083292569598118299498599592480128591599566708974021241950180735187845447030263163023993671305286746050201837910780960144493357197224978864334939859061042493340955083595236452600916919419974228415441317460754511899216446246109796057612001972411172554178127553037196662499649541871408632844751956672949372481470043803623192802541687886267072633954623238232155432168952262893610990358032221632738975596717179319267216318927759786003548417069831467929988887116219147090939847606169069811501108887428297723154691679718045580566658974234777916460765875874524199547807566986908834719842907795826958009398032581650372287406555794326963057924946281750227402794211220401111171253508965563689392338563818450602806006271725324625673410386906798625539966372907004678481297609340196908646134750070332442530709461795283907146749176331704228711659298752491136633171948208267914331954915685037772083085132827419023845665626740570108546953184313700768973069730245065001701185300628322424739225176369220909794937992138640353685753244869773353578253261136479102047052727032233081379585135083931068732102060434753213452736339645476712508091464409563970359978558331920570538151897278391707133866720993160852893819491220653037690599041870528151105929871464155436223789062942820764627530243689060050327325016335650854314221753350259195350503824246911343670244169445715187878553084242275789256166644191819530312289795873974379291562153670567879354969643931270182744722916730716569295610338671922643636183650560836079190137627736190403507871484710191640249256465626631699394920389561691021930565000986715402100295120627405796778624282998294261819210931610357313284707531052826966829117616988046549037642171364842589622589964657353577673877958747455731801330408308868319202110303315728074198637113075279655728384254563193539223855911239902014803548080878789133557210905340896498290369576301184934474125060128880004397995255727597930527929296369960077046045614246651077977535603187193955653886558889595940770099342543538469553209490821345138008727500308553229634265296722319807069234839951797209474412944221154743600834808019513477921430388455782321683515645212222050312119100743634645777749687880311379662577918432384066745583831538026701291538097716230216671903948223692849822995780060356240144557526777297533054266798618037551075970959346093778792970751389861086703970115861583970714424867974414365831662045261073180270318087560370300952388216991844777143011736339930109480464665100095537163525965940193642308777820978216386053879181381466382576272939760352532752210082087462089921253376772901920255816079512695453922470048255572598372561356698247334265399065922186858256376214690662440143374827053405457091013899776130009718852803678709855412246766536154864685342722204327339513076469841934997983025460321094527116105198948427134157517499123937075200554627660581934748784718181269520870270547153256224717057432316162405941042307765145814254278826265723822253199981372633748569888656140542267356089323859746520064635763694897016757032494008048043650931047830601602236419535324626223847161995702320316042482665069189198449651796874485238027526823284494183732053984743355940236490853329723404053402264435926373406845445088892608178338559547709529612441397312709803288123157319626592085854586900813929441305969881306259069877201034418325302473881529295496243057689232892312435825691373023047687165044815596711845725556057266912061515395763790929608195724101741720127925744007690801314043274152726934532419619422846134227215107092381352120074916340000696638471974050982431363421796484245533430211534948643949033485737468507363013458395556611981783819667962506127419627818651277399620015240186244963551327436616777001706078609588558428615785889177681904934588270792516250628577519484376763615794423733318405092448033738744705136190800920442316380769102890529657406797773808478466897081533484134516663476734950002762535602524748641697882613767141086357806271657211676129083063140066170010178196338473968910921047995601793161986851570094398060972369861886124451448709369802286776414249581093534439147220986443355942403698705193806963053150082487570815130559945549103975468054257558740557562846794378662106943019990743855547054007876501878149194139799182680276046891225883483711450386471195200064375068725452688429193579682340051536003841473391926125345973545512231376737929588684868040179790746351820956875894216507609873852471114221576307842280878630865867479564114579133302191242741789641394323587940859527938229466585854895890157576312645254319944917171794163108787307356457424753246867483176707049128048560313292313159277690112404171228891494355086144294785191203373261156635110294674746146254895970314256332902544917238815312908061446255837735772649159375423118335704207064106839146964596159365629861467630981386724530369955674516733407126928595181982629707156676396899265865917645987224207444026301312679350325156232984496868775760015115176588392501360520837880354594323961037978603641969377861574340839784970781683038235788752619486983326821804465467509951838104267411005531473112608996326143944092990354355234408702709652289339449590679669711519976093017747228332710281693855768133923913644110305594574346994325236321163039054089295291724656868338110913124004198565079780784680256587844109617398238267710353596929330160068414360851274937984107576206255879568226428731047401743655253729217733868900480225217386517132472146213991575705735683700083181411276419865471338582021571569915946180834231226498681891196909788576877265895226552616725889510480432397245539012209053856850801523013100209411502750713127662543005298601484899677917397966786962011923165106090170128033251715289092666967205096303072605600956519069129683814908145613958622728757884319067290928202870029170540030771837541340288758118430107455882158248652471872057663414109494892200969823263167514273341172431551955937805820078923032062812870946355670567569447696556806037377140955312253133250135240010228351804544971833263345099044034091862249648455505464216351457402121945312349704945058350440442520537047679373582481867145843622683650527263714973632453517083114534556223182995068055681337192404943835970464182466290836358167837316356517032136885454591553028402437261836625138328254145137917172992874963694485580086483265413972038516913760123685249944183333096071699899767682033142452594735348395261966067409454398302288735145763065457766269900565249442349849447050023213723595402309041841192511621640656667618184724595520751455113392899498934281746459288688767596887523022375030707441790449093240734859235376372081564226980823791065739925878386135301429702152674317677604647407143231948083538965356183821814224287576529984735026799385865038238157089638184818153622321430031694582318134211504805356196240805612234654223708417107141627032480893947540390603567773685011893126289279451831955822560288575810430452189233276731254577899171491972570760423945831952503279016009855815312984600962538748899063859745092176058086632958608504918252864747054803871646775343987847791676813242742519643497885040952486423856269286214347305676359495719923852390868022006895396461951068409964128250988309988066420059116150542638527155709215030967532069791559450371003931051570850854698472704039636289802870741772435305836995686330656121047781072118574839921048611747369133617788683798444919688686766008701629067773386499335343181619049324208258376350807971260142448921059251470944312741358700026986757359422167031749297116422785961732406215860100823511276949930660188241769893045122029130601060723788901012569161463875961964434797183898384210251828778227125475912868880316364543735710113590425625725316874214864348666025953143935063272092014859054686683238011344579358226220812349249988635998012250032577988234014306356106696843615299853624336773222806371241780192986582123156936216885758598277594212557425086046715593355682953262474461160485679093577287413141551668160500875225206368591191731533797365334739215227780226689521521634839339106489189307882863366865883018580638914515262970077569301046091458295997614702326339537379731387757325587071001457222390878205453845807769771387286099073876341343566686610113235813791937804252472425921300173264363003010631932679184194511976113384426317820698274901209461949561418502077689914934824168806345197044283283062795294553923010354167273028882744622290426741789259782234537873025193471539575436937862547617997742417264580552660225157289979987300160534656726725408791753669962045177388732072573792442768602815734289291011908604690937179170095401940842718353810317832256156946051202471581910241833671991114844915294703173416302053192701130762122204689476260982638296278608828742252406975215734888834819413321079933427754823940303724323538791247359551399974574542285746169265374635785885423061064734824839118101716624268565233676864172652531259398684174268275130957067316014374554479298106560835906825847758440796804148311166971902805599386838272873077865707539879470847900272996399445369575806670902960493477435224358385027242842422304103840740187585321045570947120407049761177663864063656200647764572272765309870686617459713352482454726091109490377736835295290485061879179525610944625426332475029366505587623336735610713589817763543947220212612529488346308332035712995690250493555298388335962401049611175055761201025714001176250519160503450256895225890576790606379364699934078556099051869669671028212758531265089029684070355349108194896666053882810108934784698471301041691024751000010803081840223096323402760535881141476570173923318665406941294094394145192907151372107336296369804337497483633651106755366506579170948640698144601591698636477779884070683405795826892756116092893594108881209968872489281539596497149523730929510989308064063169955477888755480626550919816899598500339766051730126703857992552875163821644427341897359382462159215838747100750131770587650811805857118032602850131590011834890097587896249216505020690908349732744681951907449401733273432655045898923977519605008531165789223097822279212778195206524751930064535945859403202868440627090124171942021637870410767133349306835429779757950557204133429894853277238372761456624908483693659247559558463378675151366449710997863356117645416166780377245503941914862496523823389691099557252544692770321119506097531041620615086097798424670166269678674005451690918055911725019472735022235157143782975780383236655616256014568337701534275420446505589022798464167175738676608888517403471389360893558371105866758078988892066759307656375106932001118051319351658544239905918577507342134799386293794785198680748147554799785527954749964204564485779544486952739790302639082605541406471283661688848655658729389525665627533298531789382163442170650231302489863168186869051877504276051099642007071744629988665841006578196901234860963388459690735908375684726229500870323042949420597861549416592270099745952641737644227936407881855787030698893813032905687211077685915146609849031938259187263048673955552888280866836464180811615843026486382069788406083233460257479854176206652352273577094706342958000140766049336905892781646746385188326411243526048601913070147008650903177238365976725710321402924054260977345173238438010592707103379858191734349440039867653997618083180985801833820751260259644638866203631663888054196811354472191414537565842644041233478793718153953631181310654589530953400997581096579995767998308226095113699269706007886708155413719258563159652632769920723284508894530022415662711196117966122904814200836895291076432576182005242667607540909634350860950537900903901633627086566606750251401894317112146101472857518245002879923818012285832891110901542005935655791201570841074365384777767294787700030008068792313494465411573426710977554644229451668336737521720904328101254353692887798129510039983664852875932796947720891763479637943306354219729355611062758888548482640727047782116104327167607909154373909288615198462503757929696566451468010739606425259708464004642150704354865814012779556296368956498915312048832934783320518415679758134886640479732995389431715224485142932970948302022752731384125972159005387391469053260573120514299398785770707815447058689907534593260120911975262210602557612438967415264688685758688641057792576225171932804228175255007664867732954707734240846951534604877643849818983465931080441511758084797264847887324948175898617886494729726769527696293943872745650632548344661745378500999654707328596618456088258073783584843612217478862950739477213594796943687708028802803656401722420496703960719548506708793979725973685071122658138521769461922707803430717463733491848422464851423878202685016639440850210327231803909855108073422407114132554799278462293733450685976151397476811879487143838122510714643484444160995451109801068942740641242333898895585996183533017244012160822449031304898811927903293940129363837746486234586632019045924676172340312387073807189368867945206826843286747192818159502363204081290090445787999844107336088692996973401151853767808700430877768567686408242610212858627600628361091333551165464101913839907084491147978509365349788410564154379655458212225329450148319221481031512064473636586522926602088970996737894151876613825109339567541153183217074677906795648549671892383393956368248509872207389669177852056363923309654146387016853108002135913811190504262418022098696385332413361672186043002986876206804491036321815368909345147676854970922550269315704257487704615685615742923115150485900399870395374827047543249438101473795522766792227293487981078930060173403138075322289066742898414030198721638486087048454743965758372119679747926314255792617061190223952002362703531702026581960386756105058187157670276322827666443937204575784247500547150524573428037175971457361661370935596023531192137512694051334127100500028731411714075742549398007627869047126850317812721651508460556734175821856776124441054464425319357844302164482497153327382729545452592198412749795212872830718522830218406906735572713354427945403392348323544493637430735446883596212292428462540155453538014893641487514582625631637982818736444060476080801652907670317792448147128256486212910809407541407259197876046819611584366604830691507147737028925670648981870247891807457905528259627132790125697724222185154539086797024341050205402024557882703105339226870472927113318085067611258168808799650262242278652074821889627993268295557705567592225502056353701238876507390697095940539623352071339891517597291295814300445005080518574008234248153138710921146478339030697149615367044895188044558345724116195023012409156381514099563533140245690921673994791152027902982630304110642106200356051167400592478161683233660471298391733654413943060321073181551257678282476843821647586953449452910900452734289142337919236100212282140554125093113434456333752381612006775033192956419568242117730489183856844033771752908148300616592712625829657104070127275925928107094302217850647775328751910437209775376743146616567701577080707591645148857442670383538683511845752328669357175265036672902791437909684490436417121260001781319984157553255669311968008217196614769119994861501188854714224384322782755199113941110486564921273130962511931948527744171470060690574076509657992846337248060062203407257545674725594809904761325868846622139205105194070908238943232147893622366443995282968286215687476898497989276884901924724893624088289556445922405646919886319687491938323118642774104559676408070031384451584582652480037155978633957350186451632453103114064354178901189055917478623670026551023027216332907844374379652672081582619686369024717556604811706643466800286013907364605512723566606768774503068357297269134952046444251249833574672516169396100476845570448850672538688453003296514678689279881042363581775404548731359823611638691669018699384504802933361764066569442010258434291347103764048781906837139813080648369602518382030673997355448977132411459400897485129113424234616945146482132763482010230921198495293238711760324473858631518702255419260955718875806576208163455005530401045473773249129182814789700410794561753711790855875860274522629731942805223268535569119586734192323167515956958254255521639469145385765047429642843513093185915238682255698836700307761628805432447691225284857539364674356412410462068483543261136360571913246220587797466202559158780367837355085310667902129386267934446437813125923834446033602935371720825276931096462986937707492286280450502695605409173902378167219099977306134790676810118506161098849192699781245745037984710003815686898557510575391761748223943044284911996551814269051869638767093625674575611725176966145818549561944804751243737562477949262698142329113707842180452991481419404105786628041652429900926949732347410543345933128424547611365633575019980743109635674406854773468512073535455797070326518528132167180953296310801908270271984074596353805643577466319742971753479701394352606931140851128193505002083533384778881987193562692126809355454632585445751931253944954970278847251588182530899530016386357282732275226386984403805944322755777487206422542904177580095029859385771541206687076615528721055774096161407708673536981721545515811936361534989820539856953217485818299575549173718463145802559983575205301456330116461140989106975211016306560328739329353832994189710250878382048549954534996437514296210487651425142256621456245160086763569235712233408984368780418598941740421962071721273846649915438352544204878762922147606054832634044678103669266745304696844845144043011897764461914904869390825813166004069729755098278391898506007012129905925402174064480864208480780746432793119268181628704384703445418955248180442184398904407321446619736647733522441095512271128355133685371471080992722734398611394056548891211977684381372755177411450856139942583877069709623113821097688094023229349171774979271131428078182191324632586754107726620634113503639610344033370678867149052863099824277410009533736125540133901831742217925949650862193595092604193239362419656342521700005384511672049628156330741515725517663082707200471487377544462926099957761053918421401521963563631927929817765068371752135364875401718612922818063040259627754805792476602430522696618415070696952006830832420319340922919973742522446017166339615666363775342774331094098683697734283043545241828194524243346183601740110212447660114411355519314087703185550722125000434116299441281502524892027159428781409587791222481701828079518913642882714054974784552000879060703921182194232464801622470383282717951899624947536507671901342581044058335233746252298240925181276716910212966724935353822581997830401272230383591683482573851279149473891383766432305320166825579243340003925717653798432129041130129106117809453777157454782094897673058013563974393529404720959830465625109097267685889859644688189980459891219832510240936251516471894232235393825679690107994994278030817013058135013264442429053349607735518145622675680982879018378341442611689976799728551075893120942041088320882570264621232186149747932812738521575450200243553315357588913208421972007580167044697901690670105727548014174310191709940446453492687098258590093963261918145480481119795615208019056658942677898452341186556555886843277937938519159949625695919123711512485887077810327104767765559144440687096099371935041582163052155749074128421993208727459095664563269437260900816553837012554809025279631987628198495667253167899910284205352278230282730654448258756823166900293521953751544616953838622771254056928491082932810806041168230478730137793657287782877396207407157281846533106617422207742249096612717828738273711641112154113577346458230453307357328408296957413899320548865197007261777474393741173984191257360120064570682245420807304416939057311747556913258749187674773560334152143818218057160891787954573317673590695989089407752933810550115721312903001156514339274658800445361525543341683628787580214068064020517708251391435844569477653118018663926190405546715929682957316135059000974169900599334220954905029314035561560390330306537124722652503714296695966892438376386388999471790177954535399974399698991509529672114906617114139104307876291028897543046621072255469836551428810825741070296122599651516757863782358217093604695553795016345354091199973399002671282440420967222083427205159707079681280480941488989072542685590423450835801507700053962307950735766485716384673640980684408243813917776019015532035711097833040800667920058082750207721364470553024750576180256800999380448735197749890074520626464173490188807125955604789763222766693982094041120070204614968099999822505386776357455655908627854336353306515494095655550465532314061366101590919755707368735557045812232271123906175204881279175812493782808798100958682037796158218024080073162072563453862789045160567143489462330124318716605006551167606874442675147985743288950239072943478633814442753970715457611761123215707396416472234934495534377584422487085889828812127943436229923725137732386037938847459041143601029905819768023233955450728361855492640972627054378314251409109841237893299987072961065819308269614849949501026198902698185029348218273487495766172334231064993805235029172427738526316933761023465588682762479957505819099776419524030502850103285016880914038052666403132838063220570887546938720087562806253788494269472222918398282205188928239554792991921362086898723774871076529745790786059875007813606660513543066417098904113453677639834411548292479258044698111165417750602095289247756048680437900882121823509612278526634899564760089616994777309009758191718959663422309894553760386070930991367215776049271974954441039539661947783927183053333491276758030143461907114995553469113638438650074987544745224402139630246113688819886802650907158973420811268580042668486457762298088271210074962700188025583936434634810548174157920973565693071250385697071305274130049187657116874404631916061273424904090333568907441827625243931438676647773460696489605974643191668420714910799677433567084201763476540685499435237875869233743688577818379514826741432085134463530023816753767990148038863771335510041866152449760137297852434484592013176832673828944262312067898116649725348085480758043608277815360941954396308881458055371374789551256440047406075939402894245984905873029005769136709206587005857416110004110633585047190992339894712098419332827184586820370490131166744023196165464504702935446025227400567789642540820227162848301986666519802386521783270211892365177675339446362228865806927672933701247350488789274900611583276203805346006672770727338756698797542478974628012897457569345795356688965590024995494378171060461942092525312149795618867520543008638969225329525776700462930595160802057715297059025568415388186509636047574418154921305121661553119653274033992156362361735693523903765207533082242823479783597198683740829784356450115509850320298178489570729741357884964163625551445740082035701717632659441723523207488325356008114361293723698542075391303296094903490621463237130625573977669109741868472961374382587389573542523637763148733896119668625367649446747737316765857525570699188448609172051786429073423646542294075883497555588834876765496416428433718204308580874720331315632116892950122237719416820687050745322328846429422555155452291696017868034142794022184880956369317021213151174842103240188336995274019221049092685328420759009164151498586876507536586679587878023699513364053399564125257872033750354212571481405142504169771923052520248603405589270247220752734517234566194355573457909442020124877347375835457070467855243121734985160639647396108833746836270612001978890352587498528594915137086946617030190516012719863134365290778667447080279183265744636055407896755900838645837360991130851785852982036090702124824512851508532532130981980412919264579763796728792462234201198416342538804879639487970036631667703989936375442733880462242029590896220434009015387383360751583309274978800452426228295492821411548298586391533747851657925105263519579375352460654639433760787427662178882256787347494222894159211716073772271535762965963849427877277096692088298560759809580391680308636904382502389513533444390266006417107967623712437438146664509484868278265813045880282278225601284659013170574319976925210639375065919495335833091316862602996214199462716820340904775831503961828005059201511621187898330609324468083664759748097697297916264263609169570789984413919253138544236662135918961703419932774684890991859695927119693773230092088136401412233443179705217830657978908785554303619086760905083608832539752151946999736204586411459827127081840409019072550906924118671532695417878404944159338850530323727602135720601503852229241448948302165799035527514007795209044777845273128516327399424222468074745280124848426909067846330001790093379268629569023282359994589879765836067209890634979463875839540538885490835422148227318257022992901019882288985416199606081831630246827519095312950916997167567109301608759671003692459400144852473173972934530078725582519663539602120441849081104299030712192654846116335299120516679380158523082864460053391281307154399524018609883029381884121486766866611127477211967776261488216609252606142422505661080633609357346420880688451512118395341849767078466514502513777767300362429732932671089593887362975823726392244903638689626564894376856639132056533418924339000856748916149125025041210594269664191765924376678681432373811711492378162057499475698959292978958121798854145759160669224342471657180960671807041921984400289177907955526354628861632428614480103220469786606509338037271006943175177026244729364031216542840603463107773152152435168700554902827434571415111117789049829311773701907982971847670498067681943994946419181206053896225535621805329317447325730238613293221907728367943368681701313286392130149287220097842728053413116997906836535251725524890406150348780241023925862932454820784013796462008913268654328256021175464578116739625074957662615186881653473428014471045281824066274565059936992809153143309915198482847706513934957627837708302264562678792084095920657946010016018694319909153838790042297231880610985542158472431309912810982679289326011422592575678454750175443815344761098020039847014040307934232338138706232904165541249402049323042159784226230398133117900689645931920619478658674455717091607576913663224466502855398336449187105282313237075375648208104444205944801390504109154702511442967869720973234821512719274753177864548639864443277231296899498225720530294306987338085054213542730198233028697322755671554622843035031318246663782908420794555205265281090948798857605142724816993168080271051296105418055573332882956699570484196939411612763808195969254699198979886331073606477765151770388846870242050918972719562938337230453883492454352322954631666643478144040013564664314016323652506838236587896751610699072865203894161251244315845818597163904830662286366511393215377680057403376132676011726841678735972454620467181828112910313335453046927064905794048651365345426612689922374769502900548056564430125255686974788227687060514600015212832963707632710010207210759357017639937848714955329704935625357407754375158203475869589712544983861880433900229399985426430713822422517364963161085654292315613574144814530195012391891010065323840139486831965828037000108673691437373310783717222534388943061438600297906454761239199399173114652686477394769830432944963764499588031344309701883797449827032599581267019147791607477868715551496728949085829065740386278316137825277088878523583699381997474492023968391475785476237660034387349482940489927585833632491869779807825192659661705129380964246185146153361875194931253340686409283390575398706436290224037071271165402731936086742401062402140559494199753549423268545750805377023303780516473756185917807715816106646794881525814676617480714668782219176015039226960914314566177544982661787811585336562103248144222030757200847458762357781310071303441965909197093210086738674700266172362147330753846442317117211886447434534573168660901430854870990144551253098049497853412618191115405966046935171169693542655938878493264405087735732066000254327461556257355338296267829381539975548846192056353828606743358386347759718779241421238737646646112432861678719334819968080569347370101788769543963553971888537791351138257007652463092796100810516594466130120875927379529810752571506026778597632848112428507402104615033850052977119782758129902427010672356779287681830701107019865393466581586105487064898510299568757040751124692026398970877609400000579103665619472062463833394069851042658741484008575474432406493092239265036816979869233334097476803876570508851954474587330826001551650785931718597558130175542890930298555250436857167267043074177005882953020239346065054535006875701594078453854140846292392407443419366087934403080740769204549382059283297609695627487019835281865204449538805305887357530901900260811358038079976050717287524186417667157031549541014213452682519946965657907426142851527116263414081922755067167349229440472201847807873525465601889301176933503673823604504656000524841620862922376096817100691535443268339089060043316638339403647532211359613839663050104072249580098261230560171502662686743591666708746731043856738810315419805321179955928597820606671605961870725062330687981645426188360228916231499493808562151607482058192055036915646455752159428804702831721850760532995536825121447912319416137984282913281216252645982786013394379219405963680979923861853709964589014846575294635473124845672397700269358645418532179826515806157390387556430092819950736499629751478337607125961264027784600093499551583197883973728732835485393619888783348041039888131054759032163973866781339893414844425159850954890812055807703726167143488541249975646985055373659191588179680557910535645340356390812674543019402459627001934992883518317330946687295007651939142776856722891451460462852038065470864542301498464985666568905811984711154409047688654130760461646623269624543584256693893348220687142515996505195748364111940292491304036411272544668351545789270574161990691809841639427764578853244446220090288512232704528176625310884737006420243682781321912348982718237436819471804101066161756776500087287661045724875088537171181410420619586884332568881691191114074103226555277174179952452345883086923043849808774106574429674554550820848993330356208098465721619187429119861235431921918410636121025872320363921012091970330330880030637843546274222536835700314419907163741247503288188465574228281510397158700524958059336504560235003117783575364761675062756878461294276237116230202176441985204240314192876996399985474796896231657700210131683210062592104219347477259122283414453111242868021977018416671820201919495987674366115760923040970772649493654962523249501469194110728234094241762117665199509658822739943042881731934453511319734501279627142384578835893275148671490874697901498949786866240290505452432364903530863866108685541585243740080419540167427053305139937888769768954356484799142471940832932982297836822535248726213710469676295310895847800403010309748971128493467259657197915250330590466454811182427881007362345168170967006251736458423568528509474196863901370533990730945212390973351860764039665514623002233897862866256155067704106277790467130458407430087557262961229483950563772242355067641291941927974808322509597484504292484635078766495201776372296306563351504299891794974848956795339505610875353548855223950908689034713592074020822392203291385983995097710129520771856444040970927868638727704574720366421765287487374063899107693384643774970177795204624393979169134878368619111680688769769004501764885035704358119865506915666312278945949729762332798663654620062723092240492633652501413214149615040241040955241383767157422085145042681653181919179542228091396087369120649434422474632499276644584417223564057307157730669310429934210397299440718103555068566717045626113709856281259402150840651861728755150930971196548712502846086757148159424736208244988689827140005045369283904191804173258018948387134652275402263856024192013963489730033424611731337770446611597791178644838275434209101933526616912329454556472198432336843241151259263237883364400069881634491257505076040859630032156151743762473459639117482128651432019908431616841514693057092375284603377435705563673385454481972985282280872154323790774524161906358227238442768859632523309636794627907420788655287948588863162537188536280797795812018446627017785766623673928137560278406782876697435464475140703593142746600376050586556623439635155282203379584959254388688714441645746477776189808732546090360665785687271188461815920216388423218976627215624922381330806889790230479816490440402714822476503864843289323622963129568032315831386738621513273946034255165815368002887792076787551177227308614784320811532429522507062433491883410888413113412053956420473380376177123943283202016314019082925960883995145695181142046110924247119289175331614265803061313321183335994330302739510732499036677150768234334771858163925391257354763197065022190620564758088977397148188816488642341563482891677342893729370157465865041095176000128474838145954895384137400717713153227645260906009290852077595441516835052413697222923249070297809282533571473152381051122640976174380364686291936793446383727015467909564449269856755105338740756967665214134443277605906690851918868998263752891417974996071058898781608375150522518936838301321122062884564003231116164716539398562564242291268922120026808949240271310951104013882127644034370985657314425209985733520347647925132960361498579324926497518355072232657706533802017984550358100032586332674991913108817131415539166060854482576342959262914999263967849805600804855976479555441944690379555001042492944550614931392020180437623749590032668444860832456338256988188375410479379997222513266265917498825474256173714246007789067698148173177362467833704343419777270272598584774145299987021062360618434874421956595814171394137142903983517485886177714103506920587890310727465245220378334402348055963340260538336990804124837859023487966977545352957128817158416042979706380009297427703061667700883892832055256984386209387504220207147461906890154571510928817075282181842531472145182567967300680115067610679370794192996969686594242354052560308275485363448570727297871379698003936372527449943158813146502370319695179577328401384429422140330422875937677504750755991467618812613114934036794381141648624478871153301192818692179625033265394057240961801029049399231165931124283955725649364325908577662356899427393081573918798308400441247990357415535258759708107798438151651534036361207456579658450449886772567857565683822798981349633472343342627050104980030565374347636673873031794772830337650213408608377307322698942958142387478118304928395150000491230818651634417614192970734966319151251056435472585900269022336401825501517488728585099122311216245475681170654989022161266882133216177600087884500072798261658097153083370095174230293502211016052806564642111316511329632971189202412353135561076310336095427270970956257714770657654552743024530868510948697113394560361919379944259228667490205831836624688492257208629574086591475785122524544939128301273369392926558643885731033215143839279195951531743714268099470343988238966804947118556922283136875624644346596796612661262186064587764227819596970067265801273040140137635688931601856312935406223698074559530862037716199643736141198341409281502657629435418783406366587245248910926384722629780894962461417834118957631997175755041497234112897473948133517794472056449236196198075406636177382351890768268238740329189155292187696287243651075003950134860426726155621506024637761394729425936659581785460933513366906903094527571354229262192236214004025729592025289436294834732540722508225109749802148012331874767240248096252758507046729876382311412781207280370989342427936236055130792923268877776337069718373523836486041309488394099476950808229520252040697929973969159107970885236146220803093379147308479743319626103524950951714623130188370982050891181676491538802908017219545343334082886387755072216721800293999785255647929628467521152709658639856968926087135488511385942459136925017961196201339536406298184263113779480163375987069835647909249595267152678787361809910483090710406516386151090121906748067900674863290871582106922075206505399993975173508175732004741975233119293797838617199395328835174258970243313975404375128195457390196553565881702358170691220260343822637283783171031611616051984211790349771923057304791000323262319608832660286118584252512594195537979063845234708852384729742319885046523469231037233086214491589181256754457746086930753455461147595739103363495057480596557838744298727973886290710564317564596146382761611231528806496803997554553387168046984406993902301940218778213482541646876802506663689732386199878939287468789770756151528187959192216303695798678902569820615245142929853248675706541717039962006197340294366034376621241939220067877621680894162328559996121006997900649379793797438109017600865652182664768035825184391321101992084378399899998985123891815908446835355781082063379864433219931736820201271990429698107924719117931487473516774097519524991414864079742184232746207840876917018125101509796969268688976743582951862240743478289889981607853700017041344732089636032773804774547145050966390951895327703455342267907859634712765046619352071234796261915589706215363827322896195582178887031109312974971648062410104081414730807881412108221688316066349486160419636620600891861456561233383887027711561718153328197457059116624276242597592860541244702927723036124625301720270480300699026831402796022478268432057631404008557543936865595164878185881924649333682276620362254770336721751567126233066709765706360252301968842748608236709003957923388631013237914024625872439867011744095179949385744399043363235530539186732502335538975693080599964703658408223530064215143635025717616614876821606001216765227185341195593140740540891972551665829358122553269240125312296182814628390878606198448584008093720995435259589857209947996441857544446038705828492851235318987029180779396969745528840440643001998487099339118653946563782938406520129607599739021015537451822637531050870839159275312973412195146960653860325764151995851980025498233497132250227641465466437551454252811723122815389949738796280791923463611117295902117202509678634478378751373269639023762266630217977549898635028748944702416232784149491811410597166456881467875015656587335697365217163379940509735726164524936861489587691170193042959740952334588387134247007298188744645039672463815773486294374518517528875505063120553005605208690404009072689391716425036833413501504575803831146760969797810523364241074908681687059656857937183530302399580747552929915669651188507897155617466214508738332712280753995713088638522033516896395708188022534498347626300632376262550933572240085161640243642101936244887681898617554929309845937939641344788696607218809091080809155396112627400591821047943231937450552554959398009443675357015556338708934650962046978339851285314210173680387658337825202074768293795323093100000871030849203538978718741916229870304676178203338476407061045538988013006029619196800660394630997108116934738447379867707292759420367726220669495893902700713807942636783213443907939004766412556218366030261183695546216426262286949892844664144965837144905619976538105112150239714662247554190607652830569339153922631033437190705969931151362009643230402289709160422405995767560759409015442736879348610003678251642584691018902039425226978431411408108144701459210514454244340479448461887607692883870801397570669344656864414537759092900966489724139254531544457623244984843727840399183564050930978335267320876180910468453097287752441605288138224989051863029910050792333332985155345250078025335207631074970380420735874474845523474729596552363785296585908060022200919945918848480391876358668658180170366480883934819223001511322043731019729183199627322065119820683252310450673783413158398475991750012419485655340260789336599018468344613918914185683699011610487176239556202950891451226485948051459625315054424557221324159699262856548588485732280119157332672242005151759086372564932897577923700567112746928726304825097762063695183690275305412458747947459812653538057754349470213367491880259329272001085330369821658500468211760265218150080785463038718658026724539643720747902353481639951968223160252890902165842777971217781654682044189567422743465148082623412952078789510141986920640756547193212476209178094297732236576995185569375171632938703779946550770892864786425750906004646891799861859487446420617023957418144845936846268819494797069502590568557660945877481833455139924592674847956884570522520834033751414675930288536954283849539476906396098803677141063302004179457893440675080536839815628590015226198809716210213323208794327899135980687221262515045870726344761650275600954353071817033264323432405541904597773400068835954033700240864568780412825606858403149383010363149284894302951325359273230463903719497833490307421545281746917048727612998362254417349741653225139620853466572675213783847528457022433355136296573078680121726060989268472757315045221175810625392989450113251056131945027313844404257265993894761519631846203398663102902551476204336558063286444061903933345709201041079987581588090109230004191514841304275146825652191034102449322866445130743743633269257928841643244409866637131372426276988332785776626043381416845651452052684022136299231613022027648310197113598610344794731302831705586575288689813520002148711082660569532618247665521959618317457489157094943853805595295572664758183870132183533771015328368250679141138270629499376959275435634651223612031562579387075946342442789223315224047311644947578706550422691949067648054183334085099253274396782537857169595309589220796034126129457894578485089043164384558583870823296460626428477671566643767438211571925402453307596312362548525707819443444804286966092741068654557849394455193317905026516291789559444079655002824552927676175689625460660618505401662780691872464450124349469436645124399452160990368190826711992275876133601022254856759726735412536178970225383463749457910543810733050787600103207889037360547521472167841392599470359273251041297511908994058265306639391210379216864765443333767524660765353415905595988389230188282194509873859050950561495070212823955502007559490235187596617577259955776930487510303992645257927959653730224855144836384568079832641282952074438682202389224145115141553628310348726655792910367245915526093564537461805562573702616719663856461633870887035027024874582431184362737506212702124872920375177663353905047177434969761165159459186366838179324416635132951628948279522221885895221080935895830104705371987518066770681356861976076545372733668314551137474358593796763269610590910875206038018312392368392778129329517745902011827224447016628097054094758007552307775118274384189713944247822028783063904386101995918994625862758756673086530354276865118038801900748232524079176783853828181963602051297307668186403868285231046698858069021851561996127991869421139658970131548334228088482969324706349059785180543088929897020214195578749974949067548013132747480837322265395344486861621109032148684549569901696511944694677735326597309874404235659794095090667882472225666727164229621244291373425884080476760332229659825733500119360079692067143491893363541468604345460494212397825300923642106037099526928599263264361910666714649539622845301943142171869620169445918990376737282366001202210975310344902902434607606876547757033470404165143717934638382695546701245112067825867191925270710267313486751209107096422735337322245482057441127365442380754055123215513715066552558741395642297816033442790040944110307467885602343939190414676704012861940813348386118382876761684128446019864064466933743529140153117913003384203726576796318032641873703713062141577056078035870637781409559768009714604296588350452658923251561745511256071012733774833463055807035082994504371090134295439158974962093564597384883333367552686240266888927487282665638944216412659090583065892591080105783790902041251845326679157115264452307543784230951328649647901707122075729734890017105333430217530027198958063122526165099067511202520635700965976392343456945814051944002140649616670893485303679337714146752362955172742552291407403434300704688890407294889573513807297259497966134098224583291797723339294827521776602437454770584754525722239249440125120046387525767127383757699634856656632014928847845554544317537575839393312874683141848432587955349753576001236253168427897767713779627264152880165651910517361654909004142700841584333272268250003898129578180642103871678742250063023959154718682827171508672168153986663662038626801022889309660050482603966501062910871032685792975774553948975680478724253351323435240380746647975851581957321312044218791631903861319782407962249867348642458681979615334704905559006605894616961195992730540129796225558310797271531990329650542816839169195910260801310151821711033485178553218912359065734178717471365227243196633296740348667088959194231746912106908533737358720635554080753732305606274101853399975182203700284150132686426784863997265636786611960947913908417912846197913325555492933793689731869104489106036185396244704853844081617152160715741414622002077387689558233394264870696376652321656494926620918328112006929577461618824055864901366326063037585111656740364668341352986864178075102809593843772649540095334013220642936554724629634696473614163638389050353135190175548094437064962581674543090647649540309897725563509051921295724326514457173721071198506303076309296773035997493865446570597717971067685330417952860382250564350049528434509091605569604846006274089009790870176743101384022360049071281392050855918432817170744618788092842435761578495830285687990671043801881798748467594939678889787373973559902656096046874906745032498204225353862361042982201048132141659191030766150134981948441616469361957163856395482810975581063825189523541221561249315271209227090845702192816181851322135281765952851892832144636988874560346938965810806028088636571495632718101695362801234841797037518332928848178272922890876309884718375617056763223726736571446389881669769365651379116736043038620754329474192882482408545976936700824568900077917429361881878952654462380529258882627204288632888100874066624843894945079669332624481432204105296990416003133615427538054917273623566745118137648954248898063397860776893782168794355794581495796791879159014448341639869937861374087654971602382779418117220813028696170178734292764124048216759468613215967750052125432173198749349598366111877636150676108143413510891577006703644620274203542501254817522654570220019656850452464101955410362949667130764929979551580657835067733737150874933714239452895763174292632789914566741901450263568017169090520452440295718545898454957162496000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000