diff --git a/firmware/src/airkey.c b/firmware/src/airkey.c index 626c76b..6cc28a5 100644 --- a/firmware/src/airkey.c +++ b/firmware/src/airkey.c @@ -71,11 +71,9 @@ static bool readings[AIRKEY_NUM]; static void tof_read() { - printf("\n"); for (int i = 0; i < TOF_NUM; i++) { vl53l0x_use(i); tof_dist[i] = readRangeContinuousMillimeters(i); - printf(" %4d", tof_dist[i]); } } diff --git a/firmware/src/commands.c b/firmware/src/commands.c index 71b09af..c367634 100644 --- a/firmware/src/commands.c +++ b/firmware/src/commands.c @@ -13,6 +13,8 @@ #include "gimbal.h" +extern uint8_t RING_DATA[]; + #include "nfc.h" #include "aime.h" @@ -72,7 +74,7 @@ static void disp_gimbal() static void disp_sound() { printf("[Sound]\n"); - printf(" Status: %s.\n", geki_cfg->sound.enabled ? "on" : "off"); + printf(" Volume: %d\n", geki_cfg->sound.volume); } static void disp_hid() @@ -353,25 +355,6 @@ static void handle_color(int argc, char *argv[]) disp_light(); } -static void handle_sound(int argc, char *argv[]) -{ - const char *usage = "Usage: sound \n"; - if (argc != 1) { - printf(usage); - return; - } - - int on_off = cli_match_prefix((const char *[]){"off", "on"}, 2, argv[0]); - if (on_off < 0) { - printf(usage); - return; - } - - geki_cfg->sound.enabled = on_off; - config_changed(); - disp_sound(); -} - static void handle_save() { save_request(true); @@ -452,6 +435,25 @@ static void handle_aime(int argc, char *argv[]) } } +static void handle_volume(int argc, char *argv[]) +{ + const char *usage = "Usage: sound <0..255>\n"; + if (argc != 1) { + printf(usage); + return; + } + + int vol = cli_extract_non_neg_int(argv[0], 0); + + if ((vol >= 0) && (vol <= 255)) { + geki_cfg->sound.volume = vol; + config_changed(); + disp_sound(); + } else { + printf(usage); + } +} + void commands_init() { cli_register("display", handle_display, "Display all config."); @@ -459,7 +461,7 @@ void commands_init() cli_register("color", handle_color, "Set LED color."); cli_register("hid", handle_hid, "Set HID mode."); cli_register("gimbal", handle_gimbal, "Calibrate the gimbals."); - cli_register("sound", handle_sound, "Enable/disable sound."); + cli_register("volume", handle_volume, "Sound feedback volume settings."); cli_register("save", handle_save, "Save config to flash."); cli_register("factory", handle_factory_reset, "Reset everything to default."); cli_register("nfc", handle_nfc, "NFC debug."); diff --git a/firmware/src/config.c b/firmware/src/config.c index 32c520c..7976eec 100644 --- a/firmware/src/config.c +++ b/firmware/src/config.c @@ -44,7 +44,7 @@ static geki_cfg_t default_cfg = { .reserved = { 0 }, }, .sound = { - .enabled = true, + .volume = 127, .reserved = { 0 }, }, .hid = { diff --git a/firmware/src/config.h b/firmware/src/config.h index 7cc007c..c175f61 100644 --- a/firmware/src/config.h +++ b/firmware/src/config.h @@ -33,7 +33,7 @@ typedef struct __attribute__((packed)) { uint8_t reserved[15]; } light; struct { - bool enabled; + uint8_t volume; uint8_t reserved[3]; } sound; struct { diff --git a/firmware/src/hid.c b/firmware/src/hid.c index 2aee528..5b60bde 100644 --- a/firmware/src/hid.c +++ b/firmware/src/hid.c @@ -41,22 +41,35 @@ static void gen_hid_buttons() { 0, 0 }, { 0, 5 }, { 0, 4 }, // Left ABC { 0, 1 }, { 1, 0 }, { 0, 15 }, // Right ABC { 1, 14 }, { 0, 13 }, // AUX 12 - }, wad_left = { 1, 15 }, wad_right = { 0, 14 }; + }, + wad_left = { 1, 15 }, + wad_right = { 0, 14 }, + key_test = { 0, 9 }, + key_service = { 0, 6 }; uint16_t buttons = button_read(); hid_joy.buttons[0] = 0; hid_joy.buttons[1] = 0; + if (airkey_get(3)) { + if (buttons & 0x40) { + hid_joy.buttons[key_test.group] |= (1 << key_test.bit); + } + if (buttons & 0x80) { + hid_joy.buttons[key_service.group] |= (1 << key_service.bit); + } + return; + } + for (int i = 0; i < button_num(); i++) { uint8_t group = button_to_io4_map[i].group; uint8_t bit = button_to_io4_map[i].bit; if (buttons & (1 << i)) { - if (!airkey_get(3)) { - hid_joy.buttons[group] |= (1 << bit); - } + hid_joy.buttons[group] |= (1 << bit); } } + if (!airkey_get(0)) { hid_joy.buttons[wad_left.group] |= (1 << wad_left.bit); } @@ -78,7 +91,7 @@ static void gen_hid_coins() dec_count = 0; } - if (dec_count > 100) { + if (dec_count > 60) { dec_count = 0; hid_joy.chutes[0] += 0x100; } @@ -136,19 +149,18 @@ typedef struct __attribute__((packed)) { static void update_led(const uint8_t data[4]) { - const uint8_t led_bit[18] = { 30, 31, 28, 26, 27, 29, 23, 25, 24, 20, 22, 21, 17, 19, 18, 14, 16, 15 }; + const uint8_t led_bit[18] = { 30, 31, 28, 26, 27, 29, 23, 25, 24, + 20, 22, 21, 17, 19, 18, 14, 16, 15 }; uint32_t leds = (data[0] << 24) | (data[1] << 16) | (data[2] << 8) | data[3]; - uint8_t rgbs[18]; - for (uint8_t i = 0; i < 18; i++) { - rgbs[i] = ((leds >> led_bit[i]) & 1) ? 0xff : 0x00; - } - for (uint8_t i = 0; i < 6; i++) { - uint32_t color = rgb32(rgbs[i * 3 + 1], rgbs[i * 3 + 2], rgbs[i * 3], false); - light_set_main(i, color); + bool r = leds & (1 << led_bit[i * 3 + 1]); + bool g = leds & (1 << led_bit[i * 3 + 2]); + bool b = leds & (1 << led_bit[i * 3]); + uint32_t color = rgb32(r ? 0xff : 0, g ? 0xff : 0, b ? 0xff : 0, false); + light_set_main(i, color, true); } } diff --git a/firmware/src/light.c b/firmware/src/light.c index cad6b36..74123c6 100644 --- a/firmware/src/light.c +++ b/firmware/src/light.c @@ -20,9 +20,9 @@ #include "board_defs.h" #include "config.h" -static uint32_t buf_rgb[37]; // left 3 + right 3 + button 4 * 7 + indicator 5 -static bool bind[37] = { 0 }; +#define HID_TIMEOUT 300*1000*1000 +static uint32_t buf_rgb[37]; // left 3 + right 3 + button 4 * 7 + indicator 5 static inline uint32_t _rgb32(uint32_t c1, uint32_t c2, uint32_t c3, bool gamma_fix) { @@ -110,20 +110,6 @@ void light_init() ws2812_program_init(pio0, 0, offset, RGB_PIN, 800000, false); } -static void light_effect() -{ - return; - static uint32_t loop = 0; - loop++; - - for (int i = 0; i < count_of(buf_rgb); i++) { - uint32_t hue = (loop + i * 255 / count_of(buf_rgb)) % 255; - if (!bind[i]) { - buf_rgb[i] = rgb32_from_hsv(hue, 255, 255); - } - } -} - void light_update() { static uint64_t last = 0; @@ -134,7 +120,6 @@ void light_update() last = now; - light_effect(); drive_led(); } @@ -144,11 +129,20 @@ void light_set(uint8_t index, uint32_t color) return; } buf_rgb[index] = apply_level(color); - bind[index] = true; } -void light_set_main(uint8_t index, uint32_t color) +void light_set_main(uint8_t index, uint32_t color, bool hid) { + static uint64_t hid_timeout = 0; + uint64_t now = time_us_64(); + if (!hid && (now < hid_timeout)) { + return; + } + + if (hid) { + hid_timeout = time_us_64() + HID_TIMEOUT; + } + if (index < 3) { light_set(index * 4 + 4, color); light_set(index * 4 + 5, color); @@ -171,11 +165,30 @@ void light_set_aux(uint8_t index, uint32_t color) } } -void light_unset(uint8_t index) +void light_set_wad(uint8_t index, uint32_t color) { - if (index >= count_of(buf_rgb)) { - return; + if (index == 0) { + light_set(1, color); + light_set(2, color); + light_set(3, color); + } else if (index == 1) { + light_set(33, color); + light_set(34, color); + light_set(35, color); + } +} + +void light_set_pos(uint8_t pos, uint32_t color) +{ + pos = pos * 5 / 256; + for (int i = 0; i < 5; i++) { + light_set(16 + i, (i == pos) ? color : 0); + } +} + +void light_set_aime(uint32_t color) +{ + for (int i = 0; i < 5; i++) { + light_set(16 + i, color); } - - bind[index] = false; } diff --git a/firmware/src/light.h b/firmware/src/light.h index 22e2c7b..5851bf5 100644 --- a/firmware/src/light.h +++ b/firmware/src/light.h @@ -19,10 +19,12 @@ uint32_t rgb32(uint32_t r, uint32_t g, uint32_t b, bool gamma_fix); uint32_t rgb32_from_hsv(uint8_t h, uint8_t s, uint8_t v); uint32_t load_color(const rgb_hsv_t *color); -void light_set_main(uint8_t index, uint32_t color); +void light_set_main(uint8_t index, uint32_t color, bool hid); void light_set_aux(uint8_t index, uint32_t color); +void light_set_wad(uint8_t index, uint32_t color); +void light_set_pos(uint8_t pos, uint32_t color); +void light_set_aime(uint32_t color); void light_set(uint8_t index, uint32_t color); -void light_unset(uint8_t index); #endif diff --git a/firmware/src/main.c b/firmware/src/main.c index b6984ad..ccf79f6 100644 --- a/firmware/src/main.c +++ b/firmware/src/main.c @@ -41,59 +41,33 @@ static void run_lights() { - int gimbal = 255 - gimbal_read(); + light_set_pos(255 - gimbal_read(), rgb32(0xff, 0, 0, false)); + uint16_t button = button_read(); - gimbal = gimbal * 5 / 256; - for (int i = 0; i < 5; i++) { - light_set(16 + i, (i == gimbal) ? 0x00ff00 : 0); - } + light_set_aux(0, button & 0x40 ? 0xc0c0c0 : rgb32(0x60, 0, 0, false)); + light_set_aux(1, button & 0x80 ? 0xc0c0c0 : rgb32(0x50, 0x50, 0, false)); - light_set_aux(0, button & 0x40 ? rgb32(0x80, 0, 0, false) : 0); - light_set_aux(1, button & 0x80 ? 0x808080 : 0); + uint32_t phase = time_us_32() >> 15; if (airkey_get(3)) { - uint32_t phase = (time_us_32() >> 16) % 3; - light_set(1, phase == 0 ? 0x808080 : 0); - light_set(2, phase == 1 ? 0x808080 : 0); - light_set(3, phase == 2 ? 0x808080 : 0); - light_set(33, phase == 0 ? 0x808080 : 0); - light_set(34, phase == 1 ? 0x808080 : 0); - light_set(35, phase == 2 ? 0x808080 : 0); - } else { - if (airkey_get(0)) { - light_set(1, 0x804000); - light_set(2, 0x804000); - light_set(3, 0x804000); - } else { - light_set(1, 0); - light_set(2, 0); - light_set(3, 0); + uint32_t phase = (time_us_32() >> 15) % 3; + for (int i = 0; i < 3; i++) { + light_set(1 + i, phase % 3 == i ? 0x808080 : 0); + light_set(33 + i, phase % 3 == i ? 0x808080 : 0); } - - if (airkey_get(1)) { - light_set(33, 0x004080); - light_set(34, 0x004080); - light_set(35, 0x004080); - } else { - light_set(33, 0); - light_set(34, 0); - light_set(35, 0); + } else { + for (int i = 0; i < 2; i++) { + light_set_wad(i, airkey_get(i) ? rgb32(0x80, 0, 0xff, false) : 0); } } - return; - - uint32_t colors[6] = {0x400000, 0x004000, 0x000040, - 0x400000, 0x004000, 0x000040 }; for (int i = 0; i < 6; i++) { - uint32_t color = colors[i]; - if (button & (1 << i)) { - color = 0x808080; - } - light_set_main(i, color); + uint32_t color = rgb32_from_hsv(phase + i * 40, 0xff, 0x80); + light_set_main(i, button & (1 << i) ? 0xffffff : color, false); } } + static void run_sound() { if (airkey_get(3)) { diff --git a/firmware/src/music.h b/firmware/src/music.h deleted file mode 100644 index b21d9c6..0000000 --- a/firmware/src/music.h +++ /dev/null @@ -1,2391 +0,0 @@ -/* File robin-sample.wav - * Sample rate 11000 Hz - */ - -uint8_t MUSIC_DATA[] = { - 151,151,150,144,152,164,162,146,141,155,157,137,113,118,150,182, - 193,184,164,149,148,153,159,159,152,142,133,128,129,135,141,138, - 128,114,103,100,106,119,138,163,189,211,225,230,224,208,187,162, - 136,113,93,80,74,78,89,106,126,147,166,182,192,195,193,184, - 170,152,133,114,98,87,82,83,90,100,114,130,146,160,172,180, - 184,183,178,169,159,148,137,127,118,112,109,109,111,116,124,133, - 142,151,158,164,167,167,164,158,149,138,126,115,104,96,91,90, - 92,98,106,116,127,139,149,157,163,166,166,163,158,152,145,138, - 131,125,121,119,119,121,124,130,136,144,151,157,162,166,166,165, - 160,153,144,133,122,111,101,94,90,90,93,99,108,118,129,140, - 149,157,162,165,165,162,158,152,145,138,132,126,122,121,120,122, - 126,131,137,144,150,156,161,164,164,162,157,150,141,131,120,110, - 101,94,91,91,94,101,109,119,130,140,150,157,162,165,164,162, - 157,151,144,138,132,127,123,122,122,124,128,133,138,145,151,156, - 160,162,162,160,155,148,139,129,119,109,100,94,91,91,95,101, - 110,120,131,141,150,157,162,164,164,161,156,150,144,138,132,128, - 124,123,123,125,129,134,139,145,151,156,159,161,161,158,153,147, - 138,128,118,108,100,94,92,92,96,102,111,121,131,141,150,156, - 161,163,163,160,155,150,144,138,132,128,125,124,125,127,130,135, - 140,146,151,155,158,160,159,157,152,145,137,127,117,108,100,95, - 92,93,97,103,112,121,131,141,149,156,160,162,162,159,155,149, - 144,138,133,129,126,126,126,128,132,136,141,146,151,155,158,159, - 158,155,150,144,135,126,117,108,100,95,93,94,98,104,112,122, - 131,141,149,155,159,161,161,158,154,149,143,138,133,130,128,127, - 128,130,133,137,142,146,151,154,157,158,157,154,149,143,135,126, - 116,108,101,96,94,95,98,105,113,122,131,140,148,154,158,160, - 160,157,153,148,143,138,134,131,129,128,129,131,134,138,142,146, - 150,154,156,157,156,153,148,142,134,125,116,108,101,96,95,96, - 99,105,113,122,131,140,148,153,157,159,159,156,153,148,143,139, - 135,132,130,129,130,132,135,139,143,147,150,153,155,156,155,152, - 147,141,134,125,117,109,102,97,95,96,100,106,114,122,131,140, - 147,153,156,158,158,155,152,148,143,139,135,133,131,131,132,133, - 136,140,143,147,150,153,155,155,154,151,147,141,133,125,117,109, - 102,98,96,97,101,106,114,122,131,139,146,152,155,157,157,155, - 151,147,143,139,136,133,132,132,133,135,137,140,144,147,150,153, - 154,154,153,151,146,140,133,125,117,110,103,99,97,98,101,107, - 114,122,131,139,146,151,154,156,156,154,151,147,143,140,137,134, - 133,133,134,136,138,141,144,147,150,152,154,154,153,150,146,140, - 133,125,118,110,104,100,98,99,102,107,114,122,131,138,145,150, - 153,155,155,153,151,147,144,140,137,135,134,134,135,137,139,142, - 145,147,150,152,153,153,152,150,145,140,133,126,118,111,105,100, - 99,99,102,108,114,122,130,138,144,149,153,154,154,153,150,147, - 144,141,138,136,135,135,136,138,140,142,145,147,150,152,153,153, - 152,149,145,140,134,126,119,112,106,101,99,100,103,108,114,122, - 130,137,143,148,152,153,154,152,150,147,144,141,139,137,136,136, - 137,138,140,143,145,148,150,151,152,152,151,149,145,140,134,127, - 119,112,106,102,100,101,103,108,115,122,129,137,143,147,151,153, - 153,152,150,147,144,142,139,138,137,137,138,139,141,143,145,148, - 150,151,152,152,151,149,145,140,134,127,120,113,107,103,101,101, - 104,108,115,122,129,136,142,147,150,152,152,151,149,147,145,142, - 140,139,138,138,139,140,142,144,146,148,149,151,152,152,151,149, - 145,140,134,128,121,114,108,104,102,102,104,109,115,121,129,135, - 141,146,149,151,152,151,149,147,145,143,141,139,139,139,140,141, - 142,144,146,148,149,151,151,151,151,148,145,141,135,128,121,115, - 109,105,102,103,105,109,115,121,128,135,141,145,148,150,151,150, - 149,147,145,143,141,140,140,140,141,142,143,145,146,148,149,151, - 151,151,150,148,145,141,135,129,122,116,110,106,103,103,105,109, - 115,121,128,134,140,144,148,150,150,150,149,147,145,144,142,141, - 141,141,141,142,144,145,147,148,149,150,151,151,150,148,145,141, - 136,130,123,117,111,106,104,104,106,109,115,121,127,134,139,144, - 147,149,150,150,148,147,145,144,143,142,141,141,142,143,144,145, - 147,148,149,150,151,151,150,148,146,141,136,130,124,117,112,107, - 105,104,106,109,114,121,127,133,138,143,146,148,149,149,148,147, - 146,144,143,142,142,142,143,144,145,146,147,148,149,150,151,151, - 150,149,146,142,137,131,125,118,113,108,105,105,106,110,114,120, - 126,132,138,142,145,147,149,149,148,147,146,145,144,143,143,143, - 143,144,145,146,147,148,149,150,151,151,150,149,146,142,138,132, - 126,119,114,109,106,105,107,110,114,120,126,132,137,141,144,147, - 148,148,148,147,146,145,144,144,143,144,144,145,146,147,147,148, - 149,150,151,151,150,149,146,143,138,133,127,120,115,110,107,106, - 107,110,114,119,125,131,136,140,144,146,147,148,148,147,146,146, - 145,144,144,144,145,145,146,147,148,149,149,150,150,151,150,149, - 147,143,139,133,128,121,116,111,108,107,107,110,114,119,125,130, - 136,140,143,145,147,147,147,147,146,146,145,145,145,145,145,146, - 147,147,148,149,149,150,150,150,150,149,147,144,139,134,128,122, - 117,112,109,107,108,110,114,119,124,130,135,139,142,145,146,147, - 147,147,147,146,146,145,145,145,146,146,147,148,148,149,149,150, - 150,150,150,149,147,144,140,135,129,123,118,113,109,108,108,110, - 114,119,124,129,134,138,142,144,146,147,147,147,147,146,146,146, - 146,146,146,147,147,148,148,149,150,150,150,150,150,149,147,144, - 140,135,130,124,118,114,110,108,109,111,114,119,124,129,134,138, - 141,143,145,146,147,147,147,147,147,146,146,147,147,147,148,148, - 149,149,150,150,150,150,150,149,147,144,140,137,131,125,119,114, - 111,109,107,108,113,120,126,131,135,138,140,143,145,146,147,147, - 146,145,145,146,146,146,146,146,145,145,146,147,148,150,152,154, - 155,155,153,150,145,138,131,124,117,111,106,104,105,107,112,117, - 124,130,135,140,143,145,146,147,146,145,144,143,143,143,143,144, - 145,146,148,149,151,152,152,153,153,153,152,150,148,144,140,135, - 129,124,118,114,110,109,109,111,115,120,125,130,134,138,140,142, - 143,144,144,144,144,144,144,144,145,146,147,148,149,150,151,151, - 152,152,152,152,151,150,148,145,141,136,131,125,120,116,112,111, - 111,113,116,120,125,130,134,137,140,142,143,144,144,144,144,144, - 145,145,145,146,147,148,149,150,151,152,152,152,152,152,151,150, - 148,145,141,137,132,126,121,116,113,111,111,113,116,120,125,129, - 134,137,140,141,143,144,144,144,144,145,145,145,146,147,148,149, - 150,151,151,152,152,153,153,152,152,150,148,145,142,137,132,127, - 122,117,114,112,112,113,116,120,125,129,133,137,139,141,143,143, - 144,144,145,145,145,146,146,147,148,149,150,151,151,152,153,153, - 153,152,152,151,149,146,142,138,132,127,122,118,114,113,112,114, - 117,121,125,129,133,136,139,141,142,143,144,144,145,145,146,146, - 147,147,148,149,150,151,152,152,153,153,153,153,152,151,149,146, - 142,138,133,128,123,118,115,113,113,114,117,121,125,129,133,136, - 139,141,142,143,144,145,145,146,146,147,147,148,148,149,150,151, - 152,152,153,153,153,153,152,151,149,146,142,138,133,128,123,119, - 115,114,113,115,117,121,125,129,133,136,139,141,142,143,144,145, - 145,146,146,147,147,148,149,150,150,151,152,152,153,153,153,153, - 152,151,149,146,142,138,133,128,123,119,116,114,114,115,118,121, - 125,129,133,136,138,140,142,143,144,145,146,146,147,147,148,148, - 149,150,150,151,152,152,153,153,153,153,152,151,149,146,142,138, - 133,128,123,119,116,115,114,116,118,122,126,129,132,136,139,141, - 142,143,145,147,147,146,146,146,147,148,149,150,150,151,151,152, - 153,154,154,154,153,151,149,147,144,140,135,130,125,120,116,113, - 112,112,115,118,123,128,133,137,140,143,146,147,148,149,149,148, - 148,147,147,147,147,148,149,150,152,153,154,155,156,156,155,153, - 151,147,143,138,132,127,122,118,115,114,114,116,119,123,127,131, - 135,138,140,142,144,145,146,146,147,147,147,147,148,148,149,150, - 151,152,153,154,155,155,155,155,154,152,150,146,142,137,132,127, - 122,118,116,115,115,117,120,124,128,131,135,137,140,141,143,144, - 145,146,147,147,148,148,148,148,149,150,151,152,153,154,155,155, - 155,155,154,152,149,146,141,136,131,126,122,118,116,115,116,118, - 121,124,128,132,135,137,140,142,143,145,146,147,147,148,148,148, - 148,149,149,150,151,152,153,154,154,155,155,154,153,151,149,145, - 141,136,131,126,121,118,116,115,116,118,121,125,128,132,135,138, - 140,142,144,145,146,147,148,149,149,149,149,149,149,150,151,152, - 153,153,154,154,154,154,153,151,148,144,140,135,130,125,121,118, - 116,116,117,119,122,126,129,132,135,138,140,142,144,146,147,148, - 149,149,149,149,149,149,150,150,151,152,152,153,154,154,154,153, - 152,150,147,144,139,134,129,125,121,118,116,116,118,120,123,126, - 130,133,136,138,140,143,145,146,148,149,150,150,150,150,150,150, - 150,150,151,152,152,153,153,154,154,153,152,150,147,143,139,134, - 129,124,121,118,117,117,118,121,124,127,130,133,136,138,141,143, - 145,147,148,150,150,151,151,150,150,150,150,150,151,151,152,153, - 153,153,153,153,151,149,146,142,138,133,128,124,121,118,117,118, - 119,121,124,128,131,134,136,139,141,143,145,147,149,150,151,151, - 151,151,151,150,150,151,151,151,152,152,153,153,153,152,151,149, - 146,142,137,133,128,124,121,119,118,118,120,122,125,128,131,134, - 136,139,141,144,146,148,150,151,151,152,152,151,151,150,151,151, - 151,151,152,153,153,153,151,150,149,148,145,141,137,132,128,124, - 121,120,119,120,121,123,126,129,133,136,138,141,143,144,146,147, - 148,149,149,149,150,150,151,152,152,153,153,154,154,154,154,153, - 152,151,149,146,143,139,135,131,127,124,122,121,121,122,123,126, - 128,130,133,134,136,138,140,143,145,147,149,151,152,153,153,153, - 153,153,153,152,152,152,152,152,151,151,151,150,148,146,143,140, - 136,132,128,125,123,122,121,122,123,125,128,130,132,134,136,139, - 141,143,146,148,150,152,153,153,153,153,153,153,152,152,152,151, - 151,151,151,150,150,149,148,146,143,140,136,132,128,125,123,122, - 122,122,124,126,128,130,132,134,136,139,141,144,146,148,150,152, - 153,153,154,154,153,153,153,152,152,151,151,151,150,150,150,149, - 147,145,143,139,136,132,129,126,123,122,122,123,124,126,128,130, - 132,134,136,139,141,144,146,148,151,152,153,154,154,154,154,153, - 153,152,152,151,151,150,150,150,149,148,147,145,142,139,136,132, - 129,126,124,123,123,123,125,127,129,131,133,134,136,139,141,144, - 146,149,151,152,153,154,154,154,154,154,153,153,152,151,151,150, - 150,149,149,148,147,145,142,139,136,132,129,126,124,123,123,124, - 125,127,129,131,133,134,136,139,141,144,146,149,151,152,153,154, - 154,154,154,154,153,153,152,151,151,150,150,149,149,148,147,145, - 142,139,136,133,129,127,125,124,124,124,125,127,129,131,133,134, - 136,138,141,144,146,149,151,152,154,154,155,155,155,154,154,153, - 152,152,151,150,150,149,149,148,147,145,142,140,136,133,130,127, - 125,124,124,125,126,127,129,131,132,134,136,138,141,143,146,148, - 151,152,154,154,155,155,155,155,154,153,153,152,151,150,150,149, - 148,148,147,145,143,140,137,134,130,128,126,125,124,125,126,127, - 129,131,132,134,136,138,140,143,146,148,150,152,154,154,155,155, - 155,155,154,154,153,152,151,150,150,149,149,148,146,145,143,141, - 137,134,131,129,127,125,124,124,125,127,129,131,132,134,135,138, - 140,143,146,148,150,152,154,155,155,156,158,158,157,154,151,150, - 149,148,148,147,146,146,146,146,145,143,141,138,135,131,129,128, - 127,127,128,128,129,129,130,130,131,133,136,139,143,148,151,155, - 157,159,160,160,159,158,156,154,152,150,149,147,147,147,147,147, - 148,148,147,145,143,140,137,133,130,128,126,125,124,125,126,127, - 129,132,134,137,140,143,147,150,152,154,156,156,157,156,156,155, - 154,153,152,151,150,149,149,149,149,149,149,149,148,146,143,140, - 136,134,130,127,120,123,120,112,124,130,123,125,136,144,150,158, - 166,164,153,144,144,152,167,182,194,198,194,183,170,157,149,145, - 142,141,140,137,133,125,116,105,94,85,78,75,75,77,80,85, - 90,94,97,99,100,102,102,104,107,113,119,125,132,141,150,157, - 162,168,173,180,185,190,192,194,195,195,196,198,200,202,204,206, - 208,210,211,212,211,209,206,203,198,194,189,184,180,176,173,170, - 168,166,164,163,163,162,161,159,157,153,149,144,138,132,125,119, - 113,106,101,96,92,89,86,85,85,84,84,84,83,81,80,78, - 77,76,76,76,78,80,82,85,89,94,99,105,111,118,125,133, - 141,149,157,164,170,176,181,186,190,193,196,198,200,202,204,206, - 208,211,213,216,217,218,217,216,213,209,205,200,195,191,186,182, - 178,174,171,168,165,162,160,157,155,154,153,151,149,147,144,141, - 136,131,126,120,115,109,104,99,94,91,88,86,85,85,85,85, - 85,84,83,82,81,80,79,79,79,80,82,84,88,92,96,102, - 107,114,121,128,136,144,152,160,167,174,179,184,188,191,194,197, - 199,201,203,205,207,210,212,214,216,217,218,217,214,211,207,202, - 197,191,186,181,176,172,168,165,162,159,157,154,152,151,149,148, - 147,145,143,140,136,131,126,121,116,110,105,101,97,93,91,89, - 88,87,88,88,88,88,88,87,86,84,83,83,82,82,83,85, - 87,91,95,100,106,112,118,124,132,140,148,156,164,171,176,181, - 186,190,193,196,199,201,202,205,208,210,211,213,215,218,219,219, - 216,212,208,203,198,193,187,182,177,172,168,164,161,159,156,152, - 149,147,144,143,142,141,141,140,137,134,130,125,120,114,109,103, - 98,94,91,88,87,87,87,89,90,91,92,92,92,91,90,88, - 86,85,85,85,86,89,92,97,103,109,115,123,130,138,146,154, - 162,169,175,180,185,188,191,194,196,198,201,203,205,208,210,212, - 215,216,218,218,217,215,211,207,201,195,189,183,176,171,166,162, - 158,155,153,151,149,147,145,144,143,141,140,138,135,132,128,123, - 118,113,108,104,100,98,95,93,92,92,92,92,93,94,94,94, - 94,93,92,90,89,87,87,87,88,90,94,98,103,109,115,121, - 128,135,143,151,158,165,172,178,183,186,189,193,195,197,199,202, - 205,209,212,213,215,215,216,217,216,215,212,207,202,196,190,183, - 177,172,166,161,157,153,150,148,147,146,145,144,144,143,141,139, - 136,132,128,122,117,112,107,103,100,98,96,95,95,95,95,96, - 96,97,97,97,96,95,93,91,89,88,87,87,89,91,94,99, - 104,109,115,122,128,135,141,148,155,162,169,174,179,183,187,190, - 193,196,199,202,205,208,210,212,214,215,216,216,215,213,210,206, - 202,196,190,184,178,172,167,162,159,155,153,150,148,146,144,142, - 140,139,137,135,133,131,127,123,119,115,111,107,104,102,100,99, - 98,97,96,96,96,97,97,97,97,96,95,94,93,92,91,91, - 91,93,96,99,104,109,115,120,127,133,140,146,153,160,167,173, - 178,183,186,189,192,195,198,201,204,207,209,211,213,214,214,214, - 214,212,210,206,202,197,191,185,179,173,168,163,159,156,153,150, - 148,146,144,142,140,138,137,135,134,131,128,124,120,116,112,109, - 106,104,102,100,99,98,98,98,98,98,98,98,98,98,97,96, - 95,94,93,93,93,95,97,100,105,109,115,120,126,132,139,145, - 152,159,166,172,178,182,185,188,191,194,197,200,203,206,208,210, - 211,212,213,213,213,211,209,205,202,197,191,185,179,174,169,164, - 160,156,152,149,146,145,144,142,140,139,139,138,136,132,128,124, - 120,117,113,109,106,104,103,102,103,103,103,102,101,101,101,101, - 101,101,99,98,96,94,92,91,90,92,94,98,103,109,115,122, - 129,135,141,148,154,160,165,170,175,179,182,185,188,192,195,199, - 203,206,209,211,213,214,214,214,212,210,207,203,199,193,188,182, - 177,172,167,163,160,157,155,152,150,148,146,143,141,140,138,136, - 134,132,129,126,122,119,116,113,110,108,107,106,105,104,103,102, - 102,101,101,100,100,99,98,97,96,95,94,94,95,97,99,103, - 107,111,116,121,126,132,138,144,150,157,163,169,174,178,182,186, - 190,193,196,199,203,205,207,209,211,211,211,211,210,208,204,201, - 197,193,188,183,178,172,167,164,160,157,154,152,149,147,145,143, - 141,140,138,137,135,132,130,127,124,121,118,116,114,112,110,109, - 107,105,103,102,101,100,99,99,98,98,97,96,96,95,95,96, - 97,98,100,103,107,111,115,120,125,130,136,143,149,156,163,169, - 174,179,183,187,190,193,196,198,201,203,204,206,207,207,208,207, - 207,205,203,200,196,191,186,181,177,172,168,164,160,157,154,152, - 149,147,145,144,143,142,141,140,139,137,134,131,128,124,121,118, - 115,112,110,107,105,104,103,102,101,101,101,100,100,99,98,97, - 96,95,95,95,96,98,100,103,107,111,115,120,126,132,138,145, - 151,158,164,170,175,179,183,186,189,192,195,197,199,201,202,203, - 204,205,205,205,204,203,200,197,193,189,184,180,175,171,167,164, - 161,158,155,153,151,149,148,147,146,145,144,143,142,140,137,134, - 131,127,124,120,117,113,110,108,106,104,103,102,101,101,100,99, - 98,97,96,95,95,95,95,95,97,99,101,104,108,112,117,122, - 128,134,140,147,153,160,165,171,175,179,183,186,189,191,193,195, - 196,198,199,200,201,202,202,202,201,199,197,194,190,186,182,178, - 174,171,167,164,162,159,157,155,153,152,151,150,149,149,149,148, - 145,142,139,136,133,129,125,121,118,114,110,106,104,104,104,103, - 101,99,98,97,96,94,93,93,93,95,96,97,99,101,103,106, - 109,113,117,123,129,136,143,151,159,166,171,176,179,181,183,184, - 184,184,185,186,188,190,193,196,198,200,202,202,201,199,196,192, - 187,183,178,174,170,167,165,163,162,161,160,160,160,160,159,159, - 157,156,154,151,148,144,141,137,133,129,124,120,116,112,110,107, - 105,104,103,101,100,98,97,95,94,93,92,91,92,92,94,96, - 98,102,105,110,114,120,125,131,137,143,148,153,158,162,167,170, - 174,177,180,182,184,185,187,188,190,191,193,194,195,195,195,194, - 192,190,188,185,182,179,178,176,174,172,169,167,166,164,163,163, - 163,164,165,164,163,160,157,153,150,146,142,138,134,129,125,119, - 113,111,111,107,99,95,96,95,88,82,84,94,102,105,101,95, - 92,92,95,98,100,101,102,104,108,115,123,130,135,138,140,143, - 148,155,165,175,186,197,205,210,211,208,203,197,190,183,177,173, - 171,171,173,177,182,187,192,196,198,197,195,190,183,176,167,159, - 152,147,144,143,144,147,150,154,157,160,162,162,161,157,152,144, - 136,127,118,110,103,97,92,89,88,88,88,89,91,93,95,97, - 98,98,98,97,96,94,92,91,90,91,93,97,103,111,119,129, - 138,147,156,164,170,176,180,182,184,184,183,182,180,180,179,180, - 181,183,186,188,191,193,195,197,198,198,197,194,191,187,182,176, - 170,164,159,155,152,151,152,153,155,158,161,163,164,165,164,162, - 159,154,148,141,133,126,118,111,106,103,100,97,94,93,94,95, - 96,98,98,99,99,99,99,98,97,96,94,93,93,94,97,103, - 109,117,125,133,142,149,157,163,169,174,178,181,183,183,183,183, - 182,182,182,182,183,184,186,187,189,191,192,194,195,195,194,193, - 191,187,183,178,173,168,162,158,155,154,154,155,157,159,161,163, - 165,166,165,163,160,156,150,143,135,128,121,114,108,104,101,98, - 97,95,95,95,97,98,98,99,100,101,100,99,99,98,98,97, - 97,97,98,101,108,116,125,134,143,151,159,166,173,178,181,182, - 182,181,180,178,178,178,178,179,181,183,185,187,190,192,193,195, - 195,195,194,191,188,185,180,175,170,165,161,157,155,154,155,156, - 158,161,163,164,165,165,164,162,159,154,147,141,133,126,120,114, - 109,105,102,100,98,97,97,97,98,98,99,99,100,100,100,99, - 99,98,97,97,97,98,101,105,111,118,126,134,142,150,158,164, - 170,175,178,180,181,181,180,179,179,179,179,180,181,183,184,186, - 188,190,191,192,192,192,191,190,187,184,180,176,171,167,162,159, - 157,156,155,156,158,160,161,163,164,164,162,160,158,153,148,141, - 134,127,120,114,110,106,103,101,100,99,99,99,99,100,100,100, - 101,102,102,102,101,101,102,102,101,102,105,109,115,122,130,137, - 145,152,159,165,170,174,177,179,180,180,180,180,180,180,181,181, - 182,182,183,183,184,184,185,186,186,186,186,185,184,182,178,174, - 170,165,160,156,153,151,151,152,153,155,157,159,161,162,162,161, - 158,154,149,143,137,130,124,119,114,110,107,105,103,103,102,102, - 103,104,104,105,106,106,106,106,106,105,104,104,103,104,106,110, - 115,121,128,136,144,151,159,165,171,176,179,181,182,182,181,181, - 180,179,179,180,180,181,183,184,185,186,187,187,187,187,186,184, - 182,179,175,171,166,162,157,154,151,150,149,150,152,154,156,158, - 160,161,161,160,157,153,149,143,137,131,125,120,115,112,109,107, - 106,105,105,105,105,105,106,107,107,107,106,107,107,107,106,105, - 105,105,107,110,115,121,128,135,143,150,158,165,171,175,179,181, - 182,182,182,182,181,182,182,183,184,185,186,186,187,187,186,186, - 186,185,183,182,180,177,174,170,166,161,157,153,150,148,147,147, - 148,149,151,153,155,156,156,156,154,152,148,143,138,133,127,122, - 118,114,111,109,108,107,106,106,106,106,107,108,109,109,110,110, - 109,109,108,107,106,107,107,110,114,119,125,132,140,148,156,163, - 170,175,178,181,183,185,186,186,185,184,184,184,185,185,185,186, - 186,185,184,184,185,186,186,185,182,178,174,170,166,161,156,151, - 147,143,141,141,141,143,145,147,148,150,151,151,151,150,148,145, - 142,137,133,127,122,117,113,110,107,106,105,104,105,106,108,110, - 112,114,115,115,115,114,112,110,108,107,107,107,110,114,120,127, - 135,144,152,160,168,174,179,183,186,187,188,188,187,186,185,185, - 184,184,185,185,186,187,187,188,188,188,187,185,183,180,175,170, - 165,159,153,148,143,139,137,136,136,137,140,143,145,148,150,150, - 150,149,146,143,140,136,131,126,122,118,115,113,111,111,111,111, - 111,112,113,114,115,116,117,117,117,116,115,113,110,109,108,109, - 111,115,120,127,133,141,150,158,165,171,176,181,185,188,190,191, - 192,191,190,190,189,188,186,187,188,189,190,190,190,189,188,187, - 184,181,176,170,163,156,150,144,139,135,132,130,129,130,132,135, - 138,141,144,146,147,146,144,141,137,133,129,126,122,119,116,114, - 113,113,114,115,116,118,119,121,122,122,123,122,121,119,117,115, - 113,112,111,112,114,117,122,127,134,141,148,156,163,169,174,179, - 182,185,187,188,189,190,191,191,191,191,191,191,191,191,191,191, - 190,189,188,185,182,179,174,169,164,158,152,146,140,136,133,130, - 129,129,130,131,133,135,137,138,138,138,137,136,134,132,130,128, - 126,124,122,121,120,119,119,119,119,120,121,122,123,123,124,124, - 123,122,121,119,118,116,115,115,117,119,122,127,133,139,146,152, - 158,164,169,175,179,182,185,187,188,190,191,192,193,193,193,193, - 192,192,191,191,190,189,188,186,184,180,176,171,166,159,153,147, - 141,136,132,130,128,128,128,129,131,132,133,134,135,135,135,134, - 132,130,128,127,125,124,123,122,122,121,121,122,122,122,123,124, - 125,125,126,125,125,124,123,122,120,119,118,118,119,120,124,128, - 133,138,143,149,155,160,166,170,175,178,181,184,186,188,190,192, - 193,194,194,193,193,193,193,192,191,190,188,185,182,179,176,171, - 165,160,154,149,143,138,134,131,130,129,130,131,131,130,130,131, - 132,133,133,132,130,129,127,127,126,126,126,125,125,124,124,123, - 123,124,124,124,125,125,125,126,125,125,124,124,123,122,121,121, - 122,123,125,129,133,138,143,148,153,158,163,168,172,176,179,182, - 184,187,189,190,192,193,194,194,194,194,193,192,191,189,187,184, - 182,179,175,171,166,162,156,151,146,142,138,135,132,131,130,130, - 130,130,130,131,131,131,131,130,130,129,129,128,127,127,127,126, - 126,126,126,125,125,126,125,125,126,126,126,126,127,127,126,125, - 124,123,122,122,122,123,125,129,133,137,142,146,152,156,160,164, - 168,172,176,180,183,186,189,191,192,192,192,192,193,193,193,192, - 192,190,189,186,183,180,178,174,168,162,157,153,149,145,141,138, - 135,134,133,131,131,130,130,130,130,131,131,131,131,131,131,130, - 128,126,125,124,122,121,120,121,122,124,125,126,127,128,128,129, - 128,127,124,122,120,118,117,117,118,119,122,125,130,134,141,145, - 154,152,163,169,162,164,192,179,155,169,179,211,200,169,163,163, - 161,171,199,227,228,207,182,153,126,108,110,128,150,167,182,189, - 182,162,136,109,88,73,69,75,90,109,127,140,146,145,139,128, - 118,109,105,104,106,110,114,117,119,119,119,119,119,120,121,123, - 124,125,126,125,124,123,121,119,117,115,113,112,112,113,116,121, - 126,132,138,144,149,152,156,161,165,169,173,177,181,184,186,187, - 188,189,191,194,197,200,202,204,204,203,202,200,197,194,190,187, - 183,178,174,169,164,159,155,151,149,148,149,151,152,152,151,149, - 148,146,144,143,143,142,141,139,137,134,131,130,129,129,130,131, - 132,133,132,131,129,127,125,123,121,120,120,119,119,118,116,115, - 115,116,118,122,127,133,138,143,147,151,155,158,162,167,172,177, - 181,185,188,190,191,193,194,196,198,200,202,203,204,203,202,200, - 197,194,191,188,185,182,178,174,168,163,158,154,152,151,152,153, - 153,152,152,151,150,148,146,145,145,146,145,144,142,140,138,135, - 133,131,131,131,130,129,128,127,126,125,124,123,121,120,120,119, - 118,116,114,113,112,113,116,121,127,133,139,144,147,150,153,156, - 159,162,166,171,176,181,185,188,191,193,195,197,199,201,201,202, - 202,200,198,196,194,191,189,186,183,181,178,175,171,167,163,159, - 157,156,155,156,156,155,154,153,152,152,151,151,151,151,151,149, - 147,144,141,137,134,132,131,130,130,130,129,128,127,125,123,122, - 120,119,119,118,117,116,115,113,113,114,116,119,124,129,135,139, - 144,148,152,156,160,164,168,173,177,181,185,187,188,189,191,192, - 194,195,197,199,199,198,196,195,193,191,189,187,185,183,180,176, - 171,167,163,160,158,158,159,159,159,159,158,157,157,157,156,156, - 154,153,151,150,148,146,143,139,136,133,132,131,130,130,128,127, - 124,122,119,117,116,115,115,115,114,113,113,113,113,115,118,121, - 126,132,137,143,147,152,156,159,163,167,171,175,179,182,184,185, - 186,186,187,188,189,191,193,195,195,196,195,193,191,189,186,184, - 181,179,176,173,169,166,163,161,160,161,161,163,164,165,165,165, - 163,162,160,159,158,156,155,153,151,147,143,140,137,134,132,131, - 130,129,127,125,123,121,118,116,114,113,112,112,112,112,112,113, - 114,116,119,123,128,134,140,145,150,153,157,160,163,166,170,173, - 176,179,181,182,183,183,184,185,186,187,188,190,191,191,191,189, - 187,184,181,179,177,175,173,171,169,166,164,163,163,164,165,166, - 167,169,169,168,167,165,163,162,160,159,157,154,151,147,143,139, - 136,133,131,129,128,127,125,124,122,120,118,115,113,112,111,110, - 110,111,111,113,115,118,122,128,134,140,146,151,155,159,161,164, - 166,168,170,172,174,176,177,178,178,179,180,181,182,184,186,187, - 187,187,185,183,181,179,176,174,173,171,170,169,167,166,165,165, - 166,167,169,170,172,172,172,172,170,168,166,163,161,158,156,153, - 150,146,142,139,136,133,131,129,128,127,125,123,121,119,116,114, - 112,111,110,110,111,112,114,116,119,122,125,130,136,142,148,152, - 155,157,159,162,164,167,169,171,172,173,174,175,176,176,177,178, - 179,180,181,182,183,183,182,181,179,177,175,173,171,170,169,168, - 167,166,166,166,167,168,170,173,175,176,175,174,172,170,167,164, - 161,158,155,151,148,144,140,137,134,131,129,128,127,126,124,123, - 121,119,117,114,112,111,110,110,111,112,113,115,118,122,126,131, - 137,143,148,153,157,160,163,164,166,167,167,168,169,170,170,171, - 171,171,172,173,175,177,179,180,182,182,181,180,178,175,173,171, - 170,169,169,168,168,167,168,169,171,173,174,176,178,178,177,175, - 173,170,167,164,160,157,154,151,146,142,137,134,131,130,129,128, - 127,126,125,123,121,118,115,113,111,111,111,111,113,116,119,121, - 123,126,130,134,140,145,150,155,158,161,163,165,166,168,169,169, - 170,171,173,174,174,174,174,175,175,175,176,177,177,177,176,176, - 174,173,171,170,169,169,169,169,168,168,168,169,169,170,171,172, - 173,174,174,174,172,171,168,166,162,159,155,152,148,144,140,136, - 133,130,128,126,126,125,124,124,122,121,119,117,115,114,114,114, - 115,116,118,121,124,128,132,137,142,147,152,157,161,164,167,169, - 171,171,172,172,172,172,172,171,171,170,170,170,171,172,174,175, - 177,177,178,177,176,174,172,170,168,166,166,165,165,166,166,167, - 168,169,170,171,173,174,174,174,173,171,169,165,162,158,154,150, - 146,142,138,134,130,127,125,124,124,124,124,123,122,120,119,118, - 116,114,113,114,115,117,119,122,125,129,133,138,143,147,152,157, - 161,165,168,171,172,173,174,174,174,174,174,173,173,173,173,173, - 174,175,176,177,177,177,177,176,174,172,170,168,167,165,165,164, - 164,164,164,165,165,166,167,168,169,170,170,170,169,168,166,164, - 161,157,154,150,146,141,137,133,130,127,124,123,122,121,121,121, - 121,120,119,118,117,116,115,115,116,118,120,122,125,129,133,138, - 143,148,153,157,162,166,171,174,175,176,177,177,177,177,176,174, - 172,171,171,171,171,171,172,173,175,177,178,177,176,175,173,171, - 170,168,166,164,163,161,160,160,161,162,163,164,166,168,169,170, - 169,168,167,164,161,157,153,149,145,140,135,131,127,124,122,120, - 120,120,121,121,122,122,122,121,120,119,118,117,117,118,120,122, - 125,129,133,138,144,149,154,160,165,169,173,175,177,178,179,179, - 178,178,177,176,175,174,173,172,173,173,174,175,176,177,178,178, - 177,175,173,170,167,165,163,161,160,159,158,158,159,160,161,162, - 164,165,167,167,167,166,164,162,159,155,151,147,143,139,135,130, - 127,124,122,121,120,120,120,121,122,123,123,123,122,122,121,120, - 119,119,119,121,123,127,132,137,142,147,153,159,164,169,173,176, - 180,182,183,183,182,181,180,178,177,176,174,173,173,173,174,176, - 178,179,180,180,179,177,174,171,168,166,163,161,160,159,158,157, - 157,157,159,160,161,163,163,164,164,163,161,159,157,153,149,145, - 141,137,133,129,125,122,119,118,117,117,118,119,121,122,123,123, - 123,124,123,121,122,123,125,125,125,127,131,134,139,145,153,160, - 164,169,172,174,177,180,183,185,186,186,185,184,180,177,173,171, - 169,169,169,173,175,179,180,182,181,180,177,174,169,167,166,162, - 153,149,147,145,157,154,164,154,160,146,153,152,163,160,140,143, - 115,173,185,161,136,145,172,155,139,146,153,124,78,67,107,154, - 158,111,67,65,105,134,123,75,33,21,44,87,127,149,149,135, - 125,126,141,162,177,181,175,164,157,164,184,210,226,224,204,181, - 168,171,184,198,203,198,184,170,161,158,162,168,173,170,157,140, - 135,150,177,201,210,204,190,176,166,159,156,156,160,167,174,178, - 179,178,176,176,174,168,155,136,118,106,105,109,114,115,109,96, - 82,70,66,68,73,78,77,69,59,54,65,88,113,129,136,135, - 130,126,122,119,119,123,132,147,163,178,189,196,202,207,209,208, - 201,193,185,182,184,188,191,191,186,180,174,171,171,173,174,170, - 161,148,135,128,133,148,165,178,184,186,182,176,166,156,145,138, - 137,141,150,160,166,169,169,167,162,155,144,132,122,116,115,113, - 107,99,90,84,82,84,87,89,86,79,69,59,51,47,52,66, - 85,102,116,126,131,133,130,124,118,116,120,130,143,158,172,183, - 192,199,202,202,198,192,188,187,189,191,188,182,175,170,170,173, - 178,180,178,170,159,148,139,132,133,142,156,169,177,182,182,177, - 168,155,142,133,128,131,137,145,152,156,158,160,158,154,145,134, - 124,119,117,115,109,99,89,83,81,83,88,92,92,86,78,70, - 63,58,62,74,90,106,119,129,135,136,134,128,122,118,120,129, - 141,154,166,176,184,192,197,198,195,189,185,184,187,189,188,182, - 175,171,170,173,178,181,181,174,163,152,141,134,134,141,154,166, - 175,181,182,178,170,159,147,138,133,134,139,146,151,154,156,157, - 156,152,144,132,123,117,116,115,111,104,96,91,90,93,98,101, - 101,95,85,75,67,61,62,73,89,106,119,130,138,141,139,135, - 129,124,123,128,138,149,159,169,176,182,187,190,190,188,184,184, - 187,189,188,182,175,170,170,174,181,186,185,177,165,152,141,133, - 132,140,154,168,177,183,185,182,174,164,151,140,134,133,137,142, - 146,148,150,151,152,149,144,135,127,122,121,120,116,108,99,93, - 90,92,97,101,101,96,88,80,73,67,67,76,91,107,120,130, - 137,140,139,135,129,123,122,127,136,147,156,164,171,179,185,188, - 189,185,182,181,183,186,185,181,175,171,170,173,178,182,182,177, - 168,157,148,139,136,141,152,164,173,178,180,179,173,164,153,142, - 135,133,135,140,144,145,146,147,148,147,143,136,128,123,121,120, - 116,108,100,93,90,92,97,102,103,100,93,85,78,73,73,81, - 95,110,121,130,136,140,139,137,132,127,126,130,138,148,156,164, - 170,176,182,186,187,184,180,179,180,183,183,180,174,170,169,173, - 178,183,184,180,171,161,152,143,139,141,151,162,170,175,177,176, - 172,165,156,146,139,137,140,143,146,147,147,148,149,147,142,134, - 127,121,119,119,116,110,102,95,93,95,100,104,107,104,98,90, - 84,78,76,81,93,106,117,125,132,136,137,136,132,129,128,133, - 141,150,158,165,170,175,179,182,182,179,174,172,173,177,178,176, - 171,168,168,173,180,186,188,185,176,165,155,145,139,140,148,158, - 166,171,174,175,173,169,162,153,147,145,145,147,149,148,147,146, - 147,146,142,135,128,122,120,120,119,114,107,101,98,100,105,109, - 111,108,101,92,84,77,74,77,88,102,114,123,130,136,139,139, - 136,132,131,134,139,147,154,159,163,168,173,177,178,176,173,171, - 173,177,179,178,174,170,170,173,179,184,186,183,175,164,154,145, - 139,139,147,157,164,169,172,173,171,167,161,153,148,146,147,149, - 150,150,148,146,146,146,143,137,129,123,121,122,123,119,112,106, - 103,104,109,113,116,113,106,97,88,82,77,79,89,102,114,123, - 130,135,138,139,138,135,134,136,141,149,155,160,163,167,172,176, - 177,175,172,171,172,176,178,177,173,169,167,170,177,182,185,182, - 175,166,157,148,140,138,142,150,157,163,168,171,171,170,165,158, - 152,149,149,151,152,152,151,150,150,150,147,141,133,127,123,124, - 124,121,115,109,106,108,112,116,119,116,109,99,90,83,77,77, - 85,96,107,116,124,130,135,137,137,136,135,137,141,148,154,158, - 161,163,167,171,172,171,168,166,167,172,176,177,174,170,169,170, - 175,181,184,182,176,166,156,147,139,136,140,148,155,160,164,167, - 168,167,163,158,153,151,152,154,156,156,154,151,150,148,146,141, - 135,128,125,125,125,123,118,112,108,108,112,117,119,118,112,103, - 93,85,78,77,82,92,102,111,118,125,131,135,137,137,138,141, - 147,153,159,162,164,165,167,170,172,171,168,166,166,169,174,176, - 174,171,169,171,175,180,183,181,175,164,153,143,135,130,133,141, - 149,155,160,164,166,166,165,162,158,156,157,159,160,160,157,154, - 152,151,149,145,139,132,129,129,130,128,124,118,113,112,114,118, - 120,119,114,104,93,84,76,73,76,86,98,108,115,122,128,134, - 138,140,142,144,148,154,159,162,164,165,166,169,170,170,168,166, - 166,169,174,176,174,170,166,166,169,173,176,176,171,162,152,142, - 134,130,131,139,147,154,159,162,164,165,164,162,160,158,159,162, - 165,166,164,161,158,157,156,152,146,138,132,130,130,129,125,119, - 113,111,113,117,121,121,116,107,97,88,81,77,79,87,97,106, - 114,120,127,132,136,138,141,144,150,157,163,167,168,168,169,170, - 172,172,169,165,162,163,166,169,168,164,161,161,165,170,176,177, - 173,164,152,142,133,127,126,132,140,147,151,156,160,163,164,164, - 163,163,165,168,170,170,168,164,160,158,155,152,146,139,133,131, - 131,130,127,122,116,114,115,119,124,125,121,113,102,92,83,78, - 79,86,97,106,113,120,126,132,137,141,144,148,152,158,163,168, - 170,169,168,168,169,169,167,162,159,158,160,163,163,160,157,155, - 158,163,169,172,170,162,151,140,131,124,124,129,138,145,150,154, - 157,160,162,163,163,165,167,171,174,176,174,170,166,163,160,158, - 153,146,139,133,131,130,125,119,115,112,113,118,123,127,126,118, - 108,97,86,78,76,82,92,103,112,121,127,132,136,140,143,147, - 153,160,168,173,175,174,172,170,169,168,165,160,154,153,155,158, - 159,157,154,153,156,160,167,170,170,161,151,142,131,124,123,127, - 134,143,151,156,157,158,160,163,165,168,171,175,177,178,176,172, - 166,160,154,150,145,140,136,132,129,128,127,124,119,116,117,120, - 123,124,122,117,109,95,80,75,80,89,98,104,111,118,123,126, - 131,139,144,149,154,158,161,161,160,160,159,161,164,168,168,164, - 160,158,159,163,164,163,159,155,154,157,161,164,163,156,144,133, - 124,119,120,127,139,150,157,161,163,163,163,162,162,162,162,164, - 167,168,168,166,163,161,161,161,159,153,147,140,136,136,132,124, - 115,108,106,110,115,121,124,120,111,100,92,88,88,94,104,114, - 120,123,125,127,130,133,137,142,148,155,162,167,170,171,170,170, - 170,171,170,167,164,162,161,161,161,157,151,146,145,148,155,162, - 165,163,155,146,138,133,131,135,143,150,154,156,156,156,157,158, - 159,160,162,165,169,172,172,170,167,164,161,159,157,152,146,139, - 134,132,129,123,116,108,105,107,113,119,122,120,112,103,96,91, - 91,97,106,115,121,124,126,128,130,133,136,139,144,151,158,165, - 170,172,172,172,173,174,175,172,168,164,161,160,158,154,149,144, - 142,145,152,159,164,163,156,148,140,134,133,136,143,151,155,156, - 156,155,154,154,156,157,159,163,167,170,171,170,167,164,162,161, - 159,154,148,142,137,133,129,123,115,108,104,105,110,117,121,120, - 113,104,96,92,93,99,109,119,126,130,131,131,132,134,138,141, - 146,153,160,166,170,172,172,172,172,173,174,173,170,167,164,163, - 162,158,153,147,144,145,151,157,161,159,153,144,136,131,131,136, - 145,153,157,158,156,154,152,151,151,153,156,160,164,167,169,167, - 164,162,161,160,159,156,151,145,140,137,134,128,119,111,106,106, - 110,116,120,118,112,104,97,94,95,102,112,123,130,132,134,134, - 135,136,137,141,146,152,158,164,168,168,167,166,167,168,170,170, - 170,169,169,169,168,163,155,147,143,143,147,153,156,155,148,139, - 132,129,131,138,147,157,161,163,162,159,157,154,154,154,157,159, - 162,164,163,160,157,157,156,156,156,155,151,149,147,145,140,131, - 121,114,112,112,114,116,117,115,110,103,97,93,96,104,116,128, - 135,139,140,139,138,137,139,143,148,153,158,162,164,163,163,163, - 166,170,174,175,174,172,172,172,171,167,159,151,145,144,147,152, - 154,150,141,131,124,121,126,136,149,161,167,168,165,161,157,154, - 153,153,154,156,158,159,158,157,155,154,156,158,159,158,154,151, - 149,147,143,136,126,116,110,111,115,119,121,117,108,98,91,89, - 96,108,121,134,141,144,142,139,138,139,140,143,148,153,157,160, - 162,161,160,162,165,170,173,175,176,176,176,175,171,165,157,150, - 147,149,155,161,162,155,144,133,124,121,125,135,147,158,163,163, - 159,155,153,152,153,154,156,158,160,160,158,155,151,149,149,150, - 149,148,146,145,145,145,142,135,127,120,118,120,125,129,128,121, - 109,98,90,89,97,111,126,137,143,144,143,143,143,146,149,152, - 156,160,163,164,163,161,159,160,164,168,172,174,175,176,178,178, - 175,169,161,155,154,157,161,164,162,153,140,128,120,119,126,138, - 150,159,161,159,155,152,151,151,153,155,157,158,157,155,150,145, - 141,140,142,145,147,148,148,148,149,147,142,134,126,121,121,125, - 130,132,128,119,106,96,90,93,103,119,133,143,146,145,143,142, - 144,147,151,156,160,162,163,162,159,156,156,158,163,168,172,175, - 177,179,180,178,174,167,160,157,158,162,166,166,160,148,135,124, - 118,120,128,141,153,159,159,155,151,148,147,148,150,152,154,155, - 153,149,144,140,138,139,143,147,149,150,150,150,150,147,141,133, - 127,125,127,133,138,138,133,121,109,100,96,100,111,125,137,144, - 145,143,140,139,141,145,151,157,161,163,163,159,155,151,150,153, - 158,163,167,172,175,179,179,177,173,166,162,160,163,168,172,169, - 162,150,136,125,120,125,137,149,158,162,159,152,145,142,142,145, - 150,156,159,160,155,148,139,132,129,130,135,138,142,146,149,151, - 151,147,140,132,127,127,132,137,141,140,132,121,110,103,100,105, - 117,132,144,149,147,142,139,139,143,148,153,159,163,165,162,157, - 152,148,148,151,156,161,165,170,174,178,180,177,172,165,162,162, - 167,173,176,172,161,147,134,126,125,131,141,151,157,158,154,149, - 144,141,141,143,146,150,152,151,147,140,132,127,125,126,131,135, - 139,142,145,146,146,142,137,131,129,131,136,143,146,143,135,123, - 112,106,106,115,127,139,148,150,149,144,141,140,142,147,153,159, - 163,164,161,155,149,146,145,149,156,162,168,172,175,177,177,173, - 168,164,162,164,169,174,175,170,160,148,136,129,129,136,146,156, - 160,159,154,147,140,137,138,141,146,151,153,152,147,139,130,124, - 122,123,127,132,137,140,144,146,145,142,137,133,131,133,138,144, - 147,144,135,124,114,108,110,118,131,143,150,151,148,144,141,140, - 143,148,155,161,165,166,162,155,149,144,144,147,153,159,165,170, - 174,176,177,174,170,165,163,164,169,174,176,172,162,149,138,130, - 130,137,148,158,162,161,156,148,141,137,137,141,145,150,152,151, - 146,137,129,123,121,123,128,133,138,142,145,147,147,144,139,134, - 132,134,139,144,147,144,136,125,116,111,113,122,135,147,154,155, - 151,145,139,137,137,141,148,155,160,162,160,154,148,144,144,147, - 154,160,165,170,174,176,175,172,167,162,160,162,167,173,176,173, - 164,152,141,134,134,140,150,160,165,164,158,149,141,135,133,136, - 142,147,151,152,148,140,131,125,124,127,132,136,139,141,142,143, - 143,140,136,132,131,133,139,145,148,147,140,129,120,114,115,122, - 133,145,153,155,151,144,137,133,132,136,143,150,155,158,156,151, - 145,141,141,145,151,158,164,168,170,172,172,170,166,162,160,162, - 167,172,175,173,167,156,146,139,137,143,152,162,168,168,161,151, - 142,135,132,134,139,144,149,151,149,144,135,127,124,126,130,134, - 137,140,142,143,142,138,134,129,128,130,136,143,148,149,144,135, - 125,116,114,118,128,140,150,154,152,146,138,133,131,134,139,146, - 152,158,160,156,150,145,144,146,151,157,163,167,170,172,173,171, - 166,163,161,162,166,172,174,172,168,163,155,146,140,141,148,158, - 166,168,164,155,143,132,126,127,133,141,148,151,149,143,135,128, - 125,125,129,134,138,140,141,142,142,141,139,135,132,131,134,140, - 146,149,147,141,132,124,120,121,129,140,149,154,153,147,139,133, - 129,132,137,145,152,157,158,157,151,147,143,142,149,159,163,170, - 167,163,154,156,177,165,182,180,162,163,153,149,148,153,159,153, - 133,105,93,114,154,191,203,190,154,112,91,104,145,194,224,222, - 188,134,78,42,41,75,125,167,182,167,132,95,72,69,80,99, - 118,134,146,154,162,171,180,188,192,189,181,169,161,154,148,139, - 127,113,101,92,86,83,81,83,87,95,105,115,123,130,136,142, - 151,161,169,172,169,163,154,145,137,135,141,153,166,179,191,198, - 200,198,193,187,177,167,158,154,151,148,142,134,127,120,116,114, - 114,116,121,128,136,143,146,145,141,137,136,139,144,149,148,142, - 132,121,114,114,122,134,149,164,176,185,188,185,176,162,146,131, - 118,109,105,104,105,105,103,99,95,92,92,96,104,116,129,141, - 150,153,152,149,147,148,153,157,157,152,142,133,128,130,138,150, - 165,179,191,201,207,209,206,197,185,171,156,142,133,129,130,131, - 131,128,121,114,109,107,110,118,130,142,152,156,156,153,148,145, - 146,148,148,144,136,127,121,121,127,137,149,159,168,174,178,177, - 173,166,155,142,127,112,101,96,96,100,104,106,104,100,94,91, - 93,100,111,125,140,150,155,154,150,148,148,150,152,152,147,141, - 135,135,141,152,166,179,189,197,202,204,202,198,189,178,163,145, - 129,119,116,120,126,131,132,127,119,111,106,107,116,129,144,156, - 164,165,161,155,149,146,144,141,137,130,123,122,128,139,151,162, - 171,176,176,175,173,168,160,148,134,117,99,86,82,87,97,107, - 113,112,105,96,89,87,93,105,122,138,152,161,163,160,155,149, - 145,143,141,140,138,139,144,155,167,179,189,194,196,195,192,189, - 186,180,169,152,134,119,111,111,118,126,133,136,132,124,115,109, - 108,115,127,142,158,170,175,172,164,156,149,142,136,131,127,127, - 133,142,153,163,170,173,173,170,167,162,158,151,142,129,113,98, - 87,84,89,100,110,116,115,108,99,93,92,97,110,126,143,158, - 167,170,166,159,151,144,138,135,134,137,145,156,169,181,188,192, - 191,188,184,181,178,175,170,160,146,129,115,108,110,118,129,137, - 138,133,123,114,108,109,117,131,147,163,175,180,177,168,157,145, - 134,127,124,127,134,145,157,167,173,173,170,164,159,155,152,149, - 145,136,123,107,93,84,84,92,103,114,118,116,107,98,91,91, - 98,112,131,151,167,176,178,172,161,148,136,129,127,131,141,154, - 169,181,189,192,191,185,178,172,169,168,167,161,150,136,121,110, - 108,114,124,133,139,138,132,122,114,111,115,125,139,156,173,184, - 188,182,169,152,136,124,119,122,131,144,158,170,177,178,174,166, - 157,150,145,142,141,136,128,116,103,90,84,86,94,105,114,118, - 114,107,98,93,94,103,118,137,156,170,178,176,167,153,139,127, - 122,124,133,148,164,180,191,195,193,186,177,169,164,163,163,161, - 156,146,133,121,113,114,121,132,141,145,142,133,124,116,113,118, - 130,146,164,179,187,186,177,161,143,128,119,119,125,138,154,169, - 180,183,179,169,156,145,138,136,136,135,130,121,108,96,87,85, - 92,103,114,120,120,113,104,95,92,95,107,124,144,163,176,179, - 174,161,144,129,119,118,126,141,160,179,194,200,198,189,176,165, - 158,156,157,158,156,149,139,128,120,117,122,131,141,148,148,142, - 133,123,117,117,125,139,157,174,186,190,184,170,153,136,124,120, - 125,137,154,170,182,187,183,172,156,141,131,126,128,130,129,123, - 114,104,95,91,94,102,112,117,118,114,105,96,89,90,99,114, - 134,155,171,179,178,167,151,134,122,118,124,137,157,177,194,202, - 201,192,179,165,155,150,151,154,156,154,149,141,133,128,129,136, - 143,150,148,140,130,119,113,113,120,133,150,167,182,189,187,176, - 158,138,123,118,123,135,150,167,183,193,193,181,162,144,131,126, - 125,127,128,124,117,109,101,98,100,106,114,120,121,116,107,97, - 92,94,102,116,133,152,168,177,177,168,154,138,127,122,127,141, - 161,181,198,206,205,194,179,163,150,144,143,146,148,147,143,136, - 130,128,132,138,146,151,149,143,132,122,114,112,117,129,146,163, - 178,187,187,179,165,149,136,128,129,139,154,170,184,192,190,181, - 165,148,134,125,123,124,124,122,118,112,107,107,111,116,122,125, - 122,115,104,94,87,87,95,109,128,148,164,173,175,168,157,143, - 131,125,127,137,153,172,189,200,202,194,181,166,153,146,145,146, - 146,144,139,135,133,135,140,145,150,150,146,137,126,115,108,109, - 118,133,151,168,180,186,184,176,163,149,138,130,130,139,153,170, - 184,192,191,183,169,154,141,132,128,126,123,118,112,107,105,109, - 116,124,130,130,123,112,99,89,84,86,97,113,131,149,162,169, - 168,162,152,140,131,126,129,140,155,173,188,197,198,192,182,170, - 160,153,149,146,142,136,131,127,129,136,146,156,161,159,150,137, - 124,113,108,110,120,134,151,167,177,181,179,171,161,149,139,133, - 134,142,155,170,183,190,190,182,171,159,148,140,133,126,118,110, - 103,100,105,115,126,136,139,134,123,108,94,84,82,86,98,114, - 132,147,158,163,163,158,151,143,137,134,137,145,159,174,187,195, - 196,192,185,177,170,162,154,145,136,128,123,124,132,144,157,166, - 167,159,146,130,115,106,103,107,118,132,148,161,169,172,170,165, - 157,148,140,135,136,143,153,165,174,179,180,177,172,165,157,149, - 138,126,113,103,99,103,114,128,140,146,145,135,121,105,93,86, - 87,94,107,122,136,148,156,160,161,159,155,148,142,139,141,148, - 157,169,179,187,191,193,194,192,186,174,160,145,130,120,118,126, - 139,154,165,171,166,153,137,122,111,106,108,115,126,135,144,150, - 155,158,158,159,154,149,142,139,139,142,147,153,161,168,176,181, - 183,182,173,157,139,122,109,102,103,111,124,138,148,150,143,132, - 118,106,98,95,98,104,112,120,128,136,143,149,153,156,158,157, - 153,149,148,150,154,159,166,177,189,200,206,204,194,178,159,141, - 127,123,127,138,151,161,164,161,154,143,132,122,116,113,114,117, - 121,125,129,134,140,146,152,155,155,153,148,142,137,134,134,139, - 149,165,181,193,199,196,183,162,138,118,107,106,113,124,136,143, - 146,143,137,129,120,113,107,104,102,103,104,107,113,122,132,144, - 153,160,163,163,160,154,148,141,140,146,158,176,196,211,218,212, - 197,174,152,136,130,132,140,147,151,153,154,154,152,147,142,136, - 127,121,113,109,103,107,107,118,126,140,147,149,153,146,162,155, - 141,128,130,144,154,170,195,212,208,189,172,163,156,139,114,98, - 101,118,131,129,115,102,97,105,117,126,126,117,102,91,87,92, - 103,118,132,143,151,159,167,173,174,168,156,142,135,140,159,187, - 213,229,230,218,197,175,158,147,142,142,143,141,138,139,147,157, - 166,169,165,155,143,131,118,108,101,100,106,116,130,144,157,167, - 172,170,160,143,124,111,108,118,138,162,182,193,193,182,165,148, - 134,124,118,113,108,103,102,106,117,128,138,142,142,137,128,116, - 102,89,82,83,91,106,124,144,161,175,182,182,173,159,144,134, - 136,147,167,188,206,218,220,214,203,190,178,168,158,148,139,131, - 128,131,138,149,159,165,167,163,153,137,119,101,88,84,89,101, - 119,137,153,165,171,167,155,138,121,111,111,122,139,157,171,181, - 184,183,177,167,156,143,131,120,111,104,100,102,110,123,138,149, - 154,152,141,124,105,89,78,75,83,99,119,140,159,175,182,181, - 171,156,144,137,138,149,165,183,197,208,212,211,206,200,191,179, - 166,153,140,130,124,126,135,148,162,171,175,171,158,140,118,100, - 85,80,84,96,114,133,150,163,170,167,156,141,127,118,119,129, - 144,158,169,178,182,181,178,174,167,157,144,131,118,109,104,106, - 116,130,142,151,155,152,141,125,108,91,79,75,80,93,113,133, - 152,165,173,173,166,155,144,137,139,148,162,177,191,203,209,209, - 208,206,200,190,177,162,147,135,129,129,137,151,164,174,179,176, - 165,146,125,105,91,85,86,96,110,128,144,158,165,164,155,141, - 126,117,115,123,136,150,163,172,178,180,180,178,172,163,150,135, - 120,108,101,102,111,126,140,151,157,155,145,129,110,93,80,75, - 79,90,106,126,145,160,170,172,166,154,143,137,139,148,162,177, - 190,200,206,209,210,209,203,194,181,167,152,141,136,137,144,156, - 169,178,181,178,169,153,132,111,93,83,82,90,106,125,141,153, - 158,155,147,134,123,117,117,124,135,146,157,165,170,175,177,177, - 173,166,154,139,123,111,104,105,113,127,141,152,157,155,148,133, - 115,96,81,74,78,90,108,128,147,161,171,173,169,159,148,138, - 136,142,154,169,185,196,202,205,206,204,200,193,184,173,160,148, - 140,139,144,154,165,173,178,177,169,154,135,115,98,88,86,92, - 105,120,135,146,153,154,147,136,123,114,111,115,126,141,155,166, - 172,174,173,169,164,157,149,140,130,122,117,116,121,130,141,150, - 155,156,151,139,122,105,90,82,83,92,107,124,141,154,163,166, - 162,154,144,136,134,139,151,167,184,196,204,207,205,200,193,185, - 177,168,161,155,151,150,153,159,166,172,175,174,167,155,139,120, - 103,93,91,96,107,121,135,145,151,151,145,137,125,116,112,116, - 126,141,157,168,175,175,171,164,156,147,139,132,128,126,126,129, - 133,138,143,147,150,150,146,137,123,108,95,87,88,96,110,125, - 140,152,160,163,160,154,146,140,138,142,152,167,183,195,203,206, - 202,195,185,176,168,161,158,157,158,161,165,168,170,169,168,165, - 159,150,138,123,110,100,98,102,111,123,134,144,149,149,144,137, - 128,120,116,119,128,140,152,163,170,173,170,161,149,137,127,120, - 118,122,129,136,142,147,150,149,145,140,135,128,119,110,102,97, - 97,103,115,128,141,151,159,162,160,155,148,142,139,143,153,167, - 180,190,198,203,202,196,185,171,158,149,145,147,155,167,176,181, - 181,175,166,157,148,141,133,124,115,107,105,108,117,128,140,147, - 152,152,148,140,133,128,125,126,131,140,151,160,167,172,171,165, - 152,137,121,111,109,113,122,135,147,157,161,158,150,139,129,120, - 112,106,103,103,106,112,121,131,142,151,158,161,161,157,151,147, - 145,149,157,168,179,188,193,197,197,192,184,172,159,147,140,141, - 148,160,174,186,192,189,180,164,148,134,122,116,113,115,119,124, - 131,138,144,148,152,153,150,145,138,132,129,130,136,144,152,157, - 161,163,163,159,152,142,129,117,107,106,112,124,139,154,163,163, - 158,147,133,118,106,100,98,103,111,123,133,140,145,149,154,158, - 159,157,153,149,147,150,158,168,177,183,187,190,191,188,182,174, - 165,156,149,144,142,147,157,171,184,191,188,176,159,139,121,110, - 106,110,118,129,140,148,154,155,153,151,149,147,142,136,134,134, - 138,144,151,157,159,159,155,150,145,139,132,124,118,114,113,116, - 124,135,147,156,158,153,141,126,109,96,90,93,102,117,134,148, - 156,160,159,156,154,153,151,149,149,151,157,164,172,179,183,186, - 186,183,177,170,163,156,151,149,149,150,154,162,171,178,181,179, - 169,155,139,124,114,111,116,126,140,153,162,164,161,156,150,144, - 140,137,136,138,143,148,153,156,157,157,155,151,144,137,129,122, - 117,114,114,115,119,125,133,141,147,148,143,132,119,106,97,94, - 98,110,124,140,153,161,162,159,155,151,147,147,149,154,162,169, - 175,179,180,181,180,178,174,169,164,159,155,153,153,153,154,158, - 164,170,174,175,172,163,150,137,125,117,115,119,130,144,157,165, - 166,163,157,151,144,140,138,139,144,150,155,157,156,154,150,145, - 140,133,128,122,119,117,117,117,119,122,127,133,137,139,138,134, - 125,115,106,100,99,103,115,130,144,156,162,165,163,158,153,148, - 148,151,157,166,174,180,181,181,180,177,172,165,161,157,156,156, - 157,158,157,158,161,166,170,171,169,164,156,146,137,129,124,122, - 128,139,152,162,168,168,164,158,151,144,139,137,139,144,150,154, - 155,154,150,144,138,132,125,120,117,115,115,115,117,118,122,127, - 132,135,135,133,129,121,113,106,103,104,110,122,136,149,159,164, - 165,162,157,151,147,147,152,160,169,176,180,181,179,176,171,166, - 162,158,156,156,157,159,161,163,165,168,171,173,172,169,164,155, - 145,136,129,125,127,134,144,154,161,165,165,160,153,145,137,134, - 134,138,144,149,151,150,146,141,136,130,123,117,114,113,113,116, - 118,121,124,127,131,136,139,140,136,129,120,111,106,106,110,121, - 135,148,158,164,167,166,163,159,154,150,150,156,163,171,176,180, - 180,176,169,162,158,154,154,154,157,159,161,161,163,165,169,173, - 176,176,173,167,158,148,137,130,127,131,139,149,155,161,161,159, - 151,145,137,134,131,137,141,149,148,150,145,146,137,131,112,116, - 136,98,124,113,129,114,96,139,129,116,147,172,141,124,132,137, - 113,103,112,129,144,161,173,172,162,150,140,138,144,155,166,170, - 168,157,142,130,126,129,136,144,154,160,165,170,175,177,177,175, - 170,163,158,158,163,172,182,191,194,188,176,160,145,134,129,130, - 136,143,148,151,151,148,142,136,130,127,126,125,125,124,124,124, - 126,127,128,128,125,121,117,114,112,111,113,117,125,135,146,158, - 168,173,172,162,148,131,117,109,107,112,121,130,137,141,142,142, - 141,138,137,137,136,133,127,120,115,116,122,132,143,153,159,162, - 163,164,165,168,172,175,178,180,179,176,173,169,164,160,155,151, - 149,150,154,158,160,157,150,140,130,122,116,116,120,128,139,147, - 152,151,146,138,127,116,106,99,95,95,97,104,113,122,131,140, - 151,158,162,163,161,156,147,135,125,120,120,125,134,143,149,152, - 150,144,136,127,120,115,114,118,126,134,141,147,151,154,159,166, - 174,182,185,182,173,162,149,138,133,136,147,161,178,193,206,212, - 210,202,189,174,159,148,140,136,132,129,126,126,128,131,135,139, - 143,146,148,147,144,138,130,121,113,108,108,112,116,118,119,118, - 117,117,119,126,135,146,156,166,172,172,168,161,153,144,137,133, - 132,133,134,133,131,129,128,128,128,130,133,138,141,141,140,139, - 139,138,140,147,158,169,175,175,169,159,148,138,135,140,152,166, - 181,193,199,200,197,192,184,176,170,165,160,155,148,140,132,127, - 125,126,129,133,139,144,148,149,147,141,133,124,116,111,110,112, - 113,114,114,113,112,112,117,126,137,148,157,162,164,163,159,155, - 152,152,153,154,153,149,142,135,127,123,121,122,124,128,133,138, - 143,145,144,141,139,139,143,153,165,176,182,181,174,163,150,139, - 136,138,144,155,168,181,191,197,199,198,195,191,185,178,169,158, - 146,134,123,118,118,123,131,139,145,148,149,147,142,136,127,121, - 118,119,120,121,120,117,112,108,108,112,120,129,139,147,151,152, - 151,150,151,155,162,169,172,170,163,154,142,130,121,116,116,120, - 126,134,141,147,150,149,142,135,130,132,140,153,167,178,181,176, - 166,154,145,140,140,145,151,156,160,165,170,176,184,192,199,203, - 202,195,183,167,149,132,121,116,118,125,134,142,149,151,150,144, - 137,129,124,121,122,125,126,124,119,113,110,110,114,122,132,140, - 144,143,140,137,137,140,148,158,169,178,182,180,172,160,146,133, - 122,117,118,124,130,137,140,143,143,141,137,134,135,141,149,158, - 167,173,175,173,168,161,156,153,150,147,144,143,144,148,154,164, - 175,187,197,204,205,200,188,171,152,135,124,120,122,127,133,139, - 143,143,141,137,132,129,127,127,128,128,127,123,120,117,117,119, - 125,131,136,138,135,129,123,121,125,133,145,158,171,181,187,185, - 177,165,151,139,130,125,124,126,129,131,133,136,139,140,140,140, - 142,147,153,159,166,171,175,176,173,169,164,158,153,148,141,135, - 133,136,144,156,170,183,194,201,202,197,187,172,157,144,135,130, - 128,127,128,130,132,135,137,137,136,133,129,127,125,123,121,120, - 119,120,123,128,132,135,137,137,134,129,124,121,123,129,139,151, - 162,171,176,177,175,169,160,151,141,131,124,121,121,124,129,135, - 141,145,145,144,145,147,151,157,164,172,178,183,184,181,174,165, - 155,145,137,132,131,134,142,151,161,171,183,193,197,195,188,177, - 165,154,143,134,128,125,125,128,134,139,143,142,138,133,129,125, - 122,122,123,125,127,130,132,134,136,136,135,133,129,126,122,121, - 122,126,133,141,151,162,172,177,177,172,164,154,142,132,125,120, - 118,120,126,135,144,150,150,147,145,144,148,156,165,175,183,189, - 189,184,177,167,158,148,140,135,133,135,139,146,154,163,173,181, - 188,190,189,183,172,161,148,135,127,122,123,127,133,140,145,145, - 140,132,125,120,120,124,129,134,135,134,132,131,131,134,136,137, - 137,135,130,125,123,124,130,139,151,162,171,177,178,175,168,156, - 142,129,118,113,113,117,124,132,139,145,147,146,145,146,152,160, - 168,176,186,193,194,189,180,169,158,149,141,136,135,136,139,144, - 150,158,168,177,183,187,186,180,169,157,145,134,126,121,120,123, - 130,137,142,144,142,137,132,127,125,126,127,130,134,136,138,138, - 139,139,138,137,135,132,130,128,128,130,134,139,147,155,163,169, - 170,167,161,152,141,130,120,114,114,118,125,134,142,148,151,150, - 148,149,152,159,166,174,183,190,191,189,182,174,164,153,144,137, - 135,136,140,146,152,159,167,175,180,182,179,173,164,154,144,136, - 131,128,128,130,135,139,141,142,139,137,134,131,129,127,128,129, - 132,135,137,139,140,141,141,140,138,135,132,130,131,134,137,142, - 146,152,158,162,164,162,158,151,141,132,123,118,117,120,125,133, - 141,148,153,154,153,154,157,162,167,172,179,185,187,185,180,174, - 166,157,147,139,135,137,141,148,156,164,170,174,175,173,169,163, - 156,148,141,135,130,127,126,128,134,140,145,147,145,142,138,133, - 129,126,125,124,126,127,130,133,137,140,142,142,140,137,133,132, - 133,136,142,146,151,154,157,157,157,156,152,145,139,134,128,123, - 119,119,125,134,144,154,161,163,160,158,158,161,165,169,175,180, - 184,186,184,179,171,161,152,143,139,139,142,149,156,163,168,170, - 170,166,161,156,150,143,138,134,130,128,128,130,135,141,147,150, - 151,150,145,137,129,124,120,118,118,120,124,130,136,141,144,144, - 141,137,134,132,133,137,142,148,152,155,156,156,154,150,147,143, - 138,133,127,123,121,124,130,138,148,158,166,170,168,165,161,159, - 158,159,162,168,174,179,181,181,178,170,160,150,141,138,139,144, - 152,160,165,168,167,162,156,149,142,138,133,130,128,128,130,134, - 139,146,151,155,156,155,152,146,138,128,118,112,108,108,112,122, - 133,143,149,150,147,142,140,139,139,142,145,151,155,159,160,158, - 154,149,144,139,136,131,126,122,121,125,133,143,153,162,170,173, - 172,168,164,159,154,152,152,157,164,173,179,183,183,178,169,158, - 147,139,136,138,144,152,161,166,166,162,154,145,138,132,129,126, - 128,132,138,144,150,158,164,166,166,163,155,146,135,126,115,105, - 102,105,110,119,133,146,155,159,159,155,148,140,135,134,136,141, - 148,154,158,159,157,151,144,136,128,125,124,125,130,134,140,144, - 155,166,169,176,174,165,158,147,143,142,145,157,160,165,169,173, - 176,177,180,173,155,136,126,130,142,157,173,186,192,183,160,129, - 108,105,116,133,147,151,148,143,140,143,150,157,162,161,155,147, - 138,129,122,119,118,119,123,128,137,148,157,162,160,153,141,128, - 118,115,117,124,133,142,149,151,152,151,150,146,139,131,126,125, - 128,133,140,147,155,162,169,170,167,160,153,149,147,147,149,155, - 165,175,184,191,193,190,181,168,155,142,134,132,134,141,150,159, - 167,171,170,164,156,144,132,125,122,125,132,142,153,163,170,174, - 174,170,160,148,136,124,115,108,105,107,114,123,132,141,148,152, - 153,149,142,133,125,120,120,124,131,139,148,158,164,166,162,154, - 144,134,128,123,123,125,130,138,146,155,164,170,170,166,161,156, - 152,149,153,162,172,181,185,187,186,181,173,165,157,148,140,137, - 137,139,142,147,154,161,165,165,159,151,141,134,130,132,138,145, - 153,160,166,171,174,172,165,155,140,125,113,106,106,111,119,128, - 136,142,144,143,143,142,140,137,132,128,125,124,127,133,142,151, - 157,159,158,155,150,143,137,133,131,131,132,136,142,150,158,166, - 170,169,164,157,151,148,150,158,169,180,186,187,181,172,163,154, - 146,141,139,138,139,141,144,149,153,157,160,161,160,158,153,147, - 141,139,142,148,155,162,168,173,174,171,166,157,146,133,122,113, - 110,113,120,130,140,146,147,142,135,130,128,128,129,130,130,131, - 132,134,140,146,153,158,159,157,152,143,135,130,129,132,135,138, - 142,147,153,160,165,165,164,159,155,153,154,160,170,180,188,189, - 180,166,151,141,136,135,138,141,144,146,148,150,152,154,156,157, - 157,155,152,147,144,142,145,152,159,166,171,173,173,169,163,156, - 146,136,125,117,114,115,120,128,140,146,147,143,136,128,123,123, - 124,126,129,133,136,137,140,145,150,153,155,154,152,148,142,137, - 134,134,135,137,141,146,152,159,162,161,159,157,155,153,153,157, - 164,173,181,184,180,171,158,145,134,128,127,131,137,143,149,153, - 156,157,155,153,151,150,149,148,147,148,152,156,161,167,171,173, - 173,169,164,156,146,137,128,122,119,120,125,132,141,147,149,145, - 138,129,122,118,117,120,125,131,137,143,147,151,154,155,155,153, - 151,148,144,140,137,136,136,137,140,143,148,153,157,157,158,157, - 157,157,159,161,166,172,178,180,176,167,155,141,129,124,126,132, - 140,147,152,154,154,153,152,150,149,148,147,146,147,150,154,158, - 163,168,171,172,171,167,162,156,149,143,137,133,131,130,132,137, - 142,145,145,141,133,124,117,112,113,118,124,132,139,144,148,151, - 153,153,152,150,148,146,144,141,139,138,139,140,142,144,147,149, - 150,152,155,159,162,165,167,169,171,174,175,174,168,160,148,136, - 126,120,120,126,136,146,153,158,160,159,156,152,148,146,145,145, - 147,152,157,164,170,174,175,174,171,167,161,155,150,146,143,140, - 138,135,134,135,139,142,143,140,133,124,117,112,113,117,122,130, - 138,145,150,153,154,153,152,150,147,143,139,136,135,135,137,139, - 141,143,144,146,148,154,161,167,171,174,173,172,171,170,170,169, - 165,157,146,135,126,120,120,126,136,146,155,160,162,160,156,151, - 147,143,142,143,147,152,159,165,170,172,173,170,166,161,156,153, - 151,149,147,145,142,139,137,138,140,143,143,140,133,126,118,113, - 112,115,122,130,138,146,152,155,155,153,150,148,145,143,141,140, - 141,141,140,139,138,137,139,142,146,153,161,168,174,176,176,174, - 173,171,169,165,160,151,141,132,125,123,125,130,137,144,150,156, - 159,159,153,146,140,138,140,144,151,158,165,170,172,172,171,168, - 163,158,155,153,153,153,152,151,150,148,145,145,145,144,141,136, - 129,122,116,111,112,116,124,132,141,147,152,154,155,155,152,150, - 148,144,141,140,139,138,137,137,134,132,132,136,140,148,157,166, - 174,178,181,182,178,173,168,163,157,150,141,132,125,122,124,130, - 139,148,155,159,158,153,148,143,140,140,143,147,152,158,162,166, - 168,169,167,163,158,154,151,150,150,152,154,156,156,155,152,150, - 149,148,145,140,132,125,119,116,116,121,129,137,143,147,149,148, - 146,144,143,144,145,146,144,142,140,138,135,133,133,134,135,137, - 142,149,157,166,174,179,183,184,182,178,172,165,158,149,140,131, - 126,126,130,136,143,149,151,151,148,143,138,136,138,142,146,151, - 156,160,164,166,167,167,165,163,159,153,147,142,141,144,149,154, - 157,158,157,155,153,151,147,142,136,130,125,122,123,129,136,143, - 147,149,148,147,145,144,143,144,146,146,144,141,138,135,132,130, - 130,132,134,136,140,145,153,162,169,175,180,183,184,181,175,168, - 161,152,143,135,129,129,133,140,146,151,152,151,147,142,138,135, - 135,137,140,144,150,154,158,160,162,163,162,160,157,154,150,148, - 144,144,144,147,151,155,158,159,159,156,153,148,141,135,130,128, - 130,134,140,145,146,144,140,139,139,142,145,148,148,147,144,140, - 138,136,134,133,133,134,136,139,143,149,155,160,165,169,174,178, - 181,181,179,173,166,158,148,141,137,138,142,148,151,153,151,147, - 141,137,135,134,133,134,136,139,142,145,150,153,155,159,161,160, - 158,154,152,149,146,144,144,148,152,155,158,159,161,161,159,155, - 150,145,141,139,139,140,140,140,140,139,138,138,140,142,144,146, - 147,146,143,138,135,133,133,133,134,136,137,139,141,145,151,157, - 162,168,174,180,183,184,181,176,168,160,152,146,144,144,146,148, - 148,146,143,141,137,136,134,133,133,134,134,135,137,140,146,153, - 157,160,161,159,156,154,153,151,149,146,144,145,147,153,158,163, - 165,164,161,157,151,146,143,141,141,142,144,142,138,134,132,134, - 138,143,147,149,148,143,137,131,129,130,131,132,134,137,139,141, - 141,143,147,153,160,166,173,181,185,185,181,175,169,163,157,155, - 153,151,150,148,149,147,145,144,141,140,139,138,136,133,132,131, - 131,135,140,145,150,156,160,162,161,157,152,147,142,140,140,145, - 152,158,162,163,161,159,158,157,158,158,156,153,148,143,138,135, - 134,134,136,138,142,145,145,145,144,142,139,135,132,130,131,132, - 135,138,140,140,140,142,147,155,163,172,179,184,185,183,178,172, - 168,166,165,164,161,157,149,145,147,142,132,139,150,147,133,129, - 138,139,138,123,120,121,129,140,145,147,153,170,170,165,157,153, - 147,141,141,147,153,156,158,163,172,177,173,161,150,143,140,136, - 127,119,115,118,129,145,159,170,174,172,166,157,146,134,122,110, - 101,97,101,113,131,149,163,171,175,176,180,184,188,189,184,172, - 160,148,142,142,146,156,166,175,178,179,179,179,176,172,167,158, - 148,140,133,125,118,113,111,110,112,116,124,134,145,156,166,172, - 174,172,168,164,161,159,156,151,144,135,127,121,120,125,135,147, - 157,164,167,170,169,167,163,156,149,142,137,134,132,129,126,126, - 128,130,131,132,133,136,142,149,155,157,157,156,157,160,163,166, - 170,172,171,168,164,160,158,159,161,165,168,171,173,173,173,173, - 171,168,164,159,152,143,135,125,117,109,105,105,108,115,124,135, - 146,156,164,170,171,170,169,167,165,162,160,155,150,143,136,130, - 129,131,135,141,149,156,160,164,168,169,167,161,155,148,141,135, - 129,123,118,115,115,119,123,127,130,135,141,147,153,156,158,159, - 162,166,170,172,172,171,168,163,156,151,149,151,156,163,169,174, - 178,181,182,181,178,173,165,157,149,139,130,122,115,111,110,112, - 116,120,125,131,138,146,153,158,162,165,170,173,174,172,170,165, - 157,147,137,129,124,122,125,131,140,148,157,164,171,177,178,174, - 165,156,145,136,126,118,113,112,113,116,121,128,134,141,149,155, - 158,159,160,162,166,170,171,169,167,163,159,157,155,153,151,150, - 152,157,161,166,171,177,183,187,188,184,176,165,153,139,127,118, - 111,108,106,109,113,118,124,131,138,145,153,157,162,165,169,173, - 175,176,175,170,163,153,143,135,129,125,124,126,131,137,145,154, - 164,174,182,184,180,170,156,141,128,118,111,108,109,113,118,126, - 133,141,148,154,159,163,164,165,165,165,167,167,166,163,159,156, - 153,152,151,151,152,154,159,165,171,177,183,189,193,192,184,172, - 157,143,129,117,109,105,106,108,113,119,126,133,139,146,151,156, - 160,162,165,168,170,170,170,166,162,156,149,141,132,125,121,120, - 123,130,139,149,160,171,180,184,182,175,165,151,136,122,111,104, - 103,105,111,119,128,137,145,153,161,166,170,172,174,175,174,171, - 166,162,158,153,148,145,143,144,147,153,159,166,172,178,184,188, - 191,190,185,174,160,147,135,125,117,112,109,108,111,116,121,130, - 139,148,155,160,164,165,166,168,170,171,170,167,161,154,145,137, - 129,123,120,120,122,128,137,147,157,167,176,182,182,176,165,153, - 140,130,119,112,106,105,107,114,123,135,148,161,171,175,176,174, - 171,170,168,167,165,162,158,153,147,141,138,137,140,145,152,161, - 170,177,183,189,192,192,187,179,167,154,141,130,121,113,107,105, - 106,112,120,132,143,153,160,165,166,166,166,166,168,170,170,167, - 162,155,145,135,126,119,116,117,121,128,136,146,156,167,176,182, - 183,179,171,160,148,137,125,114,106,101,102,108,118,131,146,160, - 172,179,181,179,175,170,166,163,162,161,156,150,142,135,132,132, - 135,141,150,161,171,179,185,189,191,190,187,180,171,159,148,136, - 125,115,107,103,104,110,119,131,143,155,164,169,171,170,168,165, - 163,164,164,163,159,154,146,137,127,118,114,113,117,125,135,147, - 158,169,177,183,183,180,173,164,154,141,128,115,107,103,106,113, - 123,135,147,159,169,174,177,176,172,168,165,163,163,161,159,153, - 146,139,133,131,132,137,145,155,166,177,186,194,200,202,198,189, - 176,162,147,134,122,113,107,105,106,110,119,130,142,154,163,171, - 173,172,168,163,160,158,159,160,159,157,152,143,135,126,117,113, - 115,120,130,143,157,169,179,187,188,182,174,163,149,138,126,117, - 109,104,105,108,117,130,144,157,169,176,177,175,171,167,163,161, - 161,160,158,153,148,143,139,137,136,136,139,147,159,173,186,196, - 202,203,198,189,175,160,145,132,121,112,107,105,107,114,124,136, - 148,159,166,170,170,167,164,163,163,164,165,165,162,157,150,143, - 136,129,123,118,115,116,123,136,151,166,179,187,189,186,178,167, - 154,140,125,113,104,100,101,107,117,130,142,154,163,168,170,169, - 167,163,162,162,163,164,162,157,151,145,140,138,138,139,142,148, - 156,168,179,188,195,199,199,193,183,169,152,135,120,110,106,106, - 110,117,126,137,148,158,165,169,169,169,167,165,164,166,167,167, - 165,160,152,143,134,126,120,115,115,116,121,131,144,158,171,182, - 188,188,183,172,158,143,128,114,105,100,101,108,118,130,142,152, - 160,165,167,167,166,165,165,167,168,168,166,160,153,145,140,138, - 138,140,143,147,153,161,170,178,185,188,188,185,180,171,159,145, - 131,119,111,109,111,117,126,136,145,154,160,163,164,165,166,168, - 171,174,175,174,170,162,152,142,132,123,117,112,111,114,121,131, - 143,156,168,178,184,185,182,175,163,148,133,119,108,102,102,107, - 116,127,137,147,154,159,162,162,163,165,168,171,173,172,168,160, - 151,143,139,138,138,139,142,147,154,160,166,172,177,181,183,182, - 179,173,164,153,140,128,117,111,110,114,123,132,141,147,152,157, - 161,164,167,171,174,177,179,178,173,165,155,144,134,124,118,113, - 112,115,121,130,141,152,163,172,179,181,180,175,166,154,140,127, - 116,109,107,110,116,125,134,142,148,152,156,158,161,164,169,173, - 177,177,173,166,158,151,147,143,141,140,140,142,145,150,158,165, - 170,173,175,176,175,171,165,157,147,136,127,120,116,116,119,125, - 133,142,149,155,159,162,166,171,177,180,181,178,172,163,153,143, - 133,124,117,113,112,115,123,132,143,153,163,171,177,181,182,178, - 172,163,150,136,122,113,108,108,113,120,127,133,139,145,149,153, - 158,162,168,174,178,181,179,175,168,160,153,148,143,139,139,139, - 141,145,149,154,158,163,168,171,173,172,170,165,156,145,134,125, - 119,117,118,122,128,134,141,147,154,161,169,176,182,186,187,185, - 178,169,159,147,136,126,118,113,112,114,119,129,138,148,156,164, - 170,174,177,176,173,166,156,143,131,120,113,110,111,115,121,125, - 130,136,142,149,155,163,169,173,176,178,181,179,175,169,161,152, - 144,138,134,134,135,138,142,147,152,158,163,169,173,177,178,175, - 168,157,143,131,120,114,112,116,122,129,136,144,154,164,173,180, - 185,186,186,182,176,169,160,152,149,129,120,104,105,114,165,128, - 116,166,118,166,188,138,142,187,169,120,130,163,174,168,142,114, - 107,109,123,148,170,178,170,151,136,125,124,130,139,147,147,136, - 119,99,84,78,84,100,122,144,166,186,204,219,232,243,250,255, - 254,247,232,212,187,158,128,100,75,58,48,47,53,63,77,93, - 109,124,137,145,149,150,149,148,146,144,141,140,140,143,149,159, - 171,184,196,206,212,215,217,217,214,206,194,177,158,137,114,90, - 66,45,30,22,22,30,43,61,81,103,124,143,158,170,178,183, - 185,185,180,173,165,157,149,143,140,141,147,154,163,172,180,187, - 194,199,203,203,196,183,165,146,127,106,86,70,59,55,57,65, - 78,93,108,123,137,151,162,169,173,176,176,173,167,159,149,139, - 130,123,119,119,124,134,147,160,172,181,189,196,200,202,198,188, - 171,149,126,102,80,63,52,46,44,50,59,71,84,100,116,130, - 142,153,161,166,171,173,173,169,164,157,149,143,140,140,145,152, - 160,167,172,176,180,184,189,193,193,188,178,162,142,120,98,79, - 64,55,53,57,66,78,92,108,126,144,159,169,174,175,172,167, - 160,151,142,133,126,123,122,125,130,137,147,158,167,175,180,186, - 190,189,186,179,170,155,136,114,93,75,61,51,48,52,60,70, - 81,95,109,123,137,151,163,170,174,175,172,164,155,146,139,133, - 132,135,140,145,153,161,166,171,176,182,187,190,190,185,174,158, - 137,115,96,79,68,62,62,66,74,83,95,108,123,137,150,161, - 171,176,176,170,161,151,140,128,120,114,113,117,125,136,147,157, - 165,171,176,180,184,186,184,178,167,152,133,112,93,78,68,62, - 60,62,66,72,80,91,104,119,134,149,162,172,177,177,173,165, - 154,143,132,126,125,129,137,146,154,161,164,166,169,173,178,182, - 183,180,170,157,139,119,100,85,77,71,71,73,78,85,94,106, - 120,134,147,159,169,174,174,169,160,149,137,125,116,109,107,112, - 121,132,144,155,163,169,175,181,185,188,187,181,168,152,133,112, - 93,79,71,67,67,70,74,80,88,96,107,121,137,152,166,178, - 183,181,172,158,143,129,121,118,121,127,137,145,152,158,163,167, - 172,176,179,181,180,176,166,152,136,119,103,90,81,77,76,78, - 82,89,98,108,120,134,148,163,174,180,180,173,160,143,126,112, - 103,100,104,112,124,136,147,158,167,176,182,186,188,186,180,171, - 158,144,129,115,100,88,79,74,73,74,79,84,91,99,110,124, - 140,156,169,178,181,178,168,154,139,127,120,118,120,126,134,144, - 152,161,167,172,175,177,178,176,172,166,158,146,133,120,106,93, - 84,79,78,82,87,94,103,113,126,140,154,167,176,179,175,166, - 152,136,121,109,101,98,100,106,115,126,139,153,168,180,188,192, - 191,185,175,165,154,142,129,116,104,94,85,81,80,82,86,91, - 99,108,120,132,146,158,166,171,173,169,161,150,138,126,118,115, - 116,122,131,142,154,164,173,178,180,180,179,175,169,161,152,141, - 129,117,106,95,87,82,82,85,90,97,107,120,133,148,159,168, - 173,175,172,164,152,137,122,108,98,92,92,98,108,122,138,154, - 170,181,189,192,190,185,176,167,157,146,134,120,106,94,86,81, - 79,81,86,93,103,115,128,140,151,159,166,170,170,167,160,149, - 136,123,114,109,109,114,125,140,155,171,182,186,186,183,177,168, - 161,154,147,138,128,117,107,96,89,85,83,85,91,101,113,126, - 140,153,161,168,173,175,173,167,157,142,124,106,92,84,84,90, - 101,117,135,154,170,182,190,191,188,182,175,168,160,149,136,123, - 110,99,90,84,82,84,90,98,107,118,130,142,153,161,167,171, - 170,166,157,144,129,115,105,101,103,112,125,141,157,172,183,191, - 192,190,183,176,169,160,150,140,130,118,107,97,90,86,85,88, - 95,106,118,131,143,154,163,170,175,175,173,165,154,138,120,103, - 88,80,78,84,96,113,132,150,167,178,185,189,188,185,179,171, - 160,149,137,124,111,100,91,85,84,87,95,105,115,125,135,143, - 151,158,164,168,169,163,153,138,122,109,101,98,102,111,124,141, - 157,172,184,192,196,197,194,187,177,166,154,142,129,117,105,95, - 87,83,82,86,95,106,117,130,143,154,163,170,177,179,177,169, - 157,142,125,109,95,86,83,86,95,108,123,140,156,170,179,185, - 187,186,181,174,166,156,144,130,116,104,95,90,87,88,94,103, - 114,126,138,148,156,163,168,170,168,162,153,141,126,111,101,96, - 98,104,115,130,147,164,179,190,196,198,196,191,183,174,164,151, - 136,121,107,95,86,81,80,83,90,101,115,130,143,156,167,176, - 181,183,179,171,157,140,123,108,95,87,82,83,89,99,113,129, - 147,163,176,186,190,191,187,181,173,162,149,134,119,106,95,88, - 86,89,96,105,116,127,137,146,156,166,173,175,170,161,149,136, - 123,111,102,96,94,98,106,120,137,155,171,186,196,202,202,198, - 192,183,171,158,144,127,111,96,85,79,78,81,88,98,111,125, - 140,154,167,178,186,188,184,175,160,143,126,110,97,89,85,84, - 89,97,109,123,139,155,169,181,189,193,192,188,179,166,152,136, - 121,108,97,90,87,89,94,103,114,126,139,152,163,171,177,178, - 175,166,155,140,125,111,100,94,91,92,100,111,127,144,161,178, - 191,202,208,208,203,193,179,163,146,130,116,103,92,83,77,75, - 77,86,102,120,139,158,172,183,189,190,186,177,163,146,127,110, - 96,85,81,81,86,94,105,119,135,151,166,179,189,195,197,192, - 182,167,150,134,119,106,98,93,90,91,95,103,114,126,141,156, - 170,182,187,186,179,168,155,140,125,111,102,94,91,90,94,103, - 117,135,155,174,191,204,212,214,209,198,184,167,150,133,117,104, - 93,85,80,78,82,90,103,120,139,160,178,190,195,194,187,174, - 158,140,123,108,96,86,79,77,80,87,98,112,130,149,166,180, - 191,196,196,189,178,165,149,134,120,110,102,97,94,93,97,105, - 117,131,146,161,174,183,187,185,177,166,153,140,127,115,106,97, - 91,89,92,100,113,132,152,172,190,204,213,216,212,201,187,170, - 153,137,122,111,99,89,82,79,81,89,103,122,143,162,178,188, - 193,191,184,173,159,141,125,109,96,85,81,77,75,83,91,107, - 129,146,164,182,193,196,194,191,181,168,153,136,123,110,101,95, - 95,96,101,108,118,130,143,158,171,180,184,183,177,168,153,135, - 123,112,102,95,89,89,93,102,118,134,154,175,194,209,219,224, - 219,204,183,162,145,129,115,103,95,89,83,78,76,84,102,126, - 151,170,182,185,183,176,169,159,148,136,124,112,102,95,93,93, - 97,102,110,121,135,151,167,181,190,192,189,180,169,156,142,126, - 111,98,90,87,89,94,103,115,127,140,152,163,171,178,181,181, - 177,168,157,144,131,118,107,100,96,95,97,103,114,132,153,174, - 194,209,218,219,213,201,185,167,148,129,111,96,86,81,81,86, - 96,108,121,135,148,161,172,181,184,184,179,170,158,143,126,111, - 97,86,81,81,86,94,105,120,135,151,166,179,188,192,191,185, - 173,157,140,122,106,94,86,85,89,97,109,121,132,144,155,166, - 175,181,183,180,172,162,152,140,127,114,103,96,94,95,101,111, - 126,144,163,181,196,207,211,210,204,194,179,161,141,121,104,91, - 85,85,90,98,108,119,131,143,154,164,174,181,184,182,176,165, - 152,139,126,113,100,89,80,76,80,90,105,122,141,158,173,183, - 188,189,187,182,172,158,141,122,103,89,81,80,88,99,112,127, - 140,151,162,171,177,179,180,176,169,160,150,139,127,115,104,95, - 91,90,97,108,125,146,168,189,204,212,213,208,198,184,167,151, - 135,119,105,94,86,85,90,98,110,124,139,152,163,172,179,183, - 184,181,174,163,150,136,121,107,96,86,79,77,80,91,108,129, - 150,170,186,194,195,191,182,171,159,146,133,118,104,93,87,85, - 88,97,112,129,146,161,172,179,183,182,178,172,164,154,142,130, - 118,106,95,88,85,87,95,110,130,155,181,203,216,220,215,205, - 191,176,161,145,130,116,103,93,88,88,93,102,116,132,149,163, - 173,179,182,181,178,172,165,157,146,133,119,107,96,87,81,79, - 82,92,109,133,156,177,193,200,199,191,180,167,155,143,129,112, - 101,90,83,86,91,104,123,140,156,171,181,184,181,175,167,158, - 150,140,130,122,113,104,96,90,89,93,103,120,141,166,190,209, - 221,224,220,208,191,173,154,138,123,110,99,91,87,87,93,103, - 117,134,151,167,178,185,186,183,176,168,159,148,138,126,115,104, - 94,87,82,82,88,101,120,142,165,186,200,205,202,192,178,160, - 143,128,114,102,92,85,83,85,92,105,122,142,162,178,188,191, - 189,182,172,162,151,139,128,118,110,103,97,93,94,101,113,129, - 149,171,192,208,218,218,209,195,177,159,143,130,120,111,104,97, - 93,94,99,110,126,145,162,177,186,191,190,185,177,165,152,138, - 126,114,103,93,86,82,82,86,96,110,129,151,172,190,203,206, - 201,190,174,155,137,121,109,100,94,91,91,94,101,114,130,147, - 164,177,185,188,184,176,164,151,138,127,117,110,103,98,96,97, - 102,111,124,140,157,176,194,207,213,212,204,190,174,156,138,124, - 112,105,100,99,100,105,114,125,138,153,168,181,189,193,191,183, - 170,154,139,124,111,101,93,89,88,89,93,100,110,125,142,159, - 176,190,199,200,193,181,166,150,133,119,108,101,97,97,100,107, - 116,129,142,156,168,177,183,183,177,167,154,139,123,111,104,99, - 97,99,102,106,114,125,137,151,166,181,194,203,207,204,195,181, - 165,147,132,119,110,105,102,103,108,116,125,136,148,162,175,184, - 188,187,180,170,155,139,125,111,101,95,90,89,90,96,104,115, - 129,143,158,171,182,190,194,192,185,173,158,142,127,114,105,100, - 99,102,109,119,130,142,155,166,174,177,176,171,163,151,138,124, - 111,101,96,95,97,101,109,119,130,141,151,162,173,182,189,194, - 194,190,182,170,157,144,132,121,113,108,108,112,118,126,137,149, - 161,170,176,178,177,173,165,155,143,127,112,99,90,86,87,92, - 100,110,122,135,146,156,165,174,180,184,184,179,171,160,148,138, - 128,120,115,112,112,115,122,132,143,154,163,170,173,172,167,159, - 149,137,125,112,101,96,90,92,96,103,117,131,142,153,165,172, - 178,181,184,184,183,180,172,162,150,140,131,124,119,117,117,120, - 126,136,147,159,170,177,180,179,173,164,154,141,129,116,105,95, - 88,86,87,93,104,117,131,145,156,165,172,177,179,179,177,172, - 165,156,146,138,131,125,122,122,125,130,138,146,155,163,169,172, - 171,167,160,149,136,123,111,100,92,86,86,89,96,106,119,135, - 151,165,176,184,187,188,186,182,177,171,164,155,145,138,133,130, - 129,128,130,134,140,147,154,162,169,174,175,172,166,156,145,133, - 120,109,99,92,88,88,92,101,113,127,142,156,167,175,180,181, - 179,174,169,162,156,148,141,134,128,125,125,128,132,138,145,152, - 158,164,168,169,167,163,155,144,132,118,105,93,85,81,82,88, - 99,111,126,142,157,169,179,186,189,188,184,177,170,162,154,146, - 139,135,134,134,136,138,142,146,149,154,160,165,170,172,170,166, - 159,150,138,127,116,107,98,92,89,89,95,104,117,130,143,156, - 166,173,177,179,177,172,166,159,152,144,138,134,132,132,135,138, - 143,147,153,158,164,168,170,170,167,161,151,139,126,113,101,91, - 84,81,82,88,98,112,128,144,157,168,177,183,186,187,183,176, - 168,161,153,146,140,136,134,135,138,142,147,153,157,160,162,165, - 166,166,166,163,156,147,135,123,112,101,92,86,84,86,92,102, - 115,128,142,155,165,174,178,179,177,173,168,161,154,147,141,137, - 136,138,140,144,148,151,155,160,164,168,171,172,168,162,151,138, - 124,111,99,89,82,78,77,82,91,104,121,138,154,167,177,184, - 188,189,186,181,173,164,155,147,142,139,138,140,144,148,152,154, - 156,158,161,164,166,167,165,159,151,141,132,122,112,102,93,86, - 83,85,91,100,111,123,136,150,163,174,181,185,185,181,173,163, - 153,145,140,137,138,141,145,149,153,157,160,164,167,170,172,172, - 169,161,150,138,124,111,100,91,84,79,79,82,89,99,114,129, - 145,161,175,185,191,192,188,181,171,166,158,151,148,144,144,146, - 151,155,157,160,161,161,159,159,160,161,159,155,148,138,128,117, - 107,103,94,89,86,84,89,97,106,117,131,146,158,168,176,181, - 184,181,175,166,158,149,143,141,141,143,147,151,155,157,160,164, - 167,170,172,174,172,166,156,142,128,114,102,92,83,77,73,73, - 79,88,101,117,133,151,168,183,193,199,198,194,185,175,165,157, - 151,148,147,149,152,158,160,160,164,171,168,161,172,164,161,156, - 140,135,122,110,105,97,85,78,83,82,84,91,101,109,121,134, - 152,168,181,187,192,193,190,181,166,149,144,148,125,146,130,148, - 130,166,167,146,210,142,159,207,180,143,161,169,134,107,110,110, - 89,74,69,77,88,96,103,109,117,132,147,162,165,163,162,174, - 183,194,200,199,193,182,163,147,136,133,140,153,169,182,189,189, - 183,174,165,157,151,145,142,133,120,103,78,58,43,34,37,51, - 71,91,107,121,136,148,161,173,185,194,197,196,187,173,156,140, - 130,130,141,160,184,205,221,228,224,207,184,159,136,121,114,116, - 124,131,134,130,118,98,75,52,35,30,37,53,76,108,143,177, - 206,225,235,235,224,204,179,155,133,121,121,132,153,177,201,219, - 226,222,207,184,162,142,129,125,127,132,136,135,125,109,90,68, - 49,39,37,46,62,82,102,122,139,155,167,179,188,193,193,187, - 178,165,152,142,139,145,159,179,200,215,223,218,203,182,158,138, - 126,124,130,142,153,160,156,142,120,91,62,39,26,24,36,56, - 82,114,146,175,200,216,223,220,209,192,173,155,141,134,137,150, - 170,193,214,227,230,220,200,175,151,134,126,128,138,149,157,157, - 146,125,98,69,45,29,25,34,51,72,94,117,137,154,169,181, - 188,190,187,178,167,155,146,142,146,159,178,201,222,234,234,223, - 201,173,146,126,115,117,128,145,161,170,169,155,131,99,67,41, - 25,21,30,49,73,102,133,162,187,205,214,215,207,192,174,156, - 144,139,145,160,181,205,224,235,235,223,201,175,149,131,123,126, - 139,155,167,171,162,140,112,81,54,34,24,26,39,57,77,99, - 122,143,162,180,192,194,189,179,163,150,140,136,143,161,183,207, - 229,242,241,227,202,171,141,119,107,109,123,143,163,178,182,172, - 149,116,80,49,29,21,27,43,65,93,123,154,181,202,213,216, - 210,195,177,159,147,142,148,166,190,216,235,243,239,224,199,169, - 142,121,111,115,128,147,164,173,172,158,133,102,69,42,26,22, - 31,48,70,95,121,144,164,180,189,191,186,174,158,142,131,128, - 136,155,181,209,233,245,244,229,202,170,138,114,102,104,118,139, - 162,180,188,183,164,134,97,63,38,27,29,42,63,90,119,147, - 172,192,204,207,200,186,169,153,143,141,149,167,191,216,237,247, - 244,228,202,171,141,118,108,110,124,143,163,177,180,171,148,116, - 80,48,27,19,25,41,62,88,115,141,161,175,185,185,180,169, - 153,137,129,128,137,157,186,216,240,252,249,233,204,171,138,113, - 100,100,114,136,161,182,192,188,170,139,102,67,40,27,28,41, - 62,88,117,143,167,185,197,201,197,188,173,159,150,148,157,175, - 198,220,238,245,241,223,195,162,132,110,101,104,120,142,165,181, - 186,177,154,120,83,50,28,21,28,45,67,92,117,138,156,171, - 181,183,179,168,155,142,134,134,144,162,187,212,232,242,239,224, - 197,164,132,107,95,98,114,139,166,188,198,193,173,141,105,71, - 46,34,36,49,69,94,121,145,165,180,189,192,189,181,171,162, - 157,158,166,182,202,222,237,242,234,216,187,154,126,107,101,109, - 128,150,172,186,187,174,149,117,81,51,32,27,35,52,74,97, - 120,139,153,165,171,173,172,165,156,147,142,143,151,166,186,207, - 225,235,233,218,192,160,129,105,93,96,113,137,164,186,195,191, - 171,140,103,69,44,34,39,55,77,101,127,149,167,181,189,191, - 188,181,171,163,159,162,172,188,207,224,236,238,228,208,180,150, - 123,104,99,107,127,151,172,184,184,170,144,110,75,49,34,35, - 48,68,90,112,129,142,152,161,168,171,170,167,159,151,147,147, - 155,169,188,206,221,228,224,207,182,151,120,99,89,93,111,135, - 161,182,191,185,164,134,99,68,45,39,50,67,93,117,138,158, - 172,179,185,189,188,180,171,163,160,164,174,188,205,220,231,233, - 223,204,178,147,120,103,99,108,127,150,172,186,187,174,147,112, - 77,50,35,36,50,72,96,116,133,143,150,156,162,167,169,167, - 163,156,152,151,158,170,188,207,222,228,223,205,178,147,118,97, - 88,93,109,134,158,177,184,177,156,126,92,64,47,45,57,80, - 106,129,147,159,167,174,180,186,188,187,183,178,175,175,181,193, - 207,221,231,231,221,199,170,139,112,95,91,100,119,141,162,174, - 173,159,135,105,75,52,43,49,67,92,117,135,146,151,153,157, - 162,167,172,173,170,164,160,157,159,167,180,195,207,214,210,193, - 170,141,111,90,81,84,101,126,150,169,178,174,156,128,96,70, - 54,52,66,90,117,141,158,169,175,179,183,185,188,187,185,179, - 174,172,175,183,194,206,216,219,212,195,171,144,119,101,94,100, - 115,136,155,166,166,153,130,102,76,57,51,58,77,103,128,147, - 157,161,160,160,162,166,170,173,172,168,163,159,159,164,173,184, - 195,201,199,187,167,142,115,94,83,84,97,119,143,162,170,166, - 149,122,95,71,59,60,77,106,135,160,178,186,187,187,188,190, - 192,191,188,182,174,170,169,174,183,194,203,207,202,188,168,144, - 120,101,91,92,105,124,144,158,160,151,131,106,81,65,62,72, - 93,121,145,163,171,171,168,164,165,169,173,176,175,170,164,157, - 152,152,156,164,175,182,184,179,165,143,119,97,83,80,90,110, - 134,155,166,165,150,126,100,78,67,70,87,114,145,170,188,197, - 199,197,194,192,190,188,185,179,172,166,163,164,169,177,186,193, - 194,186,171,148,124,103,90,88,98,117,138,155,161,155,139,117, - 94,77,71,79,99,128,156,175,185,186,179,172,169,170,173,176, - 176,171,162,153,144,138,139,146,157,168,175,173,162,142,117,94, - 79,75,83,103,127,149,164,165,153,132,108,87,77,81,97,125, - 157,184,202,210,209,203,198,194,189,186,181,173,163,156,147,147, - 152,160,173,183,185,178,167,145,120,101,88,88,100,117,137,154, - 162,158,143,123,102,87,83,90,110,136,163,183,193,193,186,178, - 173,172,174,176,175,168,156,143,132,126,127,134,146,159,167,168, - 158,140,116,93,77,72,78,95,117,139,154,160,155,140,121,104, - 97,102,118,143,171,196,211,217,212,204,197,193,190,188,182,172, - 161,149,141,137,138,144,154,163,168,166,156,139,121,105,95,95, - 103,119,137,152,161,160,150,134,117,105,103,111,131,155,180,196, - 201,194,183,171,161,165,162,166,168,163,154,152,126,113,118,108, - 134,149,143,148,156,137,104,90,89,89,95,106,121,139,154,164, - 168,162,149,130,114,110,118,138,164,188,202,206,197,183,171,164, - 162,165,168,168,165,159,154,152,154,160,169,174,178,175,162,147, - 128,110,98,95,98,107,121,136,144,146,140,130,117,108,106,114, - 131,152,173,186,191,186,176,165,161,163,170,176,178,174,164,151, - 138,129,126,130,138,148,155,155,147,131,110,89,72,65,70,83, - 103,124,141,152,154,149,138,128,124,129,143,164,186,204,212,211, - 201,189,178,173,171,170,170,166,159,151,144,140,141,147,153,159, - 163,160,150,134,117,102,92,90,98,112,129,144,155,159,154,144, - 132,122,119,126,140,160,179,193,196,189,177,164,156,156,160,165, - 166,162,153,141,130,123,121,125,134,145,154,155,149,135,115,96, - 82,76,80,94,113,132,149,160,160,152,141,131,126,129,142,163, - 186,204,212,209,198,183,173,168,168,170,170,167,159,150,141,133, - 134,138,143,152,156,156,152,142,127,114,107,105,109,120,134,145, - 153,153,146,136,126,120,122,133,151,171,189,197,194,181,165,152, - 146,149,158,166,170,167,157,143,129,119,114,118,127,139,149,152, - 148,136,119,101,88,83,88,103,123,143,160,169,167,158,145,134, - 129,133,146,167,188,203,207,201,189,174,165,163,164,167,167,164, - 156,146,137,130,129,132,139,148,153,155,150,140,126,113,105,105, - 113,128,143,156,165,163,155,143,130,124,126,136,154,173,189,196, - 189,173,155,141,135,141,154,167,173,170,159,143,128,116,113,118, - 128,140,151,156,151,139,120,102,89,85,92,109,130,151,166,173, - 170,159,147,136,132,137,151,172,191,204,205,196,180,163,153,151, - 155,161,165,165,159,149,139,132,130,133,139,147,152,153,148,137, - 124,112,105,108,118,134,150,163,170,169,159,146,134,128,130,142, - 159,177,190,191,181,163,144,131,129,136,150,165,172,170,160,145, - 130,121,119,123,133,144,153,153,149,135,117,103,92,92,104,122, - 140,158,170,172,165,155,143,136,137,144,159,177,192,199,194,180, - 162,148,143,147,158,168,174,172,163,151,139,133,132,135,140,146, - 149,147,139,128,117,107,105,111,124,141,158,170,174,171,160,146, - 137,131,136,148,163,179,189,186,173,154,134,122,122,133,150,165, - 174,173,164,150,137,129,127,131,140,148,150,146,136,121,106,98, - 98,107,123,143,159,171,175,172,163,151,141,136,138,148,162,177, - 188,190,180,164,147,137,137,146,160,173,180,179,172,161,151,143, - 139,139,142,143,142,137,128,118,109,106,111,122,137,153,165,172, - 172,165,154,144,135,133,138,149,163,175,180,174,159,140,125,119, - 126,141,158,171,176,172,162,151,143,139,140,143,146,147,143,133, - 120,107,99,97,104,117,134,151,164,172,173,167,158,149,143,141, - 145,154,166,177,181,177,164,149,138,135,142,155,170,179,182,179, - 171,163,155,151,148,147,145,140,134,124,113,104,100,104,114,129, - 147,162,173,176,171,161,151,142,137,140,147,158,169,176,173,161, - 146,130,121,121,131,146,161,170,172,168,162,155,151,151,151,152, - 151,145,135,122,109,99,94,97,109,127,146,163,174,178,175,168, - 159,152,148,148,152,160,168,174,173,163,149,137,131,134,144,157, - 169,175,176,171,166,162,160,161,161,158,153,143,130,117,106,100, - 101,107,119,136,152,165,172,173,167,158,149,144,143,146,155,165, - 171,171,164,149,133,121,118,123,136,151,160,164,161,156,153,151, - 153,158,162,164,159,148,134,120,107,99,99,106,119,137,154,164, - 173,174,170,165,157,152,151,154,158,163,168,169,162,148,134,124, - 122,130,144,159,170,173,170,166,164,164,167,170,172,170,162,149, - 133,118,105,98,97,105,119,136,151,163,168,167,162,154,149,146, - 148,153,160,167,170,166,155,140,127,119,120,128,140,151,157,157, - 153,149,147,149,155,162,167,168,162,152,138,124,113,106,106,113, - 126,141,154,163,167,167,165,160,157,155,157,159,162,166,165,163, - 153,138,127,122,125,133,146,157,161,161,158,156,157,161,168,175, - 178,177,170,159,145,130,119,113,112,118,127,137,146,151,154,151, - 147,145,144,146,150,156,162,166,168,164,154,141,129,124,127,136, - 145,151,151,146,140,136,136,142,151,161,168,170,166,158,147,136, - 128,124,126,131,136,144,150,152,155,153,151,152,154,155,157,161, - 166,169,170,165,154,142,131,128,132,141,148,152,150,145,139,138, - 143,153,164,174,179,178,172,162,151,140,132,128,130,135,141,147, - 150,150,148,144,141,139,139,141,146,153,160,165,167,164,154,143, - 134,130,134,140,145,146,141,133,125,121,124,132,143,155,165,169, - 168,164,157,150,144,142,143,147,152,156,158,157,153,148,144,143, - 144,146,151,155,161,166,166,162,153,141,133,131,136,143,149,150, - 144,136,129,127,132,144,157,169,178,181,180,173,165,155,148,144, - 144,147,150,153,152,148,141,133,128,127,128,132,138,146,154,161, - 164,162,155,146,140,138,142,148,152,148,140,130,120,115,116,122, - 134,147,158,165,168,168,165,161,156,153,154,157,161,163,162,158, - 151,143,137,135,135,138,143,151,159,166,168,163,154,144,136,135, - 139,147,152,151,144,134,125,121,125,135,148,162,175,182,184,181, - 174,166,158,154,153,154,155,154,151,145,137,129,121,117,117,121, - 129,140,151,161,167,167,160,150,143,144,149,154,157,153,143,129, - 118,113,112,118,130,143,154,164,170,172,170,166,161,159,158,161, - 164,165,164,158,150,141,133,129,129,132,139,148,156,164,167,166, - 159,150,143,142,147,153,157,153,144,132,120,114,117,126,140,152, - 165,176,182,183,180,174,166,159,155,156,158,160,158,151,141,129, - 119,114,113,117,126,138,150,160,166,166,160,152,147,147,151,156, - 158,152,140,125,111,105,105,111,122,136,149,161,170,175,176,174, - 170,166,165,165,166,167,166,161,154,145,136,131,129,131,136,143, - 152,161,166,165,160,151,144,142,146,152,156,154,144,130,117,110, - 110,120,133,149,166,178,185,189,187,181,175,168,163,160,160,159, - 156,149,140,128,119,112,110,114,119,132,143,156,165,165,161,154, - 148,143,146,154,159,156,147,134,120,109,105,109,119,134,149,164, - 175,181,183,180,176,170,165,162,160,160,158,154,149,141,135,130, - 127,128,133,140,149,158,165,165,164,159,152,147,145,150,157,159, - 151,137,125,115,113,119,126,141,157,172,180,187,188,185,175,165, - 157,154,152,154,150,148,147,129,129,115,112,106,118,137,135,159, - 167,157,161,152,145,144,143,151,162,166,154,142,131,122,111,107, - 111,122,136,149,158,161,161,158,156,153,152,153,156,161,165,166, - 164,159,153,147,142,140,140,142,148,158,167,172,172,165,154,145, - 140,140,144,147,147,142,134,126,122,125,135,150,167,183,196,204, - 204,200,192,182,173,167,162,159,155,149,140,128,116,103,98,94, - 98,110,121,136,151,160,161,156,147,135,128,128,134,142,147,145, - 136,124,113,108,109,115,126,138,148,155,158,159,158,155,152,151, - 150,151,153,152,151,150,148,146,145,148,154,161,169,177,184,186, - 184,176,163,150,142,140,144,155,163,165,160,149,140,138,141,149, - 161,174,185,190,191,188,182,175,168,163,158,153,149,142,135,126, - 116,106,100,99,104,113,124,135,145,151,151,145,135,120,108,105, - 111,124,138,146,146,138,127,119,116,120,127,136,144,150,152,154, - 154,153,151,149,146,143,143,143,144,146,147,149,151,156,163,170, - 177,182,184,183,180,172,160,148,137,133,137,149,164,175,178,174, - 165,156,154,158,167,177,182,183,180,174,167,162,157,154,152,147, - 141,138,132,125,120,115,111,113,119,124,133,141,144,147,145,137, - 127,116,106,99,100,109,125,140,150,150,144,134,127,126,130,138, - 143,145,144,142,140,138,137,137,136,134,134,134,137,141,146,152, - 161,170,178,185,190,192,189,182,171,158,148,141,133,130,132,139, - 155,172,184,190,191,186,179,176,177,180,181,178,170,161,152,147, - 143,142,141,139,136,133,131,128,128,129,131,135,140,145,149,150, - 147,140,129,119,110,103,97,93,95,102,116,132,150,160,162,160, - 151,147,146,144,143,142,138,131,125,123,123,125,126,126,127,126, - 129,136,146,157,170,183,193,199,200,198,190,178,163,148,137,129, - 127,126,129,135,146,162,181,197,206,208,204,196,187,181,175,168, - 159,149,140,135,131,132,133,135,135,132,132,134,137,142,149,155, - 159,161,160,154,146,133,118,103,92,86,85,89,95,104,116,133, - 152,168,178,180,174,165,155,147,141,135,128,120,113,108,106,107, - 110,115,119,124,130,138,149,162,177,192,203,210,211,204,191,173, - 153,134,121,115,116,123,132,143,155,170,187,205,218,222,218,207, - 193,180,169,160,150,140,131,122,118,118,122,129,134,138,141,144, - 149,155,162,169,173,175,172,163,148,129,109,90,77,74,78,88, - 101,114,127,140,156,168,180,186,183,172,160,147,136,126,118,111, - 102,95,93,96,103,112,122,132,140,149,160,172,185,197,205,210, - 207,198,181,161,141,122,110,106,110,121,136,152,167,180,194,207, - 216,220,216,205,191,178,167,156,146,134,123,114,110,112,120,131, - 142,150,155,159,163,168,172,177,178,176,169,157,140,120,99,81, - 71,71,80,97,116,133,147,158,167,176,182,184,179,169,156,143, - 131,121,113,105,96,89,86,89,98,110,124,137,148,159,169,178, - 189,197,203,203,197,186,171,153,134,118,108,107,115,130,148,166, - 179,188,194,201,206,208,207,199,187,174,162,150,139,128,118,110, - 108,112,122,135,148,159,166,170,173,177,180,181,180,175,165,151, - 133,113,96,82,73,75,86,102,122,140,153,162,166,171,173,173, - 170,161,150,139,128,120,112,104,98,92,89,93,104,117,131,145, - 157,168,175,182,186,190,191,188,180,169,155,141,127,116,111,112, - 121,137,156,174,186,192,194,195,196,196,195,190,181,171,163,154, - 146,138,128,121,117,119,126,138,150,160,167,172,175,176,176,175, - 170,163,152,139,124,109,96,88,85,88,100,116,135,152,162,166, - 168,169,170,169,165,157,146,136,127,121,117,110,104,98,95,98, - 107,120,134,148,157,164,171,175,177,178,177,173,166,158,148,139, - 130,123,123,124,136,149,161,175,185,187,186,187,188,188,185,181, - 173,164,157,151,145,140,133,128,125,127,135,147,158,167,171,172, - 172,172,172,169,164,156,147,136,124,113,105,99,98,101,110,123, - 137,147,154,158,161,162,163,163,159,154,145,135,129,122,117,112, - 107,103,105,112,121,132,142,150,157,163,167,171,172,172,169,163, - 156,149,141,134,127,124,126,132,142,154,167,176,182,184,183,184, - 185,185,180,172,163,155,149,146,143,140,137,133,133,137,146,157, - 167,175,178,179,178,177,174,168,160,149,137,125,115,107,102,100, - 103,111,122,134,145,151,153,153,153,156,159,159,155,146,136,128, - 123,122,120,118,115,113,115,119,129,139,147,156,162,166,170,174, - 174,172,167,160,151,142,134,127,123,123,127,134,144,156,166,172, - 175,175,176,179,182,182,177,167,157,150,145,144,142,140,138,139, - 143,151,160,169,176,180,181,181,179,177,172,165,156,144,133,123, - 113,106,102,102,107,115,125,134,141,145,145,146,151,157,161,160, - 155,145,136,129,124,123,122,120,119,121,126,134,142,150,155,160, - 163,166,169,171,171,167,161,152,143,134,127,122,119,119,123,131, - 142,153,162,169,173,177,182,186,187,182,174,163,154,148,144,142, - 141,141,143,147,154,162,170,175,180,181,182,181,178,174,167,157, - 147,136,126,117,109,105,103,105,109,117,125,132,136,139,143,149, - 156,164,167,164,156,147,139,133,127,123,121,120,121,126,131,139, - 145,149,155,159,164,169,170,167,164,159,151,145,139,132,127,122, - 120,123,128,136,142,149,155,163,171,180,188,189,184,175,164,155, - 148,142,138,136,135,138,144,153,163,171,178,182,185,187,188,188, - 185,179,170,159,146,134,123,114,107,102,101,104,108,111,115,119, - 125,133,144,155,163,166,164,159,154,148,141,133,127,123,122,125, - 131,139,146,152,157,160,164,168,172,174,173,170,164,156,147,138, - 128,120,114,112,113,118,124,129,135,140,150,162,175,184,190,188, - 182,174,166,158,151,145,138,139,141,145,157,166,171,174,181,182, - 183,187,188,188,185,177,167,155,142,129,116,107,102,100,102,105, - 109,112,114,119,127,138,150,158,161,161,159,156,151,145,138,131, - 126,125,127,133,140,144,148,151,156,161,166,171,176,178,176,173, - 166,157,147,134,124,116,111,111,114,118,123,126,131,139,151,162, - 172,178,179,178,176,172,167,160,152,147,145,148,153,159,162,164, - 165,166,171,174,182,190,196,196,190,177,172,159,137,128,108,99, - 106,108,105,111,120,121,117,119,125,134,140,143,144,145,145,145, - 144,144,144,144,143,143,142,146,148,145,152,151,161,162,179,180, - 179,194,171,172,174,152,130,123,115,100,95,100,105,108,112,121, - 136,149,160,167,170,170,170,172,173,168,162,157,157,160,167,173, - 178,179,178,170,165,162,161,167,174,179,183,185,181,172,158,144, - 129,116,107,104,105,108,111,111,111,114,119,124,131,136,140,143, - 146,149,151,152,152,151,151,150,150,150,148,144,141,140,142,147, - 155,165,174,183,186,186,180,168,155,142,129,119,117,118,122,126, - 128,128,129,131,131,131,133,136,140,146,154,162,168,172,174,174, - 173,172,170,167,165,161,159,159,163,170,178,186,193,196,195,188, - 177,163,148,134,123,117,114,114,117,117,116,115,114,115,117,121, - 123,126,128,133,138,143,146,148,148,149,152,155,158,158,157,154, - 151,150,150,154,159,166,173,177,178,174,166,155,145,136,130,129, - 130,132,135,136,136,133,131,129,126,125,124,125,131,140,149,157, - 162,165,169,172,174,175,177,174,172,170,167,169,172,173,180,186, - 189,192,189,181,168,152,136,125,120,120,123,127,130,129,128,125, - 122,120,117,114,112,112,115,122,128,135,140,144,147,149,152,155, - 158,158,157,156,156,157,160,165,170,176,180,181,178,171,161,149, - 135,127,123,126,133,140,146,149,147,143,136,130,123,118,116,119, - 124,132,141,150,156,161,165,169,171,172,172,172,172,172,173,175, - 179,182,187,192,193,193,188,178,163,146,129,118,114,113,119,129, - 134,137,136,131,125,117,112,108,105,107,114,123,132,138,143,146, - 147,148,148,149,149,149,151,153,156,159,164,170,175,180,182,183, - 180,172,160,146,133,123,119,121,129,140,150,155,155,151,144,136, - 127,120,115,117,123,131,141,149,154,156,160,161,162,164,167,169, - 174,177,178,181,184,187,193,196,198,197,191,178,162,144,126,113, - 106,106,114,124,134,140,141,139,134,125,117,111,108,110,116,124, - 132,138,141,141,139,138,138,139,142,145,149,153,157,162,168,174, - 181,186,190,189,182,174,160,144,131,120,115,118,126,137,149,156, - 158,154,147,138,129,122,119,121,128,136,145,151,153,153,152,151, - 151,154,158,163,170,177,182,187,191,197,202,206,208,204,194,179, - 160,140,121,108,101,103,110,121,133,139,142,140,133,127,121,115, - 112,115,121,128,134,138,138,136,133,130,130,132,137,144,151,158, - 163,168,173,179,185,190,192,191,185,174,159,143,126,116,111,113, - 121,133,146,154,156,154,147,141,134,129,128,131,136,143,148,152, - 152,149,145,142,142,148,155,163,172,180,186,190,193,196,200,203, - 204,201,192,178,160,140,122,109,103,104,112,123,135,141,142,137, - 130,124,120,118,119,123,129,134,139,141,138,133,128,124,123,126, - 132,140,148,155,161,167,172,178,185,191,193,193,187,177,164,148, - 132,120,113,114,121,132,145,154,157,154,147,140,134,131,132,135, - 140,145,149,150,147,142,138,134,135,141,148,159,170,179,188,194, - 198,203,207,209,209,205,196,182,164,144,125,113,106,104,112,121, - 128,137,138,130,122,115,112,114,120,127,134,140,142,142,139,132, - 126,121,119,121,128,137,146,155,163,170,177,185,191,196,197,194, - 186,174,159,143,129,119,114,117,125,136,146,152,153,149,141,133, - 128,128,132,138,146,152,156,157,154,149,143,138,135,137,144,152, - 162,173,184,194,204,211,216,216,211,202,188,172,155,140,127,118, - 115,116,119,124,129,130,129,124,118,111,108,111,119,129,138,144, - 147,146,140,133,126,119,117,119,125,133,142,153,163,172,181,190, - 196,198,196,189,178,164,151,137,129,123,122,129,135,142,149,155, - 154,149,142,135,129,126,128,135,144,151,155,155,152,148,142,138, - 137,139,143,151,160,171,182,192,204,213,217,217,211,199,183,166, - 149,136,128,123,124,126,130,133,133,132,126,120,114,108,105,107, - 111,120,129,136,141,143,140,136,132,129,126,126,128,132,139,147, - 157,168,180,192,201,205,203,194,181,165,149,136,128,125,127,133, - 140,146,149,148,145,139,133,128,124,122,123,129,137,145,152,155, - 154,153,152,151,152,154,156,158,161,165,174,185,199,212,222,225, - 219,206,188,167,147,131,121,116,117,124,130,135,137,134,127,117, - 108,101,98,101,108,118,129,138,144,146,146,144,143,143,143,144, - 142,140,139,140,144,153,167,181,194,201,201,195,180,165,147,130, - 122,119,120,129,140,149,155,157,154,146,136,127,121,118,120,126, - 134,143,151,158,161,162,161,160,161,162,162,162,162,161,165,173, - 183,195,207,214,216,210,198,180,157,137,122,114,114,120,129,137, - 141,140,134,124,113,103,97,96,101,111,122,131,139,145,149,149, - 149,149,151,153,152,150,145,141,139,143,152,165,180,193,200,200, - 193,180,162,143,127,116,113,117,127,139,149,156,156,151,142,131, - 121,116,116,122,131,141,150,156,161,165,168,170,172,172,172,169, - 165,161,161,165,174,185,196,205,208,205,196,182,164,146,130,119, - 113,113,118,125,132,135,134,128,118,109,101,99,103,112,123,133, - 142,146,148,149,149,151,154,154,154,152,148,145,143,144,151,161, - 173,184,190,193,188,179,166,147,132,118,110,112,120,130,142,153, - 157,153,145,135,125,120,119,124,134,145,154,160,163,168,172,175, - 177,177,175,172,168,166,166,168,173,181,189,195,198,195,189,178, - 162,146,130,118,110,109,112,120,128,132,134,130,124,118,110,107, - 109,117,126,138,147,152,154,154,155,156,155,154,153,150,147,144, - 144,146,150,158,166,175,181,182,180,171,158,143,129,118,109,110, - 116,126,139,150,157,159,157,151,143,137,134,136,142,150,159,164, - 166,169,170,172,172,170,169,164,160,160,161,162,167,175,182,188, - 190,190,185,175,162,149,135,122,114,110,111,115,123,130,135,136, - 134,129,123,120,119,122,129,136,143,148,148,149,148,149,150,150, - 150,151,149,147,146,148,151,156,163,169,175,176,173,167,157,145, - 133,122,115,113,115,122,132,143,152,157,157,153,148,144,141,143, - 148,155,161,166,168,168,167,167,167,166,165,164,164,163,163,165, - 168,172,178,183,186,185,180,171,159,147,136,126,118,114,114,117, - 122,128,132,135,134,132,129,127,127,129,135,141,145,147,146,144, - 141,143,145,146,150,151,152,154,158,150,152,158,158,170,174,169, - 167,167,153,138,131,127,123,121,120,120,128,137,148,156,161,160, - 155,147,148,138,130,166,170,146,134,172,209,156,102,117,158,191, - 203,182,152,145,156,155,134,125,147,184,213,217,202,179,150,111, - 65,23,0,2,27,65,106,146,179,200,202,185,156,123,90,61, - 41,33,36,50,74,105,137,166,186,198,200,191,174,153,132,117, - 109,106,108,113,117,118,117,114,111,108,107,109,114,121,128,133, - 135,136,134,131,128,125,125,126,130,136,142,147,151,154,157,162, - 168,173,176,178,177,174,170,165,159,155,154,154,154,151,144,136, - 127,119,115,113,115,118,124,129,133,134,133,129,124,119,114,112, - 113,116,120,125,129,132,133,134,136,140,147,154,160,164,164,161, - 158,152,145,142,141,143,145,146,143,136,130,122,114,112,113,117, - 124,132,140,146,148,148,145,140,137,135,133,135,141,146,152,157, - 158,162,166,171,175,180,184,183,180,176,171,164,158,154,153,153, - 154,152,147,140,131,123,116,112,112,116,122,128,132,134,133,129, - 124,118,114,113,115,120,127,133,137,138,138,138,140,146,154,160, - 164,165,163,159,154,146,141,138,137,140,143,143,141,137,128,117, - 109,105,106,113,124,135,146,154,157,156,151,144,138,135,134,137, - 144,152,158,162,166,167,169,172,175,178,178,176,172,166,160,155, - 153,151,152,154,153,152,148,140,129,121,112,109,111,118,126,136, - 143,143,143,136,127,119,115,112,115,123,130,135,138,138,138,138, - 140,145,151,157,162,163,161,155,149,143,140,138,139,142,144,145, - 142,136,127,117,109,105,108,117,129,143,153,159,160,153,146,139, - 133,129,131,138,144,154,160,163,166,169,170,170,173,176,177,176, - 173,167,160,153,149,148,149,151,153,152,146,138,128,118,112,110, - 113,122,133,142,149,150,146,139,129,122,117,115,117,121,127,131, - 134,135,135,137,141,146,153,159,163,163,159,153,147,142,139,140, - 143,146,148,147,140,131,121,112,105,105,112,124,139,152,162,165, - 162,154,144,135,127,126,130,136,144,151,157,160,162,162,163,165, - 169,173,175,174,171,167,161,157,156,156,157,158,155,150,141,131, - 122,114,111,113,120,131,142,151,155,152,144,134,123,115,111,111, - 116,122,128,132,135,137,138,139,141,146,153,159,164,164,162,158, - 153,149,148,148,148,147,142,135,127,117,111,108,109,115,126,139, - 149,157,158,154,149,142,134,130,130,133,140,148,153,157,160,159, - 158,156,156,160,166,171,174,175,174,172,169,165,162,159,154,148, - 141,134,125,119,116,117,121,128,137,146,151,153,150,143,134,126, - 120,117,118,122,127,132,136,137,135,131,129,128,132,139,148,157, - 164,167,168,166,163,160,156,150,144,136,128,120,114,111,111,116, - 124,133,142,149,153,154,150,145,139,135,133,134,138,142,148,154, - 156,155,152,148,146,146,149,156,166,175,180,182,181,178,173,166, - 161,153,146,137,128,121,118,118,120,126,132,138,145,149,149,146, - 143,138,134,132,131,131,133,135,137,137,135,130,124,118,116,117, - 124,135,148,160,169,173,173,170,166,160,153,146,139,131,124,119, - 116,117,121,125,131,137,141,146,147,148,147,146,145,145,145,147, - 149,152,153,153,150,144,138,133,132,135,142,154,166,177,185,187, - 185,181,175,168,160,152,144,134,127,123,121,122,125,129,133,135, - 138,140,141,141,143,141,140,141,141,140,140,140,139,136,131,124, - 118,114,113,118,127,141,154,164,173,176,173,168,161,154,147,139, - 135,130,124,121,121,122,125,129,132,136,139,143,146,149,151,152, - 152,151,150,150,151,152,152,150,146,140,134,130,130,135,144,155, - 166,176,181,182,181,175,169,162,157,152,147,141,134,129,124,123, - 124,126,126,129,133,134,137,141,145,148,149,148,145,144,142,139, - 136,132,129,124,120,118,119,124,133,143,154,164,169,170,168,162, - 156,150,145,141,138,134,130,127,125,124,126,129,133,137,140,143, - 146,150,153,155,157,155,153,151,149,148,147,145,142,138,134,131, - 132,137,145,155,165,173,177,178,176,172,167,161,156,153,149,145, - 141,137,132,128,126,123,122,123,124,127,132,139,146,150,151,151, - 148,145,143,140,140,137,134,130,127,125,126,132,139,148,155,161, - 162,162,158,153,149,143,140,139,138,136,136,135,134,133,132,132, - 132,133,134,138,143,148,154,158,160,159,158,157,155,153,150,147, - 143,137,132,130,132,139,146,154,161,166,168,167,165,162,159,156, - 153,151,149,149,147,145,142,138,133,129,126,124,123,125,131,139, - 145,150,152,151,147,143,140,138,137,137,136,133,131,130,131,135, - 142,150,155,157,157,155,152,148,146,144,142,141,141,141,140,139, - 138,137,135,134,132,133,134,137,142,148,153,157,159,158,156,155, - 153,151,151,150,148,144,138,135,135,139,145,152,158,161,162,159, - 158,155,152,150,149,148,148,148,147,146,144,142,138,133,128,124, - 123,125,131,136,144,149,151,152,149,147,144,143,142,141,139,135, - 132,131,131,135,139,146,151,153,154,151,148,146,144,142,142,142, - 141,141,143,144,143,140,138,136,133,133,133,136,141,147,153,157, - 159,159,157,156,154,153,152,151,149,145,139,134,133,135,140,146, - 151,155,155,155,154,153,153,153,153,153,152,151,150,150,150,146, - 142,136,129,124,122,122,126,133,140,145,149,150,150,150,149,147, - 146,144,140,136,132,129,130,134,138,144,147,149,148,147,146,146, - 146,146,147,146,145,145,145,147,148,147,145,140,135,133,131,131, - 135,141,146,152,157,158,159,159,158,157,155,155,150,145,140,137, - 135,136,139,142,144,146,147,148,151,154,157,159,159,157,154,153, - 152,151,151,148,144,138,132,126,122,120,121,125,131,137,143,148, - 150,151,151,149,149,148,146,143,139,134,132,133,136,138,140,141, - 139,140,142,145,151,153,153,152,151,150,149,150,151,151,149,145, - 140,134,130,128,130,134,139,146,152,157,159,160,160,160,160,158, - 155,151,144,138,135,134,135,137,138,139,140,141,144,150,156,162, - 165,167,165,162,159,155,151,146,141,134,130,126,121,118,119,121, - 126,132,138,143,147,150,152,153,153,153,151,148,142,136,133,132, - 132,133,134,134,134,135,138,144,151,159,164,168,168,165,160,155, - 151,147,143,140,137,134,131,130,130,131,135,138,143,148,153,158, - 159,161,162,162,157,152,147,145,142,135,132,133,136,137,137,136, - 138,142,152,159,167,171,175,173,169,160,152,141,133,126,121,117, - 116,115,114,124,132,126,131,139,136,153,129,157,185,163,135,153, - 178,135,116,136,152,125,105,104,119,118,106,97,104,123,145,166, - 188,205,213,211,202,189,170,151,137,128,120,117,114,113,112,112, - 112,115,119,126,136,145,152,157,158,154,146,136,126,118,114,115, - 119,126,135,146,159,175,190,204,213,215,207,192,172,150,131,116, - 106,104,107,115,127,140,152,160,163,159,151,139,126,113,102,92, - 84,78,75,75,77,83,95,111,130,151,169,183,189,189,185,180, - 176,173,171,165,156,144,131,119,112,109,114,125,140,159,177,191, - 201,204,198,182,163,141,118,99,85,78,76,81,88,96,107,117, - 128,140,155,170,184,194,199,196,191,183,177,172,168,163,155,145, - 137,130,127,126,131,139,148,160,172,183,189,188,179,161,138,112, - 87,68,55,50,54,64,78,93,106,117,127,135,144,156,168,179, - 184,184,180,173,165,159,155,150,145,140,136,133,134,135,139,146, - 155,167,180,192,201,204,199,185,164,139,114,91,76,67,68,77, - 90,108,125,138,146,154,159,164,173,181,189,192,192,187,181,174, - 165,158,151,144,140,137,138,139,145,154,162,170,179,187,191,190, - 182,166,143,116,91,68,52,45,46,57,73,92,111,127,136,141, - 144,147,154,162,171,176,179,177,172,166,157,150,144,140,138,139, - 143,148,155,162,169,176,181,187,190,191,186,175,158,137,115,95, - 78,68,67,73,87,104,122,138,150,156,159,161,165,171,180,187, - 192,192,189,183,175,166,157,151,147,146,148,152,157,164,170,175, - 179,181,181,179,171,158,139,119,96,76,61,50,48,54,66,82, - 102,122,137,148,152,153,154,156,161,168,173,176,176,173,167,159, - 153,147,143,143,144,149,157,163,171,177,181,184,184,182,174,162, - 148,130,113,96,83,75,72,76,86,101,118,136,152,162,168,169, - 169,170,174,180,186,192,194,189,183,175,165,157,148,146,150,154, - 158,164,172,179,183,184,182,176,168,156,140,121,101,82,68,58, - 54,59,70,86,104,122,137,148,153,153,151,150,151,155,161,169, - 175,177,175,170,163,155,149,145,144,148,155,164,172,180,184,186, - 184,178,170,159,146,131,116,103,92,83,79,82,88,98,111,125, - 140,153,163,167,168,168,168,172,178,185,193,197,195,188,179,168, - 159,153,151,152,157,165,174,181,186,186,183,175,164,150,133,116, - 100,84,70,63,59,62,69,81,95,110,125,139,149,154,153,151, - 149,151,157,166,176,182,183,179,170,161,152,147,145,147,152,160, - 169,177,182,183,181,173,164,151,138,125,112,100,90,84,82,84, - 90,99,111,123,136,150,160,166,168,167,166,166,171,180,189,196, - 197,194,185,174,163,157,155,155,160,168,178,186,191,193,187,177, - 162,146,130,115,100,87,76,68,65,66,72,81,93,107,121,135, - 145,151,153,151,149,149,155,163,174,182,186,184,176,165,154,148, - 145,147,153,163,174,184,190,190,185,175,161,147,131,117,106,95, - 87,82,82,84,91,100,110,121,135,147,157,164,167,166,166,167, - 171,180,190,198,201,198,191,179,167,159,155,155,161,170,180,189, - 195,195,189,178,162,145,128,113,98,87,78,70,68,69,72,81, - 93,105,119,134,144,150,152,150,147,148,153,161,171,180,184,183, - 177,169,159,152,148,148,153,162,174,184,192,192,186,175,161,146, - 131,117,104,93,85,80,79,80,86,95,106,118,133,146,157,165, - 167,165,166,167,171,179,188,194,198,196,188,179,170,162,158,159, - 165,175,187,197,202,200,191,177,161,143,127,112,99,86,76,69, - 66,67,72,79,89,102,116,130,141,147,150,149,149,151,157,167, - 177,185,187,184,177,169,160,153,150,151,157,167,178,189,196,194, - 186,173,157,140,124,110,98,87,79,74,74,77,83,94,106,121, - 135,149,159,164,166,165,165,167,173,182,190,196,197,193,186,178, - 172,168,166,168,173,181,190,198,201,198,190,175,158,141,125,111, - 96,84,76,69,66,66,69,77,89,105,119,132,144,153,155,154, - 154,155,161,170,178,184,186,183,177,169,162,157,154,154,158,166, - 177,186,192,191,184,171,155,139,123,109,96,85,76,71,72,75, - 82,93,106,122,137,151,162,168,169,170,171,173,178,184,192,194, - 193,189,183,177,171,167,166,168,174,182,190,197,200,197,188,175, - 159,141,124,109,95,83,73,66,63,64,69,79,92,107,122,136, - 147,153,155,156,157,161,167,174,180,184,183,179,173,166,160,156, - 153,154,158,165,175,183,188,187,182,171,155,138,121,104,90,79, - 71,68,70,76,85,96,109,123,136,148,158,166,169,171,172,176, - 181,187,191,192,191,187,181,175,169,166,165,166,171,178,187,195, - 198,197,190,179,162,144,126,109,92,81,72,67,66,69,76,86, - 95,108,120,131,141,148,154,157,160,164,169,175,180,183,183,181, - 176,171,164,158,154,154,158,165,173,182,187,188,182,171,156,139, - 120,102,87,77,71,68,71,78,86,97,109,121,133,144,154,161, - 167,172,176,180,184,189,192,193,192,191,187,181,174,168,164,163, - 166,172,182,191,196,195,189,177,160,142,123,106,91,80,73,69, - 69,74,80,88,98,109,119,130,139,146,152,156,160,165,171,176, - 182,186,188,189,186,179,169,160,153,151,152,159,169,178,184,184, - 182,171,154,137,120,102,87,78,73,71,72,78,86,95,107,119, - 131,142,152,158,163,168,172,178,183,189,194,196,198,198,195,187, - 179,170,164,164,167,173,180,187,191,189,182,171,156,139,121,105, - 92,81,76,70,70,75,80,88,99,111,123,133,140,145,149,153, - 158,166,172,179,186,192,195,195,190,181,170,160,153,150,152,157, - 164,171,175,176,172,162,150,135,118,105,94,85,79,76,74,77, - 84,94,108,122,133,143,150,153,157,163,169,177,184,191,199,205, - 207,205,200,192,182,173,166,164,165,169,174,178,181,180,175,166, - 154,140,126,112,101,92,83,76,72,72,75,85,98,111,123,132, - 136,140,143,149,154,162,172,183,192,198,200,197,193,186,176,167, - 160,156,156,158,160,162,163,164,159,152,145,136,124,110,101,93, - 83,75,70,71,80,94,110,123,136,146,153,156,159,161,166,173, - 182,192,202,211,215,216,210,201,190,180,172,166,164,164,166,168, - 170,170,169,165,156,145,129,120,109,93,81,70,68,71,78,88, - 103,117,127,131,135,139,143,146,151,158,168,179,189,199,205,207, - 206,197,185,175,166,153,145,151,156,155,148,156,156,154,152,129, - 117,105,90,74,67,62,62,71,89,105,117,130,141,147,149,148, - 147,150,158,170,186,201,213,220,222,220,213,204,192,179,167,157, - 151,149,151,155,161,164,165,161,154,142,127,110,92,76,64,58, - 58,64,75,89,104,117,130,139,146,150,154,157,160,166,174,182, - 189,195,199,199,198,192,182,172,161,153,147,147,150,153,157,161, - 161,155,144,132,120,103,85,71,64,64,72,83,96,111,127,140, - 149,153,155,156,158,162,167,177,189,201,211,217,219,217,211,202, - 191,178,168,160,156,156,159,163,166,169,167,161,150,135,119,101, - 85,73,66,65,70,79,91,103,116,127,136,143,148,151,153,156, - 161,167,174,182,188,194,198,199,197,191,182,172,162,153,147,145, - 146,150,154,156,155,150,140,127,111,95,83,73,71,76,83,95, - 108,121,131,140,146,148,152,155,157,163,170,178,186,194,202,207, - 209,210,209,203,193,183,172,162,155,153,153,155,157,158,157,152, - 142,130,116,100,86,77,73,73,81,89,99,110,121,129,136,141, - 144,147,151,156,161,169,175,181,187,190,192,194,194,190,183,174, - 163,155,149,145,145,147,149,150,149,143,133,120,105,90,78,72, - 73,79,89,102,115,126,135,142,148,150,153,156,160,166,173,183, - 191,198,204,207,207,206,202,196,188,180,171,163,158,155,153,153, - 153,151,147,141,131,118,105,90,80,76,77,83,93,104,114,123, - 131,136,141,145,147,149,152,158,165,173,180,186,190,191,190,188, - 185,180,174,167,158,151,147,145,144,144,145,145,142,135,126,113, - 100,89,80,78,82,92,105,119,131,140,147,150,152,153,151,152, - 156,164,173,179,187,196,202,204,203,198,192,187,182,176,169,164, - 161,161,160,158,155,150,142,132,122,110,99,89,82,80,84,92, - 103,115,127,135,140,142,143,142,139,140,146,154,160,170,181,189, - 191,193,192,187,182,175,169,163,158,154,150,146,144,142,139,134, - 129,121,113,105,97,91,87,86,90,99,110,123,136,147,154,159, - 160,158,156,155,158,162,171,181,190,199,205,206,203,197,189,181, - 173,167,164,161,159,157,154,151,147,141,134,126,119,111,104,97, - 92,91,93,98,107,118,129,140,147,150,152,151,149,149,152,157, - 165,174,182,189,192,190,186,179,171,163,156,151,147,146,145,146, - 145,144,141,135,128,119,112,103,98,94,92,93,98,106,116,130, - 142,154,162,165,162,158,158,156,156,159,170,181,192,200,202,200, - 197,190,180,171,165,162,161,161,162,160,158,154,148,139,129,120, - 111,105,99,96,96,98,102,109,117,126,135,143,147,149,148,145, - 143,143,146,153,165,177,186,195,198,195,189,178,167,157,151,145, - 143,143,144,145,144,142,139,132,124,116,107,99,94,90,90,93, - 100,111,124,138,150,158,163,165,163,160,157,157,159,165,174,186, - 196,204,208,205,197,187,177,167,161,156,154,154,155,155,154,151, - 145,139,130,120,110,102,95,91,92,95,104,115,128,141,151,157, - 158,156,153,151,149,148,152,158,167,177,186,192,193,189,181,170, - 159,150,144,141,141,142,143,143,142,139,136,130,122,114,104,96, - 91,89,92,98,110,124,138,153,165,170,171,167,162,156,153,155, - 159,167,176,186,195,201,203,198,190,180,170,161,155,152,152,152, - 153,153,152,148,144,138,131,122,113,104,98,94,95,100,109,121, - 135,149,160,166,165,160,152,145,142,145,151,161,171,181,187,191, - 192,186,179,168,157,147,140,136,136,137,137,137,135,133,130,125, - 121,114,107,100,96,95,98,106,117,129,144,159,171,176,176,170, - 161,152,148,150,158,171,183,193,200,202,200,195,187,176,166,156, - 148,145,146,146,147,150,150,147,142,137,130,123,115,106,100,98, - 100,105,115,128,141,153,163,171,171,164,153,142,136,138,146,159, - 173,185,195,198,195,188,177,166,152,139,131,128,128,132,136,138, - 137,135,132,127,120,112,106,103,102,106,112,119,129,141,151,158, - 165,167,166,163,157,151,149,152,161,175,189,201,208,209,205,196, - 185,173,161,150,142,139,138,140,142,144,144,143,141,136,130,121, - 113,106,103,103,108,116,126,137,147,154,159,162,161,157,153,150, - 148,150,156,166,176,186,192,193,189,182,172,161,149,139,131,126, - 125,126,128,131,133,133,132,128,123,116,110,106,105,107,113,123, - 133,144,152,159,163,164,163,160,156,153,154,158,164,174,184,193, - 199,202,200,193,183,171,160,149,141,136,134,136,137,137,139,140, - 139,136,130,124,118,112,110,112,116,122,131,141,149,154,156,156, - 154,151,148,148,151,156,164,173,182,189,194,195,191,183,172,160, - 147,136,127,121,119,119,121,124,127,130,131,131,127,123,117,113, - 111,112,117,124,136,146,154,160,162,162,160,158,157,156,160,164, - 170,179,187,194,198,198,194,188,178,168,157,147,139,133,129,129, - 130,132,134,136,137,137,135,131,127,123,121,119,122,127,133,142, - 149,153,154,155,154,152,151,152,155,161,169,177,183,188,190,187, - 182,177,169,158,148,137,129,123,120,119,120,123,125,128,131,133, - 132,130,126,122,120,120,122,128,135,143,150,155,158,158,157,156, - 157,158,161,167,176,184,192,197,198,196,190,184,176,167,157,148, - 138,131,127,125,125,127,130,131,133,134,133,132,131,128,125,125, - 126,130,135,140,146,151,153,155,155,155,155,157,160,165,172,179, - 186,189,188,185,179,172,164,156,147,138,130,123,118,117,118,119, - 120,122,125,128,131,133,133,133,132,130,130,133,137,143,149,155, - 158,159,160,161,160,161,163,167,174,181,188,193,195,193,188,182, - 175,167,157,146,137,130,125,123,122,123,125,126,129,131,134,136, - 137,136,135,133,131,132,135,140,144,149,155,158,159,159,158,158, - 160,161,165,170,177,183,185,183,177,174,169,159,150,139,130,125, - 121,117,113,115,120,123,124,128,132,137,142,144,142,139,139,138, - 138,138,140,144,150,156,161,165,168,170,171,173,174,176,180,182, - 181,181,180,175,169,164,157,148,141,136,132,130,128,126,124,126, - 127,128,131,133,134,135,135,135,135,136,138,141,145,150,155,158, - 160,161,161,159,158,157,161,166,171,177,182,183,181,177,170,161, - 150,141,132,127,126,125,120,120,120,117,121,124,125,131,137,139, - 139,143,147,150,150,149,149,150,153,157,160,162,161,159,156,158, - 157,161,177,184,182,181,194,195,175,150,140,145,149,141,128,123, - 121,120,118,115,115,125,138,149,156,159,158,152,141,127,114,108, - 108,113,124,138,154,166,174,176,173,166,161,155,153,152,155,159, - 162,166,169,169,164,158,151,146,138,129,123,119,115,113,113,114, - 117,121,125,129,131,133,136,139,142,144,147,150,153,157,158,160, - 159,158,158,155,156,161,167,172,179,186,186,184,182,179,173,166, - 160,155,149,144,138,131,125,119,116,116,116,118,122,126,130,134, - 140,145,151,156,159,161,162,161,161,159,157,153,148,145,145,148, - 153,162,170,178,182,183,182,179,174,166,158,149,140,133,126,120, - 117,114,113,114,116,121,126,131,134,138,142,145,150,154,158,160, - 161,161,159,158,157,154,152,151,152,155,161,170,179,186,190,191, - 190,187,182,175,166,156,146,137,130,124,121,120,120,121,124,126, - 128,130,131,133,135,139,144,151,156,159,159,158,156,154,152,149, - 147,146,147,150,155,161,169,174,175,175,175,173,168,165,162,155, - 146,136,128,123,119,117,116,116,118,122,126,128,129,130,133,138, - 145,152,160,167,169,168,165,161,157,152,149,147,147,151,157,164, - 172,178,181,183,183,182,180,177,170,161,151,141,133,128,125,125, - 124,124,123,123,124,126,127,130,134,140,147,154,161,164,165,164, - 160,155,151,147,144,144,145,148,153,157,161,163,163,164,167,170, - 172,172,168,161,152,143,135,127,124,122,123,121,120,121,122,125, - 124,124,131,138,145,153,160,165,164,161,160,159,156,152,150,149, - 149,151,153,155,158,160,163,168,173,177,180,179,175,168,159,149, - 143,136,132,129,128,126,123,121,119,119,119,122,127,134,143,151, - 158,162,165,164,160,156,151,147,145,146,148,150,153,153,154,154, - 155,156,160,164,168,170,169,165,158,152,145,138,132,127,124,121, - 118,115,114,114,117,123,131,140,151,160,167,171,172,170,165,160, - 156,152,150,150,151,152,153,153,153,154,155,158,162,168,173,176, - 175,171,164,157,150,143,138,134,131,128,124,120,118,117,120,125, - 133,143,152,160,166,168,168,165,161,156,152,148,146,145,145,147, - 148,148,148,148,149,151,154,160,167,172,171,169,163,156,150,143, - 137,133,129,125,122,120,116,116,118,125,133,141,151,161,166,169, - 168,165,163,161,159,156,154,151,150,149,148,147,145,144,145,148, - 155,163,171,178,181,176,170,163,155,146,140,135,131,127,123,119, - 117,117,119,125,134,145,155,162,166,168,166,164,161,158,156,153, - 150,147,144,142,142,140,139,139,140,143,149,157,164,169,171,171, - 168,164,159,152,146,139,133,127,123,120,118,118,122,130,139,150, - 159,164,167,167,166,164,163,162,160,157,153,149,144,141,138,136, - 135,136,140,146,154,162,170,174,175,174,171,166,160,154,149,142, - 136,131,125,120,117,117,120,126,135,145,154,159,162,163,162,161, - 160,158,157,154,151,147,142,138,133,130,128,130,135,142,151,159, - 166,171,173,174,172,169,165,159,152,145,138,130,124,120,117,117, - 123,130,137,148,156,162,166,167,166,166,165,164,162,159,155,150, - 145,139,133,127,125,126,130,138,148,159,167,174,178,179,177,174, - 169,162,154,145,137,129,122,117,115,115,119,127,136,146,154,160, - 162,164,165,163,161,158,154,151,148,144,139,134,129,124,121,123, - 130,139,150,160,168,173,176,177,175,172,168,162,157,149,142,135, - 128,122,118,119,122,128,137,146,154,160,164,167,168,170,169,167, - 163,160,155,151,144,135,127,121,118,119,127,139,151,162,172,178, - 181,181,178,174,169,163,156,147,138,128,121,117,112,111,115,123, - 135,146,152,157,162,164,165,164,163,161,158,155,150,143,137,128, - 118,112,111,113,121,136,151,164,173,180,183,182,179,174,169,164, - 156,147,138,129,122,117,114,115,119,127,138,148,158,165,169,171, - 171,170,168,164,160,155,150,144,138,132,125,122,121,125,134,144, - 155,167,174,178,179,178,175,172,168,164,157,149,140,131,122,116, - 112,113,117,126,137,148,156,162,165,165,164,162,160,158,155,152, - 148,144,139,134,128,123,122,125,131,141,151,161,168,171,171,169, - 168,166,165,164,160,154,146,137,129,123,119,119,123,131,139,148, - 156,162,165,167,168,167,166,164,161,157,152,146,139,132,126,122, - 121,124,133,143,153,163,170,173,175,175,171,170,170,167,162,157, - 148,137,125,117,115,115,120,128,137,146,153,159,162,162,161,160, - 160,158,156,153,149,144,137,130,123,119,119,124,132,142,152,161, - 168,171,169,167,165,161,158,157,155,151,145,138,131,126,123,123, - 128,135,143,152,158,162,165,167,167,166,165,161,157,153,148,143, - 138,132,126,124,124,129,137,146,155,162,167,169,168,167,166,166, - 167,166,164,159,152,143,134,126,121,121,124,131,139,147,154,159, - 161,162,162,160,157,154,150,146,143,140,135,129,125,122,121,126, - 134,144,153,161,167,169,169,167,165,164,162,161,157,153,147,140, - 134,128,125,125,129,136,144,152,159,163,165,167,167,166,163,158, - 152,147,141,136,133,130,128,125,127,134,143,154,163,169,172,172, - 170,167,164,162,161,160,157,151,145,138,132,127,124,125,130,136, - 144,151,156,160,162,162,161,158,155,151,146,141,136,134,131,129, - 127,128,130,136,144,152,160,167,170,169,167,164,162,159,156,153, - 148,144,140,136,133,131,132,135,140,146,152,158,162,164,165,164, - 161,158,155,151,146,142,136,133,130,129,129,132,136,143,151,159, - 165,171,173,172,168,165,162,159,156,151,146,141,137,132,129,129, - 131,134,140,147,154,159,162,162,159,156,152,147,144,143,140,135, - 133,133,132,130,132,135,139,144,152,161,167,171,172,170,166,162, - 157,152,148,144,143,138,135,134,133,135,139,144,150,157,163,166, - 167,166,163,158,153,147,144,143,141,139,136,134,132,132,135,138, - 144,150,157,164,169,171,171,169,165,161,157,153,150,147,143,139, - 136,133,133,135,140,146,153,160,165,168,168,163,156,147,140,134, - 131,130,130,131,132,133,135,137,141,144,150,156,162,167,170,171, - 170,166,161,154,147,142,138,135,134,134,134,137,141,146,153,160, - 168,173,173,171,167,159,150,141,133,129,128,128,130,133,135,139, - 143,147,151,154,158,161,163,166,167,165,162,158,152,147,142,139, - 136,136,136,138,139,141,145,152,156,161,166,170,171,169,163,153, - 143,136,124,119,118,117,128,127,143,151,148,145,157,168,156,154, - 165,171,161,153,148,147,140,130,123,121,124,133,144,154,164,173, - 177,178,178,176,172,168,164,157,150,142,133,126,121,118,118,120, - 125,130,136,141,147,151,155,158,160,162,163,162,162,160,157,155, - 152,150,148,147,147,148,151,154,156,158,158,159,159,160,162,163, - 163,159,154,148,141,135,130,126,124,122,122,122,122,124,125,128, - 133,139,146,154,162,168,173,173,171,166,159,149,142,135,131,131, - 134,140,146,153,158,163,168,172,176,178,178,175,170,163,155,146, - 137,129,122,117,115,115,118,122,129,137,145,153,160,166,171,174, - 176,175,172,167,160,152,144,138,135,135,140,145,151,158,165,169, - 173,176,177,175,172,166,158,149,141,134,125,118,112,107,105,105, - 110,118,128,137,146,154,161,166,169,170,169,166,163,157,148,138, - 133,130,128,131,140,149,158,166,173,178,181,181,180,177,173,167, - 160,153,146,139,132,125,119,114,111,111,115,123,134,146,157,165, - 169,170,171,170,169,167,163,159,153,147,141,139,139,141,146,154, - 162,170,176,180,182,182,179,175,167,158,150,143,136,130,123,118, - 114,110,109,110,114,121,130,141,151,159,163,164,163,161,160,156, - 153,151,147,143,138,136,138,141,147,154,162,170,177,180,180,178, - 177,173,165,156,149,145,141,136,132,128,125,124,124,123,125,129, - 137,145,152,157,160,163,163,162,161,161,161,161,159,155,151,148, - 146,146,150,157,164,170,176,181,182,181,178,173,167,159,150,141, - 135,129,122,118,116,114,113,114,119,125,133,140,149,156,161,164, - 163,159,155,152,148,144,142,139,138,139,142,149,158,167,175,181, - 183,182,179,175,170,164,158,152,146,141,138,134,130,128,126,124, - 123,124,127,131,136,142,149,156,163,166,166,164,161,157,152,148, - 146,145,146,149,153,159,166,173,178,181,181,179,177,173,169,164, - 158,152,146,139,133,129,125,122,121,119,119,121,124,127,132,138, - 145,152,157,160,160,158,153,148,143,139,139,141,143,147,151,157, - 163,170,175,176,176,176,173,170,167,163,159,153,147,143,138,134, - 130,129,128,127,128,130,131,134,137,142,148,154,160,164,166,164, - 159,153,146,142,140,142,146,151,158,165,172,177,180,182,181,179, - 176,173,170,167,162,156,151,144,137,133,129,126,124,124,123,124, - 125,127,131,135,139,144,149,152,154,152,149,144,139,136,135,138, - 145,152,159,166,171,174,176,176,175,172,171,169,167,164,160,155, - 150,144,138,134,129,127,126,126,125,126,126,128,132,136,141,147, - 153,156,161,161,159,157,152,147,144,145,149,155,162,168,173,176, - 178,179,178,176,174,171,169,166,163,158,152,145,138,133,130,128, - 125,123,123,123,124,126,129,133,138,143,147,152,155,156,155,151, - 146,140,138,139,145,150,156,162,167,169,170,170,169,169,170,171, - 169,168,167,163,155,146,139,132,127,124,122,122,123,124,127,129, - 134,138,143,147,151,155,158,159,158,155,150,147,144,145,149,155, - 162,168,172,174,175,174,174,172,171,171,171,171,170,167,161,154, - 146,138,131,126,122,120,119,119,121,125,129,135,140,145,149,153, - 156,156,154,150,146,143,141,143,147,153,157,161,164,167,168,168, - 168,166,165,165,165,166,166,164,158,152,144,137,129,124,120,118, - 119,120,122,126,132,137,141,146,151,153,154,156,157,155,151,149, - 148,148,150,155,160,165,168,170,171,170,169,169,170,169,171,173, - 175,172,165,158,148,138,128,120,115,112,112,115,119,125,131,137, - 142,147,150,152,154,153,151,149,146,142,143,147,151,155,158,161, - 163,164,163,163,162,161,161,162,163,165,168,167,164,159,150,141, - 131,124,118,114,113,114,118,123,129,135,141,146,150,154,157,158, - 157,154,153,152,152,154,158,162,165,167,167,166,164,162,161,161, - 161,163,166,170,173,175,175,171,163,153,143,133,123,117,112,110, - 112,115,121,127,135,142,150,157,160,161,160,157,155,153,153,154, - 157,159,160,160,159,158,156,156,155,156,157,159,162,164,167,169, - 169,165,160,152,142,134,125,119,115,112,112,114,117,123,132,142, - 150,158,164,165,163,159,157,157,157,158,160,163,165,165,164,163, - 160,158,157,157,158,159,163,168,173,176,177,175,171,164,155,145, - 134,124,115,109,105,106,110,117,128,139,150,158,163,164,162,158, - 155,153,153,154,157,160,162,164,162,161,159,155,152,150,150,151, - 155,160,165,169,172,172,170,164,156,145,133,121,112,104,100,101, - 107,115,127,140,151,160,165,166,164,160,157,154,154,156,160,164, - 167,168,166,164,160,156,153,151,152,154,158,163,169,174,176,176, - 172,166,157,146,135,123,112,104,100,100,105,114,127,139,151,160, - 165,166,164,161,157,154,154,156,158,162,165,166,166,163,159,154, - 149,146,144,145,149,154,160,166,170,172,170,165,159,149,139,127, - 117,108,104,105,109,116,127,138,147,154,161,163,159,157,156,156, - 157,159,162,165,168,169,168,164,159,154,149,147,147,150,155,161, - 167,171,174,174,172,167,160,151,140,130,120,111,106,104,105,110, - 117,128,139,147,154,159,160,160,160,160,161,163,165,167,169,170, - 169,166,161,155,148,144,142,143,147,154,160,165,169,170,168,164, - 158,149,139,129,120,113,108,106,106,110,117,127,138,147,156,161, - 164,165,165,165,166,168,169,169,170,170,168,163,158,152,146,142, - 142,146,152,159,165,169,172,172,168,163,157,149,139,131,124,117, - 110,108,108,111,117,126,136,145,153,159,162,164,165,165,166,168, - 168,169,169,168,166,163,158,152,147,143,142,145,149,154,160,165, - 167,167,165,163,159,153,146,137,128,121,115,111,109,111,116,125, - 134,142,148,154,157,160,163,165,168,170,172,173,171,168,165,160, - 155,150,146,145,146,148,153,159,163,166,168,167,165,163,158,153, - 146,138,130,121,113,109,108,109,114,121,130,137,144,151,156,160, - 165,168,170,173,175,175,175,172,168,162,156,151,147,144,144,146, - 149,153,156,159,161,162,162,161,158,155,149,141,133,124,117,112, - 111,111,114,120,127,133,140,147,155,161,166,170,174,177,179,178, - 175,170,165,159,153,151,149,148,148,151,156,157,158,161,163,160, - 160,159,156,152,148,140,131,125,116,111,111,112,114,120,126,133, - 139,146,154,160,165,168,171,173,174,175,175,174,171,166,162,157, - 148,145,146,146,142,139,151,160,162,157,156,157,156,160,156,145, - 135,131,124,113,105,103,104,110,118,128,141,156,169,178,183,184, - 182,179,175,170,165,162,160,160,160,160,160,159,158,157,156,155, - 154,154,154,154,153,153,151,148,145,139,132,124,117,114,111,111, - 114,118,125,133,141,150,157,163,168,171,173,175,176,176,175,174, - 171,167,162,156,151,145,141,140,141,143,147,151,154,156,158,158, - 155,152,146,139,130,123,117,113,112,115,118,123,130,137,143,148, - 154,159,164,169,172,175,177,178,177,175,171,166,162,156,151,145, - 144,147,148,149,152,153,156,158,156,153,151,149,143,136,128,120, - 114,111,110,112,117,124,132,140,146,153,157,160,163,165,168,170, - 172,175,177,177,176,173,169,162,155,148,144,141,141,142,144,147, - 149,152,152,153,151,147,142,135,129,124,120,118,118,121,126,131, - 138,144,149,153,156,159,162,165,169,173,176,177,177,175,172,168, - 163,159,154,151,149,149,149,148,149,150,149,149,148,148,145,142, - 137,132,126,121,119,119,120,124,128,132,140,147,152,155,156,156, - 158,162,164,166,171,174,175,175,173,170,164,156,151,148,146,146, - 146,148,149,150,150,149,147,146,144,140,135,130,126,123,122,123, - 125,128,134,140,146,151,154,155,156,157,158,160,163,167,171,174, - 173,172,169,166,161,157,154,152,152,153,153,154,154,152,148,146, - 145,142,139,135,130,126,122,120,119,121,125,130,136,142,148,153, - 156,156,154,153,153,153,157,162,168,173,175,175,172,169,163,158, - 153,150,149,150,151,152,152,151,149,147,145,141,137,132,127,123, - 119,119,121,125,130,137,144,150,156,160,161,160,158,156,156,157, - 161,165,170,173,174,172,168,163,159,155,152,152,154,157,160,162, - 162,159,155,150,144,138,133,127,122,118,116,117,119,124,131,137, - 144,151,156,160,162,161,159,156,154,156,160,163,166,171,173,170, - 164,158,154,151,149,148,149,153,158,160,160,159,156,151,146,140, - 133,126,120,116,114,115,118,125,134,143,152,160,166,169,169,166, - 161,156,152,152,154,157,160,163,165,165,163,159,155,152,153,155, - 158,162,167,169,168,163,156,148,141,134,127,121,117,115,115,118, - 122,129,136,143,150,155,159,162,162,160,157,154,152,152,155,159, - 163,167,168,165,162,157,152,148,148,150,155,161,166,169,168,163, - 154,145,135,127,119,115,112,113,116,120,128,137,145,153,159,163, - 165,165,164,162,158,155,153,154,156,159,163,165,166,164,160,155, - 151,148,148,151,157,165,171,173,171,165,156,145,135,126,119,114, - 113,115,118,122,129,138,145,151,155,160,162,161,161,159,155,151, - 150,150,153,157,161,163,165,164,161,156,152,150,150,152,157,162, - 166,167,165,159,152,142,133,126,120,118,119,122,125,131,137,142, - 148,152,156,159,162,164,164,162,160,157,155,154,155,158,161,163, - 163,162,159,155,152,150,151,155,161,166,170,171,167,160,150,139, - 128,120,116,114,116,119,125,131,137,142,147,152,156,159,161,161, - 159,157,155,152,151,152,154,156,158,160,161,160,157,153,151,150, - 152,154,158,162,165,166,161,154,145,135,126,122,119,117,120,125, - 131,136,140,143,150,156,160,161,163,165,166,164,160,155,152,151, - 152,154,157,161,163,164,163,160,157,154,152,152,154,158,161,161, - 159,152,144,135,128,123,119,120,123,126,131,135,138,142,147,150, - 153,156,159,160,160,159,157,156,154,153,153,155,157,159,160,159, - 157,156,154,152,153,156,159,163,164,163,157,149,140,131,123,119, - 118,120,124,130,135,140,144,148,151,155,159,162,163,162,162,161, - 161,160,158,158,158,159,161,161,161,161,160,158,157,156,156,158, - 160,161,161,158,154,148,140,132,125,121,119,120,124,128,134,138, - 143,146,150,153,156,158,159,159,158,156,155,155,154,155,156,157, - 158,159,161,160,158,157,157,157,157,158,158,157,157,156,151,146, - 139,133,128,124,125,126,128,131,135,139,142,145,151,156,160,163, - 165,166,166,165,163,161,160,159,158,158,158,159,160,161,162,163, - 163,164,163,162,160,157,154,150,146,142,137,132,128,124,123,124, - 126,130,134,138,144,149,153,156,159,160,161,161,159,158,156,155, - 154,155,155,156,158,159,161,162,162,162,161,160,158,155,152,149, - 147,146,143,142,139,136,133,130,128,128,130,132,135,140,144,148, - 152,156,159,161,162,162,162,161,161,160,159,158,157,158,158,159, - 161,163,163,162,162,160,159,157,154,151,148,144,141,137,135,133, - 132,131,130,129,130,132,134,138,142,146,150,154,157,159,159,159, - 158,158,157,156,154,153,153,151,153,156,158,160,163,164,164,164, - 162,161,158,153,148,143,140,138,136,134,133,133,132,133,134,134, - 135,138,143,146,150,154,158,161,163,164,164,164,164,162,160,157, - 156,156,158,160,164,167,169,169,167,165,162,158,153,148,143,139, - 135,133,133,134,135,135,135,135,134,134,134,136,140,144,149,153, - 157,159,160,160,161,160,159,157,155,153,151,151,153,156,160,163, - 166,168,169,168,165,162,158,152,146,141,137,133,131,130,131,133, - 134,134,134,135,136,137,139,142,147,152,156,159,162,162,163,162, - 160,158,155,155,156,157,160,163,167,171,174,175,173,169,165,159, - 153,145,138,135,132,129,128,129,132,135,137,138,137,137,137,137, - 138,140,143,148,152,157,160,163,165,166,166,164,161,159,156,154, - 154,155,159,164,168,170,171,171,168,162,155,148,141,135,130,128, - 128,130,133,136,139,141,139,137,137,138,139,142,145,149,153,156, - 159,161,161,162,163,163,162,163,164,164,164,164,166,168,169,169, - 167,164,161,157,151,144,138,133,130,128,128,130,134,137,138,138, - 137,135,135,135,136,139,143,147,152,155,157,158,158,158,158,158, - 159,160,162,163,163,164,165,166,168,168,166,163,159,154,148,142, - 136,131,129,128,129,133,137,141,142,142,140,139,138,138,138,140, - 144,148,150,153,156,156,156,157,159,161,164,168,169,169,169,171, - 169,166,166,165,163,160,156,152,146,141,137,133,131,131,133,136, - 139,142,143,142,141,139,137,137,137,139,141,143,146,149,151,151, - 153,154,156,160,163,166,168,168,167,166,165,165,163,161,161,159, - 156,154,150,144,140,136,133,134,134,134,136,139,139,138,139,138, - 138,139,140,142,144,146,149,151,153,152,152,152,155,157,160,167, - 170,168,168,174,174,168,157,154,162,168,161,152,149,145,139,133, - 131,132,135,139,144,149,152,151,146,140,131,124,121,122,127,132, - 140,147,153,158,160,159,158,158,158,158,160,163,165,168,170,171, - 172,171,168,165,161,156,152,146,141,137,135,133,132,132,133,132, - 132,131,131,133,133,136,141,146,151,155,155,155,154,151,148,147, - 148,151,157,163,169,174,177,180,181,180,179,177,174,170,164,158, - 152,146,140,136,133,132,132,132,132,132,133,134,135,137,140,144, - 149,152,154,155,153,150,147,143,141,139,140,143,147,153,160,168, - 174,178,181,182,181,178,174,169,162,155,148,141,136,132,129,128, - 128,129,130,132,133,135,137,139,142,145,149,153,155,156,155,152, - 147,143,140,138,139,141,146,151,161,171,178,183,187,189,187,184, - 177,169,160,152,144,137,131,127,127,127,128,132,135,139,141,144, - 147,147,147,148,149,149,149,146,143,140,140,140,141,142,142,143, - 144,149,155,162,170,178,184,187,187,185,178,170,160,150,140,132, - 128,125,126,127,129,132,135,137,138,138,138,140,142,145,148,151, - 152,152,151,149,146,144,143,141,142,143,147,153,159,165,171,177, - 182,186,186,183,178,171,163,153,144,136,130,128,128,128,128,130, - 134,137,140,142,144,147,150,152,153,153,152,150,147,145,143,142, - 141,142,142,143,146,149,152,156,162,168,173,179,183,184,182,176, - 167,156,146,136,130,126,125,125,127,129,131,135,138,141,144,147, - 150,153,154,155,154,152,149,147,144,141,140,140,141,144,148,153, - 158,164,170,175,180,184,186,186,182,174,164,153,143,135,130,127, - 126,126,128,131,134,137,141,146,150,154,156,158,159,158,155,150, - 146,141,138,135,136,138,141,144,148,152,155,158,163,168,173,179, - 184,186,183,176,166,155,144,135,129,126,125,126,127,129,132,135, - 138,142,145,149,153,155,157,158,158,156,152,148,144,141,141,142, - 144,146,150,153,157,161,166,170,173,176,179,180,179,174,166,156, - 147,139,132,128,126,126,128,130,132,135,139,144,149,153,158,161, - 163,163,161,157,152,146,141,137,135,136,138,140,143,146,149,152, - 157,162,167,172,176,179,180,176,171,162,153,143,135,129,126,124, - 124,125,127,130,135,139,145,152,158,163,166,167,165,161,155,148, - 141,138,136,136,137,139,143,147,152,159,164,169,174,178,181,181, - 179,175,168,160,152,144,137,130,127,125,124,124,127,131,137,144, - 149,155,162,167,168,167,162,157,152,147,140,135,134,134,135,137, - 139,142,147,152,156,162,167,173,178,180,180,176,170,162,152,143, - 134,127,122,120,121,123,128,134,140,147,154,159,163,166,167,165, - 160,155,150,145,140,138,137,136,137,139,142,146,150,155,161,166, - 171,175,179,181,180,176,170,163,155,147,138,130,124,122,121,123, - 127,133,141,148,154,160,164,167,167,165,160,154,149,144,138,134, - 131,130,132,135,139,143,148,151,155,160,165,172,176,177,178,177, - 173,166,156,147,139,130,124,119,117,120,128,136,143,149,156,162, - 166,166,165,162,159,155,150,145,141,138,137,137,138,139,141,144, - 148,152,155,162,169,176,181,183,183,179,172,165,155,145,136,129, - 123,121,121,124,130,136,143,150,156,160,162,163,162,161,158,154, - 149,144,139,136,134,133,134,136,139,143,146,150,155,159,164,169, - 173,175,175,172,168,163,156,148,140,134,130,127,126,127,131,137, - 142,147,153,157,160,161,161,160,158,155,151,148,143,139,136,135, - 135,137,141,144,148,153,158,164,170,175,179,181,180,176,171,164, - 156,148,140,134,130,129,128,130,133,136,141,145,148,151,154,157, - 159,159,158,156,152,148,143,139,136,133,133,133,136,141,145,149, - 153,159,166,171,174,175,175,173,169,163,154,148,142,136,132,128, - 128,131,135,138,141,144,149,154,158,161,162,163,162,159,154,149, - 144,139,136,136,136,137,141,146,150,155,160,163,168,173,176,176, - 174,173,168,163,157,150,144,139,135,133,132,133,134,137,139,141, - 144,148,152,157,159,160,159,156,153,147,142,138,135,133,132,134, - 136,139,143,149,155,160,166,172,176,178,177,173,168,162,156,149, - 143,138,135,134,134,135,136,138,140,141,143,145,148,152,156,158, - 159,158,155,152,148,144,140,138,137,137,139,142,145,151,158,165, - 172,177,181,181,179,174,168,161,154,148,143,138,135,133,133,133, - 133,134,135,137,139,143,147,151,155,158,159,159,156,152,147,142, - 138,137,135,135,137,139,142,148,154,161,167,173,177,178,177,175, - 168,161,154,146,140,136,134,134,134,136,138,139,141,143,144,146, - 148,151,154,156,158,157,155,152,147,143,140,139,139,141,143,146, - 149,154,160,167,172,176,179,178,176,172,166,161,154,148,143,141, - 139,137,137,137,136,136,136,137,137,139,142,146,151,155,158,158, - 157,153,147,142,138,137,137,139,141,143,147,151,157,163,168,172, - 173,173,172,168,163,158,153,147,142,139,138,137,137,138,139,139, - 137,137,140,142,144,148,152,153,155,158,156,153,147,142,140,140, - 142,144,147,150,152,154,158,162,166,169,172,174,173,172,168,164, - 159,154,148,143,141,140,138,137,136,134,133,133,134,137,139,144, - 148,151,154,156,155,152,148,143,139,139,139,140,143,146,149,151, - 156,161,166,171,174,175,174,172,168,162,156,151,146,142,139,137, - 136,137,139,139,138,138,140,142,144,147,151,152,154,154,152,150, - 147,144,141,141,143,146,149,152,155,159,162,167,171,174,177,177, - 174,171,165,159,153,147,143,141,140,140,140,140,139,138,138,137, - 137,138,140,142,145,147,148,147,146,145,144,143,143,143,145,148, - 150,152,155,156,158,162,166,169,171,171,169,166,162,156,150,146, - 143,142,141,143,144,144,144,143,141,139,137,138,139,140,142,144, - 146,147,147,146,146,145,145,147,150,152,156,160,163,163,163,164, - 166,168,169,168,166,164,161,157,152,148,146,144,143,142,141,140, - 138,136,135,133,132,132,135,137,139,141,143,145,145,146,146,145, - 145,147,148,150,151,153,156,158,160,162,165,168,168,168,166,163, - 158,153,148,144,143,142,142,142,143,145,146,146,145,143,141,140, - 140,141,141,141,141,142,143,144,145,147,149,151,155,158,161,163, - 165,165,165,166,167,167,168,168,167,164,161,157,153,149,146,143, - 141,141,142,143,143,142,141,139,138,136,135,134,134,135,136,136, - 139,142,144,148,147,154,159,159,158,164,168,162,161,165,166,162, - 160,160,160,156,150,144,143,143,143,144,148,152,155,157,156,154, - 150,145,142,139,136,134,133,133,135,138,140,143,146,149,153,156, - 160,163,165,166,166,166,164,163,163,163,164,164,164,162,160,158, - 155,154,153,152,151,150,149,148,145,142,138,135,133,132,131,132, - 133,135,138,141,144,146,147,147,148,148,148,148,148,150,152,153, - 155,158,160,164,167,168,166,164,160,155,152,149,148,148,148,148, - 147,147,146,144,142,140,139,139,138,139,141,144,147,150,151,151, - 152,151,151,152,154,153,153,155,158,161,162,164,166,169,171,171, - 170,166,162,157,153,151,149,149,149,149,147,145,144,141,138,137, - 136,135,135,137,139,140,141,143,145,145,144,143,142,143,145,147, - 149,152,154,157,159,161,162,163,164,164,162,159,157,154,151,149, - 150,150,152,153,152,151,149,146,142,140,138,137,138,140,144,148, - 151,153,155,155,154,152,151,150,150,151,153,154,157,160,162,164, - 165,167,169,169,167,164,161,158,155,153,151,150,149,149,148,146, - 143,141,139,137,136,135,135,137,139,141,143,144,145,144,144,143, - 142,143,145,147,149,152,155,157,159,160,161,162,161,160,159,156, - 154,151,149,147,147,147,150,151,151,151,151,149,146,143,140,138, - 137,137,138,142,146,150,154,156,156,155,155,153,153,154,155,156, - 159,161,163,165,166,167,167,165,163,160,158,156,153,152,152,151, - 150,150,152,150,148,144,141,138,135,133,134,135,137,140,143,146, - 148,149,149,148,147,147,148,149,149,151,153,154,156,157,159,158, - 157,157,155,154,152,152,152,151,151,151,151,151,150,149,148,146, - 144,143,141,139,138,140,144,147,151,155,158,160,160,158,156,154, - 153,153,153,154,156,158,160,162,163,164,164,163,162,161,160,159, - 158,156,155,154,153,152,151,150,149,146,144,141,138,134,132,133, - 135,137,141,145,148,150,151,151,150,149,147,147,147,148,149,151, - 151,152,152,152,152,152,153,154,156,156,156,157,157,156,154,152, - 150,147,144,143,141,139,137,137,137,140,143,148,153,157,159,161, - 160,158,156,154,152,151,151,153,155,157,159,159,160,159,158,158, - 157,158,160,162,163,162,161,159,156,152,148,145,142,140,139,138, - 137,136,135,136,139,143,146,149,151,152,152,151,149,147,144,143, - 143,144,146,148,150,151,151,151,151,152,154,156,159,161,162,162, - 161,159,155,151,146,143,140,138,137,138,140,142,145,148,151,153, - 156,158,158,157,155,153,152,151,149,148,149,152,154,155,157,157, - 158,158,158,159,162,163,164,165,165,163,160,156,152,150,146,142, - 139,138,138,139,139,141,143,146,148,150,152,151,149,147,145,143, - 140,140,140,141,143,146,149,149,151,152,151,151,151,152,154,155, - 157,160,160,159,158,156,153,150,147,144,142,140,141,143,144,146, - 149,151,152,153,153,153,153,153,153,153,153,153,153,153,153,153, - 154,153,153,153,153,153,153,155,158,162,164,165,167,167,165,162, - 158,153,150,146,142,139,139,140,141,143,144,146,148,148,149,149, - 149,149,149,148,146,144,142,140,139,139,139,140,141,143,145,147, - 150,153,156,158,161,163,163,162,160,156,153,149,146,144,142,141, - 141,141,144,147,149,151,153,154,154,154,154,153,152,151,150,149, - 148,148,149,149,149,149,150,150,151,153,155,157,160,163,165,168, - 168,166,164,160,155,151,147,144,142,142,142,143,145,148,150,152, - 153,153,154,153,151,148,146,144,142,138,136,135,136,139,139,140, - 142,145,147,149,150,150,154,157,160,161,163,163,162,159,155,152, - 149,147,145,144,143,144,146,149,153,157,159,160,159,158,155,151, - 148,146,143,141,141,142,144,145,147,149,151,153,154,156,158,159, - 160,162,165,166,165,164,161,158,155,152,149,148,148,148,149,150, - 151,152,154,155,155,154,152,150,147,144,141,139,138,137,138,139, - 140,140,141,142,142,143,144,144,146,149,152,156,160,163,164,164, - 162,158,155,152,149,147,146,147,148,149,151,154,157,158,159,158, - 156,154,151,149,147,145,144,143,144,145,145,145,145,146,146,147, - 149,152,153,155,158,162,163,165,166,166,164,161,159,156,153,150, - 148,147,148,148,150,153,155,157,158,156,153,149,146,142,139,136, - 135,134,135,136,136,136,137,138,138,139,140,142,145,149,152,156, - 160,164,166,167,165,162,158,154,149,146,143,142,144,147,152,156, - 160,163,165,164,161,156,151,147,143,141,139,139,140,141,141,142, - 142,142,144,146,148,151,154,158,161,164,166,167,168,167,165,163, - 159,155,152,148,147,146,147,150,153,157,160,161,162,160,157,152, - 147,142,139,136,133,131,130,131,131,132,134,135,137,139,142,145, - 148,151,154,157,159,161,162,162,160,159,158,155,152,150,149,149, - 150,152,155,159,161,163,162,160,158,155,151,148,145,142,139,136, - 135,136,136,137,139,141,144,147,150,154,157,160,162,164,164,165, - 165,164,163,161,159,157,154,151,149,148,149,151,155,158,161,161, - 161,160,156,151,148,145,142,139,135,133,131,128,127,126,128,130, - 134,139,143,147,151,154,157,159,161,162,162,162,162,160,158,155, - 151,149,147,146,148,152,156,161,164,166,166,165,162,158,154,151, - 148,144,141,138,133,131,130,131,132,136,141,145,150,155,159,162, - 165,166,168,168,168,167,165,162,159,155,152,150,149,148,149,152, - 156,159,161,163,163,161,157,154,151,147,143,140,136,130,125,123, - 121,121,124,128,133,138,144,149,153,155,157,159,160,162,162,161, - 161,161,158,155,152,150,150,150,150,152,155,158,160,161,162,161, - 159,157,154,152,149,145,140,135,130,127,125,126,130,136,142,148, - 153,157,161,162,164,165,167,167,166,166,165,162,159,156,154,152, - 151,151,152,153,156,159,161,162,162,161,157,153,150,146,141,137, - 133,129,125,122,121,122,126,130,135,141,146,150,153,156,157,158, - 160,161,161,161,160,158,156,154,154,153,153,154,154,156,157,159, - 160,161,161,161,159,157,154,152,149,145,140,135,132,128,127,128, - 132,136,141,147,152,156,159,161,163,163,164,165,166,165,165,163, - 161,159,158,156,155,155,154,153,154,156,158,159,160,159,157,156, - 151,147,142,137,132,126,123,121,121,121,125,130,135,141,146,150, - 153,155,156,156,156,157,159,160,160,160,160,161,161,158,157,156, - 153,150,148,152,157,160,160,160,159,157,157,154,147,141,138,134, - 129,125,125,126,129,135,142,150,157,164,167,167,166,163,161,159, - 159,159,161,163,166,169,170,168,165,160,154,150,147,145,146,147, - 149,152,153,152,150,147,143,139,134,130,126,124,123,124,126,129, - 133,138,143,148,151,154,156,158,158,159,160,162,163,164,164,164, - 163,160,156,151,147,144,144,146,149,153,156,159,159,158,154,149, - 144,140,137,135,134,134,134,135,137,140,142,145,150,154,157,160, - 161,163,164,164,166,167,168,169,171,171,168,164,158,153,148,144, - 141,142,145,149,151,153,154,153,150,147,142,138,133,130,128,126, - 126,127,130,134,137,142,147,151,153,155,157,157,157,157,158,159, - 162,164,165,167,167,163,158,153,149,145,143,143,146,149,152,154, - 155,155,153,150,147,143,140,138,136,136,136,137,139,142,145,148, - 151,154,157,159,160,161,161,163,164,166,168,170,171,171,169,166, - 160,154,149,145,142,142,143,146,148,150,150,148,145,142,139,137, - 134,133,132,132,134,134,135,137,140,143,146,149,151,154,155,156, - 157,159,160,161,162,165,167,167,166,163,159,154,150,146,143,142, - 143,145,148,149,150,150,149,146,144,142,140,140,139,140,141,142, - 144,147,149,150,153,155,158,160,161,162,164,165,166,166,167,168, - 169,168,165,162,158,153,149,145,144,144,145,147,148,148,148,145, - 141,138,135,133,132,132,133,135,137,140,143,145,148,150,152,153, - 154,155,156,157,157,159,160,162,163,164,163,162,161,157,154,151, - 149,147,145,145,146,147,148,148,147,145,143,142,140,138,137,138, - 139,141,143,146,149,152,155,157,158,159,161,161,162,162,162,163, - 164,166,166,167,166,164,162,158,155,151,148,146,145,144,144,145, - 145,144,141,139,136,133,131,131,133,134,138,141,144,147,149,151, - 152,154,154,155,155,156,156,156,156,157,159,160,161,162,161,159, - 157,155,152,149,146,146,146,146,146,146,147,146,144,142,139,138, - 137,137,138,140,142,146,149,152,155,158,160,160,161,162,162,160, - 160,160,160,161,163,163,164,164,163,160,157,154,151,148,147,147, - 147,148,148,147,146,143,140,136,133,130,129,129,131,134,138,143, - 148,153,156,159,160,161,161,160,160,159,158,156,156,156,155,155, - 156,155,154,153,152,152,151,150,149,149,150,151,150,148,146,143, - 139,136,135,135,135,137,140,143,146,150,154,157,159,161,162,163, - 163,163,164,163,162,161,161,160,160,159,158,156,154,153,152,150, - 149,149,149,150,150,150,150,149,145,141,137,133,129,128,128,130, - 132,136,139,144,150,156,158,160,162,164,166,165,163,161,159,157, - 154,153,153,153,153,153,153,151,149,147,147,146,146,147,148,149, - 150,149,148,145,140,137,134,133,133,134,137,140,144,149,155,160, - 164,168,171,172,172,171,169,165,161,158,156,154,152,152,151,151, - 151,150,149,149,150,151,152,153,153,152,150,147,142,137,133,129, - 127,127,128,132,136,140,144,149,153,158,161,164,167,169,170,169, - 167,164,160,156,152,150,149,148,148,147,147,147,146,146,147,149, - 150,152,153,153,151,148,144,140,135,132,131,132,135,138,142,147, - 151,155,158,162,166,169,172,173,173,172,170,166,161,156,152,150, - 149,149,149,148,148,148,148,148,149,150,151,152,152,151,148,143, - 139,134,130,128,126,128,132,137,142,146,149,153,156,160,163,166, - 168,170,170,169,166,162,157,152,148,146,144,144,145,146,147,147, - 147,148,149,150,150,150,150,148,145,141,138,135,132,133,134,136, - 141,146,150,154,157,159,161,164,167,169,170,171,172,171,168,163, - 159,156,153,150,149,148,148,149,149,148,147,147,147,148,149,150, - 149,147,144,140,136,132,130,130,132,135,140,145,150,153,156,157, - 158,159,161,163,166,167,167,167,165,162,158,153,149,147,146,145, - 145,146,146,146,145,143,144,145,145,147,148,148,146,145,142,140, - 139,138,138,140,144,148,152,155,157,160,162,163,165,167,170,172, - 173,171,168,164,160,155,152,148,147,146,146,146,146,146,145,144, - 144,145,146,146,146,146,145,143,141,138,136,136,138,140,142,145, - 148,151,154,155,157,159,161,164,167,169,169,167,164,160,154,149, - 146,144,143,144,145,147,148,148,148,147,146,145,144,143,143,142, - 142,141,141,142,143,144,145,147,150,153,155,157,159,160,161,162, - 162,163,164,166,167,168,167,164,161,158,155,153,151,149,148,147, - 147,145,144,142,142,141,141,141,141,142,142,142,143,143,143,144, - 144,146,148,150,151,152,154,155,155,156,157,159,161,163,165,166, - 166,163,159,156,152,149,145,144,144,142,141,141,141,140,139,138, - 139,142,143,144,146,148,150,151,150,149,149,150,151,151,153,155, - 157,159,161,163,164,165,166,167,167,166,165,164,161,157,154,151, - 149,148,148,146,144,142,140,138,137,137,138,140,143,145,146,148, - 149,149,148,146,145,145,146,148,149,151,152,153,155,157,159,161, - 163,165,165,165,163,161,157,153,149,146,144,143,144,144,144,144, - 142,140,139,137,137,138,141,143,146,149,151,152,151,151,151,152, - 152,154,155,157,158,158,159,161,164,166,168,169,170,169,166,162, - 158,154,150,146,145,145,145,146,145,144,141,138,136,135,135,137, - 139,142,145,148,149,149,149,149,149,149,151,152,154,155,155,154, - 154,153,154,156,158,160,161,162,161,159,156,152,149,147,145,146, - 146,146,145,143,140,137,134,132,133,135,138,143,148,151,154,156, - 156,156,156,157,158,159,160,160,159,158,157,156,156,158,161,163, - 164,164,163,161,158,155,152,151,150,149,148,148,147,144,140,137, - 135,133,132,135,138,142,146,150,152,152,152,152,152,152,153,154, - 156,156,156,154,152,151,151,152,153,155,157,158,158,157,155,153, - 151,148,147,146,146,146,146,144,142,139,137,135,135,137,140,144, - 148,151,154,155,156,155,155,156,156,158,160,162,162,162,161,159, - 158,157,157,157,158,158,159,159,157,155,154,152,151,150,150,150, - 148,146,143,140,138,135,133,133,135,139,143,147,150,152,154,154, - 154,155,156,157,158,158,157,156,153,150,148,147,148,149,151,154, - 157,158,158,158,156,152,149,147,146,145,144,142,140,139,137,135, - 134,136,139,143,148,152,155,158,160,159,159,159,159,160,161,162, - 162,161,160,158,156,154,153,153,153,154,155,156,158,157,154,152, - 153,151,147,142,141,143,144,140,136,135,135,136,138,142,146,151, - 155,159,161,161,159,157,154,151,148,147,147,149,150,150,150,150, - 151,152,152,153,153,154,153,152,151,149,148,148,147,147,146,145, - 145,143,141,141,140,141,142,144,148,150,153,155,156,157,156,157, - 159,159,161,163,164,165,164,161,157,154,151,149,147,148,150,152, - 154,156,156,157,157,156,156,154,152,150,148,146,143,140,138,137, - 138,140,142,145,149,152,155,157,158,158,158,158,159,159,160,159, - 158,154,149,145,141,139,139,140,143,146,149,152,154,155,155,154, - 154,153,149,147,144,142,140,138,138,138,139,142,145,149,153,157, - 160,162,163,163,162,161,161,161,161,160,158,156,152,149,146,144, - 143,144,146,148,150,153,155,157,158,157,156,154,153,150,147,144, - 142,140,138,138,139,140,142,145,149,153,157,159,160,160,160,158, - 157,157,156,154,152,149,146,143,140,138,137,139,141,144,147,150, - 153,155,155,155,154,152,149,147,144,141,140,139,140,142,144,146, - 149,152,155,158,160,162,163,162,161,160,160,160,159,158,156,154, - 151,148,146,145,145,146,148,149,151,153,155,156,155,155,154,153, - 151,148,146,143,141,140,141,142,144,146,149,151,153,156,157,159, - 160,159,159,157,157,156,155,154,151,148,145,142,141,140,140,142, - 144,147,149,150,151,151,151,150,149,149,149,148,146,145,145,145, - 145,145,146,147,149,150,153,155,158,160,162,163,164,163,163,162, - 160,158,155,151,148,146,144,144,145,146,149,151,153,154,154,153, - 152,151,149,149,148,148,148,147,148,148,148,148,148,149,149,150, - 151,153,155,158,160,161,162,162,161,159,155,151,147,144,140,138, - 137,138,140,142,145,147,148,149,148,147,147,147,147,147,147,149, - 150,150,150,150,150,150,151,151,151,151,152,154,155,157,160,162, - 163,164,163,161,158,155,150,147,144,143,143,144,145,147,149,151, - 152,152,151,149,148,148,147,147,149,150,151,153,155,155,155,155, - 154,153,152,151,151,151,153,154,155,156,158,158,158,157,154,150, - 146,143,140,139,140,141,143,145,146,147,147,146,144,143,142,143, - 145,147,150,153,155,156,157,157,156,155,153,152,151,150,150,151, - 152,154,156,158,160,161,161,160,157,154,150,147,144,143,142,144, - 145,147,148,149,150,150,148,147,145,145,147,149,152,154,156,157, - 159,159,158,156,155,154,152,151,150,151,153,155,156,157,158,157, - 156,153,150,146,143,140,139,139,140,142,144,146,148,149,148,146, - 144,142,140,140,142,145,148,152,156,159,161,161,161,160,158,155, - 152,150,149,150,152,154,156,158,159,158,156,153,150,148,146,144, - 144,145,146,148,149,150,150,150,148,147,144,143,142,143,145,148, - 151,155,158,161,163,165,164,163,161,158,155,152,151,150,150,152, - 153,153,153,152,150,147,145,143,142,142,143,144,145,146,147,147, - 147,145,144,142,141,140,140,141,144,148,153,157,160,163,165,166, - 165,164,160,157,153,150,147,147,148,150,153,154,155,155,153,151, - 149,147,146,146,146,147,147,146,146,145,144,144,143,142,142,143, - 145,148,151,155,158,161,163,164,165,165,164,163,161,158,154,151, - 149,149,149,149,149,150,150,149,148,146,144,143,142,143,143,144, - 144,144,143,143,142,142,142,142,142,143,145,147,150,153,156,158, - 160,162,164,166,166,164,162,159,155,151,148,146,146,148,150,152, - 153,152,152,151,149,146,145,145,145,146,145,145,145,144,144,144, - 144,145,146,147,150,152,155,158,160,162,163,165,165,166,166,165, - 162,159,155,153,150,149,148,148,149,149,149,148,146,144,142,140, - 140,140,142,143,143,145,145,144,143,143,142,142,143,145,147,150, - 153,156,159,161,162,164,165,166,165,164,161,158,154,150,148,147, - 147,147,147,149,150,149,148,146,144,143,142,142,142,143,144,145, - 145,146,146,147,147,147,148,149,151,154,157,160,161,162,162,162, - 163,163,163,163,162,159,156,153,151,149,148,147,147,147,147,145, - 144,142,140,138,137,138,139,140,142,145,146,148,148,148,148,147, - 147,148,149,151,153,155,157,158,159,160,161,162,163,163,162,160, - 156,153,152,150,148,147,148,148,147,145,143,142,142,141,141,142, - 143,144,146,147,147,148,148,148,147,147,148,149,151,154,157,159, - 160,161,162,163,164,165,165,166,165,163,159,155,151,148,145,144, - 144,144,144,143,141,140,139,139,139,139,140,141,144,144,144,145, - 146,146,146,147,148,150,153,156,158,160,161,162,162,162,162,163, - 163,164,163,162,159,156,152,151 -}; \ No newline at end of file diff --git a/firmware/src/ring.h b/firmware/src/ring.h index fff7986..cfb56a8 100644 --- a/firmware/src/ring.h +++ b/firmware/src/ring.h @@ -1,5 +1,5 @@ /* File ring.wav - * Sample rate 11000 Hz + * I got it from https://github.com/rgrosset/pico-pwm-audio */ uint8_t RING_DATA[] = { @@ -604,1307 +604,4 @@ uint8_t RING_DATA[] = { 81,76,103,88,131,158,132,114,90,92,110,141,208,146,126,133, 54,96,133,124,152,139,111,103,102,143,127,121,147,70,114,147, 110,146,129,78,117,134,124,148,149,128,55,97,101,114,191,106, - 74,110,86,176,165,118,167,79,159,152,89,188,81,80,166,75, - 88,115,91,138,86,132,131,43,198,119,66,197,83,148,197,84, - 175,103,95,146,55,175,123,72,193,71,84,174,53,124,155,116, - 216,125,173,153,38,166,67,81,196,72,148,158,39,142,87,96, - 173,97,197,123,65,174,58,129,181,39,146,97,71,161,76,158, - 147,74,167,67,102,176,37,145,133,68,190,94,114,149,39,147, - 99,112,210,82,170,147,47,161,89,101,199,87,137,122,50,159, - 83,138,181,76,187,121,86,194,75,122,154,66,161,101,98,158, - 50,133,125,86,217,106,126,178,51,150,132,105,198,97,117,120, - 38,156,87,94,190,48,128,132,59,183,121,131,183,95,176,122, - 86,180,54,109,153,47,167,115,64,153,68,130,139,105,209,110, - 116,165,42,152,144,66,184,83,85,127,58,158,108,113,184,69, - 157,155,67,193,116,89,170,80,146,129,74,144,62,115,148,67, - 191,131,70,169,76,125,170,96,167,110,98,153,60,154,136,84, - 192,88,103,167,85,139,114,96,142,105,172,114,55,137,83,123, - 178,103,147,118,87,137,96,136,148,114,155,93,97,149,73,139, - 139,99,155,98,137,127,89,145,94,117,159,92,144,132,62,132, - 101,116,169,117,152,127,106,157,93,145,153,66,141,97,74,158, - 99,129,146,94,144,93,124,159,76,163,133,84,176,94,105,143, - 64,121,113,121,169,93,144,122,64,165,113,114,189,96,123,130, - 89,148,106,128,142,78,144,100,91,174,81,119,154,87,151,129, - 115,146,78,131,125,108,192,97,100,143,56,129,148,114,171,111, - 102,108,81,163,118,126,194,68,124,127,62,173,113,71,169,104, - 120,166,84,132,66,105,124,72,227,165,113,167,66,59,94,87, - 148,140,147,169,83,131,91,44,162,125,163,208,128,137,81,45, - 108,96,154,164,135,144,48,64,127,93,185,194,116,153,85,80, - 121,101,175,144,115,157,57,99,124,68,155,132,119,150,93,118, - 106,72,131,89,134,175,95,161,139,78,158,121,142,164,104,137, - 85,86,135,83,148,148,85,149,100,95,151,103,135,136,113,145, - 101,136,138,75,160,126,101,178,115,121,129,93,118,107,137,139, - 91,127,104,67,155,115,120,166,89,119,102,106,137,107,137,121, - 94,138,103,106,161,88,120,137,111,163,133,147,138,107,144,102, - 116,166,96,105,130,66,115,120,108,139,102,128,101,124,166,104, - 148,173,89,148,146,92,176,114,66,101,97,147,148,100,108,53, - 114,169,104,175,111,52,137,120,139,140,121,159,89,95,141,75, - 143,156,65,136,113,104,174,110,141,110,88,160,95,158,158,74, - 143,93,87,171,113,123,120,81,141,126,171,201,104,144,94,46, - 138,99,132,157,80,108,99,90,142,107,160,148,81,159,111,117, - 168,70,97,107,75,165,131,135,139,59,118,108,126,211,118,120, - 123,45,128,124,120,167,88,101,99,79,166,116,127,161,70,135, - 141,103,167,116,99,124,86,155,128,107,155,66,120,147,106,197, - 145,99,131,71,115,135,124,163,89,88,113,71,165,152,104,165, - 95,102,145,119,168,132,111,132,78,144,137,85,160,86,72,150, - 101,148,147,110,133,89,130,158,128,164,87,63,115,85,161,140, - 91,112,82,124,133,129,185,116,108,154,83,131,149,99,133,89, - 93,111,95,159,99,96,140,66,148,162,114,172,115,97,124,104, - 165,139,107,138,60,100,140,94,174,149,107,155,105,139,145,104, - 152,92,108,150,96,150,127,67,134,96,111,167,115,159,115,91, - 140,88,155,150,79,134,86,84,149,109,145,134,84,122,80,125, - 153,94,151,108,85,147,105,136,146,88,131,105,115,163,109,146, - 122,69,140,103,132,166,90,120,95,81,146,120,148,152,90,136, - 103,111,165,99,134,123,76,136,108,122,151,88,124,112,101,166, - 117,136,145,89,149,136,129,171,101,108,104,74,142,120,131,147, - 79,114,104,100,174,133,142,148,93,127,116,116,151,98,118,118, - 86,145,107,108,138,91,130,138,131,167,120,114,115,79,141,131, - 122,155,88,100,106,87,147,129,132,147,98,128,122,109,154,109, - 115,135,96,136,119,97,122,89,113,128,114,158,121,102,125,88, - 128,149,128,152,109,100,107,93,143,124,122,142,94,107,128,108, - 149,132,110,142,108,135,126,105,136,97,109,142,114,141,120,78, - 118,95,129,169,130,140,113,76,140,138,116,154,108,124,95,86, - 174,130,163,130,50,101,98,135,189,132,124,101,53,99,98,155, - 185,135,146,78,58,132,105,154,166,111,136,102,107,114,101,137, - 142,132,159,109,120,129,64,123,119,111,180,131,114,121,64,120, - 129,136,186,104,115,109,60,124,98,122,153,101,130,117,114,155, - 116,147,148,103,155,129,110,150,89,97,119,91,144,113,112,130, - 79,127,115,114,176,108,118,117,91,140,121,124,149,97,125,123, - 101,165,127,106,142,68,130,147,79,151,101,113,105,117,162,140, - 129,102,82,112,96,179,170,85,124,36,121,147,116,197,115,85, - 149,104,138,158,128,152,89,128,133,69,150,110,44,146,72,140, - 210,76,170,59,72,153,79,211,156,81,146,40,77,170,99,171, - 124,84,147,87,169,189,113,170,69,55,134,73,141,143,70,132, - 96,110,181,108,173,130,81,178,96,156,179,58,104,51,66,160, - 115,184,137,67,147,70,131,208,110,173,110,60,146,74,135,145, - 63,137,68,113,183,92,167,133,74,165,119,143,187,82,121,85, - 73,164,95,152,144,43,146,101,118,220,116,157,117,55,145,88, - 138,174,53,124,91,59,195,102,130,157,60,156,126,141,203,94, - 131,112,50,170,106,112,177,31,93,108,70,193,122,129,157,51, - 155,132,126,215,68,105,120,66,182,86,96,137,46,180,116,103, - 216,75,142,156,52,181,118,101,173,41,102,93,70,194,82,115, - 152,34,168,124,103,227,82,148,137,56,192,88,114,173,38,142, - 125,67,205,96,116,163,58,183,135,120,213,64,132,140,45,195, - 103,72,175,46,131,149,76,203,86,106,160,40,188,127,74,194, - 54,108,150,47,171,100,79,162,42,156,141,74,205,73,104,168, - 54,183,145,84,176,64,126,154,77,193,100,85,164,48,152,159, - 76,183,94,101,160,73,174,128,86,173,56,132,161,69,179,109, - 78,151,75,148,145,91,161,84,122,163,82,163,128,80,152,88, - 128,161,102,154,101,99,142,77,156,140,78,155,96,107,155,96, - 146,125,103,149,97,148,147,83,145,97,91,158,99,131,125,76, - 120,92,133,161,108,155,115,86,148,99,134,164,93,127,100,85, - 140,99,135,132,98,146,103,119,172,96,135,134,89,156,110,118, - 131,84,135,99,95,183,93,113,140,79,151,119,116,167,79,125, - 127,91,176,108,125,160,49,142,134,80,221,108,72,130,78,131, - 108,148,214,86,150,130,26,137,87,91,167,112,167,144,75,133, - 31,86,161,135,252,145,82,127,2,62,148,126,216,164,112,101, - 10,138,133,125,255,108,105,129,29,116,124,106,183,102,137,112, - 40,172,72,98,179,74,165,153,73,147,72,94,153,104,210,137, - 102,170,44,122,163,84,198,137,87,133,54,120,110,98,185,96, - 143,165,59,152,137,72,178,126,135,159,70,124,65,89,162,87, - 178,167,62,142,86,77,171,109,155,141,87,135,59,127,159,80, - 185,123,84,162,76,113,136,94,145,121,128,154,81,125,115,84, - 190,125,145,170,73,96,85,93,151,110,157,120,69,148,74,90, - 178,108,135,150,77,160,118,74,115,104,148,207,135,99,67,51, - 186,154,169,169,55,98,115,96,114,111,150,124,97,167,87,93, - 158,70,130,186,117,177,144,78,122,41,131,141,126,187,59,89, - 98,40,147,164,130,166,98,127,143,144,230,138,139,138,49,118, - 108,86,137,95,84,125,107,131,111,122,145,74,170,173,116,175, - 93,35,65,60,140,167,158,163,67,88,99,82,202,165,120,163, - 81,94,121,94,143,96,104,124,82,167,129,88,161,99,128,180, - 132,173,132,80,99,85,146,155,115,155,72,58,140,100,175,198, - 120,130,76,90,116,103,165,116,82,124,68,118,153,87,137,124, - 109,161,142,160,138,86,131,84,125,182,91,131,96,26,106,105, - 150,192,122,143,101,89,172,110,176,163,62,145,77,71,155,81, - 111,127,78,183,139,122,162,75,132,184,137,167,89,65,125,65, - 121,130,105,149,102,114,116,54,176,159,114,207,90,82,126,81, - 129,121,114,144,108,119,120,61,152,116,94,189,107,140,139,79, - 118,92,119,149,121,182,150,105,165,87,104,163,95,135,123,84, - 111,96,131,133,107,158,108,108,161,91,127,156,94,129,117,94, - 106,73,121,118,113,172,107,117,148,82,125,135,111,159,124,120, - 119,95,131,101,124,161,97,132,145,91,143,130,116,144,121,134, - 107,106,129,75,122,148,94,152,130,94,137,116,127,141,124,138, - 118,109,116,94,133,121,114,143,83,127,114,112,165,105,116,129, - 90,108,122,139,184,137,115,103,41,65,93,106,164,153,177,141, - 71,107,73,106,194,182,181,150,78,73,33,75,147,131,206,162, - 82,102,78,122,167,166,195,145,110,111,59,113,116,103,167,131, - 127,123,75,106,112,99,146,124,129,133,76,111,81,84,146,107, - 149,161,107,137,105,98,134,111,153,135,106,139,80,105,139,98, - 155,143,121,153,92,111,129,99,161,125,124,156,81,116,120,93, - 157,122,136,158,87,126,102,86,152,98,128,143,77,135,95,98, - 156,100,149,144,98,145,90,103,146,97,155,138,103,154,79,108, - 135,97,170,136,130,163,90,121,124,92,164,119,114,145,63,110, - 104,76,156,107,134,150,88,140,109,108,171,127,158,158,93,140, - 92,83,138,92,150,134,91,141,67,95,128,88,162,132,109,154, - 89,112,124,91,165,125,130,161,80,124,113,87,154,127,124,154, - 83,122,112,87,159,112,139,157,92,146,114,83,150,92,156,135, - 98,149,84,109,123,93,147,154,108,164,96,86,142,77,163,129, - 115,152,74,96,109,104,141,147,134,122,76,87,78,147,158,164, - 169,92,133,114,122,147,110,117,139,112,134,119,104,127,99,128, - 134,132,155,103,85,126,75,162,151,106,174,47,109,102,79,183, - 124,118,134,71,112,128,87,152,97,125,165,124,201,160,109,143, - 69,89,153,104,158,110,54,107,50,118,159,110,189,108,86,155, - 79,173,164,91,136,63,96,142,97,162,124,76,153,81,139,172, - 83,153,96,101,162,93,157,131,57,132,76,120,185,109,159,116, - 74,142,99,151,178,86,135,81,67,151,83,155,156,75,159,100, - 129,183,105,154,99,89,158,89,136,136,45,112,84,105,196,123, - 159,131,79,152,117,163,192,106,142,97,68,147,93,126,145,57, - 129,100,102,173,118,154,143,103,165,144,137,133,65,97,82,130, - 156,80,105,88,85,139,130,160,170,120,142,107,97,146,122,138, - 124,80,97,80,105,128,87,130,111,111,161,118,147,140,106,133, - 113,137,165,106,112,94,70,119,115,143,164,123,133,115,106,159, - 118,137,135,77,122,106,107,147,105,117,126,91,141,118,125,153, - 99,133,118,104,153,99,91,117,84,135,133,125,154,90,107,106, - 92,160,132,123,139,78,104,125,112,163,126,119,129,86,141,126, - 116,166,98,115,132,98,148,114,100,126,95,137,140,122,160,99, - 104,134,95,153,143,110,137,77,108,125,103,170,126,118,136,84, - 130,134,103,155,119,113,145,105,147,121,94,129,88,132,155,103, - 150,104,76,131,106,153,159,126,138,85,102,138,104,166,147,89, - 125,76,98,134,107,144,121,110,127,99,141,145,98,143,107,113, - 153,108,134,120,84,115,102,128,152,112,148,95,90,148,107,136, - 161,103,122,105,104,149,107,132,122,95,151,91,111,157,78,97, - 140,108,159,165,110,129,85,125,81,117,197,142,142,144,78,81, - 88,83,129,122,168,149,158,140,68,91,115,114,186,171,133,138, - 48,42,66,112,156,157,181,114,51,94,99,115,210,171,143,136, - 71,87,76,116,147,117,144,120,74,130,97,93,139,103,134,134, - 135,139,100,100,96,95,152,138,134,168,93,105,133,109,160,154, - 127,119,91,115,110,115,160,105,115,130,86,130,132,114,134,136, - 135,133,122,145,103,104,139,93,145,150,104,141,110,99,115,118, - 132,111,118,126,91,115,140,106,157,144,102,121,109,113,122,123, - 140,100,148,142,70,113,137,94,132,156,121,195,134,72,85,110, - 121,164,150,84,83,115,128,89,133,126,86,133,144,94,106,124, - 132,133,147,148,102,106,112,76,87,130,108,172,159,100,114,74, - 105,125,164,169,141,130,105,81,111,144,123,162,141,123,157,130, - 137,138,135,134,109,129,104,88,116,86,69,139,130,124,149,131, - 120,91,114,129,121,158,130,81,96,63,92,147,130,155,142,100, - 103,97,142,131,118,143,92,94,122,89,98,115,74,120,134,139, - 145,111,132,104,114,160,131,153,146,85,103,104,109,137,130,136, - 120,101,133,110,139,167,130,150,117,89,127,113,116,122,102,110, - 109,130,143,106,126,120,95,153,147,139,165,116,106,112,112,141, - 113,147,116,60,111,106,102,159,141,124,158,116,101,135,144,140, - 155,124,95,81,112,122,87,126,108,88,146,151,142,135,118,121, - 120,145,140,122,120,85,57,101,111,102,176,123,91,112,83,133, - 150,154,155,106,110,106,88,141,113,106,142,100,131,154,121,130, - 104,102,119,114,159,138,107,136,87,96,156,123,147,146,99,116, - 98,130,152,122,150,89,76,119,86,139,162,118,147,120,110,132, - 102,145,117,97,137,91,130,146,89,122,100,95,149,132,152,134, - 107,127,90,128,162,115,144,115,62,113,99,122,152,116,131,108, - 115,144,109,146,140,89,137,112,110,148,105,111,105,99,134,121, - 139,139,81,122,106,111,185,135,141,127,78,102,107,140,153,111, - 124,94,73,138,109,129,161,106,124,123,117,143,127,134,122,103, - 144,107,107,144,78,105,126,113,157,135,127,116,86,117,118,132, - 171,114,112,110,72,121,128,121,148,117,118,112,103,143,114,121, - 144,108,139,133,107,134,95,106,127,119,152,129,106,124,77,110, - 129,122,162,125,115,124,93,123,141,134,154,106,123,125,89,132, - 116,99,134,108,135,156,110,118,119,100,173,122,144,149,99,100, - 42,135,164,148,154,119,57,68,98,137,164,134,158,103,64,109, - 90,146,169,136,135,91,93,132,110,116,134,107,125,122,135,134, - 90,142,125,97,151,133,139,134,85,90,90,128,166,128,155,106, - 62,112,118,134,169,148,119,97,76,99,97,131,139,102,134,110, - 115,151,126,149,136,122,147,128,143,133,92,110,90,96,135,110, - 125,128,86,108,120,133,158,137,140,125,97,138,102,122,149,116, - 127,113,120,125,115,124,121,105,142,110,106,143,82,107,137,119, - 142,148,120,103,109,112,114,131,150,97,118,91,77,155,114,95, - 147,117,146,201,95,126,91,107,190,112,160,100,46,131,90,82, - 135,103,152,126,94,145,49,124,150,77,188,143,107,194,73,100, - 130,74,189,110,132,166,41,119,100,78,188,113,128,158,79,174, - 158,155,221,98,126,113,43,150,94,99,167,71,120,124,73,148, - 101,129,166,96,181,138,99,163,42,77,116,78,184,138,113,145, - 52,109,110,96,200,101,111,141,51,133,117,96,169,78,107,134, - 83,180,114,111,173,81,147,140,91,169,100,91,148,95,170,148, - 90,157,64,116,163,106,206,139,77,127,53,115,142,97,180,102, - 89,140,70,163,147,89,178,99,117,168,86,159,118,78,158,77, - 146,153,59,145,72,72,165,95,171,164,78,159,91,120,186,97, - 174,115,53,140,54,118,158,62,152,105,87,172,91,166,167,84, - 179,100,112,173,50,125,101,45,159,91,130,158,51,144,105,101, - 211,110,168,160,49,149,91,109,184,78,131,99,56,150,87,145, - 172,70,158,122,103,187,85,129,132,70,171,113,125,166,56,125, - 118,83,190,115,129,144,44,129,110,119,192,89,126,119,61,159, - 117,128,177,73,128,126,87,173,99,117,149,78,159,131,109,167, - 65,102,138,84,181,134,108,152,55,123,133,104,194,103,109,138, - 56,141,132,105,175,80,105,133,75,166,113,104,161,73,138,145, - 90,166,90,90,146,90,163,143,99,153,67,112,153,101,192,125, - 88,140,61,121,147,107,175,94,95,139,72,159,136,98,168,89, - 116,146,83,158,106,80,155,87,145,146,79,150,77,96,163,97, - 166,142,77,141,86,123,170,106,169,111,77,145,82,142,154,85, - 146,97,96,151,95,149,138,80,154,105,129,167,79,138,106,84, - 154,108,143,147,74,123,103,112,171,111,147,128,69,133,107,124, - 162,90,131,109,86,148,107,131,154,78,131,127,117,167,88,130, - 125,81,135,134,142,130,92,104,77,117,166,127,184,143,39,108, - 121,109,132,149,179,132,86,131,79,59,135,89,142,143,152,188, - 83,67,94,76,158,201,185,167,50,72,53,50,189,161,169,186, - 53,69,78,102,188,150,174,145,79,134,93,80,161,101,142,155, - 105,146,79,89,121,89,150,151,113,153,71,73,118,76,178,149, - 117,158,73,116,134,104,185,143,114,156,78,110,125,89,155,110, - 107,137,90,142,118,84,147,92,138,177,97,181,104,63,142,87, - 151,153,111,159,81,76,137,72,164,147,87,142,77,105,157,89, - 182,146,96,159,79,124,122,86,140,136,116,110,73,104,60,160, - 162,112,192,111,169,145,111,163,82,110,169,113,118,99,50,110, - 80,122,159,94,153,97,60,168,100,182,204,79,203,49,109,157, - 51,176,94,73,132,82,100,130,42,129,105,103,233,139,211,176, - 62,148,71,102,188,99,139,106,23,117,61,122,187,80,183,121, - 69,186,107,156,170,68,146,69,99,168,63,164,126,81,179,99, - 137,156,44,137,95,109,204,91,159,98,18,134,78,147,211,93, - 160,111,70,166,94,167,173,68,163,95,85,182,53,140,148,76, - 205,111,148,185,62,140,103,79,199,84,124,139,4,126,97,117, - 224,90,135,122,49,197,115,149,210,69,137,111,48,179,96,98, - 124,40,138,112,141,162,51,125,144,112,218,145,104,129,46,125, - 113,103,181,77,77,91,47,153,137,135,190,84,118,121,120,182, - 116,116,111,63,128,127,101,155,67,88,131,97,181,150,125,148, - 91,162,160,136,192,88,70,103,49,136,158,111,144,71,95,115, - 95,190,135,122,148,83,136,146,101,137,81,71,121,103,169,138, - 113,133,60,113,156,132,175,123,67,100,78,137,167,126,139,75, - 81,122,103,179,167,110,138,90,109,152,121,151,109,87,128,100, - 151,153,94,129,99,109,171,140,156,125,72,99,87,143,181,128, - 143,90,59,125,109,154,170,109,119,93,107,147,125,155,118,78, - 129,108,129,161,97,107,108,101,152,143,162,138,80,111,99,130, - 182,124,123,98,50,106,122,145,159,106,113,94,99,160,139,154, - 148,81,113,118,111,146,107,99,96,92,139,122,137,143,75,111, - 129,125,179,144,119,106,74,112,125,152,162,91,92,92,67,144, - 153,142,153,101,108,108,124,158,119,124,122,89,134,126,101,132, - 90,88,124,129,169,129,126,115,74,126,140,145,172,108,77,110, - 89,125,145,134,132,94,115,122,123,165,106,102,131,120,150,160, - 114,102,59,64,106,151,237,185,126,97,5,38,118,142,207,168, - 133,114,69,73,90,114,171,152,161,167,91,100,58,56,111,138, - 192,193,142,102,53,62,127,145,221,190,103,95,31,47,118,159, - 201,162,104,95,59,107,149,135,174,129,92,121,80,99,115,94, - 123,116,154,171,125,155,114,82,144,127,163,171,109,96,60,79, - 116,131,162,133,83,103,88,106,179,146,150,133,85,114,116,133, - 145,110,121,107,121,165,121,124,119,70,102,120,132,150,109,102, - 91,100,161,154,157,155,72,120,102,84,158,137,111,99,89,98, - 145,139,111,108,124,139,215,154,97,117,73,137,119,135,145,56, - 86,117,71,100,121,148,146,103,157,83,76,175,113,130,173,83, - 174,114,66,156,66,150,136,98,168,78,77,140,59,143,166,107, - 172,105,134,174,120,213,148,98,156,44,92,118,61,168,126,90, - 160,66,108,131,93,197,132,140,191,77,142,96,21,132,72,136, - 183,95,160,85,58,133,72,167,177,81,160,74,60,149,66,158, - 143,80,156,72,121,151,80,181,137,102,185,88,127,151,60,153, - 116,123,188,85,150,112,50,177,110,154,215,80,135,88,50,152, - 87,157,162,71,153,85,92,182,81,154,165,81,173,103,114,160, - 67,152,109,81,181,67,108,136,37,152,128,124,195,95,144,124, - 76,183,107,133,179,47,120,97,53,164,87,121,150,79,158,102, - 124,197,90,161,150,73,169,87,82,130,52,127,113,101,175,72, - 116,136,62,187,142,127,195,76,112,117,76,167,106,120,141,52, - 129,106,80,189,109,129,164,80,150,113,105,156,88,146,146,97, - 155,81,94,145,96,157,139,104,141,94,105,124,102,161,126,112, - 149,82,110,140,103,156,139,109,133,95,122,112,102,142,113,130, - 143,101,117,126,92,130,128,128,139,105,121,99,102,137,113,145, - 158,108,130,120,97,133,120,129,131,110,122,91,111,133,106,142, - 132,115,142,117,115,132,120,130,122,123,130,89,121,114,95,154, - 127,131,152,111,115,106,116,137,114,145,125,85,129,91,93,149, - 109,131,136,115,131,101,129,132,111,158,119,106,144,81,95,126, - 98,138,126,129,135,97,135,105,106,172,117,135,162,89,118,109, - 93,137,112,137,124,103,149,87,106,158,95,154,158,100,149,100, - 89,110,97,145,113,117,153,74,110,130,79,167,149,123,154,109, - 112,110,99,148,98,134,157,76,134,117,86,141,124,127,138,123, - 137,98,127,134,66,145,134,82,130,121,139,162,141,123,93,63, - 109,66,157,182,123,194,90,47,86,89,142,206,170,159,99,74, - 74,51,160,145,132,196,100,75,110,76,128,147,152,158,116,139, - 97,66,136,114,137,193,121,122,109,62,98,95,131,149,130,155, - 92,78,119,69,129,182,130,166,138,94,113,86,114,125,131,164, - 115,134,141,70,128,134,105,160,133,113,119,85,105,97,123,162, - 108,145,137,75,136,120,114,167,136,141,114,99,105,66,120,137, - 103,159,126,86,130,93,111,152,132,156,114,114,120,78,122,116, - 117,168,125,113,133,85,102,121,140,161,158,169,116,74,121,83, - 120,170,120,157,124,46,62,69,105,188,147,126,80,82,181,128, - 161,173,73,128,148,116,125,87,101,92,81,167,119,113,142,36, - 87,136,113,216,187,135,118,27,102,112,129,205,112,109,105,25, - 114,127,108,179,117,145,171,146,210,129,107,129,60,147,153,84, - 140,66,53,120,85,166,152,113,134,51,124,162,121,214,132,54, - 93,32,117,165,127,174,96,92,126,70,163,140,86,163,94,118, - 173,97,134,81,52,126,98,191,171,86,137,57,86,188,139,201, - 176,67,97,67,117,165,121,178,100,73,153,83,156,190,94,137, - 99,101,149,101,140,92,56,133,91,154,196,79,121,104,77,183, - 170,188,165,72,106,58,106,189,104,150,114,21,101,94,133,185, - 124,143,109,110,168,106,153,143,38,126,107,100,169,79,75,87, - 83,161,144,185,175,65,117,102,94,203,135,112,112,35,90,88, - 130,173,97,126,113,68,185,154,119,168,90,101,156,143,136,101, - 79,94,88,150,154,126,151,84,73,130,115,169,184,116,110,73, - 87,123,130,167,129,86,134,103,109,177,110,130,132,97,147,133, - 140,111,72,115,105,134,193,123,132,129,57,120,142,143,158,104, - 91,67,78,152,129,150,156,70,108,115,102,164,142,122,122,99, - 129,103,115,129,59,112,132,115,182,144,99,113,80,117,143,159, - 168,90,90,85,66,162,160,129,156,86,82,112,121,165,141,146, - 129,86,143,125,109,157,96,92,133,112,148,130,108,103,80,132, - 135,134,176,102,80,123,91,146,166,134,129,76,87,97,114,174, - 126,114,135,75,109,145,124,149,123,109,115,114,148,119,108,129, - 77,122,150,120,151,124,85,107,121,152,150,129,148,74,94,115, - 113,169,142,90,119,102,92,134,122,127,116,125,145,127,137,113, - 75,94,97,133,201,187,158,87,20,51,56,164,195,182,177,91, - 48,67,93,139,205,185,170,119,80,74,67,116,122,129,174,145, - 115,89,60,81,129,154,187,180,146,103,53,80,84,145,197,163, - 141,90,41,62,112,145,176,137,123,93,73,116,111,141,156,118, - 128,125,100,128,114,109,115,125,161,135,136,133,72,108,135,130, - 173,142,116,97,61,88,114,147,168,123,131,114,78,140,141,141, - 159,111,119,100,107,125,94,122,119,94,135,128,103,144,86,110, - 144,131,172,131,114,99,59,115,135,141,179,126,94,104,67,122, - 155,139,170,118,123,96,107,161,129,127,131,80,102,101,114,158, - 91,106,64,94,175,135,164,135,56,115,152,170,206,138,106,69, - 61,129,117,156,148,54,80,63,78,181,142,164,128,76,127,96, - 160,163,107,138,97,79,157,127,119,127,64,131,145,186,236,136, - 122,58,21,132,140,169,186,76,69,72,71,162,142,171,152,61, - 133,98,114,184,92,102,97,67,153,143,138,132,60,117,119,126, - 212,111,94,91,23,130,156,159,180,81,77,66,78,196,164,165, - 171,55,102,118,100,183,128,104,111,77,145,132,128,155,63,115, - 149,118,211,152,99,103,48,116,142,148,175,72,62,86,64,185, - 187,135,159,68,81,126,130,197,155,121,121,59,123,134,100,168, - 88,72,125,93,159,151,111,122,80,134,164,137,186,100,44,100, - 66,149,177,115,116,56,75,110,127,211,172,111,132,65,117,175, - 98,144,101,63,128,100,133,125,79,131,94,120,195,119,158,146, - 53,115,102,144,186,119,126,54,46,127,98,168,197,80,130,106, - 80,177,131,160,142,82,131,89,125,161,70,126,122,83,180,131, - 136,168,90,132,123,130,186,96,116,96,37,151,136,132,186,85, - 82,92,78,167,134,155,161,62,123,98,83,170,101,111,143,93, - 149,126,111,141,66,123,134,104,189,108,85,123,61,142,158,134, - 175,90,92,99,77,174,144,124,158,70,103,133,99,165,120,101, - 131,88,150,134,110,155,79,111,151,106,165,131,86,111,73,127, - 159,129,168,95,69,106,78,167,168,131,164,91,89,123,107,165, - 138,110,125,73,118,128,90,144,105,95,141,115,150,137,100,129, - 96,128,158,127,162,101,61,108,79,141,173,128,144,109,90,104, - 129,173,158,113,145,91,88,130,92,138,116,102,115,104,128,130, - 103,129,124,118,163,115,150,134,73,130,106,120,134,122,118,98, - 117,163,104,133,140,57,108,105,135,171,158,158,113,58,96,85, - 130,189,134,160,99,52,98,90,122,167,145,154,132,115,146,78, - 114,135,95,161,137,109,127,67,79,108,133,198,145,142,127,47, - 116,120,126,192,123,106,99,58,111,109,123,166,104,133,131,99, - 170,118,110,144,97,134,137,121,140,72,84,98,80,159,138,121, - 159,81,101,139,113,172,141,114,128,76,120,111,99,157,96,110, - 139,95,146,125,100,140,107,144,153,130,155,88,86,120,85,158, - 158,104,132,81,84,120,116,171,138,114,144,77,129,140,114,175, - 131,105,130,95,121,127,97,133,97,120,140,104,154,106,89,140, - 91,161,172,89,135,109,65,129,106,160,184,75,77,78,95,158, - 171,143,93,99,138,112,131,138,93,118,125,124,153,103,121,130, - 76,122,139,133,145,125,85,68,106,145,165,169,164,89,86,109, - 105,159,154,138,100,87,101,93,112,135,126,125,149,143,158,171, - 136,128,101,95,96,115,131,101,90,79,95,117,144,159,158,132, - 110,118,135,150,143,128,99,66,79,100,109,135,142,121,108,133, - 140,145,145,120,108,107,113,111,126,110,82,88,99,141,158,159, - 146,118,113,104,129,158,151,128,102,84,81,109,116,131,133,115, - 112,119,145,145,145,139,109,101,127,121,130,124,89,84,91,123, - 135,142,139,99,103,121,111,145,176,131,116,111,86,123,133,112, - 110,103,89,137,136,116,120,101,153,127,131,176,106,118,139,88, - 108,119,139,139,90,108,88,74,152,132,133,185,92,132,146,96, - 158,103,126,123,80,150,99,90,137,74,114,145,96,160,139,130, - 162,109,154,138,113,164,78,86,121,61,136,141,102,156,107,100, - 131,108,169,134,126,169,90,133,129,64,133,97,97,146,100,141, - 126,94,133,83,133,166,104,164,112,72,136,89,133,150,101,144, - 96,101,131,90,156,141,96,159,104,108,155,92,136,127,109,150, - 97,137,133,87,156,114,114,171,96,128,127,72,127,103,136,157, - 103,148,101,85,151,93,133,164,90,134,112,94,134,91,131,123, - 97,156,89,108,145,70,129,135,105,166,124,124,135,88,141,110, - 126,176,85,125,120,62,140,120,122,162,106,135,117,110,167,104, - 141,154,79,145,115,87,155,94,110,126,97,145,106,127,147,79, - 145,129,94,174,113,102,138,88,131,122,117,152,85,122,117,78, - 171,127,113,164,94,120,131,104,151,110,122,129,82,146,108,93, - 154,90,117,142,93,148,124,101,134,94,139,129,104,163,100,106, - 143,76,141,146,101,145,108,119,120,89,153,116,111,166,95,146, - 152,71,136,106,109,176,115,130,113,73,116,65,136,207,132,174, - 116,61,90,75,131,155,134,164,120,83,94,50,134,148,142,208, - 132,111,121,56,83,117,134,163,136,148,96,53,113,110,130,202, - 153,142,128,62,83,84,141,163,140,160,82,54,111,90,123,177, - 141,134,113,99,103,87,128,126,121,162,116,125,145,93,120,132, - 121,155,144,137,104,88,108,73,121,165,122,137,133,81,97,119, - 123,154,153,157,103,99,128,75,130,141,112,150,137,98,107,108, - 112,107,140,156,105,137,124,65,111,127,128,156,143,137,86,76, - 105,82,143,157,94,166,125,44,112,126,115,224,207,105,105,89, - 138,132,156,154,66,121,125,76,119,89,87,150,113,152,134,92, - 121,63,95,147,129,222,185,72,128,29,77,169,125,202,130,75, - 80,35,124,132,110,187,94,107,196,108,186,178,87,137,96,131, - 146,83,139,65,51,157,80,156,180,75,131,95,99,184,161,193, - 141,38,87,18,106,205,104,186,129,38,115,79,124,170,107,158, - 100,107,175,62,133,118,35,156,129,140,186,84,101,83,90,190, - 136,184,170,33,103,87,88,210,145,137,133,57,117,101,151,204, - 106,149,99,52,160,93,102,150,71,119,127,129,172,86,109,114, - 78,197,163,139,182,48,65,113,91,189,149,121,110,26,97,98, - 125,226,127,121,144,65,145,150,122,161,90,115,118,87,158,74, - 64,133,72,160,187,120,176,84,93,141,107,203,151,101,119,17, - 65,150,112,158,129,67,128,137,125,141,126,161,140,124,148,100, - 111,118,71,120,110,103,170,110,115,112,75,123,143,160,167,107, - 95,120,75,144,154,124,169,80,90,110,87,137,123,139,138,83, - 127,119,92,181,141,130,174,118,122,101,83,99,84,134,151,123, - 153,102,62,119,105,138,187,145,146,110,87,94,72,136,119,98, - 157,97,97,142,91,122,149,125,152,136,141,123,77,137,95,114, - 179,103,122,118,63,102,122,145,169,142,159,103,85,142,97,139, - 174,101,130,110,76,115,114,141,144,122,156,102,106,139,71,124, - 130,115,156,125,118,109,76,109,123,122,143,125,124,137,99,115, - 108,109,135,84,111,156,138,149,108,93,75,47,134,131,153,202, - 154,116,97,68,101,127,177,204,127,135,83,52,110,100,133,164, - 152,155,111,94,123,92,125,152,129,165,120,95,106,66,105,143, - 140,175,131,95,101,72,123,125,117,161,95,99,113,77,118,114, - 116,140,119,148,150,126,155,98,96,134,103,148,142,108,128,92, - 91,121,113,153,136,119,135,86,126,135,108,160,141,117,140,106, - 119,118,105,142,116,141,139,91,126,100,75,125,114,137,149,116, - 129,96,105,125,108,152,137,101,127,96,95,135,113,137,129,109, - 122,95,130,138,117,164,139,126,156,102,112,125,94,133,119,133, - 133,78,109,83,86,139,127,151,153,111,123,112,116,149,133,161, - 135,105,126,80,101,125,97,128,126,97,127,96,102,123,97,152, - 132,139,153,95,127,125,97,148,133,127,144,96,111,97,100,146, - 107,137,144,106,131,119,92,146,122,143,146,115,136,87,126,123, - 99,138,145,97,162,108,81,139,104,124,135,136,134,120,93,75, - 102,115,134,178,111,85,55,80,144,137,196,170,86,126,114,94, - 137,121,145,122,118,146,92,126,135,67,129,138,124,225,114,106, - 104,42,143,103,153,159,74,102,73,48,145,132,130,156,91,138, - 128,139,192,128,144,137,72,138,104,91,156,78,111,135,103,147, - 110,108,124,70,145,155,131,185,78,74,83,65,163,151,152,166, - 88,102,106,94,183,133,132,153,71,126,120,108,146,98,113,120, - 103,157,112,98,136,79,134,163,131,177,124,79,108,85,136,144, - 121,149,69,85,120,99,184,173,119,136,85,93,129,110,151,111, - 97,125,79,137,128,77,137,106,112,179,140,162,141,86,118,89, - 141,170,108,148,73,40,118,91,157,179,117,142,102,107,154,120, - 178,141,81,153,80,106,143,63,122,97,102,154,116,166,139,70, - 153,100,123,195,97,137,101,43,115,106,157,152,86,147,76,113, - 175,92,165,152,95,142,96,120,134,81,153,93,97,166,95,151, - 137,64,132,103,120,168,101,143,87,86,148,81,166,155,84,135, - 95,83,140,108,146,134,89,139,89,132,160,107,176,135,99,160, - 92,116,130,81,126,106,129,152,95,134,112,77,152,122,144,172, - 99,120,98,94,135,102,140,121,85,133,92,123,160,114,140,122, - 105,134,113,130,131,102,127,102,112,142,87,117,111,88,140,128, - 144,157,119,118,101,115,151,124,139,138,80,109,103,103,158,133, - 134,128,102,125,102,130,149,105,140,126,94,142,109,96,128,104, - 128,131,135,152,107,119,122,95,161,135,110,150,87,92,111,103, - 147,123,134,127,83,134,113,103,175,118,121,151,94,129,120,94, - 123,117,141,133,91,163,97,85,140,105,165,156,92,124,82,73, - 159,121,169,127,88,122,29,131,186,139,187,147,68,65,71,111, - 153,133,198,119,100,116,48,119,121,143,196,146,140,116,52,84, - 80,113,176,157,173,114,36,99,76,123,203,154,173,129,82,103, - 62,123,166,119,176,124,72,108,57,104,138,117,159,122,119,127, - 63,119,115,110,180,124,134,142,76,103,93,107,174,136,164,143, - 82,126,86,113,177,116,146,139,80,109,89,108,134,114,161,121, - 109,157,82,115,145,98,152,139,120,129,72,95,91,98,177,129, - 138,155,66,106,122,113,177,145,140,114,78,109,78,121,169,109, - 150,135,73,132,103,102,154,144,163,133,128,141,66,122,112,111, - 184,127,88,117,65,57,107,100,201,152,99,106,73,120,185,148, - 144,124,113,178,94,109,105,45,114,138,140,130,69,108,92,65, - 181,147,148,192,100,94,108,100,167,155,174,161,45,125,79,67, - 169,106,131,140,92,134,107,100,151,114,177,191,163,215,108,79, - 113,48,132,137,110,144,63,57,79,82,157,154,147,185,72,106, - 151,73,168,131,90,115,54,117,102,88,156,102,126,166,106,167, - 139,65,135,91,131,166,116,148,58,47,99,74,180,192,116,159, - 90,67,141,126,177,167,120,136,64,104,119,66,163,123,101,168, - 116,134,141,100,125,104,142,165,101,154,84,30,120,92,151,196, - 121,126,88,84,134,126,199,169,111,149,65,78,143,85,145,126, - 95,130,80,129,124,93,165,132,131,222,125,103,109,46,107,164, - 180,134,71,81,63,81,156,138,155,172,119,114,108,95,143,145, - 138,122,102,110,76,95,106,88,117,152,133,133,141,90,112,123, - 139,156,167,156,79,79,83,71,124,162,142,162,145,101,118,126, - 124,132,138,136,103,128,122,80,126,118,109,137,144,123,126,121, - 97,111,133,150,128,139,92,47,108,111,124,173,147,106,103,85, - 83,115,147,144,123,145,111,89,135,103,102,148,128,120,140,127, - 103,103,121,108,127,175,132,110,132,84,91,147,141,142,140,124, - 90,100,133,110,136,152,101,101,125,99,118,144,118,111,133,138, - 111,134,134,84,112,139,113,148,164,108,100,102,95,110,150,161, - 113,113,100,62,117,149,132,158,146,101,106,123,117,121,147,132, - 97,137,116,78,129,119,83,127,163,129,132,133,101,88,125,134, - 141,170,130,68,80,87,85,154,161,152,127,106,82,95,167,150, - 113,158,126,90,169,106,89,127,87,67,89,179,174,168,156,70, - 32,70,102,137,208,163,147,118,66,39,84,150,159,190,187,121, - 78,82,40,88,171,166,188,178,77,51,65,104,136,194,193,106, - 109,86,44,104,158,142,167,152,107,82,106,121,88,150,143,100, - 146,114,78,111,98,88,127,148,144,132,162,139,94,146,128,124, - 175,129,82,95,84,76,114,150,136,107,129,89,81,166,131,130, - 175,118,106,129,127,108,112,134,104,111,167,128,115,153,85,80, - 128,123,127,143,133,84,101,139,114,143,176,100,92,128,83,108, - 157,119,114,132,119,86,128,161,110,133,148,101,115,170,114,112, - 136,110,91,138,133,89,135,113,52,100,128,87,165,132,83,83, - 117,156,131,191,152,83,132,124,101,160,138,100,116,101,95,96, - 125,105,75,120,106,99,203,147,111,154,94,124,146,170,142,118, - 119,61,78,157,134,119,164,86,98,165,148,170,175,131,85,81, - 115,94,119,174,94,94,145,77,117,156,108,117,116,125,116,136, - 170,73,82,115,43,140,188,111,138,120,69,84,124,162,118,135, - 129,35,111,139,89,170,149,86,124,131,135,128,140,137,78,140, - 146,81,167,138,54,132,112,109,165,144,129,87,120,125,100,201, - 164,80,140,80,53,139,130,127,130,117,96,83,159,141,100,172, - 117,86,167,132,129,169,115,95,102,128,125,104,150,84,57,135, - 97,125,180,109,103,121,104,138,144,177,126,79,141,62,100,171, - 99,105,116,76,116,169,151,115,128,119,117,169,139,104,97,108, - 90,100,148,114,112,130,96,94,126,149,157,159,133,103,91,116, - 124,117,150,92,94,139,86,132,142,102,127,105,122,125,122,144, - 102,112,137,102,154,170,111,157,125,92,133,120,136,122,110,117, - 78,124,148,98,151,140,82,138,130,117,148,127,115,90,107,121, - 76,136,125,68,148,125,107,169,131,115,116,116,127,104,159,127, - 62,136,96,80,164,123,112,145,109,109,121,158,144,106,164,105, - 77,163,97,91,152,89,101,133,131,131,120,157,108,100,177,106, - 110,170,81,92,137,108,122,137,132,94,92,141,98,123,195,102, - 114,152,83,119,139,117,116,111,125,93,113,155,83,119,152,79, - 141,159,108,135,121,106,108,126,161,104,123,139,53,112,138,104, - 172,155,113,121,101,126,109,137,160,99,129,120,69,139,111,83, - 144,118,118,137,127,117,99,124,126,90,167,135,84,130,96,91, - 133,113,130,123,114,122,100,146,142,104,162,112,113,150,93,131, - 137,105,114,106,134,137,114,193,79,64,141,84,118,149,148,169, - 140,133,102,58,86,92,101,165,147,172,180,53,75,73,83,158, - 219,205,147,115,76,21,75,173,129,189,201,60,62,74,90,139, - 186,189,125,131,112,42,112,149,92,177,162,91,112,92,74,83, - 129,145,119,172,149,64,107,98,68,161,161,131,152,126,95,89, - 129,122,104,163,121,82,145,107,88,148,127,99,140,148,120,119, - 137,100,94,156,115,116,171,112,78,119,117,103,157,169,123,112, - 123,70,81,145,107,115,150,105,95,131,129,118,154,152,109,124, - 141,86,100,133,87,115,140,112,105,125,103,85,138,162,137,169, - 156,89,112,122,93,137,152,122,100,118,87,69,152,134,76,148, - 145,69,154,122,125,173,131,103,135,143,132,142,100,68,92,198, - 147,109,149,71,33,114,157,126,148,160,106,71,125,125,94,174, - 140,73,121,112,100,157,144,101,109,121,106,119,148,106,73,119, - 99,107,173,112,92,120,110,123,182,201,166,145,139,79,79,140, - 106,123,164,81,61,113,101,97,141,164,112,126,163,110,107,146, - 88,81,132,108,132,148,114,94,107,129,123,175,193,115,100,107, - 57,114,168,121,121,112,71,71,127,146,116,153,157,94,135,162, - 110,136,136,90,111,135,118,97,111,100,73,126,161,134,176,150, - 84,106,110,114,158,168,123,87,74,70,80,155,149,111,146,111, - 89,144,136,139,157,136,114,110,124,113,95,114,101,85,141,128, - 100,123,142,108,135,153,134,172,147,106,94,93,89,122,154,116, - 89,102,89,93,160,157,141,148,128,117,120,128,125,119,123,112, - 84,138,106,83,139,99,89,143,146,131,135,113,84,92,155,148, - 156,187,112,80,103,89,105,148,131,109,115,115,96,115,156,121, - 124,167,110,115,162,110,106,124,101,95,127,140,96,101,126,78, - 117,177,125,147,150,87,96,121,138,130,149,143,73,96,116,80, - 137,159,101,126,129,108,121,141,135,108,135,139,101,143,137,74, - 119,120,96,146,156,130,117,114,103,93,152,157,116,154,114,68, - 122,120,109,144,133,105,96,125,120,104,160,121,96,156,127,112, - 143,108,92,119,124,127,135,148,103,82,134,105,123,189,131,107, - 124,84,90,130,141,122,122,128,76,91,149,108,131,170,105,111, - 134,108,109,122,123,94,120,149,96,118,137,68,106,144,124,155, - 156,115,89,106,116,106,159,171,88,121,118,66,123,150,124,142, - 137,114,110,127,130,91,133,127,100,156,138,100,123,99,80,145, - 166,122,140,140,76,87,153,108,130,178,110,83,104,118,124,155, - 130,94,108,137,114,137,158,87,88,112,69,112,183,167,142,120, - 87,57,100,167,147,161,165,92,101,88,74,129,144,146,145,121, - 115,105,111,133,122,144,153,128,132,103,70,103,122,128,152,143, - 116,90,93,98,97,149,156,115,129,105,84,123,136,137,138,130, - 115,94,127,130,98,133,118,80,126,121,112,134,127,111,101,137, - 131,124,152,122,98,134,119,108,151,127,98,125,118,115,133,153, - 124,89,130,90,107,161,126,121,134,109,98,132,147,139,144,136, - 88,97,126,118,126,145,98,99,109,118,126,126,152,96,91,136, - 107,146,208,108,112,113,93,153,135,149,108,66,115,98,115,151, - 85,112,111,79,164,150,136,158,97,111,111,129,195,104,137,115, - 34,140,116,119,151,102,81,91,93,149,132,141,160,77,159,146, - 138,214,138,95,107,63,104,122,111,134,54,89,104,83,181,139, - 121,152,78,128,159,132,176,104,83,80,52,162,136,120,167,67, - 82,135,103,172,148,111,124,73,143,132,118,170,71,76,127,83, - 166,161,99,137,89,118,147,133,187,113,91,136,73,151,177,94, - 152,88,74,136,124,193,153,117,125,54,116,154,96,164,107,55, - 116,97,150,153,109,126,74,109,153,110,182,146,72,134,86,104, - 159,106,130,81,83,125,99,177,154,81,155,107,91,184,138,140, - 125,72,91,104,159,116,76,131,63,126,168,103,158,143,123,133, - 108,154,116,91,162,72,80,136,89,146,135,88,113,91,130,132, - 121,186,95,125,159,73,160,138,98,136,93,106,123,105,152,120, - 105,137,74,141,159,110,192,131,104,145,94,143,123,92,127,83, - 130,145,90,157,115,67,148,104,134,163,106,144,94,104,135,83, - 156,129,79,148,88,111,161,91,141,124,97,138,93,149,141,83, - 149,101,104,169,99,135,144,80,134,105,127,145,96,150,104,92, - 162,94,130,162,78,132,116,107,155,110,147,126,92,153,97,120, - 162,69,126,131,89,162,114,118,131,83,134,106,128,178,89,139, - 140,70,155,121,112,148,82,115,102,105,165,99,134,143,66,148, - 123,108,180,108,119,125,89,143,99,119,143,63,133,118,88,178, - 113,115,149,96,141,125,124,154,82,129,117,71,165,104,97,150, - 82,120,131,115,167,118,131,134,89,160,117,102,158,77,104,129, - 89,143,121,110,123,83,139,120,106,187,108,118,146,79,137,131, - 103,146,110,123,122,87,151,106,105,156,97,148,131,98,152,118, - 116,132,101,140,116,119,167,67,121,125,56,119,133,143,179,142, - 125,90,35,98,88,147,186,148,177,102,38,78,80,134,205,182, - 183,108,66,76,50,141,172,154,197,115,63,90,59,119,158,148, - 167,121,117,103,60,122,120,135,194,132,122,107,53,87,102,134, - 165,132,142,98,62,113,89,140,190,123,150,136,98,132,110,138, - 139,107,150,96,95,131,66,114,138,107,149,129,117,129,93,124, - 116,140,184,120,143,126,67,112,117,122,167,140,143,117,88,122, - 83,118,155,96,139,119,79,138,105,118,142,118,154,112,108,130, - 62,123,132,82,179,116,95,135,78,110,131,128,185,140,130,164, - 65,135,107,100,157,118,116,123,119,84,74,117,95,113,218,92, - 94,114,90,176,142,184,175,76,121,113,83,150,89,127,163,79, - 132,91,84,120,70,162,143,117,233,90,110,132,39,170,126,133, - 177,60,80,73,51,148,111,147,169,69,154,142,124,227,137,139, - 140,53,124,75,84,146,59,129,134,62,169,97,84,174,80,174, - 163,122,203,52,80,91,31,191,142,127,198,52,97,119,67,210, - 133,138,173,45,156,96,71,201,68,122,165,64,172,105,78,159, - 78,169,169,107,206,83,69,165,52,175,168,80,183,60,95,141, - 75,211,142,100,170,26,101,139,55,186,115,78,148,56,146,130, - 76,182,88,145,194,84,181,131,54,159,81,124,175,76,155,63, - 49,144,56,183,182,79,186,93,87,187,96,185,138,79,161,34, - 107,140,46,155,105,86,197,127,143,132,88,140,145,189,151,62, - 107,71,61,150,104,126,133,93,118,92,112,156,143,175,146,96, - 135,79,102,129,97,121,119,132,113,107,111,105,109,152,139,140, - 151,90,103,107,109,143,155,148,139,125,126,108,118,142,112,135, - 124,91,115,106,105,128,119,132,123,130,144,101,125,114,97,133, - 122,114,114,86,88,94,114,143,138,159,137,107,122,107,120,147, - 133,130,115,106,107,101,115,114,121,133,126,136,143,126,131,131, - 115,140,138,132,125,101,94,82,113,135,128,147,134,103,109,117, - 125,141,152,132,114,107,112,101,121,133,115,124,117,106,120,124, - 119,127,130,137,128,139,126,98,101,94,109,140,117,121,132,88, - 98,116,96,148,147,147,167,101,95,102,100,106,108,163,174,147, - 146,82,72,53,89,156,179,184,180,127,53,53,61,141,195,226, - 181,108,66,33,51,113,169,160,172,135,61,46,83,112,145,189, - 170,135,134,106,72,105,111,126,172,155,130,94,75,63,86,141, - 153,150,145,102,70,96,100,128,161,151,135,113,113,109,115,144, - 127,137,152,111,120,123,100,112,126,132,126,135,132,98,93,110, - 102,125,149,127,129,121,107,114,128,149,139,143,142,100,110,115, - 95,114,122,101,105,107,104,109,121,134,131,149,155,124,131,124, - 83,106,122,113,129,124,106,85,89,111,117,161,175,151,153,127, - 106,126,133,127,136,125,103,96,100,106,93,126,120,111,144,127, - 118,133,125,121,146,152,141,128,128,94,84,114,112,119,139,112, - 87,95,87,105,133,154,143,126,131,91,113,141,121,139,150,126, - 115,127,98,126,130,120,120,134,121,101,115,104,130,126,118,131, - 122,111,160,90,95,119,123,199,131,119,105,47,80,134,143,152, - 114,121,111,72,153,119,120,166,101,114,142,99,154,116,116,135, - 57,168,126,105,162,83,79,127,102,148,149,109,133,67,133,150, - 153,234,136,99,129,41,100,147,108,166,103,88,107,72,144,113, - 99,172,89,128,169,82,143,98,69,115,88,169,141,102,157,67, - 92,163,104,195,167,83,134,70,111,148,123,169,92,85,128,67, - 157,159,95,178,115,110,157,107,149,118,94,143,81,135,142,57, - 135,91,82,173,132,171,164,87,116,73,108,167,109,164,102,40, - 117,74,124,176,103,143,114,91,152,108,163,152,91,154,94,98, - 155,74,113,114,69,147,126,145,156,82,139,113,116,207,132,145, - 140,48,107,106,118,165,98,121,97,77,152,110,151,192,92,138, - 129,84,165,112,96,112,83,125,141,127,127,65,93,131,106,189, - 157,114,127,82,97,121,135,174,119,98,111,53,123,137,112,158, - 119,95,130,119,136,137,111,134,96,139,151,100,140,88,78,129, - 115,150,159,116,126,97,112,151,129,173,129,79,110,75,115,161, - 124,141,113,91,111,100,152,144,116,151,104,109,147,94,113,108, - 79,130,123,145,150,94,117,88,93,165,131,149,152,64,98,96, - 114,168,128,138,110,76,119,99,131,174,102,135,127,91,150,113, - 116,126,95,136,126,139,163,87,109,117,84,171,154,136,154,78, - 82,98,118,170,136,138,123,60,117,117,112,181,127,120,131,98, - 136,117,125,137,89,135,136,107,153,97,85,127,93,143,160,131, - 137,83,97,112,110,185,144,114,137,72,88,132,117,156,128,112, - 113,85,133,123,114,157,97,110,143,99,132,121,92,116,103,137, - 140,112,149,81,95,136,109,166,170,92,116,99,90,131,129,168, - 118,99,123,87,142,155,101,141,120,70,143,142,134,166,113,96, - 80,143,134,114,164,143,83,134,113,78,140,106,115,119,142,132, - 117,135,82,55,142,140,166,189,93,77,54,64,122,170,195,149, - 102,88,36,83,173,143,187,160,86,95,97,105,122,130,146,128, - 116,149,88,108,134,97,132,136,127,135,110,107,89,89,130,122, - 149,150,92,127,109,107,167,142,146,136,110,122,107,129,151,104, - 128,125,94,131,124,108,124,105,116,119,131,152,110,131,112,72, - 133,132,119,160,108,113,118,97,141,123,131,130,84,110,93,105, - 155,114,139,138,94,128,118,117,142,96,141,147,84,135,104,77, - 183,154,94,130,108,167,161,122,147,63,95,152,121,141,90,69, - 116,62,128,168,87,134,105,56,126,121,177,190,107,148,70,87, - 176,97,153,155,57,111,100,113,153,85,128,95,96,213,153,192, - 199,48,97,95,86,182,135,137,114,45,115,93,122,194,95,139, - 127,62,181,142,131,172,75,97,87,107,186,85,133,147,41,154, - 121,87,170,64,84,118,98,188,122,125,129,12,127,129,107,219, - 106,94,128,62,143,135,142,177,65,123,125,72,200,109,88,164, - 68,147,168,134,188,90,98,111,70,194,131,93,157,31,74,144, - 108,200,133,96,133,62,162,160,129,210,84,86,144,63,154,139, - 76,132,67,102,139,110,184,111,87,164,98,173,196,95,139,70, - 61,126,111,165,112,58,119,64,117,177,121,193,134,80,140,121, - 151,123,87,121,55,123,143,74,158,93,74,150,110,164,162,116, - 151,85,98,135,112,190,127,65,122,56,97,150,107,167,112,99, - 129,74,172,129,98,162,82,121,159,102,150,120,80,138,107,157, - 156,106,174,88,102,166,85,158,143,59,115,92,119,163,115,166, - 106,71,150,75,153,182,78,153,103,83,146,86,136,120,71,153, - 90,132,179,64,143,117,77,172,109,142,148,68,128,87,116,190, - 96,145,127,42,143,101,124,183,84,136,107,81,165,91,144,164, - 59,150,112,100,185,88,126,140,81,161,113,130,170,60,133,122, - 90,194,107,115,148,55,137,125,116,192,88,125,130,63,170,109, - 115,173,55,123,123,79,177,93,104,146,68,158,130,111,184,72, - 113,145,80,184,131,94,151,51,121,133,96,193,92,103,140,62, - 158,142,107,182,78,98,136,74,169,117,96,149,67,131,137,88, - 179,91,93,163,81,150,152,93,151,72,114,159,90,179,111,89, - 153,62,123,152,86,178,105,101,179,73,140,146,89,196,114,92, - 158,53,122,107,63,202,138,155,141,39,108,63,106,199,132,185, - 157,40,95,37,102,185,132,212,130,51,126,53,103,177,111,178, - 130,99,124,58,135,153,93,180,113,115,174,53,120,115,87,183, - 134,153,140,37,118,83,96,199,106,147,128,42,114,78,112,175, - 106,160,134,99,169,100,125,166,82,162,146,112,161,62,102,101, - 80,169,121,121,147,48,104,122,107,211,147,136,126,45,117,117, - 120,190,107,119,121,67,149,113,130,165,79,125,102,95,176,105, - 111,144,78,150,122,115,194,70,75,134,80,140,153,101,155,97, - 75,101,138,178,161,182,92,78,144,122,145,157,114,108,77,94, - 133,76,116,126,85,130,124,128,109,102,129,78,137,188,130,174, - 122,72,127,94,159,177,117,136,65,60,122,102,135,148,99,127, - 104,130,180,137,175,140,121,156,98,112,126,76,106,87,89,159, - 112,119,132,78,119,126,163,197,130,139,87,43,110,108,143,160, - 102,122,78,71,134,116,145,129,97,134,96,114,150,90,115,106, - 88,153,129,129,119,71,119,109,138,190,124,124,110,64,130,139, - 147,177,116,121,94,88,165,131,161,169,90,127,100,103,153,114, - 127,114,94,149,114,127,138,77,146,124,122,190,134,112,118,71, - 137,151,113,141,81,73,108,101,110,119,111,153,131,119,141,103, - 137,149,140,124,92,113,125,79,109,101,68,124,103,124,141,122, - 137,136,123,154,124,125,145,72,120,98,92,134,101,123,114,100, - 126,120,135,178,148,173,150,99,136,89,105,131,95,129,111,94, - 114,82,106,128,113,174,146,127,157,96,126,136,102,148,110,108, - 139,78,129,126,106,154,95,120,141,82,140,122,98,156,95,123, - 130,86,145,98,110,154,97,151,138,92,144,99,114,152,104,147, - 125,100,144,78,117,138,103,168,126,112,152,93,117,121,101,152, - 103,114,133,84,133,115,99,158,123,130,140,101,137,114,118,150, - 106,141,129,84,133,96,93,139,106,135,132,110,140,112,133,147, - 120,161,131,103,137,94,104,126,87,122,113,108,122,99,135,129, - 111,167,130,124,156,90,113,122,98,119,115,111,132,99,114,99, - 106,150,134,164,138,108,112,117,124,135,121,127,112,101,127,84, - 107,137,108,133,137,123,130,111,122,116,120,145,126,150,138,96, - 100,103,102,130,129,123,118,94,106,96,124,153,133,150,144,121, - 133,115,117,128,107,116,109,115,126,102,122,111,101,143,126,135, - 148,112,116,109,114,137,120,129,113,87,107,96,123,153,132,142, - 124,104,117,115,134,137,122,125,109,109,127,107,116,123,105,129, - 128,127,140,121,119,115,120,140,123,127,127,93,105,111,115,147, - 136,128,121,109,123,117,132,144,117,124,119,103,130,124,112,124, - 109,117,119,123,139,118,121,123,112,139,133,113,128,103,96,113, - 116,133,129,124,117,96,121,125,117,153,133,112,126,108,119,129, - 120,124,111,123,120,107,142,124,109,137,119,129,145,125,125,113, - 111,113,112,143,127,106,123,96,104,135,122,136,135,115,110,108, - 127,126,120,135,109,104,126,104,119,133,109,120,120,127,131,120, - 128,108,106,130,115,132,146,109,113,113,107,132,132,142,133,115, - 119,101,117,141,115,132,126,101,125,115,118,126,120,122,118,127, - 139,113,123,119,99,128,126,128,133,117,101,103,112,126,127,139, - 131,105,121,110,113,144,133,122,127,111,109,114,121,123,115,129, - 119,120,136,118,109,122,112,115,135,131,128,117,109,100,110,140, - 135,135,142,110,101,116,113,126,134,124,113,112,117,109,121,137, - 121,125,133,118,124,131,115,114,120,121,119,128,131,106,108,118, - 110,133,147,127,125,120,103,110,128,134,128,129,123,103,115,126, - 114,132,136,116,120,125,117,116,124,118,110,126,128,113,126,121, - 99,118,128,127,140,139,121,108,115,112,116,138,134,113,118,110, - 99,122,126,123,128,125,115,113,129,123,120,133,126,120,131,121, - 111,117,110,110,120,129,128,123,122,107,107,123,125,133,140,123, - 111,113,109,118,130,132,125,119,116,108,116,124,121,127,130,121, - 122,123,116,116,120,120,123,131,131,118,118,114,106,120,131,128, - 129,125,107,105,116,121,125,136,130,112,114,114,111,127,133,124, - 127,129,116,114,123,116,114,127,125,117,127,121,105,116,121,117, - 131,139,126,118,119,110,113,135,130,124,133,117,101,117,120,117, - 132,133,117,116,123,111,112,133,120,115,133,120,113,125,118,109, - 124,133,122,127,135,111,106,125,112,119,142,128,117,123,111,104, - 123,136,125,129,136,107,110,126,112,120,135,120,114,124,118,109, - 121,128,115,128,139,116,119,126,104,111,128,124,126,132,124,106, - 114,121,113,132,141,120,123,123,105,116,126,125,126,130,124,110, - 120,122,111,129,131,117,129,122,109,113,113,113,120,130,129,119, - 124,113,104,124,123,124,137,123,113,115,111,115,123,133,128,119, - 124,109,109,126,119,126,135,125,123,123,119,116,118,127,123,127, - 134,115,115,118,107,119,129,127,128,124,116,107,116,128,122,134, - 135,114,117,115,109,123,130,128,126,126,120,107,118,121,114,132, - 133,120,127,122,109,113,123,122,124,135,124,108,117,110,107,130, - 132,123,130,123,107,110,121,117,123,138,124,114,124,110,105,126, - 125,120,131,127,111,114,121,110,120,139,127,123,133,113,104,121, - 118,118,137,136,116,117,119,102,115,135,125,128,138,114,107,122, - 116,116,134,133,118,122,121,104,112,127,116,125,138,119,115,122, - 111,110,127,130,125,132,129,106,112,122,112,128,139,123,121,122, - 109,110,124,128,122,132,129,107,116,118,108,125,133,123,129,126, - 112,109,118,120,119,136,132,115,123,113,101,123,128,124,134,129, - 114,110,115,115,119,138,131,119,130,113,104,122,120,121,134,131, - 119,116,118,107,111,132,124,125,137,114,107,118,111,116,133,134, - 124,121,121,103,110,130,120,129,141,118,112,118,108,112,129,133, - 125,128,127,104,112,126,113,129,143,124,123,123,109,107,122,130, - 123,136,135,106,114,118,103,126,139,126,128,127,110,102,119,124, - 118,139,136,109,120,115,100,121,131,124,128,131,116,103,118,115, - 111,138,133,117,129,116,99,115,123,121,130,137,120,108,118,107, - 107,136,130,123,135,118,105,115,120,118,132,143,125,118,125,106, - 106,130,124,128,141,125,113,115,113,109,126,139,127,129,129,104, - 106,121,115,127,141,128,117,116,108,102,120,132,125,134,131,107, - 111,117,109,124,137,130,126,126,113,103,118,123,120,138,136,114, - 119,114,101,118,132,128,131,136,117,103,118,116,114,140,136,118, - 125,116,99,113,125,120,128,138,119,107,121,108,106,136,131,122, - 136,122,102,112,119,113,128,143,122,115,125,101,101,131,125,125, - 142,127,107,115,118,107,126,144,122,124,133,103,104,127,118,123, - 143,131,112,119,116,98,120,137,119,131,138,105,107,121,109,118, - 141,134,118,126,117,95,115,129,116,137,141,110,111,118,104,112, - 136,134,123,134,122,98,118,124,114,137,142,120,121,120,104,108, - 128,127,124,142,127,105,119,114,106,132,137,126,129,122,103,103, - 121,120,125,144,128,113,120,107,104,126,129,127,134,127,111,108, - 114,110,122,139,127,125,127,106,104,119,121,129,139,134,119,115, - 112,103,119,134,128,134,130,111,110,113,112,125,138,134,125,123, - 114,102,115,123,122,137,134,117,115,112,105,114,130,131,129,131, - 117,101,113,115,115,137,138,124,121,115,103,109,126,126,128,140, - 124,107,117,113,109,133,137,127,130,123,104,104,122,118,124,144, - 128,114,123,109,102,126,131,124,134,131,107,105,118,108,120,144, - 127,121,129,108,100,121,125,121,137,137,111,112,118,100,115,140, - 125,128,137,113,104,119,119,116,139,141,118,122,121,97,112,132, - 121,132,141,118,108,116,111,109,135,139,122,131,124,98,111,122, - 114,130,141,124,114,119,108,103,128,132,123,140,128,103,113,115, - 108,127,139,128,123,125,108,101,124,123,123,143,131,112,118,111, - 103,122,134,126,130,132,109,103,119,111,117,143,131,121,128,111, - 99,116,126,121,135,139,113,110,118,101,113,139,129,128,136,115, - 101,116,118,114,137,141,118,121,122,98,111,133,122,130,142,122, - 108,118,112,106,134,140,122,133,127,98,108,123,114,129,145,126, - 113,122,108,99,129,134,121,139,131,102,111,119,107,124,144,128, - 120,129,109,96,123,124,119,142,137,111,117,117,99,117,139,128, - 128,137,112,99,119,115,114,142,138,117,123,118,98,112,131,122, - 131,142,117,107,121,110,111,138,135,125,132,122,101,110,122,114, - 129,142,121,116,120,103,106,129,129,128,138,126,107,113,116,109, - 129,138,123,125,121,102,105,119,119,126,137,128,114,117,112,105, - 126,132,126,135,128,110,110,114,112,123,135,129,122,122,108,102, - 120,124,125,140,132,117,117,113,107,120,134,127,127,130,111,104, - 118,115,120,140,133,122,123,116,103,114,129,124,132,139,116,109, - 118,107,112,137,133,124,130,120,100,112,124,114,132,144,119,116, - 122,103,105,130,127,123,138,126,102,114,118,105,130,144,123,126, - 129,103,103,127,122,122,144,131,106,119,115,98,126,139,122,133, - 137,108,105,124,114,117,144,134,115,128,116,94,119,131,120,137, - 143,114,109,121,104,110,141,132,120,136,118,96,117,122,114,136, - 142,118,117,123,101,105,132,125,124,142,123,104,118,114,105,131, - 140,123,127,127,100,103,124,116,125,145,125,111,121,109,102,128, - 134,123,135,131,104,109,120,107,122,141,126,122,129,109,101,122, - 122,120,141,136,113,118,117,101,121,139,126,132,135,111,104,119, - 114,116,141,134,117,126,117,99,119,129,119,134,139,116,112,120, - 106,109,135,128,120,134,119,99,115,120,113,133,141,119,118,123, - 102,107,133,125,122,139,123,104,119,117,107,131,139,119,124,130, - 103,105,127,115,120,143,126,110,124,114,100,125,136,120,131,135, - 105,108,125,110,119,143,127,114,127,114,99,123,129,115,133,136, - 109,115,125,106,116,139,125,123,136,118,103,123,122,113,137,138, - 115,121,122,100,113,133,121,126,139,118,106,123,116,111,137,135, - 118,129,124,102,114,126,115,125,138,120,113,124,108,105,131,128, - 121,137,127,106,116,119,110,128,141,123,122,127,107,106,127,122, - 121,138,127,110,120,117,105,124,135,122,129,134,110,109,124,112, - 118,141,129,117,127,115,99,119,127,116,133,137,110,112,123,106, - 115,139,127,121,135,118,101,122,122,109,134,139,114,121,126,101, - 111,134,120,122,142,120,102,123,115,103,135,138,115,129,129,99, - 110,130,112,121,144,120,107,128,112,99,132,133,114,136,134,103, - 114,127,105,119,144,121,115,135,111,98,129,126,113,139,136,106, - 118,126,101,118,141,119,119,138,113,101,127,118,109,137,133,109, - 125,126,99,116,135,116,124,142,116,109,128,113,107,136,132,115, - 132,126,102,118,129,110,125,141,117,115,130,111,107,133,125,117, - 137,127,106,122,123,106,126,136,117,123,130,106,108,128,116,118, - 139,126,112,126,118,106,128,132,117,130,131,108,114,125,111,119, - 137,122,117,130,116,106,126,124,115,133,131,111,119,123,106,119, - 135,121,122,133,114,106,125,119,114,135,131,112,123,122,103,118, - 132,116,123,137,115,110,127,114,110,136,130,115,131,125,103,117, - 129,112,126,141,117,114,129,110,107,133,126,115,134,126,102,119, - 125,107,126,141,118,121,134,109,106,131,120,113,138,128,105,123, - 121,100,123,137,116,126,137,109,107,129,114,113,141,128,110,129, - 120,99,123,131,112,128,138,110,113,128,108,111,138,125,117,136, - 122,103,124,125,111,132,139,114,119,127,104,110,133,120,118,138, - 121,107,125,119,108,131,134,115,126,129,106,113,129,114,120,139, - 122,114,129,116,105,128,128,115,132,131,107,117,126,108,120,139, - 120,118,133,114,105,129,122,112,135,131,108,123,126,103,119,135, - 114,121,138,113,108,132,117,110,138,130,110,130,126,100,121,132, - 109,124,140,112,113,135,112,108,139,125,109,136,126,100,125,130, - 104,126,140,109,117,137,108,107,137,118,107,138,124,101,129,127, - 101,127,138,108,121,139,107,110,138,114,108,140,123,104,132,126, - 100,128,134,106,123,139,108,114,138,112,111,140,121,107,134,124, - 102,128,130,105,125,136,108,117,136,110,113,138,119,111,136,123, - 106,130,127,106,127,131,107,120,131,108,115,134,115,115,135,119, - 110,131,123,109,130,128,111,126,129,110,120,131,114,120,133,117, - 116,130,118,113,130,123,115,129,124,112,124,125,112,124,129,115, - 121,128,114,116,129,118,117,131,122,114,126,121,111,125,126,114, - 124,127,112,118,127,114,119,132,120,116,129,119,110,126,124,113, - 127,129,112,120,127,110,117,132,118,117,134,120,110,128,123,110, - 130,131,112,124,130,107,115,132,114,117,137,118,109,130,119,104, - 130,129,109,128,133,107,119,133,110,117,139,118,112,135,118,104, - 131,125,108,133,134,107,123,133,105,116,138,115,115,139,117,105, - 132,121,105,134,133,108,126,132,103,117,134,110,116,139,116,109, - 133,117,105,132,128,109,131,131,104,119,131,107,117,138,115,113, - 135,115,106,131,123,109,132,131,107,124,130,106,120,135,114,118, - 137,115,111,133,119,110,134,128,110,130,129,105,123,132,110,121, - 136,112,113,133,113,109,134,122,110,133,125,104,126,127,105,124, - 134,109,119,135,110,112,136,117,112,139,123,106,132,125,104,129, - 134,108,126,137,108,117,138,113,113,140,119,108,135,121,102,131, - 129,104,127,134,104,118,136,107,115,140,115,110,138,118,103,133, - 126,105,132,135,104,123,136,105,117,141,115,113,141,118,105,134, - 123,105,134,133,104,125,133,103,117,137,111,115,140,115,107,134, - 119,105,134,130,106,128,131,103,119,134,109,119,140,116,112,134, - 116,106,132,125,109,132,129,105,122,128,107,121,137,115,117,133, - 113,108,130,119,112,134,126,109,125,122,106,122,131,115,124,133, - 113,115,127,114,115,133,124,116,129,118,107,122,123,114,128,132, - 115,121,125,110,117,130,121,122,132,119,112,123,118,113,129,129, - 118,127,125,109,118,126,116,123,135,121,117,127,114,110,129,127, - 117,132,128,108,119,124,110,122,137,119,119,132,113,107,128,121, - 112,134,129,108,123,125,104,119,136,116,122,138,113,107,129,115, - 107,136,129,109,129,126,100,120,134,111,124,142,113,111,133,113, - 105,137,127,109,135,128,101,122,131,105,123,142,113,115,136,109, - 104,135,122,110,140,130,103,126,129,102,124,141,112,120,138,108, - 107,134,117,109,140,128,106,129,126,101,124,136,110,124,139,109, - 110,132,112,109,139,125,109,133,124,101,124,131,109,127,138,109, - 115,131,109,111,138,121,113,136,121,103,126,124,106,129,134,109, - 121,131,105,113,135,116,117,140,119,106,129,118,104,132,132,111, - 129,129,103,117,132,111,121,141,116,112,132,113,105,134,127,111, - 135,130,103,121,128,105,123,141,115,118,136,109,104,132,120,112, - 141,130,106,126,124,100,124,139,112,124,138,107,106,132,114,110, - 142,129,109,132,124,97,122,133,109,128,142,109,111,131,108,107, - 141,127,113,139,124,97,122,128,105,130,144,111,117,132,103,106, - 137,121,115,143,125,102,125,122,101,129,140,113,126,135,104,107, - 132,114,116,145,126,109,129,116,99,127,134,114,133,137,106,112, - 127,107,115,142,123,116,134,115,100,125,123,111,135,135,110,120, - 124,102,115,136,120,124,139,115,106,124,115,111,136,133,116,129, - 123,102,117,129,114,127,139,117,113,125,110,108,133,127,118,134, - 124,105,119,123,109,127,138,118,121,129,108,108,131,121,118,140, - 126,107,123,120,104,127,137,116,126,134,107,109,130,114,115,143, - 126,109,129,118,99,125,132,111,130,138,106,112,130,108,113,144, - 124,112,136,118,97,126,128,107,133,140,106,117,132,103,112,143, - 120,116,143,119,99,129,123,103,136,140,107,123,132,98,110,139, - 115,118,146,118,102,130,118,100,136,138,110,131,134,99,113,135, - 110,119,147,119,108,132,113,97,132,131,110,135,134,100,114,129, - 103,118,145,119,114,135,110,98,130,124,111,140,135,106,120,125, - 99,118,140,117,123,139,111,103,128,115,110,141,133,112,129,123, - 98,119,134,114,130,143,113,111,128,108,109,141,129,118,138,122, - 99,120,124,108,133,142,115,120,129,102,108,135,120,120,144,122, - 104,123,116,101,131,137,115,129,131,100,109,130,112,121,147,123, - 112,129,112,98,129,131,114,137,135,103,114,126,104,118,145,123, - 118,136,112,98,126,123,110,139,137,107,120,125,98,115,141,119, - 123,143,114,101,127,117,106,140,137,111,128,127,96,114,136,114, - 125,147,117,107,129,110,102,137,132,113,135,128,97,115,128,106, - 125,146,117,115,132,107,101,133,125,114,140,129,102,120,123,101, - 125,142,117,123,135,107,105,130,117,115,143,129,109,126,119,100, - 124,135,116,130,137,108,110,127,110,116,142,127,117,131,116,101, - 123,126,113,134,136,111,116,124,104,114,137,122,121,135,116,103, - 122,118,109,135,135,114,124,124,101,113,132,117,124,141,117,107, - 125,113,106,136,134,115,132,128,100,115,130,111,126,146,119,114, - 131,110,102,136,129,115,140,130,100,117,125,101,124,146,117,119, - 136,106,99,132,120,112,145,132,103,123,122,95,122,143,114,126, - 142,106,102,131,113,109,147,133,108,132,123,92,121,136,110,131, - 148,109,107,131,105,105,145,130,113,140,123,92,120,128,104,132, - 148,111,115,131,100,102,138,123,115,145,126,98,122,121,99,130, - 144,114,125,135,100,103,132,115,116,148,128,106,127,117,97,128, - 138,116,134,138,104,109,128,107,117,146,126,116,134,114,97,126, - 127,113,139,139,109,118,124,101,116,141,122,124,140,114,102,124, - 116,110,139,135,113,127,122,98,116,132,115,128,142,114,109,125, - 108,106,136,128,116,134,122,98,116,123,108,129,141,115,117,128, - 104,106,134,123,119,141,125,103,121,120,103,128,140,116,125,133, - 104,107,131,116,117,145,127,108,127,118,99,127,136,114,131,136, - 104,108,129,109,115,144,126,113,133,117,97,126,130,111,134,139, - 107,115,128,103,113,142,123,117,139,117,99,126,123,108,137,140, - 111,122,129,101,113,139,119,122,143,118,103,127,116,104,137,136, - 113,129,129,99,113,131,112,124,144,118,110,128,109,102,133,130, - 116,136,129,101,115,124,106,125,143,120,119,131,108,103,129,123, - 117,140,130,107,120,119,102,123,139,120,127,136,109,106,126,114, - 115,141,130,112,127,117,98,121,132,116,132,140,110,111,126,107, - 111,141,127,117,135,119,97,121,125,109,135,143,112,119,129,101, - 108,138,122,120,145,121,100,125,118,101,135,141,112,127,132,97, - 108,134,112,120,149,121,105,131,113,96,134,135,111,136,137,98, - 112,131,103,117,149,121,112,138,112,95,132,128,109,141,140,102, - 118,129,97,116,146,118,118,143,112,97,131,120,105,142,139,106, - 126,129,94,114,139,113,121,146,113,102,130,113,102,139,135,110, - 133,129,96,116,133,109,124,146,116,110,132,109,102,136,128,113, - 138,129,100,119,126,104,125,143,117,120,134,107,105,133,121,115, - 142,129,106,124,121,102,126,137,116,128,135,107,110,129,113,117, - 142,125,113,129,116,101,125,128,114,133,134,108,115,124,106,117, - 138,122,120,134,114,103,125,121,113,136,134,112,122,123,102,117, - 134,118,124,138,115,107,126,115,110,137,133,115,130,125,100,117, - 130,113,127,142,116,111,128,109,106,135,129,116,136,127,100,118, - 125,106,126,142,116,117,132,107,104,133,123,115,141,129,103,122, - 122,100,124,140,116,124,136,106,105,130,115,113,143,129,108,128, - 120,96,123,134,113,130,141,108,110,130,109,112,143,128,115,135, - 120,98,123,127,109,133,142,112,117,128,103,110,137,122,119,140, - 120,101,123,120,106,133,139,115,126,130,103,111,132,117,120,142, - 122,108,126,115,103,130,133,116,131,132,105,113,127,110,120,141, - 122,115,131,113,103,128,126,115,136,133,107,119,125,104,120,139, - 119,121,136,112,104,128,118,111,138,132,109,126,124,99,119,134, - 113,125,140,110,108,129,111,107,139,127,110,133,124,98,122,130, - 107,128,142,111,114,133,107,107,139,123,112,140,125,99,125,126, - 102,129,141,110,120,136,104,107,138,118,113,144,125,102,129,123, - 99,130,139,110,126,137,103,110,135,113,113,145,124,107,132,120, - 98,128,134,110,130,138,105,113,133,108,113,142,123,111,135,119, - 99,127,128,109,132,138,108,117,130,106,114,139,121,117,138,118, - 103,126,121,108,133,135,112,124,128,104,114,133,117,121,138,118, - 109,126,115,108,131,130,116,129,126,106,117,125,113,125,136,119, - 118,126,111,110,128,123,120,134,125,110,120,119,110,125,132,119, - 125,127,110,113,125,117,121,135,124,116,125,116,108,125,126,118, - 129,129,112,116,123,111,119,135,123,120,130,116,107,124,122,114, - 132,131,113,121,124,106,117,133,119,121,135,117,107,125,118,110, - 133,132,113,126,127,104,116,131,114,121,139,117,110,129,115,106, - 133,130,113,131,130,103,118,130,109,121,140,118,114,133,113,104, - 132,125,111,135,131,105,122,129,105,121,139,116,118,137,112,105, - 131,120,109,136,130,107,126,127,103,121,136,113,122,138,113,109, - 131,116,109,136,128,110,130,126,103,121,131,111,124,137,113,113, - 131,112,110,134,124,113,133,125,105,123,127,109,126,136,114,118, - 131,111,111,133,120,114,135,123,107,126,123,106,127,133,112,123, - 132,108,114,132,115,116,138,121,110,130,120,105,129,129,111,129, - 132,107,118,131,109,118,138,117,114,135,116,105,131,124,109,134, - 131,106,123,130,104,119,137,113,117,138,114,107,133,119,107,136, - 130,108,129,130,103,121,135,110,120,139,112,109,134,114,105,135, - 125,107,131,128,102,123,132,107,122,140,113,114,136,113,107,136, - 123,109,135,128,104,125,130,105,123,137,112,118,135,112,109,134, - 119,110,135,126,107,127,126,105,123,133,112,121,135,112,113,132, - 116,112,134,123,111,129,124,107,125,129,112,125,133,113,118,131, - 114,116,133,121,115,131,121,110,126,124,112,127,129,114,122,128, - 113,119,129,117,120,131,119,115,126,119,114,128,125,116,126,124, - 113,121,125,114,121,129,117,118,126,116,114,127,120,116,128,123, - 113,123,123,112,123,128,115,121,128,114,115,128,117,116,130,123, - 114,127,123,110,124,128,113,123,131,113,116,130,115,114,133,122, - 113,131,124,108,126,128,110,125,133,112,119,133,112,114,134,119, - 112,134,123,107,129,126,107,126,133,109,121,135,111,115,136,116, - 112,136,121,108,132,125,105,128,131,107,124,135,109,117,135,112, - 112,136,119,109,134,123,106,130,129,107,126,133,108,119,134,111, - 114,135,116,111,134,121,108,131,126,107,127,131,108,122,133,111, - 118,135,115,114,134,119,110,131,123,109,129,128,109,124,130,110, - 120,133,113,116,133,116,112,132,120,110,131,124,109,127,127,108, - 123,130,110,119,132,112,115,132,116,112,133,121,110,131,124,108, - 127,128,109,124,131,110,119,133,112,115,134,116,112,134,121,109, - 131,125,108,128,130,108,123,132,110,118,134,113,114,135,118,110, - 133,123,108,130,128,108,127,132,109,122,134,111,116,136,116,112, - 135,121,109,132,125,107,128,131,108,123,134,109,117,134,113,112, - 135,119,110,133,123,107,129,128,108,126,133,109,120,133,111,114, - 134,117,112,134,121,109,130,125,108,127,130,110,123,132,110,117, - 131,114,114,133,119,112,130,121,109,127,126,111,126,130,112,121, - 129,112,118,131,117,117,131,119,113,127,121,113,128,126,114,125, - 126,112,121,127,116,121,130,118,117,127,118,115,127,123,117,127, - 123,114,122,123,115,123,128,118,121,127,116,117,127,120,118,129, - 122,115,124,121,113,123,126,116,123,128,115,117,127,117,117,131, - 122,115,127,122,111,125,127,114,125,131,114,119,129,113,115,132, - 120,115,132,122,109,127,125,110,127,131,111,120,130,109,114,133, - 116,113,134,120,108,129,122,106,128,130,109,124,133,108,117,134, - 113,115,138,119,110,133,121,105,130,128,108,127,133,107,118,134, - 111,116,138,118,112,135,120,106,131,126,108,129,132,107,121,132, - 109,117,136,116,114,135,118,107,131,124,109,131,130,109,123,130, - 107,118,134,114,117,135,117,110,131,120,109,131,128,111,127,128, - 108,121,132,113,121,135,116,114,131,116,110,131,124,113,130,125, - 108,123,127,111,124,134,114,119,130,112,112,131,119,114,133,122, - 109,126,122,108,126,130,113,123,130,109,115,129,115,117,135,121, - 113,129,119,107,127,127,112,128,130,109,118,128,110,118,135,119, - 116,132,117,107,127,123,111,131,131,111,123,128,108,118,134,118, - 120,136,117,109,128,119,109,132,130,112,126,128,106,118,131,114, - 121,138,118,113,130,117,108,132,128,113,131,129,107,120,129,110, - 121,137,118,117,132,114,108,130,123,114,134,129,109,123,126,107, - 122,134,116,121,133,112,109,128,117,112,134,126,111,126,122,105, - 121,130,114,124,134,113,114,127,113,113,133,124,115,130,121,107, - 122,124,112,126,132,114,118,126,110,114,130,120,118,132,121,110, - 124,121,112,127,130,117,124,127,111,116,128,117,120,134,121,114, - 126,118,110,127,127,116,127,127,110,117,126,113,120,134,120,116, - 129,116,109,128,125,115,132,129,110,121,126,109,120,134,117,119, - 133,114,109,129,120,112,134,128,109,125,125,104,120,133,114,122, - 137,113,111,131,116,110,136,128,111,130,126,103,122,132,111,125, - 138,113,114,132,112,109,137,125,112,134,125,103,123,128,108,126, - 139,113,118,132,109,108,134,121,113,137,125,105,124,124,105,126, - 137,114,122,133,109,110,131,117,114,138,126,110,127,122,104,125, - 133,114,127,135,110,113,128,112,115,137,124,114,130,119,104,123, - 126,112,129,134,112,117,126,108,115,134,121,119,134,119,107,123, - 120,111,131,132,115,124,125,106,115,129,117,123,136,120,113,125, - 115,111,131,128,118,130,126,108,118,124,113,125,135,120,119,127, - 112,110,128,122,119,134,126,111,121,120,109,124,132,118,124,129, - 111,111,125,116,117,135,126,114,125,119,106,123,129,117,127,133, - 112,114,125,112,115,135,125,117,130,120,105,123,125,114,129,134, - 114,119,127,109,114,134,122,118,134,121,107,124,122,110,130,134, - 115,123,128,107,113,131,118,119,136,120,109,125,118,107,128,130, - 115,127,129,107,115,128,113,120,137,121,114,128,116,107,128,127, - 115,130,130,109,118,126,111,121,136,121,119,130,115,109,127,122, - 116,133,129,113,121,123,108,120,131,119,123,131,115,111,124,118, - 115,132,128,116,125,122,108,120,128,118,126,133,117,115,124,114, - 114,132,126,119,130,122,108,120,124,114,127,134,117,118,125,109, - 112,129,122,120,134,122,108,121,119,109,127,132,117,124,128,108, - 112,128,116,120,137,123,112,125,116,105,127,129,116,130,131,108, - 114,126,110,118,138,122,117,131,116,104,126,125,114,134,134,111, - 120,126,107,118,137,121,121,136,116,105,125,120,111,134,134,113, - 124,125,104,115,132,116,122,138,117,108,125,114,107,131,130,115, - 128,127,104,115,127,113,122,138,120,114,127,114,107,129,127,117, - 133,129,109,118,124,110,122,137,121,120,130,114,108,126,122,117, - 133,129,113,121,121,107,120,131,120,124,131,115,111,123,117,117, - 133,128,119,126,120,109,120,126,119,129,132,118,118,123,114,117, - 131,126,123,129,120,111,120,120,117,129,130,120,122,121,111,116, - 126,121,124,130,119,114,120,115,114,127,127,120,126,122,111,116, - 122,117,124,131,120,118,122,113,112,126,125,121,130,124,111,118, - 120,113,124,132,120,121,126,113,111,125,121,119,133,126,113,121, - 120,109,122,132,119,124,130,113,111,125,117,117,135,127,115,125, - 120,107,122,129,117,127,134,114,113,125,113,114,134,127,118,130, - 121,105,120,125,114,128,135,116,117,125,109,112,131,123,119,134, - 122,107,120,120,110,128,135,118,123,127,109,111,128,120,121,136, - 125,112,122,118,108,125,132,120,128,130,111,113,124,116,120,136, - 126,117,126,117,107,122,126,119,130,131,114,116,121,111,117,133, - 124,122,129,117,109,121,121,116,131,131,117,121,122,109,117,129, - 121,125,133,119,112,122,116,113,130,129,119,127,123,107,117,125, - 116,126,135,119,116,124,112,111,129,125,120,132,125,109,119,121, - 111,125,133,119,121,127,110,110,126,119,119,135,125,112,122,119, - 108,124,131,118,126,131,112,113,126,116,118,135,126,115,126,119, - 106,122,127,116,127,132,113,115,124,112,115,133,124,118,130,120, - 107,122,124,114,128,132,115,119,125,110,114,131,122,120,132,121, - 110,122,121,113,128,132,118,123,126,110,115,128,120,122,134,122, - 114,123,118,112,127,129,119,127,126,111,116,123,116,122,132,122, - 118,123,115,111,124,124,120,129,125,114,117,119,113,122,130,122, - 123,125,114,113,121,120,121,130,126,118,121,117,112,121,126,123, - 127,127,117,116,119,116,121,130,127,123,125,118,112,120,123,121, - 129,129,119,119,120,113,117,128,125,124,129,120,112,119,119,116, - 128,130,120,123,122,111,115,126,121,124,133,122,114,122,116,111, - 127,130,120,128,126,110,115,124,115,121,135,122,116,125,114,107, - 124,125,117,130,129,111,116,123,110,119,134,122,120,130,115,108, - 124,121,115,132,131,114,121,123,107,117,131,120,122,134,117,110, - 124,117,112,131,130,116,125,124,107,116,127,117,123,135,120,114, - 125,115,110,128,127,118,128,126,109,117,124,114,122,134,121,118, - 126,115,110,126,124,119,130,127,113,120,122,112,122,132,121,122, - 127,115,112,124,120,118,131,126,116,123,120,111,121,128,120,125, - 129,116,115,123,116,118,130,125,119,126,119,111,122,124,118,128, - 129,117,119,122,113,118,129,122,121,128,118,113,122,120,117,128, - 128,118,123,122,111,118,127,120,124,131,120,115,123,117,115,129, - 128,120,127,124,112,119,124,117,124,132,120,118,124,115,112,126, - 124,119,129,124,111,118,121,113,123,131,120,120,126,113,111,125, - 121,118,131,126,113,121,120,110,121,130,119,123,129,114,112,123, - 116,116,131,126,116,124,120,108,120,127,118,126,132,116,115,124, - 114,115,130,125,119,129,122,110,120,123,116,127,132,119,120,125, - 113,115,128,123,122,131,123,113,121,119,113,125,129,119,123,124, - 112,114,123,119,121,131,124,117,122,118,113,124,127,121,127,127, - 116,118,122,117,121,130,124,121,125,118,113,122,123,120,128,127, - 117,119,120,113,118,127,121,122,127,117,113,121,118,117,127,126, - 118,123,121,112,119,125,119,124,129,119,116,123,117,115,128,125, - 119,127,123,112,120,124,116,124,130,119,119,125,115,115,127,122, - 119,129,123,113,122,122,114,124,129,117,122,127,113,114,126,119, - 118,130,122,113,123,120,111,123,127,116,123,127,113,115,125,116, - 117,130,123,116,125,120,111,123,126,117,125,129,115,117,125,116, - 118,131,123,118,127,120,111,123,124,116,126,129,117,120,125,115, - 118,129,123,121,129,121,114,123,122,116,127,129,119,123,125,114, - 117,127,120,122,130,121,116,122,119,115,125,126,120,125,124,114, - 118,123,118,122,129,122,119,124,117,115,124,123,121,127,124,116, - 119,120,115,121,126,121,122,123,116,115,121,120,120,127,124,119, - 122,119,115,121,124,121,125,125,118,117,120,117,119,126,124,121, - 125,119,114,120,121,118,125,126,119,120,121,114,117,125,121,121, - 126,119,114,120,119,115,124,126,119,122,123,114,117,125,119,121, - 129,121,116,124,118,114,125,125,118,126,126,114,119,125,117,121, - 131,121,118,127,119,113,125,124,117,127,127,115,120,125,114,120, - 130,120,119,128,118,114,125,122,116,127,127,116,123,125,114,119, - 128,118,120,129,118,115,125,120,115,126,125,116,124,124,114,119, - 126,118,121,129,119,117,125,119,115,125,124,117,124,124,115,120, - 124,117,121,127,119,118,124,118,116,124,122,118,125,123,116,121, - 123,117,121,126,120,121,125,119,118,124,121,119,126,123,118,123, - 122,118,122,125,120,123,125,119,119,123,119,120,125,122,119,123, - 120,117,122,122,119,124,123,118,120,122,118,121,125,121,121,124, - 119,118,123,121,119,125,123,119,122,121,117,121,124,120,122,125, - 119,119,124,119,119,126,123,119,124,122,116,121,123,118,122,126, - 118,119,124,118,118,125,122,119,125,122,115,122,123,116,122,127, - 118,120,125,117,117,125,121,118,126,123,115,123,122,115,122,126, - 118,121,126,117,117,125,119,117,127,123,116,124,122,114,122,125, - 117,122,127,118,119,125,118,117,126,122,117,125,121,114,122,123, - 116,122,126,118,120,124,117,117,125,120,118,125,122,116,123,122, - 116,123,125,118,122,125,118,119,125,120,119,125,121,118,123,121, - 117,123,124,118,122,124,118,120,124,119,120,125,121,119,124,120, - 118,123,122,118,123,123,118,121,123,118,121,124,119,119,124,119, - 118,124,121,118,124,122,117,122,123,118,122,125,119,121,124,118, - 119,124,120,119,126,122,118,124,122,118,124,125,119,123,125,118, - 120,125,119,120,126,121,118,124,121,116,124,124,118,124,125,117, - 120,124,117,119,126,120,117,124,119,115,123,122,116,123,124,116, - 120,124,116,119,126,120,118,126,120,115,123,121,116,123,125,117, - 122,125,116,119,126,119,120,127,121,117,125,121,116,125,125,118, - 124,125,116,120,125,118,120,126,120,118,125,120,116,123,122,117, - 123,124,117,120,123,117,120,125,120,120,125,120,118,124,121,118, - 124,123,118,121,122,117,120,123,119,120,124,119,119,123,120,119, - 124,122,119,122,121,118,121,123,120,122,124,120,121,123,120,120, - 124,122,121,123,121,119,122,122,120,122,123,119,121,122,119,120, - 123,121,121,123,120,119,122,121,120,123,123,120,122,122,118,121, - 123,120,121,124,120,119,123,120,119,125,123,120,123,123,117,122, - 124,120,122,126,120,120,124,119,118,125,123,119,125,122,116,122, - 123,118,122,126,119,120,124,118,117,124,121,118,125,122,116,121, - 122,115,121,126,119,120,125,117,116,123,119,118,126,122,116,122, - 121,114,121,125,118,122,127,118,117,125,120,118,127,124,118,124, - 122,115,121,124,118,122,127,119,118,123,118,116,125,123,119,125, - 123,115,121,122,117,122,127,119,120,124,117,116,124,121,119,126, - 122,116,121,121,115,122,125,120,122,124,118,118,124,120,121,127, - 124,120,124,122,118,123,125,121,125,125,119,119,122,119,121,125, - 122,121,123,120,117,121,121,120,123,123,119,120,120,116,119,122, - 120,121,122,119,117,120,119,119,123,123,120,122,121,118,121,123, - 121,123,125,121,120,122,119,119,124,122,121,124,121,117,121,122, - 119,123,126,121,121,123,118,119,124,121,121,125,122,117,121,121, - 117,123,125,119,122,124,117,118,124,120,121,127,122,118,123,120, - 116,123,125,119,123,125,116,118,123,118,119,127,122,118,123,119, - 114,122,123,118,124,125,117,119,123,116,119,127,122,119,125,120, - 114,122,122,118,125,126,118,120,123,116,118,126,122,121,127,121, - 116,122,121,117,125,127,120,123,124,116,118,125,121,121,128,122, - 117,122,119,116,123,125,120,124,124,116,118,122,118,121,127,123, - 119,123,118,115,122,123,120,125,124,118,119,120,117,121,126,123, - 122,124,119,117,120,120,120,126,124,120,121,120,116,120,123,121, - 124,125,119,118,120,118,119,125,124,122,123,120,116,119,121,120, - 124,125,120,120,121,117,118,123,122,123,125,121,117,120,119,118, - 124,125,121,123,122,116,118,122,120,122,127,122,118,121,119,116, - 123,125,121,125,124,117,118,122,118,121,128,123,120,123,118,115, - 122,123,120,125,125,117,119,122,116,120,127,122,121,126,119,115, - 122,122,119,126,126,118,121,122,114,119,126,121,122,127,119,115, - 122,119,117,126,126,118,123,122,114,118,125,119,122,128,120,116, - 122,118,115,125,125,119,124,123,114,118,123,117,122,128,121,118, - 123,117,115,124,124,120,126,125,116,119,122,117,122,128,122,121, - 125,118,115,122,122,120,127,125,118,120,120,115,121,126,122,124, - 126,118,116,121,119,120,127,125,121,123,120,115,120,123,121,125, - 126,120,119,120,116,119,125,124,123,125,119,115,119,119,119,125, - 125,121,121,120,115,118,123,122,124,126,121,118,120,117,118,124, - 124,122,124,121,115,118,121,119,124,127,122,120,121,117,116,123, - 123,123,126,123,117,119,119,116,122,126,122,122,123,116,115,121, - 121,120,127,125,118,120,120,114,120,126,121,123,126,118,115,121, - 118,118,127,125,119,123,121,113,120,125,120,124,129,119,117,123, - 117,117,127,125,120,126,122,113,119,122,117,124,129,120,119,124, - 115,115,125,123,120,128,123,115,120,121,115,123,129,121,122,125, - 116,115,124,121,120,129,125,117,122,121,114,122,127,121,124,126, - 117,116,122,119,120,128,125,120,123,120,114,121,124,121,125,127, - 118,117,120,116,118,125,123,121,124,119,114,119,120,118,125,126, - 119,120,120,115,118,124,122,123,126,121,117,120,118,118,125,125, - 122,123,121,115,118,121,120,124,127,122,120,121,117,117,124,124, - 123,126,122,117,119,119,118,124,126,122,122,121,115,116,122,121, - 123,127,123,118,120,118,116,122,125,122,124,123,117,117,120,118, - 121,128,124,120,122,118,114,121,124,121,126,126,118,118,121,116, - 119,127,124,122,126,120,114,120,122,119,126,128,119,119,121,114, - 117,126,123,122,128,121,114,121,120,116,126,129,121,123,124,114, - 116,125,120,122,130,123,116,122,118,114,124,127,120,125,125,114, - 116,122,117,120,129,122,118,122,116,111,121,122,118,125,125,115, - 117,120,114,119,128,123,121,125,118,113,121,121,118,127,127,118, - 121,121,114,118,126,122,124,128,120,116,122,119,118,127,128,121, - 124,122,114,118,123,120,124,129,121,119,122,117,116,125,125,122, - 127,123,115,119,121,117,124,128,121,121,123,116,116,124,122,122, - 129,124,116,121,119,114,123,126,120,123,124,114,115,122,117,120, - 128,123,118,123,118,113,122,124,119,126,126,115,117,121,115,119, - 128,122,120,125,118,112,121,122,118,127,128,118,120,123,114,119, - 128,122,122,128,120,114,122,121,117,127,129,119,123,124,113,117, - 126,120,123,130,122,116,123,119,114,126,127,119,125,125,113,117, - 124,118,122,130,122,118,123,117,113,124,124,119,126,125,114,117, - 122,115,120,129,122,120,125,117,113,122,122,119,128,126,117,120, - 121,114,120,127,122,123,127,118,115,121,119,118,127,126,119,123, - 120,114,119,124,121,125,128,120,118,121,117,118,126,124,122,126, - 121,115,119,120,119,125,127,121,121,121,115,117,123,122,123,127, - 121,116,119,118,116,124,126,121,124,122,115,117,121,119,123,128, - 122,119,122,117,115,123,124,121,127,125,116,118,121,116,122,129, - 122,121,125,117,114,123,122,120,129,126,117,121,121,113,120,128, - 121,123,128,117,114,123,119,117,129,126,117,123,122,111,119,126, - 118,123,130,118,115,123,116,114,128,126,118,127,124,112,119,125, - 116,123,131,119,118,125,115,113,126,123,118,128,124,112,119,122, - 113,122,130,119,120,126,115,113,124,121,117,129,125,114,121,121, - 112,121,128,119,122,128,116,114,123,119,117,129,125,117,123,121, - 113,121,126,119,124,129,118,117,123,117,118,128,125,120,126,121, - 114,121,123,119,126,128,120,120,122,115,118,126,122,122,127,121, - 116,121,119,117,125,126,120,123,121,114,117,122,119,123,127,121, - 118,121,117,117,125,124,122,126,122,115,119,120,117,124,127,122, - 122,123,117,117,124,122,122,128,123,118,121,119,115,123,126,121, - 124,125,116,117,122,119,120,129,124,119,123,119,113,121,124,120, - 125,127,117,117,121,115,117,128,123,119,125,119,112,121,123,117, - 125,128,117,119,123,114,116,127,122,120,128,121,113,121,121,115, - 126,129,119,122,125,114,116,126,119,120,130,122,115,123,120,113, - 125,128,119,125,127,114,117,125,118,120,131,123,118,126,119,112, - 124,125,118,126,127,115,118,123,114,118,129,121,119,126,118,112, - 122,122,117,127,127,117,120,123,113,118,127,120,121,128,120,115, - 123,120,116,127,126,118,124,123,113,119,125,118,122,129,119,117, - 124,117,115,126,124,119,127,123,114,121,123,116,123,129,119,120, - 125,115,115,126,121,119,128,123,114,122,121,113,124,127,118,123, - 127,115,117,125,118,119,130,122,116,125,120,112,124,125,116,124, - 127,114,117,124,115,118,129,121,117,127,119,112,123,123,115,126, - 128,116,120,125,114,118,129,120,119,129,120,113,124,122,115,127, - 128,117,123,127,115,119,129,120,120,131,121,115,126,121,114,127, - 127,117,124,126,114,119,126,117,120,129,120,116,125,119,114,125, - 124,117,125,125,114,119,124,116,120,128,120,119,126,118,115,125, - 122,118,127,125,116,121,123,115,121,127,120,121,126,117,116,123, - 119,118,127,123,118,123,121,114,121,124,119,123,126,118,118,122, - 117,118,125,122,120,124,120,115,121,121,117,124,125,118,121,122, - 116,119,125,121,122,127,120,117,122,120,117,126,126,120,124,123, - 116,119,124,118,122,128,121,118,124,118,115,125,123,118,126,124, - 114,119,123,115,120,128,119,119,126,117,113,124,121,116,127,125, - 115,122,124,113,120,128,118,120,128,117,114,126,120,115,128,125, - 115,125,124,112,120,127,116,121,130,117,116,127,118,114,129,124, - 116,127,125,112,122,127,115,122,130,117,118,128,117,114,129,123, - 116,128,125,113,123,126,114,123,130,117,120,128,117,116,128,121, - 116,129,124,114,124,124,114,123,129,117,121,128,116,117,128,119, - 117,129,122,115,125,122,113,124,126,116,123,127,115,118,126,116, - 118,128,120,116,126,120,113,124,123,116,125,125,115,120,124,114, - 119,128,119,119,127,118,115,125,120,116,127,125,116,123,123,114, - 120,126,117,121,128,118,117,125,118,116,127,123,118,126,123,113, - 121,124,116,123,128,118,119,125,116,116,126,121,118,128,123,114, - 123,123,114,123,128,117,121,127,116,116,127,119,117,129,124,115, - 125,122,113,123,127,116,123,128,115,116,126,117,116,129,122,115, - 126,121,111,122,125,114,123,128,115,118,126,114,116,128,120,116, - 128,121,113,124,123,114,125,128,116,122,127,115,118,128,119,118, - 130,121,115,126,122,114,126,126,116,124,127,115,120,127,117,119, - 129,120,117,127,120,114,126,124,116,125,125,114,121,126,116,120, - 128,118,118,127,118,115,126,121,115,126,124,115,122,124,114,121, - 127,117,119,127,117,116,126,120,116,127,122,115,124,123,114,123, - 127,116,122,128,116,118,128,119,117,129,122,115,127,122,113,125, - 126,115,124,128,115,119,127,116,117,130,120,116,129,121,113,126, - 124,113,126,128,113,121,128,113,118,130,118,117,131,120,113,127, - 122,112,127,127,113,124,128,111,118,129,115,117,131,118,113,128, - 119,110,127,125,112,125,127,111,119,128,113,118,131,118,115,129, - 118,110,127,124,112,127,127,111,121,127,112,118,131,117,117,130, - 118,112,127,122,113,128,127,114,124,127,113,120,129,117,120,130, - 119,115,127,120,114,127,124,115,125,125,114,122,127,116,122,129, - 118,118,127,118,116,127,122,117,126,123,115,123,123,115,123,126, - 117,121,125,116,118,125,119,119,126,120,117,123,120,116,124,123, - 118,124,124,117,121,125,119,122,127,120,120,125,120,118,125,122, - 118,125,123,117,122,123,117,122,126,119,121,125,119,118,125,121, - 119,127,124,117,124,124,117,123,127,118,121,127,118,117,126,119, - 117,127,122,115,124,122,113,122,126,115,121,127,115,117,126,118, - 116,128,122,115,127,123,113,124,127,115,123,129,115,118,128,116, - 116,129,120,115,128,121,111,124,124,112,123,128,114,120,127,114, - 115,128,118,116,129,121,112,125,122,112,125,128,115,122,128,114, - 117,128,117,117,130,121,114,126,121,112,125,126,115,125,128,114, - 119,127,116,118,130,120,117,128,120,113,125,124,115,126,127,114, - 121,126,114,119,129,119,119,129,119,114,126,121,114,127,125,115, - 124,125,112,120,127,116,120,130,117,116,127,118,114,128,123,115, - 127,124,112,123,126,114,122,130,116,119,129,116,115,129,121,116, - 130,124,113,126,125,113,125,130,115,122,130,115,117,130,118,116, - 131,122,113,127,123,111,124,127,113,122,129,113,117,129,116,116, - 131,120,114,128,122,111,126,126,113,124,129,112,118,128,114,116, - 130,119,114,129,120,111,126,124,112,125,128,112,120,127,113,117, - 130,118,116,129,120,112,126,123,113,126,127,114,122,126,114,119, - 128,118,119,127,120,117,124,121,118,124,123,119,122,122,119,121, - 122,121,121,122,121,121,121,121,121 }; diff --git a/firmware/src/sound.c b/firmware/src/sound.c index aa12cb9..f4b8ff4 100644 --- a/firmware/src/sound.c +++ b/firmware/src/sound.c @@ -14,7 +14,6 @@ #include "hardware/pwm.h" #include "ring.h" -#include "music.h" #include "config.h" #include "board_defs.h" @@ -22,8 +21,8 @@ static const uint8_t sound_gpio[2] = SOUND_DEF; static int slice_num[2]; static int wav_pos[2]; -static const int wav_len[2] = { sizeof(MUSIC_DATA), sizeof(RING_DATA)}; -static const uint8_t *wav_data[2] = { MUSIC_DATA, RING_DATA}; +static const int wad_sound_len = sizeof(RING_DATA); +static const uint8_t *wad_sound = RING_DATA; static bool active[2]; void pwm_interrupt_handler() @@ -39,14 +38,21 @@ void pwm_interrupt_handler() continue; } - int len = wav_len[i]; - const uint8_t *data = wav_data[i]; - if (wav_pos[i] < (len << 3) - 1) { - pwm_set_gpio_level(gpio, data[wav_pos[i] >> 3]); - wav_pos[i]++; - } else { + int pos = wav_pos[i] >> 3; + if (pos >= wad_sound_len) { + pos = 0; wav_pos[i] = 0; } + + static int amplitude = 0; + if (wav_pos[i] & 0x07) { + amplitude = wad_sound[pos] * geki_cfg->sound.volume / 200; + if (amplitude > 250) { + amplitude = 250; + } + } + pwm_set_gpio_level(gpio, amplitude); + wav_pos[i]++; } } @@ -65,7 +71,7 @@ void sound_init() irq_set_enabled(PWM_IRQ_WRAP, true); pwm_config cfg = pwm_get_default_config(); - pwm_config_set_clkdiv(&cfg, 8.0f); + pwm_config_set_clkdiv(&cfg, 4.0f); // 8.0f: 11kHz, 4.0f: 22kHz, 2.0f: 44kHz pwm_config_set_wrap(&cfg, 250); for (int i = 0; i < 2; i++) { @@ -83,7 +89,7 @@ void sound_toggle(bool on) void sound_set(int id, bool on) { - if (!geki_cfg->sound.enabled) { + if (!geki_cfg->sound.volume) { active[id] = false; return; }