commit 4957b460763d0188a53cf99ab0d6b38f889d6d8b
Author: Sophie <info@soophie.de>
Date: Sat, 14 Dec 2024 22:47:38 +0000
feat: Initial commit
Diffstat:
39 files changed, 9052 insertions(+), 0 deletions(-)
diff --git a/.gitignore b/.gitignore
@@ -0,0 +1 @@
+aoc
diff --git a/Makefile b/Makefile
@@ -0,0 +1,8 @@
+CC=cc
+CFLAGS=-Werror -Wextra -Wall
+
+build: src/*.c
+ $(CC) -o aoc $(CFLAGS) $^
+
+clean:
+ rm ./aoc
diff --git a/src/main.c b/src/main.c
@@ -0,0 +1,109 @@
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <dlfcn.h>
+#include <time.h>
+#include <wchar.h>
+
+typedef struct {
+ char *uid;
+ void *handle;
+ long (*perform)(char *data);
+} task_t;
+
+char *load_data(char *task_uid) {
+ // convert YEAR_MT_ST to YEAR_MT
+ int task_uid_len = strlen(task_uid);
+ int idx = 0;
+ for (int i = 0; i < task_uid_len; i++) {
+ char c = task_uid[i];
+ if (c == '_') {
+ idx = i;
+ }
+ }
+ char task_uid_base[idx + 1];
+ snprintf(task_uid_base, idx + 1, "%s", task_uid);
+ char filename[100];
+ snprintf(filename, 100, "txt/%s.txt", task_uid_base);
+ FILE *fp = fopen(filename, "r");
+ if (fp == NULL) {
+ return NULL;
+ }
+ fseek(fp, 0, SEEK_END);
+ int len = ftell(fp);
+ fseek(fp, 0, SEEK_SET);
+ char *data = calloc(len + 1, sizeof(char));
+ fread(data, sizeof(char), len, fp);
+ data[len] = '\0';
+ return data;
+}
+
+void load_task(task_t *task, char *task_uid) {
+ task->uid = task_uid;
+ char cmd[100];
+ snprintf(cmd, 100, "cc -shared -fPIC -o %s.so -Werror -Wextra -Wall -lm -pedantic src/tasks/aoc_%s.c", task_uid, task_uid);
+ FILE *fp = popen(cmd, "r");
+ if (fp == NULL) {
+ return;
+ }
+ pclose(fp);
+ char filename[100];
+ snprintf(filename, 100, "./%s.so", task_uid);
+ task->handle = dlopen(filename, RTLD_LAZY);
+ if (task->handle == NULL) {
+ printf("Error: failed to load task %s!\n%s\n", task_uid, dlerror());
+ return;
+ }
+ task->perform = dlsym(task->handle, "perform");
+ char *err = dlerror();
+ if (err != 0) {
+ printf("Error: failed to link task function %s!\n%s\n", task_uid, err);
+ return;
+ }
+}
+
+void unload_task(task_t *task) {
+ if (task == NULL || task->handle == NULL) {
+ return;
+ }
+ dlclose(task->handle);
+ char cmd[100];
+ snprintf(cmd, 100, "rm %s.so", task->uid);
+ FILE *fp = popen(cmd, "r");
+ if (fp == NULL) {
+ return;
+ }
+ pclose(fp);
+}
+
+int main(int argc, char **argv) {
+ if (argc < 2) {
+ printf("Error: Usage: aoc <task-id>\n");
+ return 1;
+ }
+ char *task_uid = argv[1];
+ task_t task = { NULL, NULL, NULL };
+ load_task(&task, task_uid);
+ if (task.handle == NULL) {
+ return 1;
+ }
+ char *data = load_data(task_uid);
+ printf("task_uid: %s\n", task_uid);
+ struct timespec time_set;
+ clock_gettime(CLOCK_MONOTONIC, &time_set);
+ long result = task.perform(data);
+ struct timespec time_end;
+ clock_gettime(CLOCK_MONOTONIC, &time_end);
+ unload_task(&task);
+ if (data != NULL) {
+ free(data);
+ }
+ long dur_sec = time_end.tv_sec - time_set.tv_sec;
+ long dur_ns = time_end.tv_nsec - time_set.tv_nsec;
+ long dur_ms = dur_ns / 1000000;
+ long dur_ys = (dur_ns / 1000) % 1000;
+ dur_ns = dur_ns % 1000;
+ printf("time: %lds %ldms %ldµs %ldns\n", dur_sec, dur_ms, dur_ys, dur_ns);
+ printf("result: %ld\n", result);
+ return 0;
+}
diff --git a/src/tasks/aoc_2015_1_1.c b/src/tasks/aoc_2015_1_1.c
@@ -0,0 +1,17 @@
+#include <string.h>
+
+long perform(char *data) {
+ (void) data;
+ int len = strlen(data);
+ long floor = 0;
+ for (int i = 0; i < len; i++) {
+ char c = data[i];
+ if (c == '(') {
+ floor++;
+ }
+ if (c == ')') {
+ floor--;
+ }
+ }
+ return floor;
+}
diff --git a/src/tasks/aoc_2016_1_1.c b/src/tasks/aoc_2016_1_1.c
@@ -0,0 +1,83 @@
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+
+typedef enum {
+ DIR_NORTH = 0,
+ DIR_EAST = 1,
+ DIR_SOUTH = 2,
+ DIR_WEST = 3,
+} dir_t;
+
+typedef enum {
+ TURN_LEFT = 'L',
+ TURN_RIGHT = 'R',
+} turn_t;
+
+typedef struct {
+ turn_t turn;
+ int dist;
+} inst_t;
+
+long perform(char *data) {
+ (void) data;
+ int len = strlen(data);
+ int size = 1;
+ for (int i = 0; i < len; i++) {
+ char c = data[i];
+ if (c == ',') {
+ size++;
+ }
+ }
+ int i = 0;
+ int idx = 0;
+ inst_t insts[size];
+ while (i < len) {
+ inst_t *inst = &insts[idx];
+ inst->turn = (turn_t) data[i];
+ char *end = NULL;
+ inst->dist = strtol(data + i + 1, &end, 10);
+ idx++;
+ int dist_len = end - (data + i + 1);
+ i += 3 + dist_len;
+ }
+ int x = 0;
+ int y = 0;
+ dir_t dir = DIR_NORTH;
+ for (int i = 0; i < idx; i++) {
+ inst_t *inst = &insts[i];
+ switch (inst->turn) {
+ case TURN_LEFT:
+ if (dir == DIR_NORTH) {
+ dir = DIR_WEST;
+ }
+ else {
+ dir--;
+ }
+ break;
+ case TURN_RIGHT:
+ if (dir == DIR_WEST) {
+ dir = DIR_NORTH;
+ }
+ else {
+ dir++;
+ }
+ break;
+ }
+ switch (dir) {
+ case DIR_NORTH:
+ y += inst->dist;
+ break;
+ case DIR_EAST:
+ x += inst->dist;
+ break;
+ case DIR_SOUTH:
+ y -= inst->dist;
+ break;
+ case DIR_WEST:
+ x -= inst->dist;
+ break;
+ }
+ }
+ return x + y;
+}
diff --git a/src/tasks/aoc_2017_2_1.c b/src/tasks/aoc_2017_2_1.c
@@ -0,0 +1,37 @@
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <ctype.h>
+#include <limits.h>
+
+long perform(char *data) {
+ (void) data;
+ int len = strlen(data);
+ int high = 0;
+ int low = INT_MAX;
+ int sum = 0;
+ int i = 0;
+ while (i < len) {
+ char c = data[i];
+ if (isdigit(c)) {
+ char *end = NULL;
+ int num = strtol(&data[i], &end, 10);
+ if (num < low) {
+ low = num;
+ }
+ if (num > high) {
+ high = num;
+ }
+ i += end - (data + i);
+ continue;
+ }
+ if (c == '\n') {
+ int diff = high - low;
+ high = 0;
+ low = INT_MAX;
+ sum += diff;
+ }
+ i++;
+ }
+ return sum;
+}
diff --git a/src/tasks/aoc_2019_2_1.c b/src/tasks/aoc_2019_2_1.c
@@ -0,0 +1,53 @@
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+
+long perform(char *data) {
+ int len = strlen(data);
+ int size = 1;
+ for (int i = 0; i < len; i++) {
+ char c = data[i];
+ if (c == ',') {
+ size++;
+ }
+ }
+ int mem[size];
+ int set = 0;
+ int idx = 0;
+ for (int i = 0; i < len; i++) {
+ char c = data[i];
+ if (c == ',') {
+ mem[idx] = strtol(data + set, NULL, 10);
+ set = i + 1;
+ idx++;
+ }
+ }
+ if (set < len - 1) {
+ mem[idx] = strtol(data + set, NULL, 10);
+ }
+ mem[1] = 12;
+ mem[2] = 2;
+ for (int i = 0; i < size; i++) {
+ int op = mem[i];
+ if (op == 1) {
+ int a = mem[i + 1];
+ int b = mem[i + 2];
+ int c = mem[i + 3];
+ mem[c] = mem[a] + mem[b];
+ i += 3;
+ continue;
+ }
+ if (op == 2) {
+ int a = mem[i + 1];
+ int b = mem[i + 2];
+ int c = mem[i + 3];
+ mem[c] = mem[a] * mem[b];
+ i += 3;
+ continue;
+ }
+ if (op == 99) {
+ break;
+ }
+ }
+ return mem[0];
+}
diff --git a/src/tasks/aoc_2021_1_1.c b/src/tasks/aoc_2021_1_1.c
@@ -0,0 +1,34 @@
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+
+long perform(char *data) {
+ int len = strlen(data);
+ int ln = 0;
+ for (int i = 0; i < len; i++) {
+ char c = data[i];
+ if (c == '\n') {
+ ln++;
+ }
+ }
+ int nums[ln];
+ int idx = 0;
+ int set = 0;
+ for (int i = 0; i < len; i++) {
+ char c = data[i];
+ if (c == '\n') {
+ int num = strtol(data + set, NULL, 10);
+ nums[idx++] = num;
+ set = i + 1;
+ }
+ }
+ int sum = 0;
+ int *last = NULL;
+ for (int i = 0; i < ln; i++) {
+ if (last != NULL && *last < nums[i]) {
+ sum++;
+ }
+ last = &nums[i];
+ }
+ return sum;
+}
diff --git a/src/tasks/aoc_2023_1_1.c b/src/tasks/aoc_2023_1_1.c
@@ -0,0 +1,53 @@
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <ctype.h>
+
+#define MAX_DIGITS 100
+
+typedef struct {
+ int count;
+ char digits[MAX_DIGITS];
+} line_t;
+
+long perform(char *data) {
+ (void) data;
+ int len = strlen(data);
+ int size = 0;
+ for (int i = 0; i < len; i++) {
+ char c = data[i];
+ if (c == '\n') {
+ size++;
+ }
+ }
+ int idx = 0;
+ line_t lines[size];
+ lines[idx] = (line_t) { 0, {0} };
+ for (int i = 0; i < len; i++) {
+ char c = data[i];
+ if (isdigit(c)) {
+ line_t *line = &lines[idx];
+ line->digits[line->count++] = c;
+ }
+ if (c == '\n') {
+ idx++;
+ lines[idx] = (line_t) { 0, {0} };
+ }
+ }
+ int sum = 0;
+ for (int i = 0; i < idx; i++) {
+ line_t *line = &lines[i];
+ if (line->count == 0) {
+ continue;
+ }
+ char set = line->digits[0];
+ char end = set;
+ if (line->count > 1) {
+ end = line->digits[line->count - 1];
+ }
+ char str[2] = { set, end };
+ int digit = strtol(str, NULL, 10);
+ sum += digit;
+ }
+ return sum;
+}
diff --git a/src/tasks/aoc_2023_1_2.c b/src/tasks/aoc_2023_1_2.c
@@ -0,0 +1,65 @@
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <ctype.h>
+
+#define NELEMS(x) (int) (sizeof(x) / sizeof((x)[0]))
+#define MAX_DIGITS 100
+
+typedef struct {
+ int count;
+ char digits[MAX_DIGITS];
+} line_t;
+
+const char *DIGITS[9] = { "one", "two", "three", "four", "five", "six", "seven", "eight", "nine" };
+
+long perform(char *data) {
+ (void) data;
+ int len = strlen(data);
+ int size = 0;
+ for (int i = 0; i < len; i++) {
+ char c = data[i];
+ if (c == '\n') {
+ size++;
+ }
+ }
+ int idx = 0;
+ line_t lines[size];
+ lines[idx] = (line_t) { 0, {0} };
+ for (int i = 0; i < len; i++) {
+ char c = data[i];
+ if (isdigit(c)) {
+ line_t *line = &lines[idx];
+ line->digits[line->count++] = c;
+ }
+ for (int j = 0; j < NELEMS(DIGITS); j++) {
+ const char *digit = DIGITS[j];
+ int digit_len = strlen(digit);
+ if (strncmp(data + i, digit, digit_len) == 0) {
+ line_t *line = &lines[idx];
+ line->digits[line->count++] = '1' + j;
+ break;
+ }
+ }
+ if (c == '\n') {
+ idx++;
+ lines[idx] = (line_t) { 0, {0} };
+ }
+ }
+ int sum = 0;
+ for (int i = 0; i < idx; i++) {
+ line_t *line = &lines[i];
+ if (line->count == 0) {
+ continue;
+ }
+ char set = line->digits[0];
+ char end = set;
+ if (line->count > 1) {
+ end = line->digits[line->count - 1];
+ }
+ char str[2] = { set, end };
+ int digit = strtol(str, NULL, 10);
+ sum += digit;
+ }
+ return sum;
+}
diff --git a/src/tasks/aoc_2024_10_1.c b/src/tasks/aoc_2024_10_1.c
@@ -0,0 +1,92 @@
+#include <stdbool.h>
+#include <string.h>
+#include <assert.h>
+
+#define TRAILHEAD_SIZE 10
+#define NELEMS(x) (sizeof x / sizeof (x)[0])
+
+typedef struct {
+ int y;
+ int x;
+} pos_t;
+
+const pos_t DIRS[4] = {
+ { -1, 0 },
+ { 0, 1 },
+ { 1, 0 },
+ { 0, -1 },
+};
+
+void walk(
+ size_t rows,
+ size_t cols,
+ unsigned int map[rows][cols],
+ pos_t pos,
+ int *count,
+ pos_t *trailheads
+) {
+ for (size_t i = 0; i < NELEMS(DIRS); i++) {
+ pos_t next = { pos.y + DIRS[i].y, pos.x + DIRS[i].x };
+ if (next.y < 0 || next.x < 0 || next.y >= (int) rows || next.x >= (int) cols) {
+ continue;
+ }
+ unsigned int current = map[pos.y][pos.x];
+ unsigned int forward = map[next.y][next.x];
+ if (current + 1 != forward) {
+ continue;
+ }
+ if (forward == 9) {
+ bool is_unique = true;
+ for (size_t j = 0; j < (size_t) *count; j++) {
+ pos_t trailhead = trailheads[j];
+ if (next.y == trailhead.y && next.x == trailhead.x) {
+ is_unique = false;
+ break;
+ }
+ }
+ if (is_unique) {
+ assert(*count + 1 < TRAILHEAD_SIZE);
+ trailheads[*count] = next;
+ (*count)++;
+ }
+ continue;
+ }
+ walk(rows, cols, map, next, count, trailheads);
+ }
+}
+
+long perform(char *data) {
+ size_t len = strlen(data);
+ size_t rows = 0;
+ size_t cols = 0;
+ for (size_t i = 0; i < len; i++) {
+ if (data[i] == '\n') {
+ if (rows == 0) {
+ cols = i;
+ }
+ rows++;
+ }
+ }
+ unsigned int map[rows][cols];
+ for (size_t i = 0; i < len; i++) {
+ if (data[i] == '\n') {
+ continue;
+ }
+ int y = i / (cols + 1);
+ int x = i % (cols + 1);
+ map[y][x] = data[i] - '0';
+ }
+ int sum = 0;
+ for (size_t y = 0; y < rows; y++) {
+ for (size_t x = 0; x < cols; x++) {
+ if (map[y][x] == 0) {
+ pos_t pos = { y, x };
+ int count = 0;
+ pos_t trailheads[TRAILHEAD_SIZE];
+ walk(rows, cols, map, pos, &count, trailheads);
+ sum += count;
+ }
+ }
+ }
+ return sum;
+}
diff --git a/src/tasks/aoc_2024_10_2.c b/src/tasks/aoc_2024_10_2.c
@@ -0,0 +1,75 @@
+#include <string.h>
+
+#define NELEMS(x) (sizeof x / sizeof (x)[0])
+
+typedef struct {
+ int y;
+ int x;
+} pos_t;
+
+const pos_t DIRS[4] = {
+ { -1, 0 },
+ { 0, 1 },
+ { 1, 0 },
+ { 0, -1 },
+};
+
+void walk(
+ size_t rows,
+ size_t cols,
+ unsigned int map[rows][cols],
+ pos_t pos,
+ int *count
+) {
+ for (size_t i = 0; i < NELEMS(DIRS); i++) {
+ pos_t next = { pos.y + DIRS[i].y, pos.x + DIRS[i].x };
+ if (next.y < 0 || next.x < 0 || next.y >= (int) rows || next.x >= (int) cols) {
+ continue;
+ }
+ unsigned int current = map[pos.y][pos.x];
+ unsigned int forward = map[next.y][next.x];
+ if (current + 1 != forward) {
+ continue;
+ }
+ if (forward == 9) {
+ (*count)++;
+ continue;
+ }
+ walk(rows, cols, map, next, count);
+ }
+}
+
+long perform(char *data) {
+ size_t len = strlen(data);
+ size_t rows = 0;
+ size_t cols = 0;
+ for (size_t i = 0; i < len; i++) {
+ if (data[i] == '\n') {
+ if (rows == 0) {
+ cols = i;
+ }
+ rows++;
+ }
+ }
+ unsigned int map[rows][cols];
+ for (size_t i = 0; i < len; i++) {
+ if (data[i] == '\n') {
+ continue;
+ }
+ int y = i / (cols + 1);
+ int x = i % (cols + 1);
+ map[y][x] = data[i] - '0';
+ }
+ int sum = 0;
+ for (size_t y = 0; y < rows; y++) {
+ for (size_t x = 0; x < cols; x++) {
+ if (map[y][x] == 0) {
+ pos_t pos = { y, x };
+ int count = 0;
+ walk(rows, cols, map, pos, &count);
+ sum += count;
+ }
+ }
+ }
+ return sum;
+}
diff --git a/src/tasks/aoc_2024_1_1.c b/src/tasks/aoc_2024_1_1.c
@@ -0,0 +1,44 @@
+#include <stdlib.h>
+#include <string.h>
+#include <ctype.h>
+
+int compare_num(const void *a, const void *b) {
+ return (*(int *) a) - (*(int *) b);
+}
+
+long perform(char *data) {
+ int len = strlen(data);
+ int size = 0;
+ for (int i = 0; i < len; i++) {
+ char c = data[i];
+ if (c == '\n') {
+ size++;
+ }
+ }
+ int lft[size];
+ int rgt[size];
+ int odd = 0;
+ int ln = 0;
+ for (int i = 0; i < len;) {
+ char c = data[i];
+ if (isdigit(c)) {
+ char *end = NULL;
+ int num = strtol(data + i, &end, 10);
+ odd ? (rgt[ln] = num) : (lft[ln] = num);
+ odd = !odd;
+ i += end - (data + i);
+ continue;
+ }
+ if (c == '\n') {
+ ln++;
+ }
+ i++;
+ }
+ qsort(lft, size, sizeof(int), compare_num);
+ qsort(rgt, size, sizeof(int), compare_num);
+ int sum = 0;
+ for (int i = 0; i < size; i++) {
+ sum += abs(lft[i] - rgt[i]);
+ }
+ return sum;
+}
diff --git a/src/tasks/aoc_2024_1_2.c b/src/tasks/aoc_2024_1_2.c
@@ -0,0 +1,48 @@
+#include <stdlib.h>
+#include <string.h>
+#include <ctype.h>
+
+int compare_num(const void *a, const void *b) {
+ return (*(int *) a) - (*(int *) b);
+}
+
+long perform(char *data) {
+ int len = strlen(data);
+ int size = 0;
+ for (int i = 0; i < len; i++) {
+ char c = data[i];
+ if (c == '\n') {
+ size++;
+ }
+ }
+ int lft[size];
+ int rgt[size];
+ int odd = 0;
+ int ln = 0;
+ for (int i = 0; i < len;) {
+ char c = data[i];
+ if (isdigit(c)) {
+ char *end = NULL;
+ int num = strtol(data + i, &end, 10);
+ odd ? (rgt[ln] = num) : (lft[ln] = num);
+ odd = !odd;
+ i += end - (data + i);
+ continue;
+ }
+ if (c == '\n') {
+ ln++;
+ }
+ i++;
+ }
+ int sum = 0;
+ for (int i = 0; i < size; i++) {
+ int count = 0;
+ for (int j = 0; j < size; j++) {
+ if (lft[i] == rgt[j]) {
+ count++;
+ }
+ }
+ sum += lft[i] * count;
+ }
+ return sum;
+}
diff --git a/src/tasks/aoc_2024_2_1.c b/src/tasks/aoc_2024_2_1.c
@@ -0,0 +1,67 @@
+#include <stdio.h>
+#include <stdlib.h>
+#include <stdbool.h>
+#include <string.h>
+#include <ctype.h>
+
+#define ROW_SIZE 50
+
+typedef enum {
+ DIR_NIL = 0,
+ DIR_INC = 1,
+ DIR_DEC = 2,
+} dir_t;
+
+long perform(char *data) {
+ int len = strlen(data);
+ int ln = 0;
+ int sum = 0;
+ int size = 0;
+ int row[ROW_SIZE];
+ for (int i = 0; i < len;) {
+ char c = data[i];
+ if (isdigit(c)) {
+ char *end = NULL;
+ row[size++] = strtol(data + i, &end, 10);
+ i += end - (data + i);
+ continue;
+ }
+ if (c == '\n') {
+ bool unsafe = false;
+ int *prev = NULL;
+ dir_t dir = DIR_NIL;
+ for (int j = 0; j < size; j++) {
+ int *num = &row[j];
+ if (prev != NULL) {
+ // check 1. criteria
+ dir_t next_dir = DIR_NIL;
+ if (*num > *prev) {
+ next_dir = DIR_INC;
+ }
+ if (*num < *prev) {
+ next_dir = DIR_DEC;
+ }
+ if (dir != DIR_NIL && next_dir != dir) {
+ unsafe = true;
+ break;
+ }
+ dir = next_dir;
+ // check 2. criteria
+ int delta = abs(*num - *prev);
+ if (delta == 0 || delta > 3) {
+ unsafe = true;
+ break;
+ }
+ }
+ prev = num;
+ }
+ if (!unsafe) {
+ sum++;
+ }
+ size = 0;
+ ln++;
+ }
+ i++;
+ }
+ return sum;
+}
diff --git a/src/tasks/aoc_2024_3_1.c b/src/tasks/aoc_2024_3_1.c
@@ -0,0 +1,57 @@
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <ctype.h>
+
+#define OPS_SIZE 1000
+
+typedef struct {
+ int a;
+ int b;
+} op_t;
+
+long perform(char *data) {
+ int len = strlen(data);
+ int size = 0;
+ op_t ops[OPS_SIZE];
+ for (int i = 0; i < len;) {
+ // detect pattern: mul(\d,\d)
+ // mul(
+ if (strncmp(data + i, "mul(", 4) == 0) {
+ i += 4;
+ char *end = NULL;
+ op_t *op = &ops[size];
+ // \d
+ if (!isdigit(data[i])) {
+ continue;
+ }
+ op->a = strtol(data + i, &end, 10);
+ i += end - (data + i);
+ // ,
+ if (data[i] != ',') {
+ continue;
+ }
+ i++;
+ // \d
+ if (!isdigit(data[i])) {
+ continue;
+ }
+ op->b = strtol(data + i, &end, 10);
+ i += end - (data + i);
+ // )
+ if (data[i] != ')') {
+ continue;
+ }
+ i++;
+ size++;
+ continue;
+ }
+ i++;
+ }
+ int sum = 0;
+ for (int i = 0; i < size; i++) {
+ op_t op = ops[i];
+ sum += op.a * op.b;
+ }
+ return sum;
+}
diff --git a/src/tasks/aoc_2024_3_2.c b/src/tasks/aoc_2024_3_2.c
@@ -0,0 +1,67 @@
+#include <stdio.h>
+#include <stdlib.h>
+#include <stdbool.h>
+#include <string.h>
+#include <ctype.h>
+
+#define OPS_SIZE 1000
+
+typedef struct {
+ int a;
+ int b;
+} op_t;
+
+long perform(char *data) {
+ int len = strlen(data);
+ int size = 0;
+ op_t ops[OPS_SIZE];
+ bool is_enabled = true;
+ for (int i = 0; i < len;) {
+ if (strncmp(data + i, "do()", 4) == 0) {
+ is_enabled = true;
+ }
+ if (strncmp(data + i, "don't()", 7) == 0) {
+ is_enabled = false;
+ }
+ // detect pattern: mul(\d,\d)
+ // mul(
+ if (strncmp(data + i, "mul(", 4) == 0) {
+ i += 4;
+ char *end = NULL;
+ op_t *op = &ops[size];
+ // \d
+ if (!isdigit(data[i])) {
+ continue;
+ }
+ op->a = strtol(data + i, &end, 10);
+ i += end - (data + i);
+ // ,
+ if (data[i] != ',') {
+ continue;
+ }
+ i++;
+ // \d
+ if (!isdigit(data[i])) {
+ continue;
+ }
+ op->b = strtol(data + i, &end, 10);
+ i += end - (data + i);
+ // )
+ if (data[i] != ')') {
+ continue;
+ }
+ i++;
+ if (is_enabled) {
+ size++;
+ }
+ continue;
+ }
+ i++;
+ }
+ int sum = 0;
+ for (int i = 0; i < size; i++) {
+ op_t op = ops[i];
+ sum += op.a * op.b;
+ }
+ return sum;
+}
diff --git a/src/tasks/aoc_2024_4_1.c b/src/tasks/aoc_2024_4_1.c
@@ -0,0 +1,72 @@
+#include <stdbool.h>
+#include <string.h>
+
+#define NELEMS(x) (int) (sizeof(x) / sizeof((x)[0]))
+#define MATCH "XMAS"
+
+typedef struct {
+ int y;
+ int x;
+} dir_t;
+
+const dir_t DIRS[8] = {
+ { 1, 0 },
+ { -1, 0 },
+ { 0, 1 },
+ { 0, -1 },
+ { 1, 1 },
+ { 1, -1 },
+ { -1, 1 },
+ { -1, -1 },
+};
+
+long perform(char *data) {
+ int len = strlen(data);
+ int rows = 0;
+ int cols = 0;
+ for (int i = 0; i < len; i++) {
+ char c = data[i];
+ if (c == '\n') {
+ if (rows == 0) {
+ cols = i;
+ }
+ rows++;
+ }
+ }
+ char grid[rows][cols];
+ for (int i = 0; i < len; i++) {
+ char c = data[i];
+ if (c == '\n') {
+ continue;
+ }
+ int y = i / (cols + 1);
+ int x = i % (cols + 1);
+ grid[y][x] = data[i];
+ }
+ int count = 0;
+ for (int y = 0; y < rows; y++) {
+ for (int x = 0; x < cols; x++) {
+ for (int i = 0; i < NELEMS(DIRS); i++) {
+ dir_t dir = DIRS[i];
+ bool is_match = true;
+ for (int j = 0; j < (int) strlen(MATCH); j++) {
+ int ry = y + j * dir.y;
+ int rx = x + j * dir.x;
+ if (ry < 0 || ry >= rows || rx < 0 || rx >= cols) {
+ is_match = false;
+ break;
+ }
+ char c = grid[ry][rx];
+ if (c != MATCH[j]) {
+ is_match = false;
+ break;
+ }
+ }
+ if (is_match) {
+ count++;
+ }
+ }
+ }
+ }
+ return count;
+}
diff --git a/src/tasks/aoc_2024_5_1.c b/src/tasks/aoc_2024_5_1.c
@@ -0,0 +1,100 @@
+#include <stdlib.h>
+#include <stdbool.h>
+#include <string.h>
+
+#define RULE_SIZE 5000
+#define INST_SIZE 1000
+#define INST_CAP 100
+
+typedef struct {
+ int lft;
+ int rgt;
+} rule_t;
+
+typedef struct {
+ int list[INST_CAP];
+ size_t len;
+ bool valid;
+} instruction_t;
+
+long perform(char *data) {
+ int len = strlen(data);
+ rule_t rules[RULE_SIZE];
+ instruction_t instructions[INST_SIZE];
+ int rules_len = 0;
+ int instructions_len = 0;
+ bool is_rule = true;
+ for (int i = 0; i < len;) {
+ if (data[i] == '\n') {
+ i++;
+ if (data[i] == '\n') {
+ is_rule = false;
+ }
+ continue;
+ }
+ // read rules
+ if (is_rule) {
+ rule_t *rule = &rules[rules_len];
+ char *end = NULL;
+ rule->lft = strtol(data + i, &end, 10);
+ i += end - (data + i);
+ i++;
+ rule->rgt = strtol(data + i, &end, 10);
+ i += end - (data + i);
+ rules_len++;
+ continue;
+ }
+ // read instructions
+ else {
+ instruction_t *instruction = &instructions[instructions_len];
+ char *end = NULL;
+ int idx = 0;
+ for(;;) {
+ instruction->list[idx] = strtol(data + i, &end, 10);
+ i += end - (data + i);
+ idx++;
+ if (data[i] == '\n') {
+ break;
+ }
+ i++;
+ }
+ instruction->len = idx;
+ instruction->valid = true;
+ instructions_len++;
+ continue;
+ }
+ i++;
+ }
+ // check instructions
+ for (int i = 0; i < instructions_len; i++) {
+ instruction_t *instruction = &instructions[i];
+ for (int j = 0; j < rules_len; j++) {
+ rule_t rule = rules[j];
+ int lft_idx = -1;
+ int rgt_idx = -1;
+ for (int k = 0; k < (int) instruction->len; k++) {
+ int num = instruction->list[k];
+ if (rule.lft == num) {
+ lft_idx = k;
+ }
+ if (rule.rgt == num) {
+ rgt_idx = k;
+ }
+ }
+ if (lft_idx != -1 && rgt_idx != -1 && lft_idx > rgt_idx) {
+ instruction->valid = false;
+ break;
+ }
+ }
+ }
+ // add middle numbers together
+ int sum = 0;
+ for (int i = 0; i < instructions_len; i++) {
+ instruction_t instruction = instructions[i];
+ if (instruction.valid) {
+ int num = instruction.list[instruction.len / 2];
+ sum += num;
+ }
+ }
+ return sum;
+}
diff --git a/src/tasks/aoc_2024_6_1.c b/src/tasks/aoc_2024_6_1.c
@@ -0,0 +1,121 @@
+// #include <stdio.h>
+#include <string.h>
+
+typedef enum {
+ TILE_FLR = '.',
+ TILE_WAL = '#',
+ TILE_PTH = 'X',
+} tile_t;
+
+typedef enum {
+ MOVE_N = '^',
+ MOVE_E = '>',
+ MOVE_S = 'v',
+ MOVE_W = '<',
+} move_t;
+
+typedef struct {
+ int y;
+ int x;
+ move_t move;
+} guard_t;
+
+long perform(char *data) {
+ size_t len = strlen(data);
+ int rows = 0;
+ int cols = 0;
+ for (size_t i = 0; i < len; i++) {
+ if (data[i] == '\n') {
+ if (rows == 0) {
+ cols = i;
+ }
+ rows++;
+ }
+ }
+ char grid[rows][cols];
+ guard_t guard;
+ for (size_t i = 0; i < len; i++) {
+ char c = data[i];
+ if (c == '\n') {
+ continue;
+ }
+ int y = i / (cols + 1);
+ int x = i % (cols + 1);
+ grid[y][x] = c;
+ if (c == MOVE_N || c == MOVE_E || c == MOVE_S || c == MOVE_W) {
+ guard = (guard_t) {
+ .y = y,
+ .x = x,
+ .move = (move_t) c,
+ };
+ }
+ }
+ for (;;) {
+ int y = guard.y;
+ int x = guard.x;
+ grid[guard.y][guard.x] = TILE_PTH;
+ switch (guard.move) {
+ case MOVE_N:
+ y--;
+ break;
+ case MOVE_E:
+ x++;
+ break;
+ case MOVE_S:
+ y++;
+ break;
+ case MOVE_W:
+ x--;
+ break;
+ }
+ if (y < 0 || y >= rows || x < 0 || x >= cols) {
+ break;
+ }
+ tile_t tile = grid[y][x];
+ if (tile == TILE_WAL) {
+ switch (guard.move) {
+ case MOVE_N:
+ guard.move = MOVE_E;
+ break;
+ case MOVE_E:
+ guard.move = MOVE_S;
+ break;
+ case MOVE_S:
+ guard.move = MOVE_W;
+ break;
+ case MOVE_W:
+ guard.move = MOVE_N;
+ break;
+ }
+ continue;
+ }
+ guard.y = y;
+ guard.x = x;
+ }
+ int count = 0;
+ for (int y = 0; y < rows; y++) {
+ for (int x = 0; x < cols; x++) {
+ if (grid[y][x] == TILE_PTH) {
+ count++;
+ }
+ }
+ }
+ // for (int y = 0; y < rows; y++) {
+ // for (int x = 0; x < cols; x++) {
+ // tile_t tile = grid[y][x];
+ // switch (tile) {
+ // case TILE_FLR:
+ // printf("\x1b[38;2;125;125;125m%c \x1b[39m", tile);
+ // break;
+ // case TILE_WAL:
+ // printf("\x1b[38;2;255;255;255m%c \x1b[39m", tile);
+ // break;
+ // case TILE_PTH:
+ // printf("\x1b[38;2;255;0;0m%c \x1b[39m", tile);
+ // break;
+ // }
+ // }
+ // printf("\n");
+ // }
+ return count;
+}
diff --git a/src/tasks/aoc_2024_7_1.c b/src/tasks/aoc_2024_7_1.c
@@ -0,0 +1,69 @@
+#include <stdio.h>
+#include <stdlib.h>
+#include <stdbool.h>
+#include <ctype.h>
+#include <string.h>
+#include <math.h>
+
+#define VALUES_SIZE 25
+#define OP_SIZE 2
+
+typedef enum {
+ OP_ADD = '+',
+ OP_MUL = '*',
+} op_t;
+
+long perform(char *data) {
+ size_t len = strlen(data);
+ long sum = 0;
+ long result;
+ long values[VALUES_SIZE];
+ int idx = 0;
+ bool is_values = false;
+ for (size_t i = 0; i < len;) {
+ char c = data[i];
+ if (c == '\n') {
+ bool is_equal = false;
+ int iter = pow(2, idx - 1);
+ for (int i = 0; i < iter; i++) {
+ long num = values[0];
+ int k = 1;
+ for (int j = idx - 1 - 1; j >= 0; j--) {
+ op_t op = (i >> j) & 1 ? OP_ADD : OP_MUL;
+ if (op == OP_ADD) {
+ num += values[k];
+ }
+ if (op == OP_MUL) {
+ num *= values[k];
+ }
+ k++;
+ }
+ if (num == result) {
+ is_equal = true;
+ }
+ }
+ if (is_equal) {
+ sum += result;
+ }
+ idx = 0;
+ is_values = false;
+ i++;
+ continue;
+ }
+ if (isdigit(c)) {
+ char *end = NULL;
+ long num = strtol(data + i, &end, 10);
+ if (is_values) {
+ values[idx++] = num;
+ }
+ else {
+ result = num;
+ is_values = true;
+ }
+ i += end - (data + i);
+ continue;
+ }
+ i++;
+ }
+ return sum;
+}
diff --git a/src/tasks/aoc_2024_8_1.c b/src/tasks/aoc_2024_8_1.c
@@ -0,0 +1,105 @@
+#include <stdlib.h>
+#include <stdbool.h>
+#include <string.h>
+#include <assert.h>
+
+#define ANTENNA_SIZE 500
+#define ANTINODE_SIZE 500
+
+typedef struct {
+ int y;
+ int x;
+} pos_t;
+
+typedef struct {
+ char id;
+ pos_t pos;
+} antenna_t;
+
+long perform(char *data) {
+ size_t len = strlen(data);
+ size_t rows = 0;
+ size_t cols = 0;
+ size_t antennas_len = 0;
+ antenna_t antennas[ANTENNA_SIZE];
+ for (size_t i = 0; i < len; i++) {
+ if (data[i] == '\n') {
+ if (rows == 0) {
+ cols = i;
+ }
+ rows++;
+ }
+ }
+ for (size_t i = 0; i < len; i++) {
+ char c = data[i];
+ if (c != '\n' && c != '.') {
+ int y = i / (cols + 1);
+ int x = i % (cols + 1);
+ assert(antennas_len < ANTENNA_SIZE);
+ antennas[antennas_len] = (antenna_t) {
+ .id = c,
+ .pos = { y, x },
+ };
+ antennas_len++;
+ }
+ }
+ size_t antinodes_len = 0;
+ pos_t antinodes[ANTINODE_SIZE];
+ for (size_t i = 0; i < antennas_len; i++) {
+ for (size_t j = i + 1; j < antennas_len; j++) {
+ antenna_t a = antennas[i];
+ antenna_t b = antennas[j];
+ if (a.id == b.id) {
+ pos_t delta = {
+ abs(a.pos.y - b.pos.y),
+ abs(a.pos.x - b.pos.x),
+ };
+ pos_t node_a;
+ pos_t node_b;
+ if (a.pos.y > b.pos.y) {
+ node_a.y = a.pos.y + delta.y;
+ node_b.y = b.pos.y - delta.y;
+ }
+ else {
+ node_a.y = a.pos.y - delta.y;
+ node_b.y = b.pos.y + delta.y;
+ }
+ if (a.pos.x > b.pos.x) {
+ node_a.x = a.pos.x + delta.x;
+ node_b.x = b.pos.x - delta.x;
+ }
+ else {
+ node_a.x = a.pos.x - delta.x;
+ node_b.x = b.pos.x + delta.x;
+ }
+ assert(antinodes_len < ANTINODE_SIZE);
+ antinodes[antinodes_len] = node_a;
+ antinodes_len++;
+ assert(antinodes_len < ANTINODE_SIZE);
+ antinodes[antinodes_len] = node_b;
+ antinodes_len++;
+ }
+ }
+ }
+ long count = 0;
+ for (size_t i = 0; i < antinodes_len; i++) {
+ pos_t antinode = antinodes[i];
+ if (
+ antinode.y < 0 || antinode.x < 0 ||
+ antinode.y >= (int) rows || antinode.x >= (int) cols
+ ) {
+ continue;
+ }
+ bool is_unique = true;
+ for (size_t j = i + 1; j < antinodes_len; j++) {
+ if (antinode.y == antinodes[j].y && antinode.x == antinodes[j].x) {
+ is_unique = false;
+ break;
+ }
+ }
+ if (is_unique) {
+ count++;
+ }
+ }
+ return count;
+}
diff --git a/src/tasks/aoc_2024_9_1.c b/src/tasks/aoc_2024_9_1.c
@@ -0,0 +1,55 @@
+#include <string.h>
+
+
+#define DISKSPACE_SIZE 100000
+#define PARTITION_SIZE 10000
+
+typedef struct {
+ int id;
+ int idx;
+ size_t len;
+} part_t;
+
+long perform(char *data) {
+ size_t len = strlen(data);
+ size_t size = 0;
+ int id = 0;
+ part_t *diskspace[DISKSPACE_SIZE] = { NULL };
+ part_t parts[PARTITION_SIZE];
+ for (size_t i = 0; i < len; i++) {
+ if (data[i] == '\n') {
+ break;
+ }
+ int num = data[i] - '0';
+ if (i % 2 == 0) {
+ part_t part = {
+ .id = id,
+ .idx = size,
+ .len = num,
+ };
+ parts[id] = part;
+ for (size_t j = 0; j < part.len; j++) {
+ diskspace[part.idx + j] = &parts[id];
+ }
+ id++;
+ }
+ size += num;
+ }
+ size_t end = size;
+ for (size_t i = 0; i <= end; i++) {
+ if (diskspace[i] == NULL) {
+ part_t *part = NULL;
+ while (end > i && part == NULL) {
+ part = diskspace[end];
+ end--;
+ }
+ diskspace[i] = part;
+ }
+ }
+ long sum = 0;
+ for (size_t i = 0; i <= end; i++) {
+ part_t *part = diskspace[i];
+ sum += i * part->id;
+ }
+ return sum;
+}
diff --git a/txt/2015_1.txt b/txt/2015_1.txt
@@ -0,0 +1 @@
+(((())))()((((((((())()(()))(()((((()(()(((()((()((()(()()()()()))(((()(()((((((((((())(()()((())()(((())))()(()(()((()(()))(()()()()((()((()(((()()(((((((()()())()((((()()(((((()(())()(())((())()()))()(((((((())(()())(()(((())(()))((())))(()((()())))()())((((())))(()(((((()(())(((()()((()((()((((((((((())(()())))))()))())()()((((()()()()()()((((((())())(((()())()((()()(((()()()))(((((()))(((()(()()()(()(()(((())()))(()(((()((())()(()())())))((()()()(()()(((()))(((()((((()(((((()()(()())((()())())(()((((((()(()()))((((()))))())((())()()((()(()))))((((((((()))(()()(((())())(())()((()()()()((()((()((()()(((())))(()((())()((((((((()((()(()()(((())())())))(())())))()((((()))))))())))()()))()())((()())()((()()()))(()()(((()(())((((())())((((((((()()()()())))()()()((((()()))))))()((((()(((()))(()()())))((()()(((()))()()())())(((())((()()(())()()()(((())))))()())((()))()))((())()()())()())()()(()))())))())()))(())((()(())))(()(())(()))))(()(())())(()(())(()(()))))((()())()))()((((()()))))())))()()())((())()((()()()))()(((()(()))))(())()()))(((()())))))))))(((())))()))())()))))()()(((())))))))()(()()(()))((()))))((())))((()((())))())))()()(()))())()(()((()())(()(()()())())(()()))()))))(()())()()))()()()()))(()(()(()))))))()(()))()))()()(()((())(()(())))()(((())(())())))))()(()(()))))()))(()()()(())()(()(())))()))))()()(((((())))))())()())())())()())()))))()))))))))())()()()()()()())))()))((())()))())))()((())()))))()))())))))))())()()()))()()(()((((()(((((((()(())((()())((()()))()))))(())))()()()(())((())()())))(())))(())))(((()()))()(())(((()(()))((())))())()))((((()))())()))))))))()(())())))(()))()(()()))())()()(())())))())()()(()())))()((()())(()(())(())))))))))))))(()))))()))))))()()())(()(((((()(()())))())()))(()))()))(()()))()())(()))())()(())((()()))))))())))())()(((())))(()(()))()()))()(()))))))((()())(()))))))()())))()()))))))))((((((((()()()(()))))))()())))())))()()((())()))((())(())))())())))()()()((()((()(())))())()(())))))))))()())))()()()()()()))()))((())())(()(()))))))(()()))()))(())))()))))))))))))(()))))))))()))))()))()())()))()()))))))()))))((()))))(()))())()(())))(()())((((()())))()))))(()))()(()()(())))))())))))()))))))())))())))))())))())())))())(()))))(())()(())))())()))((()()))))))())))((())))))))())))(())))))()()())))))())))))()))))))()))()()()(()(((()())())())(()))())))))((()(())(()))))))))(())))()()()())())(()))))()()()))()))())())())()(())))()(((()((((())))))))()))))))))))))))))))))((())()())(()))))()()))))))(()()(())())))())))((())))((())))))))))))))()))))()(()))))))())))))()))(()()())(()())))))))))()))))))(())))))()()))()())(((())))()))(()))))))))(())())))())))())())())()()))((())()(())()())()))()())(())(()))))()())))(()(((()))))))()(()())()()()))()))))))))()()()(())()())()(((((()))()())())(()))))()()()(())))())))()((()())))(()))())()(()())())(()))()()))((()()))((()()()()())))(())()))(()(())))((()()))))))))())))))))())()()))))))))))))))))(())()(())(())()())())()))()(()))))())())))))()())()(()))()()(())))(())())))))(()))))))))))))))())())(())(())))(((()))()))))())((())(()))())))))))())))))())))()))()))))))))))))())()))))()))))((()))(())))()(())))(())()))()))())))())))))))()(()())())))()()())))(())))))(()))))))))))))(()))()))()))())))(((()()()(())((()())))()())(((()))(())()))((()()()())))())(())(()))))()(((((())))(()))())())))))))((((()()()))())())()(()(()())))))))))()())())))(())))()())(((()(())())()()))())())))))))((()())((()()(()))(()(())))()))()))(()))(()))()()(()(((())((((()))()(()))((())()(()(()())()(()))()())))))(()))()))())()())))())))(())))((())(()())))))()))(())(()))()())()(()()((()(()))))))()(())(()())(())()))(((())()))(()()(()()()))))(()(())))()))))())))))())(()()()()()()(((())))(()()))()((())(((((()()())))(()))(()))()()))(((())())()(((()()()()))))(()))(())())))()())(()()())())))))))()))))((())))()())(()))(()(()))())))))())(())))))()()())())()))()()(())))(()))(())((((((())(()))(()))())()))(()()(())))()))(()()))()))()(())))(())))((()(()))(())()()())())))(((()()())(())()))))))()(((()(((((()()(((())(())))())()((()))))((()())()(())(((())))(((()((()(()(()))(()()))())(()))(())(())))()))))))((((()))()((((()(()))()))()()))))()(()(()))()(()((()(((()(()()(((()))))()(((()(()(()(((()(()())())()()(()(()())())(()((((())(()))()))(((((()()())(())()((()()())))()()(((()()))()((((((((()(())))())((()))))(())))(()))))((()((((()()(())(((((()))(((((((((((((()())))((((()(((()((())())()))((()))()(()()((()()()()(()()(()(()(((())()(()((((((()((()()((())()((((()((()()(()()())((()()()((()((())()(()(((()((())((((())(()))((()(()))(()())()((((((((()(((((((((((()))(()(((()(()()()((((())((())()())()))(())((())(()))(((()((()(())))(()))))((()()))))((((()(()(()())(()(())((((((((()((((()((()(((((()))())()(()))(()()((()(())(((((()(())()(((((()()))))))()(((())()(()()((((())()((())((()(((())(((()))((()()((((()(())))))((()((((()((()((()(((())((()))(((((((()(((()((((((((())()))((((())(((((()((((((((()(((()((()(((()()(((()((((((()()(()((((((((()()(()(()(())((((()())()))))(((()))((((())((((()())((()(())()((()((((((()((((((()(())))()())(((())())())()(())()(()())((()()((((())((((((())(()(((((()((((())()((((()(()(())(()())(((())()((())((((()))()((((((())(()(((()(((()((((((()(((()))(()()())())((()((()())()((((())(((()(()(((((((((())(())))()((()()()()(())((()))(((((((()(((((((((()(()))))(()((((((((()((((()((()()((((((()()(((((((()(()(())()(())((()()()((()(((((()())()(((((()())()()((()(()())(()()()(((()()(((((()((((((()()((()(()()()((((((((((((()((((((((()()(((()())))()(((()()(())())((((()((((()((((()()()(())(())((()(()(((((((((((((((()(())(())))))()()))((()(((()(())((()(((()(()()((((()()(((()(((()(((((()()((()(()(((()))((((((()((((((((()((()((())(((((()(((())(())())((()()))((((())()()((()(((()(((((()()(((()))(((()(()(((((((((((((()))((((((((()(((()))))())((((((((((((())((())((()())(((())((())(()((((((((((()(((())((()()(()((())(((((((((((()))((((((((((((()(()())((()((()((()(()(((()((((((((()()(()((()(()(((()))((()))(((((((((((((()(())((((((())(((()(())(()(()(()((()()))((((()((((()((((())))())((((()((((()))((((((()((((((()((()(((())))((())(()))(()((()((((()((()(((()()))((((()()()(((((((())(((())(()))())((((()())(((()(((((((((((()(()(()((()(((((((((((((((()()((((()((((((((()(((()()((()((((()))(((()(())((((((()((((())()((((()((()))(())()(()(((()((())())((((((()(()(())())(((())(()(()())(((((()((()((())()())(())))(((()(())))))))(((()(((()))()((()(((()()((()())()()))())))(((()))(()(((()(((((((((()(()(((((()()(((()())()()))))()(((()))(((()(()(()(()(()))()(())()))(()(((())))(()))))))))))(())((()((())((()(())()(())((()()((((()()((()()))((())(((()((()(())(())))()(()(((((()((()))())()(((((()()(((()(()((((((())(()))(())()))((()(()()))(())())()))(((())))(()((()(((())(())())))((()()((((((((((((((()((()(()()(()(((()))())()()((()()()(())(()))(()())(((())((())()(())()()(()()(())))((()(((()))))(((()()(()()))())((()((())()))((((()()()())((())))(((()(())(((((()(((((()((()(()((((()()(((()()()(((()())(((()()((((())(()))(((()))(())())((()))(((()((()))(((()()((())((()(((((()((((()()())((()))()((((()((()(()()()(
diff --git a/txt/2016_1.txt b/txt/2016_1.txt
@@ -0,0 +1 @@
+R1, R3, L2, L5, L2, L1, R3, L4, R2, L2, L4, R2, L1, R1, L2, R3, L1, L4, R2, L5, R3, R4, L1, R2, L1, R3, L4, R5, L4, L5, R5, L3, R2, L3, L3, R1, R3, L4, R2, R5, L4, R1, L1, L1, R5, L2, R1, L2, R188, L5, L3, R5, R1, L2, L4, R3, R5, L3, R3, R45, L4, R4, R72, R2, R3, L1, R1, L1, L1, R192, L1, L1, L1, L4, R1, L2, L5, L3, R5, L3, R3, L4, L3, R1, R4, L2, R2, R3, L5, R3, L1, R1, R4, L2, L3, R1, R3, L4, L3, L4, L2, L2, R1, R3, L5, L1, R4, R2, L4, L1, R3, R3, R1, L5, L2, R4, R4, R2, R1, R5, R5, L4, L1, R5, R3, R4, R5, R3, L1, L2, L4, R1, R4, R5, L2, L3, R4, L4, R2, L2, L4, L2, R5, R1, R4, R3, R5, L4, L4, L5, L5, R3, R4, L1, L3, R2, L2, R1, L3, L5, R5, R5, R3, L4, L2, R4, R5, R1, R4, L3
diff --git a/txt/2017_2.txt b/txt/2017_2.txt
@@ -0,0 +1,16 @@
+790 99 345 1080 32 143 1085 984 553 98 123 97 197 886 125 947
+302 463 59 58 55 87 508 54 472 63 469 419 424 331 337 72
+899 962 77 1127 62 530 78 880 129 1014 93 148 239 288 357 424
+2417 2755 254 3886 5336 3655 5798 3273 5016 178 270 6511 223 5391 1342 2377
+68 3002 3307 166 275 1989 1611 364 157 144 3771 1267 3188 3149 156 3454
+1088 1261 21 1063 1173 278 1164 207 237 1230 1185 431 232 660 195 1246
+49 1100 136 1491 647 1486 112 1278 53 1564 1147 1068 809 1638 138 117
+158 3216 1972 2646 3181 785 2937 365 611 1977 1199 2972 201 2432 186 160
+244 86 61 38 58 71 243 52 245 264 209 265 308 80 126 129
+1317 792 74 111 1721 252 1082 1881 1349 94 891 1458 331 1691 89 1724
+3798 202 3140 3468 1486 2073 3872 3190 3481 3760 2876 182 2772 226 3753 188
+2272 6876 6759 218 272 4095 4712 6244 4889 2037 234 223 6858 3499 2358 439
+792 230 886 824 762 895 99 799 94 110 747 635 91 406 89 157
+2074 237 1668 1961 170 2292 2079 1371 1909 221 2039 1022 193 2195 1395 2123
+8447 203 1806 6777 278 2850 1232 6369 398 235 212 992 7520 7304 7852 520
+3928 107 3406 123 2111 2749 223 125 134 146 3875 1357 508 1534 4002 4417
diff --git a/txt/2019_2.txt b/txt/2019_2.txt
@@ -0,0 +1 @@
+1,0,0,3,1,1,2,3,1,3,4,3,1,5,0,3,2,6,1,19,1,5,19,23,2,6,23,27,1,27,5,31,2,9,31,35,1,5,35,39,2,6,39,43,2,6,43,47,1,5,47,51,2,9,51,55,1,5,55,59,1,10,59,63,1,63,6,67,1,9,67,71,1,71,6,75,1,75,13,79,2,79,13,83,2,9,83,87,1,87,5,91,1,9,91,95,2,10,95,99,1,5,99,103,1,103,9,107,1,13,107,111,2,111,10,115,1,115,5,119,2,13,119,123,1,9,123,127,1,5,127,131,2,131,6,135,1,135,5,139,1,139,6,143,1,143,6,147,1,2,147,151,1,151,5,0,99,2,14,0,0
diff --git a/txt/2021_1.txt b/txt/2021_1.txt
@@ -0,0 +1,2000 @@
+193
+197
+188
+170
+162
+180
+183
+211
+213
+235
+238
+237
+234
+227
+222
+221
+223
+224
+223
+216
+217
+226
+234
+228
+230
+237
+239
+242
+244
+246
+242
+258
+269
+270
+255
+257
+261
+262
+258
+257
+262
+261
+260
+263
+266
+282
+281
+290
+299
+300
+302
+288
+286
+296
+293
+292
+272
+270
+283
+294
+311
+310
+309
+310
+312
+314
+318
+330
+331
+332
+344
+342
+328
+317
+314
+310
+306
+310
+351
+353
+352
+354
+355
+349
+350
+354
+353
+352
+357
+362
+358
+346
+329
+322
+320
+294
+277
+270
+273
+275
+283
+279
+277
+271
+273
+246
+247
+248
+255
+258
+243
+267
+266
+282
+281
+282
+284
+288
+290
+289
+288
+298
+302
+299
+300
+303
+297
+324
+325
+329
+332
+313
+309
+307
+299
+289
+315
+320
+311
+295
+303
+307
+329
+330
+329
+317
+318
+334
+335
+310
+312
+296
+297
+296
+299
+300
+301
+284
+300
+283
+278
+286
+281
+276
+266
+278
+279
+268
+261
+274
+281
+282
+299
+298
+299
+297
+296
+295
+286
+283
+282
+283
+298
+308
+310
+287
+280
+281
+280
+282
+275
+247
+244
+245
+240
+236
+241
+250
+252
+247
+244
+246
+250
+251
+259
+272
+270
+269
+277
+279
+280
+297
+298
+299
+301
+315
+322
+323
+326
+328
+322
+323
+316
+315
+293
+303
+334
+344
+345
+346
+358
+359
+360
+361
+374
+380
+378
+379
+377
+382
+383
+384
+388
+389
+396
+408
+409
+410
+401
+405
+400
+404
+403
+424
+444
+450
+440
+430
+412
+415
+436
+430
+445
+450
+472
+477
+480
+464
+470
+462
+456
+463
+467
+466
+465
+466
+473
+474
+470
+471
+479
+481
+501
+500
+499
+502
+493
+485
+498
+493
+505
+506
+494
+498
+501
+515
+517
+523
+520
+517
+511
+510
+522
+517
+523
+524
+520
+518
+517
+527
+525
+536
+510
+511
+526
+516
+522
+524
+543
+539
+540
+547
+560
+577
+591
+592
+593
+596
+597
+598
+581
+575
+576
+586
+585
+598
+599
+603
+600
+602
+603
+604
+595
+600
+621
+601
+604
+607
+621
+618
+621
+619
+620
+617
+615
+614
+628
+630
+627
+635
+634
+629
+650
+663
+665
+669
+670
+682
+662
+677
+679
+669
+677
+676
+692
+693
+682
+697
+691
+702
+718
+721
+725
+753
+752
+751
+746
+741
+737
+765
+780
+806
+805
+803
+786
+787
+801
+812
+818
+797
+794
+792
+798
+800
+799
+803
+788
+799
+804
+805
+812
+814
+805
+803
+804
+791
+796
+786
+785
+797
+791
+792
+811
+809
+800
+818
+824
+825
+824
+823
+841
+835
+848
+843
+846
+828
+811
+812
+806
+795
+798
+802
+809
+827
+838
+837
+836
+833
+812
+814
+817
+816
+827
+826
+829
+831
+829
+831
+832
+817
+830
+827
+828
+829
+832
+836
+835
+837
+840
+833
+831
+833
+832
+833
+835
+840
+868
+882
+886
+883
+873
+893
+891
+897
+898
+897
+898
+895
+889
+890
+892
+880
+901
+890
+889
+891
+894
+899
+927
+928
+927
+918
+937
+935
+931
+929
+935
+939
+937
+936
+935
+944
+928
+930
+926
+927
+933
+935
+959
+961
+947
+955
+961
+960
+956
+968
+973
+978
+977
+980
+994
+996
+974
+978
+997
+1000
+1009
+1021
+1038
+1006
+1009
+997
+999
+1008
+1004
+1008
+1010
+1011
+1010
+1024
+999
+1000
+999
+1001
+1011
+1010
+996
+1024
+1028
+1021
+1022
+1038
+1042
+1044
+1043
+1081
+1075
+1072
+1068
+1069
+1068
+1067
+1068
+1070
+1057
+1054
+1053
+1038
+1039
+1064
+1063
+1064
+1063
+1061
+1068
+1053
+1034
+1056
+1054
+1055
+1050
+1040
+1038
+1036
+1030
+1011
+1033
+1035
+1036
+1049
+1044
+1038
+1054
+1062
+1096
+1097
+1091
+1092
+1091
+1090
+1093
+1102
+1126
+1124
+1125
+1160
+1159
+1162
+1161
+1145
+1136
+1137
+1133
+1134
+1141
+1143
+1142
+1122
+1103
+1099
+1100
+1097
+1096
+1107
+1105
+1103
+1111
+1150
+1138
+1140
+1119
+1088
+1091
+1089
+1075
+1079
+1083
+1085
+1082
+1076
+1088
+1086
+1088
+1083
+1082
+1088
+1091
+1093
+1076
+1078
+1082
+1081
+1083
+1085
+1087
+1086
+1076
+1095
+1113
+1109
+1111
+1110
+1118
+1119
+1126
+1117
+1111
+1129
+1124
+1131
+1135
+1134
+1128
+1141
+1130
+1121
+1117
+1113
+1105
+1097
+1114
+1115
+1114
+1119
+1116
+1115
+1113
+1112
+1121
+1124
+1127
+1126
+1131
+1134
+1129
+1131
+1137
+1139
+1143
+1145
+1146
+1135
+1137
+1142
+1140
+1141
+1144
+1142
+1141
+1138
+1144
+1141
+1143
+1128
+1104
+1112
+1096
+1101
+1100
+1099
+1086
+1071
+1058
+1057
+1056
+1047
+1040
+1036
+1031
+1032
+1038
+1043
+1046
+1035
+1051
+1049
+1050
+1054
+1042
+1043
+1046
+1034
+1031
+1016
+1020
+1019
+1010
+1011
+1009
+1010
+1007
+1010
+1011
+1022
+1044
+1043
+1044
+1048
+1030
+1028
+1029
+1054
+1048
+1069
+1083
+1082
+1092
+1121
+1143
+1144
+1145
+1146
+1160
+1165
+1172
+1169
+1178
+1181
+1180
+1181
+1186
+1198
+1199
+1190
+1195
+1227
+1223
+1222
+1224
+1237
+1235
+1242
+1254
+1256
+1263
+1260
+1259
+1270
+1269
+1264
+1271
+1272
+1270
+1273
+1287
+1304
+1291
+1287
+1294
+1291
+1292
+1296
+1300
+1301
+1296
+1327
+1320
+1341
+1346
+1345
+1324
+1328
+1314
+1317
+1314
+1300
+1303
+1296
+1299
+1326
+1325
+1343
+1342
+1338
+1330
+1329
+1323
+1331
+1349
+1348
+1349
+1350
+1341
+1353
+1352
+1353
+1354
+1356
+1361
+1357
+1384
+1389
+1397
+1400
+1399
+1409
+1410
+1415
+1431
+1432
+1434
+1421
+1423
+1385
+1378
+1387
+1385
+1378
+1383
+1411
+1422
+1421
+1423
+1429
+1430
+1434
+1433
+1432
+1423
+1387
+1390
+1392
+1387
+1388
+1410
+1407
+1410
+1408
+1412
+1418
+1424
+1422
+1426
+1420
+1422
+1423
+1424
+1444
+1445
+1442
+1463
+1459
+1463
+1468
+1470
+1475
+1473
+1462
+1461
+1458
+1469
+1466
+1451
+1453
+1461
+1474
+1477
+1475
+1476
+1470
+1469
+1467
+1476
+1484
+1507
+1505
+1501
+1481
+1482
+1483
+1477
+1488
+1516
+1505
+1514
+1504
+1503
+1487
+1505
+1513
+1515
+1512
+1504
+1506
+1513
+1521
+1563
+1562
+1567
+1568
+1558
+1557
+1539
+1514
+1516
+1524
+1523
+1524
+1525
+1516
+1515
+1517
+1510
+1488
+1468
+1467
+1474
+1473
+1474
+1478
+1477
+1476
+1503
+1529
+1536
+1560
+1570
+1581
+1600
+1601
+1602
+1605
+1625
+1629
+1620
+1609
+1583
+1599
+1590
+1592
+1590
+1592
+1557
+1554
+1557
+1535
+1519
+1529
+1521
+1520
+1527
+1537
+1543
+1539
+1538
+1511
+1504
+1523
+1524
+1529
+1532
+1530
+1529
+1536
+1537
+1511
+1512
+1536
+1535
+1526
+1517
+1515
+1502
+1503
+1506
+1479
+1482
+1480
+1486
+1488
+1486
+1477
+1493
+1489
+1477
+1478
+1473
+1472
+1473
+1472
+1464
+1466
+1467
+1468
+1469
+1470
+1485
+1483
+1485
+1475
+1480
+1481
+1465
+1474
+1477
+1478
+1479
+1478
+1471
+1470
+1502
+1518
+1534
+1497
+1496
+1490
+1500
+1504
+1515
+1516
+1517
+1540
+1538
+1537
+1541
+1528
+1522
+1526
+1528
+1529
+1523
+1497
+1503
+1492
+1491
+1497
+1486
+1514
+1510
+1514
+1510
+1503
+1497
+1490
+1493
+1517
+1518
+1517
+1519
+1520
+1522
+1523
+1540
+1544
+1543
+1545
+1544
+1517
+1516
+1531
+1530
+1526
+1536
+1533
+1538
+1565
+1578
+1577
+1538
+1541
+1530
+1528
+1535
+1552
+1554
+1557
+1566
+1577
+1588
+1614
+1626
+1616
+1625
+1627
+1626
+1627
+1639
+1644
+1643
+1645
+1652
+1618
+1610
+1586
+1592
+1587
+1588
+1589
+1586
+1585
+1612
+1611
+1622
+1644
+1634
+1638
+1629
+1625
+1627
+1620
+1621
+1622
+1621
+1623
+1624
+1622
+1616
+1598
+1619
+1620
+1627
+1628
+1627
+1605
+1604
+1605
+1610
+1617
+1611
+1618
+1621
+1620
+1625
+1624
+1623
+1622
+1619
+1620
+1619
+1622
+1624
+1631
+1632
+1634
+1631
+1632
+1643
+1648
+1649
+1651
+1653
+1642
+1660
+1672
+1696
+1694
+1699
+1688
+1711
+1728
+1726
+1725
+1751
+1750
+1751
+1758
+1778
+1771
+1774
+1804
+1823
+1803
+1804
+1807
+1804
+1795
+1773
+1775
+1783
+1773
+1769
+1770
+1771
+1772
+1775
+1778
+1777
+1782
+1790
+1788
+1792
+1790
+1786
+1788
+1795
+1793
+1803
+1804
+1807
+1811
+1812
+1836
+1838
+1829
+1827
+1830
+1831
+1830
+1842
+1851
+1853
+1850
+1838
+1839
+1840
+1841
+1842
+1839
+1840
+1834
+1822
+1823
+1822
+1821
+1846
+1851
+1855
+1853
+1859
+1858
+1846
+1848
+1850
+1882
+1885
+1894
+1892
+1903
+1896
+1875
+1872
+1877
+1878
+1872
+1870
+1875
+1876
+1877
+1876
+1873
+1871
+1881
+1875
+1888
+1879
+1877
+1870
+1871
+1874
+1879
+1873
+1872
+1882
+1884
+1883
+1892
+1905
+1911
+1912
+1911
+1926
+1930
+1948
+1949
+1950
+1949
+1945
+1949
+1950
+1961
+1959
+1957
+1979
+1980
+1979
+1963
+1962
+1964
+1973
+1978
+1975
+1966
+1965
+1964
+1957
+1958
+1959
+1960
+1991
+1997
+1975
+1986
+1985
+1982
+1979
+1978
+1983
+1989
+1996
+1976
+1991
+1996
+2002
+2004
+2001
+1998
+2000
+1992
+2006
+2007
+2008
+2010
+2008
+2010
+2003
+2004
+2000
+2002
+2006
+2000
+2015
+2021
+2018
+2001
+1990
+1993
+1987
+1990
+1982
+1992
+1991
+1993
+1994
+1995
+1996
+1989
+1984
+1989
+1988
+1987
+1998
+1990
+1989
+1991
+1988
+1993
+1988
+2000
+2016
+2024
+2021
+2029
+2025
+2019
+2009
+2008
+2001
+2009
+2008
+2009
+1993
+1990
+1983
+1982
+1990
+1991
+1990
+1989
+1970
+1962
+1961
+1963
+1965
+1969
+1968
+1988
+1994
+1995
+2016
+2015
+2018
+2017
+2023
+2027
+2030
+2020
+2021
+2022
+2008
+2010
+1991
+1995
+1996
+1995
+1990
+1991
+1982
+1986
+1994
+1991
+1990
+2005
+2003
+2004
+2000
+2008
+2002
+1994
+1989
+1992
+2006
+1997
+1986
+1982
+1983
+1986
+1977
+1974
+1958
+1962
+1967
+1970
+1998
+2011
+2008
+2009
+2006
+1998
+1992
+1997
+1996
+1989
+1984
+1990
+1989
+1997
+1996
+1966
+1965
+1960
+1959
+1928
+1930
+1931
+1935
+1929
+1928
+1930
+1942
+1929
+1932
+1915
+1914
+1888
+1886
+1896
+1898
+1886
+1885
+1897
+1899
+1910
+1919
+1921
+1911
+1904
+1905
+1897
+1913
+1925
+1930
+1938
+1944
+1946
+1966
+1979
+1981
+1984
+1982
+1985
+2000
+1992
+1991
+2007
+2006
+2008
+2009
+2005
+2012
+2008
+2009
+2010
+2003
+2007
+2017
+2016
+2030
+2028
+2030
+2035
+2036
+2033
+2031
+2037
+2044
+2042
+2040
+2038
+2040
+2031
+2020
+2043
+2044
+2061
+2063
+2044
+2041
+2043
+2044
+2071
+2075
+2081
+2071
+2077
+2079
+2080
+2056
+2047
+2046
+2060
+2059
+2061
+2062
+2082
+2084
+2085
+2079
+2090
+2080
+2079
+2081
+2071
+2073
+2074
+2078
+2086
+2094
+2112
+2129
+2125
+2136
+2138
+2144
+2142
+2140
+2158
+2161
+2149
+2158
+2168
+2169
+2165
+2154
+2168
+2170
+2163
+2178
+2186
+2182
+2189
+2193
+2204
+2206
+2219
+2221
+2219
+2237
+2247
+2248
+2246
+2245
+2269
+2262
+2263
+2267
+2271
+2268
+2270
+2300
+2305
+2310
+2309
+2303
+2306
+2307
+2308
+2302
+2301
+2321
+2311
+2312
+2314
+2320
+2319
+2321
+2326
+2327
+2328
+2327
+2311
+2315
+2314
+2317
+2327
+2326
+2320
+2321
+2319
+2311
+2304
+2306
+2314
+2318
+2319
+2321
+2307
+2286
+2289
+2290
+2294
+2293
+2294
+2291
+2290
+2317
+2322
+2323
+2329
+2350
+2356
+2361
+2376
+2375
+2379
+2353
+2347
+2339
+2340
+2331
+2332
+2330
+2317
+2293
+2296
+2301
+2289
+2281
+2280
+2293
+2296
+2295
+2302
+2307
+2337
+2327
+2344
+2331
+2341
+2344
+2335
+2345
+2344
+2348
+2352
+2351
+2340
+2331
+2332
+2327
+2316
+2334
+2335
+2336
+2343
+2344
+2349
+2345
+2353
+2338
+2339
+2332
+2330
+2340
+2337
+2347
+2345
+2351
+2352
+2344
+2350
+2351
+2356
+2371
+2370
+2384
+2383
+2372
+2382
+2375
+2376
+2353
+2360
+2366
+2344
+2346
+2365
+2371
+2378
+2362
+2354
+2361
+2356
+2357
+2358
+2315
+2324
+2310
+2311
+2312
+2291
+2296
+2295
+2307
+2304
+2303
+2308
+2309
+2299
+2319
+2322
+2325
+2327
+2326
+2319
+2322
+2319
+2320
+2322
+2321
+2323
+2318
+2325
+2326
+2312
+2313
+2316
+2317
+2338
+2349
+2347
+2351
+2352
+2333
+2340
+2365
+2357
+2362
+2372
+2375
+2376
+2392
+2395
+2399
+2407
+2396
+2391
+2394
+2401
+2406
+2399
+2409
+2421
+2423
+2400
+2398
+2399
+2393
+2392
+2390
+2382
+2381
+2379
+2381
+2390
+2387
+2389
+2391
+2393
+2394
+2397
+2398
+2399
+2396
+2394
+2392
+2400
+2396
+2397
+2425
+2416
+2442
+2443
+2445
+2442
+2445
+2434
+2439
+2440
+2448
+2447
+2451
+2442
+2446
+2451
+2452
+2453
+2463
+2460
+2461
+2466
+2450
+2460
+2464
+2465
+2466
+2468
+2470
+2477
+2473
+2469
+2471
+2476
+2475
+2476
+2488
+2489
+2491
+2490
+2515
+2533
+2531
+2532
+2531
+2533
+2537
+2539
+2537
+2533
+2532
+2529
+2536
+2535
+2518
+2520
+2519
+2517
+2548
+2549
+2520
+2521
+2523
+2546
+2538
+2543
+2552
+2561
+2579
+2581
+2564
+2567
+2569
+2570
+2569
+2577
+2586
+2587
+2584
+2601
+2572
+2579
+2593
+2586
+2606
+2604
+2606
+2600
+2599
+2602
+2603
+2621
+2622
+2623
+2622
+2623
+2634
+2646
+2649
+2677
+2678
+2679
+2640
+2642
+2640
+2648
+2649
+2639
+2633
+2636
+2635
+2642
+2644
+2643
+2644
+2636
+2641
+2642
+2648
+2647
+2646
+2658
diff --git a/txt/2023_1.txt b/txt/2023_1.txt
@@ -0,0 +1,1000 @@
+6798seven
+six8b32csscsdgjsevenfivedlhzhc
+fcvvkvjjnhfivesixfiveninesxlvnhfckc54
+feightwo4twofivefour
+cgpzm2sevenone68636
+498879
+fivetwo2plltvdfourhhgrfn
+onertxzlzdnxn2seven
+ninethree4v1five
+5pnnss16lzbsmcckeightdseven
+jthree249four2cjzqmmbrqnnine
+foursixfourfbgvqm1rchdlmzhtzqqfjzpmln
+twojtwoscbrtgmnqzvbfbzvrtkxhmf76nine
+2fourtwo
+svxz8bjvt5zzvjzhkmtmnnft92
+threetffnjvkfh81nineqqshzdf2vtjfqjtbdv
+seven1drfivethreedpqflxgdshlzmmnrb
+7sggjxkcxfourthreefourtwos3nine
+39t6rvkbdnfpssj6djnfbqklkgfsqbf
+3four2zcfvtplkrbeight274
+one7sixninesix
+kkxmtmdthree6jrj6
+81sevenmnine1llbqrsprc
+5nine9qgjceight
+three1sdmq9sevenfournine
+khnlbmzhvlsix3
+nineone6onesixvlnlxeightfive
+schplznseveneightnlcxgr7four
+6one1djcdmpdrgq3two
+fourzhpnphmq52r813four
+scsxjthreefoureight2fivepfmpfj8
+69xvbxfffmr7one8gmch8
+one8tfpgrdhm
+2gxmhtfrbrkpdvlvsmdqrktxtrpssbrv933
+4vfrtkdqlbtwordlbppsssp
+2cjmtvnzpbkdcq5twofourtwo
+2three5onetwogpfqtszbjh
+hgvnine9four996
+37142745
+four73
+8552ztclnd
+onevmpd76eighth
+threethree8
+bgtwonedrmc35
+23one
+9lpxzhkck2five3qone9zgxzrzd
+hs1
+92xhflsixltpqprpfggbzrvmfqone4
+eight9sevenpcxvl6two1
+rceightwo6jc1nvllxsstqgnlhtl4
+tlnhlsixfn3lbdlqztmkthreedllfourone
+74five
+dcfpstvxnd52kdqhlht
+7onenine
+2twothreehdzssrt1
+eightseveneight54xflfspthreefsfbtbslx
+4ffsfsvkxslvp
+939flgbmvzpvfsmtcsix3
+742
+qcfive72plvnd7
+5hhd8onejbsfklmpzcgffivenine
+twodsmjkhdxjdgktlrteightseven2cttnpjsv
+31kptdmtwojrgp
+dnnmrflcft92
+7gtglplfkrnine85xm7
+voneightznktfvmxlhnine1seven4z
+24sevenncdmcpkrvnxlbeightsixlrvns
+38prmrxcm5
+4vhncsevenjgvjllppvcfmvrlsdtkqcldpq
+81phvtb
+5l7twoeightlr
+8xfqbnone5
+62737sixfourdfqvdcone
+seven1two
+79qncxqcj1one3
+69four3two7six2six
+six499
+gknlkqvntvmsjzlfb7one
+honeightmjlmvmbxsmjzg77
+6seven15
+five59two91
+gmhhtq9368gtsdg
+nlmbvxckjtwofourfjnine47threefive
+93eightnpkjf26one4
+qcslmgkkgbsnrr6ninennr
+8381three2threeone
+7hnqndhs8
+qd65
+twogtlrqrlvfourfour5qsixdjhvqvdlljnvbtkq
+6seven8ldvkz
+gf14sevenrv
+2fourpkzdklbvm2
+four26jsrbsrxdlmzntsxgg
+tghcz8fourthree
+threethree8hzlvpjzxcdfvcpjbmc942
+jktsix2cprnhkkktjcvkvtkdggvrscf
+dzhh82
+nine8tsix
+9fivernlsl6jvfrljzjg
+52d
+threethree556nine
+g2twoblhhptzdqbbnnrpseven5
+jfive8
+eighttwotwofiveqdfr9
+kqxncc74sjttqklx3lxpffbdlthreetwooneightnb
+1xpvjzvplfjdsjqrtmzbknine
+five4r6five
+72eight
+1kzvxckdbjjpprrqn4eight6onebsdmrcxqznjtbnh
+htwocglz3jggvkcbzvtconeeight7
+twozspgcxf5bhx
+ntglpd1six1bv1
+5zxgrdlhkmzsix47t43
+kfrnghxgfzpjxmstwofourkzvcsksixfive1
+grnd423
+8f
+1xcqchtnsix4tvtffone
+bxlbtwotwoeight9twoseveneight
+7ldngmndg96pjnfour
+five4threexp
+mtwonexp7nine3z9
+8kg95ninesixtwonem
+sixpmvfoursevenz8m
+vrszvbtvtr28pzcjxkztzhvmtqvhnqf3
+1gsbtwopjkrrqc1one
+tbmsix93
+n4
+kffgtgcl866364
+one4qgkzthpmeight8eightfourkdcnpxv6
+cfhlmng21five
+8lhcseven9vksfgpvlnfq3bglktc
+twocc2rpflzhqseventhree
+six1fourfivefive5onesnpz
+1ffqfxh75flgjqcx
+fourthree1twortvlvcsvs2
+8rxrpvxthreestbbpcszhnbrsfour
+6qdkshgrsjxxsvpmnjxnzmcone71fckgjbrsnq
+8568three2eight
+1khdqskj
+onebdfour6
+dpcpqnineqjnfzffsb5tj1ccm4four
+nsrvffqhd67sixtwoseventwohdgh3
+nvsscfour973fsngxbm6
+93zzrgmsqtlckzrnbbk4seven
+3seventhreexpfrrfpfiverv7
+threeeightfourfoureightnine1one8
+7onethreefour33cghone
+sevenfivesixseven2
+jgbgmcx76qc
+zxbpvj7
+21xlcgpshvth96fourtwokcvmhcdtxnm
+foursix2
+6three9nine4sevennine
+dqnhdnine3
+seven58vzcxqmffive7
+xdmeightwomncvnkdkpxtwoonenineseven1tclckshvptwo
+gsdff22fivethreebn
+one7gd
+jcz8xxfdlphz5threepzmjqzfb39qllhvcqj
+fivesvjdbqlvgnvkcklszeightcjhdjxdvchfive9
+9sfgxbtcgbk
+six4zvfivelxfghffvq9bfkshrkmbn
+sdtxjnnjjp3fivejsll5
+tpeightwozhzqxjstneightsixgbjlmsjfls6tlc
+668ninenine
+three7two
+gtskqnine1seven862mm
+487jsqqfkzfcs2lthng7five
+gjks7
+lfnqzjphssevenone2qvfiveninexhr
+fvfgnddffhjjfour9six9
+ttkmtncjc9five5eight3
+3seven24426four
+two9jnd5eight
+threeonevmzqdxvjlqxgzqone1hcpqsd43
+tfzzzjjbx7oneeightbqthree
+68onerrpvsixvkmnrndq
+jbjljljmtwoqgt3kpvdkdsixone
+kxvbxzzxrfour2slfjkkgq555gxfsix
+three9tsthree
+eighttbtdg2sevenxsqsq
+seven213jbqmvmvvhsixrfqhlfive
+nsvcdhkbdmxqbkthree28ztjtlsqprcplmx
+4lntqfk4tkmmgkvrcninenineonelpjtq
+221eightqfp7eightzshhl
+vppzgrsix1fmvpcpkvsvppspqcsixone
+5lhcrxclclcsix4
+qhone2mhhxqqdl73seven5
+5three9hdnfrgfjsfive7
+grcfbvfkj4
+487mzcgxvxqgx
+four8nine3four3lpqnclxzzbmjztbhdfdjfive
+3six6kbrvjjsndlxvsz5qcfmtzsqlmqbrn
+klcx6eightsix2onesixthree
+8ztdfdglxhjxmmvktwolsrr5six7
+9two66three
+6threesixtgnznd
+ggglpldvkkhgmrgt3
+9kktwo3srdtpskbbx446
+7xmrfkbsr5nzqfgseveneightcbshpfour
+six5eightseven5gzsjfthree21
+2897cgv
+dffvs7zrlrvlkjcfourjxsndkzq4
+eight22blzxvvshgtqlqpqhsixctp
+three8bgjhkvnbdvbttblp1fivenxslnseven
+3one21x73twongdnb
+kfzzhhctgrlznqcdvzshlfive56pdqx
+cfsthhgvgfddmsjn83sjrrkxzl
+four99tfvbtxgfqrlhcdktmp
+3rfhfgcf8six2
+onexsbxqmqkj3hrblqnfrseven
+hfgnvtdzzb51gtljm9eight
+zprhsph3
+sixsevennine2four715nine
+fzxzkcvcxl4
+lcnkqqsrtwogcbvxrtfp2five5three2
+7ninesix9jxhrdqrpr94
+lxpqxseven2three
+mnsjjgdlltwodrcfltwo8vninemqlfqsgccl3
+sevennfkfvxsqr7twotwonedb
+7twonpkjfjmgqxsxpdtninetpsfjlqvv
+seventhree328sixscxmpqjlxftwo
+3qpxvglmpcgxzrseven9
+6onemqrvdmckhmdrzxzkxbjthreeeighttwoql
+sevenfdpqqzpbflflgph698eight9
+fivedbntvzzdq36two3
+8six3fivefivefivesevenpxqpxrjqseven
+sixtwoqt4
+tmcfive4zkxhvlrvfzhkczpkvbxk1
+rbrnxxbfxmbqscltvsixone79three
+88sixzqntjsfhqj6three43
+pmcfsrpknvbfhrzlvlcffjmfive32323
+97rtggjhvvdfive
+vtdljvqht1fivefivetwo
+88rqtpdz5nine
+rtwone725
+sghfour2eightgrgpsmfxpchmmpndccgzfzz
+kpgrhmtkxzzmdpcdzeighteight2
+5bfhbmffeight6
+8fqtr17czztqgfour4lx
+9xnbmgqgvrtwonevs
+1zqsvmcqsxjtp
+twollzsslxc37sixoneightp
+6bbgl76
+58zntvhvgdnh2
+three54
+fftdddqnninesevenone76
+6ddqzjoneeighttwothree
+56threetcp46
+21six3m
+214onethreesp6six
+652three6
+lvc1onefiveone
+6ddrgglstz
+twothreerjpb2four55
+eight8eightwoh
+fivefqckddnine7one61zlkjgxjtqq
+gzneightwovlsdvcmvj3qhbfmkdnvqone99
+92sixgxsix
+64eightxb2six
+51fivepbxrzkdzjhsixoneightmt
+ninem3nlpdtonefivethree6six
+lvxf3nine1eight
+vvbvfvtninefive5onezgtsjplxc
+qltld5p9tgpmkzrf4
+71six
+2threergjrcqsixhgjtdkjpqnglzgdpqntnqtzcfcbb3
+7xfj5btrml3two
+979nzpjkcthcl13tnfour
+one1jseven6three7five
+tppnljghmhxplmnjgfmpfourtkffqcghxx9four9
+396
+onettfdjdd5msplxhlqvv12
+7mrqgcxbbtwo6seven5oneonesix
+hjnq8vbshrbxeight9sixlxznhqgcc
+sixzq9nnq4lxzhzmzjmnbtfbkf
+vfjhmf3ksgnlzzhsdtwotg9eight
+ddztjmr453qghvzrtsgf
+55lzcrzseven39
+onecggvnjfpone27qrzcrxvp6
+286hfzchgcgtcqhr
+ngeighteightfive5mbdn
+l1five
+712onekndmfive6ntrmsk8eightwop
+hqgfive512fourhgrm
+vpdvhpkngnntqptmsevenoneseven619
+ninesevenckpjpxszfv1jzxtptvrdkfourfour
+tjlcs5onetxfkq6hzfklslthreeeight
+mxjrssqxt7one7hnffgqcgsthree
+onefsxjsnzxncsix1rr
+four725deight
+sgssrlckfourprpsix5rktmjhxksgmvdqmnkndjls
+75eightr6three
+6threesixx1sixsixcbxxcxvnhsgl
+4fiveeightkj9fivemqzvcc
+ncgqljseveneight61nbcv
+three83pnineskc
+fivehninesevensix5
+five617twosr6nine
+ncjjfvzzmghgq8
+2n48twodpnpgq
+qpgnxtvhq1jcvtxlfkfour6eighttwoztzddkmpbk
+fivevhfxpjtmdj2ninesevennine9two
+fivejtxmg4hbctmpnntlpbzfmxqgthreejbjdb
+4xgrzszmhx
+28four78tmrkfndeighteightwonq
+zvnxmbtjqzblnine3five
+slmt6onetwo5sixfour
+bthreenine3five
+3fxjfivevcdmmphtrccptz
+8fourksxxsixsevenseventwofour
+fpxvbdgqxzdzxone7threeptgzhhqmkxmseven
+9six654
+foursix6559
+9fvsdcbmmghfive8one8oneone
+dlxcsjmcjpmmjr64onegtkkqkmhkl1
+pxkqbgdfour89
+nn88
+6sixthree
+1zxszmgmfg9drnjzd
+eight8onetvgzfzfjqlqtwo2dfhtwo
+kcgzq8cxdqphsglsixfivefourdbsjjmdtnxrzt
+4threenine3dpflrrtmt
+one83five
+8sixthreetwonez
+3fxnhqrrseven
+seven4onetwo
+fourbvnvbnineqggx5twovbdzztqccjhqqqnine
+qzcdgvninejbrfoursixseven24
+vknqxgpgxnl2mrmbxprseven
+kfggmlcht8sevenfourkbtdzstpsnine
+kxzhchjh77sixmvtceight4seven
+five17
+eightdgkcrphqsndn7fivevkstrsprktqdrdxqslmjtz
+2njqktntzjtwo7
+four66
+975eightnczdclht
+twofour1mlbpb6d
+ddleightwo64
+2239gksfnlvtg1
+jqrmqdkv1mhsjbqhhhjrvftwofour6
+fjglfourone74nlxzmxfkbn3three
+6pseven1
+1nscmsconek3
+r182nine23
+rqvstbf5seven1
+mmtrqgddjone2
+n23fivelvprvxstrct5
+loneightgmlqfl7nineqrtmzdbbjmnfivepqhgtmb
+sixfivefourtwoone3
+five39hjjcjktlcsixfive7eight
+sixeightthree5three
+5threeninebnbgxvnmfknp2dhbdb7nine
+5cpljvtxtpbvzbdrdvsdgc23sixtwo
+4fiverlflt549
+two1onefoursixmzm
+4eightjksktjdvxsckgllpzdvblssix
+xsxkj81vkstvjjtm5sevenfive
+8943qxpcfqpnqtwo
+58qnrthreethree1eight5
+6gqcfk
+49lxnllkqrdgcxdrfv
+94nine7six8nine
+55six6dgshxnn
+sixthreeeightfourbgnhsnjone1
+nine3qmpnnzldoneddthreethree
+14ljmrtmhmeight8
+onetwo4eight31loneighttc
+jnkg8lbjjvclcvmbseven3tdvnmrp
+7qxklg
+7dtwosixthree6
+sevenfivesixsgltjpcnthree2
+15rzct
+tfn4ninevt74nine
+1fiveseven68hztpthreexlbbgbqffvthree
+svqjgxnmxlpfjc95
+nine9bn3njvhp9eight2
+92six1threeeightwot
+sixfour2nine
+nine1bstseven45snndcpmtbq
+onesix4rkrglcvmvb
+tjccltxqljfourcfbtcqtjd1
+fourgqjb7sixeightseven6
+6four99nine8dfjp2dhzsfgt
+7kfgzrxgm7
+3nn3
+eightfzqvgrr1skhnqntgvv
+8fmghkjzmrkpthcrk6eight9two1
+qgvgggrmnine3rl9rnf
+seven6jvjfkr
+ninetwofourlsbdlmlnsixb9
+khqtjbkpdvrdnine6three
+pzninebmxq1onefourqtztvzlxf
+seven1sixcjcbfv3ninenine
+ngtsvjgmcg5mssqdgtsdrqff
+1vshninetwolfbfhckb1vfkxv
+1six3five
+93hsvjggzqcgjbqjvpnine6
+dtwo4onefpthree18
+4fourfive
+nnplsdmt962
+five83rzgdpc322threesix
+3hcqbfiveppvzvtcbjnvqjz
+khh4one2sg
+pdtltjqgqzfive8sixone9vhnzbvfnxz
+xtrxkfive83three
+three75kjjxsixfivefive5scjbbflf
+ljfcdxktbnmvbspglnjfive483
+eightonespmnrznpptmjvh68eight8
+qznqkgvkhlssszmdlvjdjjtbgz2
+6sixfourfbxrxfbv9hldlseven
+3qzjrffxdthreeoneightbc
+three4tfseven2sb
+nine87rvkdgmpt
+84threetwobjfzvncrkfour
+eightsix9plxkppkgpzkfive
+2eight4526
+hdmqlgnphg1two11
+ninekxlrjmmkm34sfvrdlb76lkbzprhnchrz
+9one26txfggnctgfive
+7pzrqmfivev
+ddqknbqxnrxlcrhcmhmr5
+eightsix121twohbtkjqljkprzdsmnv
+7eight2twoqblcpqqfckfour1
+cbnpcjljfninenine9
+73eight3eightzfzjs
+szfsgstdmtwo2sixjkgxrxbtpdbkt
+one722
+76eightrvs
+five6two7rcss5eightone
+9ckcnzponebnpjlznbrfxnkvfpsevenonebz3
+sixninedbtpcrz148tzvbhxjk
+5zlpdbxk72twotlp6qbkpvjx
+3three4sjgfjzzone8xmeight
+56tkmpbmsix5seven7
+nineeighttqrntnvxrrbkpftwovclttztwo7two
+bsxdzgxkcx5five6twoqlbqgjzbc
+five22hhlpfiveeight8vrkjcstx6
+2psmkkxflgfoursixhjmdxfccbxqb
+25kljltwoneggk
+3fhtjzffgfph8twozr
+eightsevenfbzlr7rqfivefour
+one3fourninerl49rlvgnmtlcp
+vrzcnn79txgxf5five2cftclqsg8
+kbbptjpbvvzcxrsix45prvjcq
+one3ninefour2vcpdfkbnineeight
+lx1
+1oneqphkrtwojczlpmcjseven38oneightgm
+xsnzjbzfmb685ninezmgzfkzvpzj5six
+547six
+21five6z9
+5nqcsix1seven9
+nine4fbfprrfivevdvjphcqkfourthree
+9243five
+84zmtwothree
+5c
+17three
+5gvfxttjch74eight
+ninegs7hxmgmrzsx
+dzxzfknlk5ddgsbsh
+475cbbqscvfive
+twovjtkcxpxlvqhvgsqfzmthreecg1rctndlmm
+nine7eight
+eightoneninethreebccrmone9six
+twohbjxlfxdd4462
+2fivesixdrcmbksthree
+24sevenk7
+3sixsix28
+four66vvjvqhhbhr4
+seven4fourfourprhplxheightxkgvgghlseven4
+ninegtsqsnk7fourzlmnv9
+gpr3q5twoninebqnr6
+rxhkdtwo8three2
+jljtwonesevenkckbv9four
+4scdjjmkpf33
+vjfourzrlthreeseventbbzrm8n
+two1fourxqlfqbhszveightrqcsprdonenine
+mmppkfd745ninexfour
+fxeightwo5tftddm8onexpeight
+xdbmf415cq92dhmmc
+nine3onedcvqdvhtqninepczfhhgbmzeight2
+ffsix6seven5ninelg
+xtzsnzlvvztq64zhkklcgjrfourlztxlbtgxn9qcx
+six1nbqxmq2nxhtvrnrbsflzlztghfzjgfnhmeightone
+558
+xnhsbblmlp9sevensix
+jz8eightonemrbchzmhrjcv
+3twoktr
+6fourtwosixthree
+sixfivefour7
+ljbx2nine63four
+889g7sixtwoone7
+four4one7cztqmheightwompd
+ctqnhkqzxgtxrgfzvone45eightfbvjlgkc
+8eight35two5
+6pvzljrvseven5eight
+7zhgjds1
+mxv7dtbsbzfive
+4sqhcsjb6
+954threeoners
+63three9zltqkmpbqqpd
+6sjknine6phmcxrv1three
+threeoneprqcmzrbjjvlvsf2
+gbgfr2fivehsplpdnccxkfz
+ninefnpxtgzhzvdnr7rftghqrhpv
+seven2fourfive2
+8sixeight
+gcfjqqgbcdp33five42q
+fourfourbkrj3fourfivevlpvqbkgvxcfnlnbs
+tcgzqgqq77two
+nvzgmddmhseven1zbdfjrt17
+seven8fiveninethree48
+7five8
+nine3twoeightfgdkbtph
+dzlblf4ninetwoqqj4onetvpbbfdcbvtwo
+mcmbfvszjltlzdg7zxzzlrrvfbthreeninethreefdtsvclt
+8mzcseventwoeight9kjchpd
+sgpddvmkntwo9two
+sevencgqkbcsh5
+13nine723twofour
+twodpdvppxntseventwooneseven1
+9jjpxjpxdxxkqjseven
+4seven1five
+2nineckczklc5h
+threekplnxmcjffhpfdhhhvsvsx62zrmbcpgj
+35
+8gthree
+nineffourninethree6two8
+1vsmthree67fourchzmone
+bxnrzblqnv9xprtmvnfivevkdvqmvfhgxconezvzjlxgjhp
+xtqsevenfive7fourmclszsmnqz5
+vrxnrvfivegjlqrbdtkksz9
+ninefszbsfnhbzzqhbkvxjfive7sixfive5q
+eight38nklfskv3sb
+5six4three
+onezhpqfxgsz3stfsldzdhh
+qdtwone72
+fttvpkjsf8
+8twodxeightbltlrvjjbs
+sixninesixfourxzvf5
+85twokqdh2skxgnnnnsevenzg
+lsjqvnfive4eightjbjceight3
+5eightnineglvjmdgjvt4
+cfhxfnvnsixfour8twosixsixtwo
+hmp27seveneightsix
+5two6
+d37sixeighteight
+9fdbkdm86two
+4threefbsjzzkthree723
+dgzvfszqpkfpxmvqf7onethree
+eight2fkskmljrg12kschgbrbtgmkbdzseven
+5sbdhqrsftwoqlfqblrvgghbps6ln
+2pkmljtwospqdnflmj
+nine1eighthgccrfourseven9
+eightjbptmtmmvsevenseven6fourfive
+6threeseven6eightdsbpjzc9jsmtxdfour
+4ninextnv
+threeqjrdnfjlpnine55
+1psdrj3g2msfsjktgkv61
+sevenfive9xhdcthreenine9jctjthree
+636
+2threeseven
+nnxzzcgrhcgtz4ttnfive
+seven9sixone2fbbdfqtdfg
+4jgdxjqtbqzprpjdbjc2fivethreeonexlgkxtsdmcrrh
+4threepvzzhkmlmbhzhmtb
+m5xgplrjqlztvg9
+59s68ninerrhkrkxnzm
+hknsnsf6
+trgpkmkbtlslmpqtdxfourxjspnnmhdtg1nvfxpllcrrbzjrhrstn
+92twoj7two4six
+tseven377
+p49five2
+kpffiveeightcsbjz39
+8sdmbrxbk
+1vxknsvdqnsixkfsevenzqlr9
+fiveznrsqthpbddfcpbvhhhjctp9
+plbcxgkd4tmprsxn84hdrninetwo2
+twoqzqxbkm23brhsppdnvksixtwok
+8one5
+six45tdxfmcr6
+onesix4
+fxrl57561ktxfsg
+89nine54fiveeight
+three62three5one
+6mjqxh4scvddlls
+nflfourzrrgpvftoneseven43
+7sixtf
+sixxhxkvgnbz3rbdnvgf
+ckq745ninepqk
+1snlkqn
+ninetqvcllfvcfs62qtt6seven
+59khlmz
+eightdndsvdcqneight9twonenf
+zgcnqqmlgsmfzqbkllvsknsevensix5
+8qqxshjnnsp
+xfvttdnxhz4sixsjkqhpfszn212three
+fivelssnmckseven4ftqt
+2qsqpjmcbtvxjgqhhk
+tztwone749ninelncrmvthfourpgcbxzxvs
+4threecgnjpthnsgxhxbffour8eightsvmjkg5
+458sixseven6one1smkjk
+seven4fourrgqffqthree7
+jhpxqpspbsevenhpfnrpdvfoureight5nsbsfscjlzfive9
+sldxjjnjt5dlhdtrmsixxlmgxhvpscqqthree74
+8pvfhtpghtwo6
+nfknjlfive8
+eight7sevenseven9pdvhsevendzpxpghzr
+9fgdrgsgdhtwo7238
+8nfjgxpcbbmjrhh9765dnlbsfddhf
+tkqfc7sixsixsixggqsevenzrjrxtrnh3
+fivesix9zmxpjk
+four1kvhvnhjcgz
+one6sixthreenh4
+onesixfourtzkjjlnine1kq8
+1xkl
+8six5zbonevbtbmvtjvlfive
+zmggmrj9eight
+5sixeight23
+19twobshhmblpkp68
+7fivethree22four9tghbrr2
+gc3
+6qdkjxgpseveneight1seven
+7sevenfivegpllcnbvf3khjsqtwoner
+3fivefive417
+seventhreefthree96hbrjfxlkrninetwo
+vhnlzrv4gbdldncbgqrfd5
+gfjzvfchlzrnf8fivesixthreeninesevenrsfptjcrb
+6nineninelllzx
+sevenckthree1
+8one77four8sixnsmbhbp
+ltcfm386
+bcncpxhhgbdtxh19kqkpffqx6
+pr95
+eightsix7gbtwofourvclrmgfvph4
+four6bgzbcthree1kjhkvlh
+lbffslczqninesevenr6z
+three6lpjrgbfivexzfkprdf
+31kmnnffourtwo7dkmmlrdsm
+six7fivenbljxg6onesevenzmknhdfive
+32five5sggfive
+two4four
+xlf4rtftmttzk4fhrcbxmxlsjzfour
+fivecxrsccjsgdfpfdgpfsix3sevenqgntlgvds
+pbdmldone1s
+threekpzzth3fivernp
+glglvsnineckckdblscv2one9two3
+52cvnxlxqdoneone
+kjdvcklltsttlncvgrfive9fkspxfhchml
+sfxxlhkbhqnvskxd2five
+three3ninevndkz2two
+3two9six9sixfiveoneightf
+36xq
+twoeight76
+3kfsr1tworhvpqn7zmrp3nine
+tvvtqdcx8eight6three6fqsmnd6
+3three7
+2five3eight
+tmzhzsninetjjpmqdrkh6seven8threenine
+dsvnxx6
+8xzllsdpvrjszlhlmrrsixfourninefzncn9pkgdtlb
+four2eight4bdxhqxnjlfg3hkbkp
+onehcnf9
+twosixktskmcppzx4
+xzeightwo1doneseven7sevensix1
+fourgbdz85nine
+21xrsphxlr711mjeight
+one654four
+six4sevenxl
+sixmqhtms6zp99
+497twofour3two
+6twoxrjvzhldhfour69twofjjtskmzvls
+px98skfppldqkpsix
+7qxone8kzzdlqdmsixtzrhrzrhpeight
+6eightmdsbrvhnine
+onesixjxzx1jbfnjhm3
+threerbslfnzsbtjxfcmtxzjtvbdjnqj2
+4lbmlrptworkpdtfvnfour
+2threelkvzmghvdm
+6vrvcbbqv77
+gczqmslninepphpbvd896
+seven77nsnzeight5vzgvmfrxd
+seven46fourfive1ninechrlthdhvnfn
+sp2xngkbkqbpvqgd57onenine
+7oneonenine38hpqntxsz1hxvc
+nine3sixvrsrvfrseven4
+seventsvmxxn5sixgm1kdbrkcdfive
+5eightnfblfbxrkrrmflg5
+fourxltzjthree2
+steightwojllrms39threesixvjxflgzkm
+25ckxsgcgxjf
+lpsztggf4nine73two5
+drktgkbkxlqlfvhvr8onesix1qbgjjtcf71
+4eights14five
+jqjbzqvxcjqjjjhjjk8llseven1knphmcvnjcsfdzp
+9qrthreeeightnqpnninexgprcrdsn1rgjt
+59snmrlfxhsix
+1286
+72five81gnc3
+sixtffnjthreevmhc64one
+three96fournine4ninezr
+lrzcgsgdll99
+qftkzxrlone8sixeightfour
+eight7seveneight
+kzkoneightfbptzkfive2sgbcnxg92
+v5hdone
+onevzfour75cmzkfhklp
+cxklnb9fivetbkgjdcvjhqgnmdgrjkmfjqqbjtrzqfdreight3
+six6twotwolmggvvxrtwo72
+2kcrxxbzkssixnddqsqsk
+rpjglmp8onelvzbgvbjxdthreeonelvxdtqnz
+sevennine6bvdtwo
+16mseven3twojv
+hhconeightxrnfvbqhseven3vs
+sixnine17
+2lcssbzf1three3eightbvqrsmbh
+5onezrsvkbpnsix7zjggs4
+3eightfive
+cpgtwoneonerhgncphbfsrfplbfhxrmmpfive6
+4vbsrvggrzxxcxzeighttwo
+52nine5
+7fourkczfpeightnine3eight
+zzleightwo2onecfdsqthreejbcthreerbngllphhsixgp
+3sixntzmjnrrone
+3threeeight6bqcsdklzpfmbgxxtjs
+rrbjsghzclnine833
+cfbrmlhqvtpxtpdbbcjj6eight
+6twoqmhkgpktkdprrqxpbphjn
+cmfv1eight41
+fsfdjhbeightfoursevenpmqlcf6mvfive
+qmvq9sevenseven7
+1sevenjqrsevenfmrsncppbr1six
+1eightvcpbnsqhcv56eightzthree
+five8dnxkdbsxvd
+3l76cbpbdvsix
+vdvnbr1xzlssevenszdktcqfsqxtv4
+sixtwo9qngsslvmbv39eight
+66fjjnc3threexqdctdtkseightbqpphzzm
+hsqcqb1sjkdhhdltoneeight5one
+1llpgqdfgseightfvssfive
+znqqgtlmvxnlcgxr4fourscgzzhz
+eight9onetx5vzvqln8gxblpkmtkhcl
+eightczhdvmrlm5pmnlnlnine5hxzmlzntdmqldbnfive
+one16shmhxdvzbh73dsvgvtpddls
+5lph98flssjhz
+2psmflmhcbsrvzfive176
+qzqz8sevenone
+fmhgvseven7fivejdqcsznnone
+415dsgfivethreexlfzccgn
+qplzvmmhbh598ghnhrmzvxblxncdkrfntvzdtvqr
+8fdkghntwophfnpzjllfr9
+6rfstqcmdvq9
+nmcdsbclthreeonekxnrvqgjxpsevenfour3seven
+one72rqpfourdcqrlqpcthree
+onefour6
+eightoneqqrc18
+nine3nrscbxlx4fchjdgnlvvfrnf7jfffbggjt
+four8twofivesbpgjnt
+8sixtwojhjvhfive
+ninefg8xrvpbpgbklkbfrqgdloneeight
+pbdggcfoureight5rdsssnj
+gxqzltbzfbhfdcqeight3dggjvh9xg9jxq
+fm6ninesix
+1four8xkdjzkfthone77
+fourfourseven514
+2vfq9vfzxfmsfrxjxhfqrpc
+zckzxj45onep
+nine925
+nineone1eightsixkcd8ndvhj5
+fourfoureighthbhrnsix5seven
+mpr9sevenzm5
+two415
+two2ddgkzt66sevenmdzhdzhdmzjmvrrnd
+vntvkmtqm252
+bktbrctxtwoqbjls7
+seventwo26
+22threezlhpkpmzsnbshpgt
+1pktkpfppxbjf8
+one1jzlvq
+24fivek4
+84two
+1sevensixeight13pvp2
+xvndrn85k5nr6nzgcdhlzvf8
+ninefour1
+rhztwosix7
+eight4five5sevenlzbhmsprsj
+7seven1kmzsjl8jpdssncpvcjxczdvsk4six
+zcmpfqzfxlfsxkmscs4lctqonepjkg4nine
+8onesevenzlxflf9four
+threefoursix3five
+292mhsbgktzmlqk1fourone4
+pnnftwo5
+kpjmxmseven6
+fiveonetwoqbptwo4hmzhhfmvfqbgjk
+one4bkzjstxgrv2dvzbdfztfive7three9
+monetwo6fbxbphkpdtwo2ninenvphvnxhxk
+6mgmbthree9bnine3seven5
+eightvsfnsdkgh7fourninernvkrfcx
+fourxglll561
+3eightsixeight72six7
+4fiveflsgrgznjfbsvgvbrgnm
+763
+nine57qmhfgctmnp
+eight579xgpsr
+sbpbb215jnsfoursix
+dfghm9mrcpfthree974
+bh7threeqvhttfqt
+seven7kssmdclhfd
+qdltfdhsvz5threekftjfdqbn
+four8dxncfjhvpsxdseven3kcpmpfvnfb
+nine1eightwox
+vvcfdjlpcrfnnmbcx4eight9mtcfqqqfl5fourfive
+qbcxpccssl9kvqtjncjdxsrpp8sixbnmq
+sixonexjgqthdnrpfivetgnxqv1
+eightthree33ngpkqtqgtkmcfgqqgj313
+onezfnlseven1
+2threefhcs
+3nineeightzmpvjqrvcb1tkmchzjtsrfllv
+58cjnxhzfknnkj4ninezvskrvrc
+hthree16zdtbfnlx
+tzqcksevenfour3foursix5
+qbbzz1threesevenone
+onegfzhlthree12
+gpjjzfiveone21qbrjdrz7
+xcpjznj54fivesevenfiveq
+gsevenflcgfcmqtrzstrmnine9two
+7nrsmkbqffnnvfpjgb
+tfhnnmpbzq67six
+52jhltfzqhfprmtgbmhg
+vchpblqmsvffourzkndtsg7
+eightsevenvgfpttr62hmfzf4f
+eight4four1tsvfq
+4sevensix
+vrkmjrrxnbgjbxfqxllp17four1bdm6
+2kqfd4threefour5
+44m
+foursevenrxzjfftwo5twothree
+eight4xbxqplmknhjhzm9fivetwozjrzjp
+twojtjvdmgkjsstbdgl3bhhhzvllm6qxpzxjbgn
+sixeight3sevenone
+sixfour5m5
+fqlftfrtsj9
+rpjlhht2xxnnkqktkxteightsevensix
+five3vbklfdmpsevenone2thxcmzktlz
+fivefour7lxhg
+49gcb8fqc3fnstcnmdneighttwo
+2vd
+6tfpxszrkdsgphdsblkqfk
+43rjxkfgdm4gkxnvdfxs
+6225eight3
+8one35four3
+prsevennineeightfour8
+twozqdxfg363zczthree
+eight9vcncjcbxhnfeight
+meightjdg2vp73
+seventhree9dzdhprp
+btwoninegnfpfhxkvv3
+threegkxmmxzsmblsjfds8seven
+crbbpggzbfsjb8kqqgk9fourflghlzbgseven
+sixsix85eight5
+nmrvnmgdrtwo8three
+gqntwoneseven95eight1vtthdng1cgvxlvstgm
+oneqcftjqnxckthreegtsxfjbrmv2
+threekdfzqhqeight54four7twonep
+525xtwomtcgmfhbjninepkpjjsf
+1sevenxvgjdznvnjftwolvmjmg
+ppbgncvclfive45
+three6386qxzsvxpbz4onejt
+szxc93tfh
+zdxgxlj9nine
+9kkmgczf
+4six3six97qcxxgmppgkll
+6fivethreefourtwo
+nine9qpngcdftwo1seven7kzsjxqbggxone
+sevenninegfjkxkbptwo7nine3xjgsxh
+6srqfplffour81threefive3
+869
+nnsjzlrjcsnpd7zcfive
+fivenmndbmjngpsvkjsbqxvncm6qjzcktnsevennlxpbkchk
+three4eightwol
+2gnbninedt
+1twoninefour8
+5lb
+cdczlxgxpdqvkcqbfivet3
+nxxxreight158mvrhngveight
+811dsqsscjgfive2
+nine8nine16gxqxcj6three
+dqjdfksftwohrrhzlcxd12vblpmsqrrfourshg
+345dstjsbllcnine
+4three6vnzfssrqrg
+mlcmlvlmcseven72mcqlzfnpm2
+ninegflbrbv6twosvfive
+nineninerjmnhlthreenine3
+zvsqxdggl9dxppmcmc389fourvpeight
+2fiveeighthtfvpndpn8mt3two
+33tshvcbgtggone6
+1sevenfivextsfpsix
+frmhtjxcnztfhtgtr5
+8jjsclsqgfourthree7lvct75
+62vqnhqct4
+2jlvv55
+lszrone3eight19ggpnine
+8fivexxxrkzrppslbf8threexsskbkjcc
+pvpxjrnnp11rmgfhbpbninesmbfpcpseven
+seven8pfzgsbgjqtneight
+rdksixnzmxgppj6qkftmcthgl9
+32three1
+bnxd75
+mzlcnxgdddfpqkp6hjjpnnine31
+135gnzr9brblpnk
+vvninerkskndtjq8zst4sixnine
+fivexdstdtfshcchblmknlneight5fncvl
+7mhjsq7ninetwo3tbnkglngltwo
+threeninesix5567
+2four14fzrsjr
+9sixkl9
+rftbrjfour4
+onemtjqqdrtjgkbv1plcgtxtwoonefoureight
+6fourqsgfkqdnspzstbrhzxbthreeqxrshrfdbk1jrxptfhjfld
+sevensix9
+one75two9fourxdjmzjv
+one8rbvxt
+skzg13
+ninesevent3
+mcrgx49qbpzcqqbx
+threebsevensix9nine54six
+1bjgnlhtxgx
+71crfour
+3nkjflkqpjz61gzsffxlncmxg8
+rhppr943fourmmjm
+rvmthreevbvxqhrhglvrh869
+6sixfivexgshnkmx26
+3srgvnbcsreighttfnjcs782
+87ninenjhxpnrhljkvnms3
+foursix1rfgvmxqfrninekthjjk
+fourtqbjqcmsgnine1twoxgvqdhbnloneeight
+hhzdrttjvbzdngnqv2
+kbm71
+qzmtwonexlzbv2eightfrjmhld6
+27mdxfj49kzkzdspbxvktm
+three8cvfqmntngvmhddgqdgonetjgnnzggjz9xqlxffgsc
+ckd3fourtwo5vzv
+lhbvlseven41bdrkzmshkxone
+6fourthreefourthreeskhdk
+377dtljbhvfdr4ngqdqfbfournsnt
+rvbkddqrfm8rpfive
+1ninethree
+zjhbkjrb5qvtjbcgpkvksbsszpqjfcrgrcqggdtc
+73nine9pslhnpmxjjfourthree
+91nine5xndjkx7
+four17crgvnqtwoxqxfcsbbbsjlsjhsfll
+five9twobqlgcdpk4
+pblrzfive7ninetzfiverhlslrsone
+7bltone
+3eightthree16
+nineone54hspfngxzhzh
+7sixzxqlsqqsvfouronethree6
+8kklgfmqvntwonine9
+dznsskrrfchdnm2fxcvqvf3eight
+cmfkrlslhgzprgkfive6seven
+4threethree
+threesix2fkzsjkr6six
+8bcqmshjlnfivecrjtcsznrfive
+11nine3six
+326one1zvdzc
+1sjttzbstpx6sgfzpgdltxseven15bvrbmccbzkbgdnkkhpd
+9bbpksbnpdm
+3rtcztcr
+bk1sevenjbmncfiveninejp
+seven62hjvttpk
+rsnqnlgfgrxk8sfxhrlgmc1jnjgctclr7
+3sbmxlshf5five4
+8nprjs
+three89
+four399ljmdptjbgkthree
+cthxllrzbseveneight7four
+3gzvsfnxfive
+pjbgbnine1rphbcrhgnine2
+56fourcsfpfnntpkfcsqkkp6oneightlsv
+fourmn5kqgvk
+96twoseven
+2bk
+8nineninesevenvxfnqlsrnxbr
+fivetnxmljplldd3six
+qtzcgtlh9
+gtnkglkd3twoqgqhj6dpfgqtpptg
+7jvxsltntrksjzsix
+three95fivebpvtzh
+3kxxfvsseven
+157xvtnfkqnsbvpxlrdmjszrpmpfive
+7threeseventwo7twoseven5
+rcmzjxg1csdhdkvfhxppsixfivethree
+nvgfnine38onezdbhhgtmshc
+2ngoneninex
+1eight57ggvqjmsixonefour
+dhq7hzhmbzdhzjxhdtwo32
+ggdone3nbmsthreefourninefiveoneightpr
+fourvzgnfnhkkp2
+j47three8sevenfivenfkd
+twotwo4seven1fqklblqbdxcmtch
diff --git a/txt/2024_1.txt b/txt/2024_1.txt
@@ -0,0 +1,1000 @@
+38450 56790
+94765 36795
+89694 26251
+96083 99006
+57068 30577
+32031 60133
+97652 26657
+85752 40654
+66117 44144
+29274 30512
+73274 84130
+15357 56848
+79851 19968
+68766 87545
+67087 66672
+19642 37292
+27123 85780
+98928 19402
+48657 36964
+68163 68163
+74320 70436
+68369 93818
+63293 10589
+70014 13744
+58505 92715
+79235 72633
+42118 84297
+89553 49028
+54588 42667
+74947 89737
+95994 68163
+40886 27795
+89808 48152
+51059 71866
+29828 47181
+26337 92715
+75448 87890
+26971 12395
+71808 80599
+29493 61319
+47055 43873
+50770 96410
+14156 68842
+56759 54054
+38923 26343
+12572 34357
+88675 40823
+78193 39871
+41580 42667
+38011 85234
+27994 39871
+98468 21775
+53338 68111
+27553 35842
+77017 80913
+47383 93294
+79266 78275
+74356 77328
+22139 87671
+84119 39187
+77267 66964
+97361 23225
+58958 10638
+17232 96076
+26441 75500
+49244 64695
+58905 39871
+15329 69637
+56453 42667
+44121 36077
+36651 39871
+22517 45430
+36899 71230
+44144 88757
+14168 30512
+75698 26657
+53259 91167
+95206 30577
+53817 34357
+67800 77328
+48808 99593
+35316 55943
+25220 54492
+23135 34357
+64270 19402
+62121 77328
+90797 94795
+49815 92715
+39585 72810
+83592 69042
+57529 54279
+36396 35842
+50313 11918
+41827 94458
+58012 42667
+66853 95424
+59067 66672
+29841 34357
+25699 99289
+75721 58905
+15845 86480
+68449 65563
+78811 40412
+77447 45365
+84481 68163
+67243 48342
+40596 78376
+18530 55403
+16485 30577
+18820 80617
+10705 26657
+92870 32227
+63712 26657
+71445 71866
+27313 80913
+60286 56912
+40149 29131
+74223 86480
+30240 44070
+57108 76095
+42911 44144
+30976 76095
+26657 17110
+77509 36380
+76095 30914
+64592 94578
+97195 95571
+27060 16139
+60414 85294
+29255 45894
+74160 47530
+35318 59173
+59140 95571
+53239 25992
+47530 46078
+66911 59604
+28261 27795
+78688 83703
+78682 77328
+16916 56912
+80432 82570
+48514 62025
+44320 98398
+87488 71139
+23810 68163
+83225 55084
+52412 22240
+71961 76095
+76949 65702
+54333 37419
+46121 12587
+40001 30512
+28005 46617
+43356 27795
+94967 62701
+98138 69042
+58625 35550
+24459 52266
+34147 25961
+96300 21588
+47061 77328
+50297 71866
+19355 68163
+96284 40450
+41466 84017
+72578 24354
+91238 20765
+87100 92715
+22792 71767
+49305 82403
+50026 95295
+71866 13340
+77297 93959
+79510 63708
+72670 94771
+24090 39871
+71170 58905
+24188 45664
+15286 68163
+71137 81703
+66672 19402
+64757 39871
+40097 34357
+66347 39871
+11349 91362
+96456 92715
+60810 46298
+30775 24294
+46875 87235
+74042 87418
+98242 91925
+20464 35280
+11216 92533
+51584 19789
+29479 22783
+25274 27795
+76193 57068
+63580 95571
+80770 92715
+46436 33662
+78670 94935
+24606 36795
+50913 34357
+87427 96279
+20527 69042
+39190 35842
+12482 77261
+59815 99289
+58857 47887
+26313 84479
+28707 18124
+85620 34357
+22793 80913
+18901 61965
+26137 68163
+17778 39871
+33813 31786
+82136 69042
+29410 27795
+45844 80913
+79750 58401
+95419 20872
+40640 51108
+56250 95571
+46252 26508
+90620 39871
+60057 62139
+35869 56912
+84211 63802
+72937 46436
+80322 21794
+52793 34357
+74580 35842
+25536 69042
+50585 59650
+21269 65327
+85698 39220
+80071 46392
+36306 14161
+66725 67333
+33487 27165
+27786 47530
+93519 22622
+55574 97473
+65632 81795
+75140 25442
+21376 42667
+56970 39871
+94632 77261
+59040 13889
+98256 96213
+66819 17432
+32205 67735
+23862 91732
+35302 39112
+34357 30512
+16783 44692
+50804 86480
+82254 80253
+75852 39978
+42052 79753
+56085 56912
+72548 78082
+72709 94294
+27187 31138
+45506 58568
+46995 80913
+83699 72574
+49924 70436
+99855 66672
+62856 56084
+28739 36148
+17311 34650
+50379 51376
+56636 90184
+70872 74758
+86900 42527
+57857 39871
+92352 70111
+11595 26657
+33278 38217
+79985 19402
+51838 96864
+79422 91362
+15836 25261
+85535 71866
+71491 86480
+18081 97179
+47876 47308
+97371 88031
+22201 74539
+11364 17756
+94451 72603
+61063 86480
+13448 28943
+20391 59145
+61615 37956
+45636 30577
+53957 58947
+85177 30914
+81213 56912
+48248 14944
+45113 39688
+82427 85733
+33323 29457
+67505 47530
+26670 69416
+79620 70436
+22783 30577
+75102 65563
+10610 86480
+30914 42631
+53004 95284
+73145 88017
+30678 30577
+12762 99289
+86499 22109
+13832 91362
+89930 62592
+93980 86977
+53089 59415
+68341 33662
+25812 61965
+77380 22827
+78760 10051
+98000 91362
+78359 96086
+32489 77261
+94527 38980
+33226 35842
+61775 30926
+31168 54492
+95196 60512
+28708 21619
+99934 95865
+55576 15173
+40679 96922
+77996 92715
+74121 27578
+80739 39841
+27324 91362
+83292 84113
+26406 76095
+81713 61946
+88520 26657
+71675 89157
+30129 86760
+37014 56814
+33970 68326
+32494 79036
+39139 22783
+76214 69081
+76953 95865
+35040 66371
+17949 55561
+81520 35842
+62508 89829
+54572 35842
+79509 19402
+24891 66672
+45794 66672
+85379 91362
+79782 80913
+73528 66298
+14064 69042
+71965 28826
+60533 39871
+22163 80913
+20833 71986
+84152 30577
+71152 37179
+24562 71476
+50251 30577
+95527 77590
+88201 56912
+87781 91109
+44210 92715
+43999 92715
+90557 44144
+26041 70436
+33246 13019
+82762 17806
+54561 26657
+31699 77328
+24806 48798
+97294 26657
+57582 97051
+38956 68163
+91638 65213
+44169 80913
+29835 92715
+57045 93451
+56421 21138
+98128 69042
+24605 36264
+23870 63516
+97003 64704
+11739 83574
+89513 80913
+20925 61438
+14761 90325
+23754 33662
+42102 22783
+38734 40082
+39825 56912
+81566 30512
+84612 30512
+90484 22783
+22889 22783
+54768 77328
+48764 81529
+12481 95865
+90546 90454
+38087 68163
+49010 30914
+92728 74197
+81313 23403
+74535 16503
+36939 68163
+51987 42762
+62840 71866
+43761 33662
+58282 92715
+63257 33662
+48410 92487
+57997 81716
+14800 82109
+77328 76473
+82570 30926
+48271 14229
+69127 30577
+34386 35842
+69197 95571
+10827 57032
+82708 65563
+95057 13049
+44966 33377
+21933 22783
+42772 56789
+19232 98930
+53262 76095
+32302 38996
+14637 41139
+91419 86478
+66541 86480
+15810 51561
+75596 83362
+63247 47395
+96073 22783
+40948 35040
+77261 57068
+33418 17716
+30512 86480
+69148 87719
+62854 35014
+98389 30926
+23120 33590
+56653 81140
+49957 58356
+30593 17708
+57670 69077
+44904 30926
+10003 59688
+17583 22783
+35032 80913
+17608 23816
+20288 82570
+43214 88279
+79347 79311
+94845 35842
+24989 63095
+84669 67448
+74014 98215
+13045 27795
+64782 77328
+87683 22783
+36451 68163
+59285 85570
+99210 94373
+66649 30914
+53952 80913
+83188 34357
+88672 45650
+21214 44144
+24393 19402
+88027 66672
+75510 70374
+61965 56521
+50081 59608
+84120 24816
+84090 49853
+90580 28974
+37942 45203
+20157 27378
+82710 62252
+15745 80913
+39765 29190
+66955 68163
+31533 95577
+18316 46335
+48785 11243
+19970 33662
+26109 70173
+41210 85121
+45968 19402
+19444 37680
+64435 46680
+34213 61965
+21211 19671
+75654 65563
+89852 55220
+19610 77328
+53810 34368
+18740 93310
+39042 70436
+50333 14352
+56479 98509
+62955 36393
+45736 62875
+88746 68163
+16507 14233
+70514 57068
+15217 33242
+69123 59998
+24278 30914
+45495 34707
+15905 83611
+13582 54081
+83066 65927
+21087 76095
+32035 71866
+50502 76095
+80402 16047
+54701 50057
+25184 79622
+52595 92715
+13794 36821
+10548 73363
+86251 65563
+57065 87659
+35617 69042
+40607 26657
+54492 58961
+56644 77328
+45679 96959
+14251 12051
+71806 68163
+42346 91362
+48325 57102
+51980 24331
+98014 92715
+39611 30577
+79247 39871
+87735 63608
+93919 30512
+32619 66672
+31659 49528
+27614 49927
+96264 35040
+17373 66672
+79122 80913
+36904 33534
+78239 64891
+25085 86802
+16451 36795
+43848 77278
+65380 30926
+69891 56912
+88097 76095
+53472 30926
+85315 71866
+67185 47530
+30926 36278
+38001 75190
+87330 46332
+19192 65563
+63847 35842
+10483 33659
+75527 34259
+63424 57068
+28256 68975
+81540 42957
+93018 19454
+75634 92715
+71643 73598
+72464 22819
+74651 38339
+61692 39786
+40829 58905
+63414 33662
+51580 19402
+54813 39871
+63005 90404
+80646 36866
+64628 22180
+94761 47743
+79054 33662
+74941 66672
+84955 92863
+78409 33577
+54178 65563
+56533 39814
+18900 67503
+55216 19240
+66854 53566
+88094 44610
+60806 83748
+27368 66672
+58081 65083
+21266 30577
+62229 26657
+22785 36169
+38447 95571
+69547 19402
+12256 13551
+34249 41587
+43430 80913
+83343 30512
+53434 92774
+63321 80913
+33819 95865
+38690 44769
+47509 33662
+62269 66672
+53247 31660
+88548 58905
+42667 30512
+92265 60686
+94540 76095
+72984 71866
+62111 23007
+75974 35704
+54383 44838
+79046 44144
+10383 36795
+77274 34819
+90101 86480
+90466 94388
+56335 47650
+34056 30577
+65220 74822
+30577 22783
+85922 76425
+88914 97485
+59974 99451
+59682 45251
+42802 76095
+93454 86480
+51073 82570
+66264 23784
+39483 80913
+88565 61865
+96306 22783
+50883 26870
+26523 43996
+38219 33662
+19402 39005
+63482 23565
+97055 36795
+66216 30577
+79952 33662
+69328 21802
+41244 53694
+83424 56912
+10589 68163
+88514 93117
+53046 42667
+37352 95247
+34421 71866
+67039 43583
+37162 86480
+74312 35842
+38740 66946
+69471 49022
+32289 47530
+72562 42667
+37081 93898
+31329 30512
+31243 53516
+62461 56655
+96473 60873
+25279 50991
+10072 70572
+47497 33662
+49427 19750
+10605 23381
+91095 47797
+58414 27795
+82370 21060
+57378 81767
+24485 35040
+13809 35448
+76442 30512
+64387 35842
+57400 65563
+29253 42667
+63306 66369
+23098 11025
+62865 65563
+87758 19402
+32587 21767
+45399 86480
+41893 76095
+56666 71866
+35264 42667
+52577 39871
+51123 65501
+62388 33662
+66812 34357
+21600 10996
+74599 95653
+72802 30577
+84800 19402
+72787 73560
+53794 26040
+33247 32184
+52978 66672
+66156 26657
+91181 30914
+48551 84043
+95712 64949
+25556 58905
+84885 42667
+53327 78473
+33532 12343
+19286 12106
+89021 26657
+10498 19402
+61704 77261
+46537 86328
+36143 57061
+76654 30512
+57004 55014
+85959 10589
+77137 22783
+52952 51845
+51984 92715
+30028 25828
+84410 99687
+37142 98764
+77446 39871
+55877 34357
+67259 79994
+99289 76315
+85489 76095
+31363 70436
+96633 69042
+81214 76530
+87281 42667
+44440 74182
+63470 68163
+42955 27795
+94662 30577
+14746 30914
+20227 61537
+69042 13898
+13060 61908
+43581 99289
+65247 40213
+96862 77549
+39871 19402
+19865 30512
+13117 92528
+60881 39871
+85892 31427
+41497 95571
+16212 33092
+25806 75406
+98783 86480
+84964 34920
+64895 68163
+49132 55568
+64979 88017
+17208 84371
+77114 61301
+47287 26657
+67657 35842
+99439 36267
+41719 80913
+79716 15507
+60986 82042
+93689 77261
+41660 42512
+31113 88722
+15586 33662
+93371 35040
+97330 92715
+14879 95341
+20385 66672
+51055 88017
+76346 66058
+70253 21087
+63415 80394
+95865 99337
+86466 61965
+14242 58182
+54002 31706
+70433 62878
+91588 32216
+37217 30633
+71912 54182
+15879 87966
+42596 23041
+90613 99312
+69816 55585
+82985 30926
+13592 19402
+90849 26519
+33383 32459
+97097 95571
+29779 70436
+19760 25315
+93199 26562
+35188 46436
+38680 32337
+75459 86005
+19065 95571
+35183 70436
+92715 46976
+83060 66672
+77412 94697
+97799 22096
+32652 69042
+94958 91362
+72526 42667
+16026 19402
+80913 82873
+41578 92715
+58877 19402
+37030 22783
+68147 20144
+56044 27795
+23335 53093
+42998 86480
+80307 26625
+77512 33662
+54090 30411
+88343 61965
+15894 16084
+62706 63686
+35842 15310
+95072 21419
+52930 44144
+75602 14290
+78117 33467
+65532 33662
+75020 65563
+46455 14369
+62850 42667
+81095 47639
+31291 61965
+27407 87833
+94752 15102
+92700 36795
+84447 99289
+92801 34357
+29143 49061
+21884 74720
+62375 12941
+19197 68163
+54156 27680
+78873 80806
+38246 76095
+72027 27128
+91571 17354
+53847 40153
+81973 29225
+13732 68670
+38452 20197
+31228 18468
+71135 46834
+21688 57767
+30221 78848
+31781 89061
+31625 87715
+53131 33362
+50753 82036
+49089 71866
+49710 86480
+48564 19402
+29574 93246
+84072 74995
+90715 65563
+87964 39871
+73204 78226
+78502 52265
+87303 65563
+31906 27800
+74740 58905
+22098 43030
+53867 78190
+67350 85640
+91135 99289
+53468 10699
+30141 53709
+74308 16668
+69043 99289
+88017 36795
+17584 21883
+32718 22783
+12671 57068
+69879 39023
+59025 98514
+52386 35842
+61922 63179
+89685 19402
+95571 26657
+86480 86465
+78702 13752
+29611 35253
+92687 77295
+66461 39430
+18818 98611
+64227 14592
+56273 87458
+10266 92715
+85568 54714
+41702 97648
+52256 44144
+20344 18187
+15045 66672
+36323 64742
+86451 62476
+62028 69193
+72924 50345
+95405 79614
+83618 85533
+36923 57068
+74576 75901
+60074 56912
+58127 13632
+94366 68163
+79964 86480
+20371 36795
+57111 92715
+56351 35040
+53511 22783
+69850 78355
+48511 11820
+11488 53110
+23957 34145
+10798 83449
+78424 95208
+70436 30577
+82584 86506
+27795 99289
+25243 33662
+85087 36008
+20537 26713
+60038 58905
+26860 66672
+29565 42485
+11527 63340
+38566 56304
+33662 99376
+30355 37831
+98463 81666
+61272 92715
+11703 85639
+71287 63011
+47090 50356
+84127 71866
+26416 62286
+17988 23504
+84605 27795
+64060 66974
+17587 77092
+56912 56912
+47325 36795
+25425 42294
+77940 30512
+82115 26657
+18915 30926
+53122 81831
+92038 66693
+90088 93030
+40983 37896
+64234 27789
+39122 80530
+53727 36795
+75297 34357
+51556 84926
+71953 47530
+83078 97110
+65563 34357
+53145 32345
+36795 26935
+91362 30847
+47701 27795
+33374 40093
+15572 56912
+96537 70436
+69457 77328
+62097 50482
+62543 65563
+23906 61328
+57479 72207
+37900 90011
+25566 23322
+22377 46878
diff --git a/txt/2024_10.txt b/txt/2024_10.txt
@@ -0,0 +1,46 @@
+6543298761232134567654321234365430109789210765
+7630165450545023698743430143278121218654307876
+8781074305656712587412945056189054327610128965
+9692181212789803654307876567098769016501201234
+8543290325654908743216521098778978039432343210
+1012107812343219210127432101065432128765464569
+8703456901432101021858921098123498012346678978
+9698767876545832210961012567898567109656541066
+0543678989836943367878983456547010478765432127
+1234569834787894450123672561032123567345345698
+8705450125690765645674501870129854438936216787
+9612325678501234734983465985438763520127303456
+0549814789456789821567874376579654011298012367
+1236703210321098980432989210189503567885410198
+0145610123010123671301065123679012456956328765
+2125898016134564547219874034578654320167019954
+1034567667821078998765723410165743210298907823
+2101215454910899789054010567234894109347876910
+3432109323856789670123120198654301078456585410
+4569218012541008765434103296785212562345694321
+5678107873432210894120254589698943421034783210
+6760256976501345703091345678899874014345115432
+5801345488989856912782987010710762321236006781
+4912352397430767824653456123601051430347112390
+3983401256521956543241089234512340554398203454
+2876510342107867852130176541329429663294345965
+1089459656236238901021287430458218776187654874
+2012368789845121652012396521567309889076567876
+3001871656903030743189465432456456776985678945
+2100980347812349876676576321078944567034569432
+3231291210101656734589689234561323498123253211
+4945387667892109825678710105430212234510104500
+5876456108743276710265431016521001107601067601
+6700123219654985610176721037815410098432188932
+5217634508989414323789872348906321016501098543
+4398549607678501234567961059817892107890107676
+3210498714565430104498854367876765226981238985
+4782107123645621223421343458987014312876543214
+5693898034564789014530012121898123103987454103
+8764796543673298987645430010987035654036567812
+9855687234982187656786521027876546789145658901
+8544590127651012565497890038985589690237849878
+1234210098545671434387912147104676521056932569
+0110367653234780301275403456203465432345691410
+3223458910125691215676323569312394341210780323
+4334389871210101234981019878456787430101671410
diff --git a/txt/2024_2.txt b/txt/2024_2.txt
@@ -0,0 +1,1000 @@
+67 69 71 72 75 78 76
+4 6 7 9 11 12 12
+20 22 25 27 28 29 33
+35 37 39 42 43 46 48 53
+46 49 48 51 53
+31 33 31 34 31
+83 86 85 88 89 91 91
+74 75 78 81 80 83 86 90
+72 73 72 74 75 80
+19 21 22 25 25 28
+4 6 6 7 10 9
+49 51 52 55 55 58 58
+40 41 43 44 44 48
+53 56 56 57 62
+26 29 33 34 36 38
+35 38 41 45 44
+28 31 33 35 39 39
+75 77 81 82 86
+85 86 88 89 93 98
+78 80 85 88 90
+36 39 42 43 44 47 53 50
+74 77 80 85 86 87 90 90
+51 53 54 57 59 64 68
+15 17 23 25 32
+46 45 47 49 51
+25 23 26 27 30 27
+51 50 51 52 53 53
+51 50 52 55 56 59 63
+40 38 40 42 43 48
+23 21 22 19 22 25
+22 20 22 25 24 27 30 28
+95 92 94 95 93 93
+78 75 77 76 80
+31 30 31 33 31 32 37
+12 10 12 15 15 18
+67 66 68 68 67
+67 64 64 66 66
+71 70 72 72 74 75 78 82
+15 14 14 16 19 20 25
+50 47 48 50 52 56 58 59
+5 4 5 8 12 15 14
+37 34 36 40 42 45 45
+5 2 4 5 9 10 11 15
+11 8 12 13 15 20
+25 22 25 32 34 37 38 41
+6 4 7 10 16 13
+95 92 97 99 99
+17 16 23 24 28
+78 75 80 81 86
+11 11 14 16 17
+40 40 43 45 48 50 47
+37 37 40 41 42 43 46 46
+90 90 92 94 98
+35 35 36 38 43
+74 74 77 76 79 82 84 87
+23 23 25 27 26 23
+94 94 95 98 95 96 97 97
+70 70 68 70 74
+2 2 1 2 8
+46 46 48 48 51
+69 69 72 74 77 79 79 77
+49 49 52 54 57 57 57
+28 28 29 29 33
+51 51 53 56 56 59 61 67
+27 27 29 33 36 39 42
+29 29 30 34 37 38 41 39
+34 34 35 36 40 42 42
+22 22 26 28 32
+7 7 10 14 20
+35 35 38 39 46 48
+23 23 24 26 29 36 35
+27 27 29 35 35
+61 61 66 69 70 74
+26 26 32 34 36 43
+41 45 46 48 49 51
+5 9 11 13 14 16 17 15
+72 76 79 81 83 86 87 87
+64 68 69 72 75 76 79 83
+27 31 33 36 37 40 46
+85 89 92 93 94 91 92
+65 69 66 67 68 70 72 71
+84 88 91 94 93 93
+78 82 79 82 83 84 86 90
+15 19 20 19 24
+41 45 48 50 53 53 56 59
+27 31 32 32 31
+84 88 88 90 90
+8 12 12 13 17
+84 88 89 89 95
+58 62 64 68 69 71
+1 5 9 12 15 14
+57 61 62 65 68 69 73 73
+1 5 9 10 14
+46 50 53 57 63
+63 67 68 69 74 75 77
+55 59 66 68 70 68
+6 10 11 17 17
+76 80 82 88 89 90 94
+73 77 82 85 90
+12 18 19 22 24
+47 54 55 58 60 62 59
+4 9 11 14 14
+64 70 71 72 73 77
+80 86 88 90 95
+61 68 71 68 71 74 76
+79 85 87 84 85 88 86
+51 56 57 55 58 58
+37 42 41 44 45 48 50 54
+74 79 76 78 80 82 88
+61 66 66 67 70
+37 43 46 49 49 48
+77 82 85 86 88 91 91 91
+26 33 33 35 36 37 39 43
+42 49 49 52 58
+39 44 47 50 52 56 58
+36 41 43 44 47 48 52 51
+42 49 50 54 54
+63 70 73 75 77 81 85
+74 80 84 87 93
+75 80 83 86 93 94
+4 10 13 14 19 21 20
+65 72 75 80 83 86 89 89
+64 70 73 74 80 81 82 86
+20 25 30 33 38
+57 56 54 51 48 49
+88 87 86 83 83
+55 52 49 48 45 42 40 36
+59 56 54 53 50 49 44
+28 26 25 22 21 20 21 19
+10 9 7 5 7 10
+44 42 40 43 43
+50 47 50 48 47 44 43 39
+79 76 78 77 74 69
+32 29 29 27 25
+30 29 26 23 20 20 22
+61 58 58 56 55 54 51 51
+80 77 76 76 72
+56 54 51 51 44
+64 61 58 56 55 51 50 47
+28 26 25 21 20 18 16 19
+94 93 91 89 86 82 82
+76 74 73 70 69 65 64 60
+76 75 71 70 63
+66 63 62 57 56
+55 53 50 44 47
+53 52 49 46 44 42 37 37
+66 64 63 57 53
+41 39 37 36 33 28 26 21
+21 24 21 19 17 14
+67 70 68 65 64 62 61 62
+52 53 52 49 49
+85 86 85 84 83 81 77
+30 32 29 27 25 20
+77 80 81 80 77 76
+96 99 98 95 92 94 96
+87 88 91 90 90
+63 65 64 63 66 65 61
+76 78 77 75 76 70
+50 51 48 48 47 46 45 44
+73 76 75 75 78
+56 57 56 56 55 54 52 52
+53 56 54 54 51 49 47 43
+64 67 67 66 60
+56 58 55 53 52 48 45
+44 45 44 41 37 40
+15 17 16 12 12
+58 60 58 57 54 50 47 43
+52 55 51 48 41
+83 86 81 78 77 75
+46 47 45 44 43 37 40
+59 60 53 51 50 48 48
+23 26 25 24 23 17 13
+54 55 48 46 45 43 41 34
+14 14 11 10 7 5
+80 80 78 75 74 72 69 71
+63 63 62 60 58 58
+65 65 64 63 59
+98 98 95 94 92 89 87 81
+97 97 98 97 96
+95 95 97 96 97
+45 45 44 42 40 38 41 41
+6 6 7 5 1
+22 22 23 22 17
+47 47 46 44 44 43
+23 23 21 21 20 19 21
+30 30 27 27 24 24
+82 82 82 81 77
+51 51 49 49 48 46 41
+16 16 13 9 7 5 4 1
+82 82 78 77 75 73 76
+89 89 87 83 80 80
+64 64 61 57 55 51
+59 59 55 54 52 50 44
+36 36 30 28 25
+33 33 30 29 23 20 23
+13 13 7 6 6
+51 51 48 47 41 39 35
+92 92 86 84 82 81 78 72
+97 93 92 89 88 85 83
+58 54 52 50 49 47 49
+42 38 36 34 31 31
+86 82 80 79 76 75 71
+92 88 87 86 84 77
+55 51 48 47 45 48 46 45
+40 36 37 35 36
+20 16 15 12 15 12 12
+51 47 48 45 42 38
+83 79 77 78 76 75 69
+27 23 21 18 15 15 13 11
+80 76 74 71 70 70 73
+78 74 72 72 71 69 68 68
+29 25 24 24 21 17
+67 63 61 61 55
+98 94 90 87 85 83 82
+98 94 90 87 86 87
+44 40 36 33 33
+96 92 90 86 82
+49 45 42 38 31
+70 66 65 58 56 53
+49 45 42 41 39 32 33
+37 33 32 27 26 25 25
+34 30 29 27 25 24 18 14
+26 22 19 18 13 12 5
+59 53 51 49 46 43
+28 21 18 16 14 11 9 12
+21 16 15 12 11 11
+28 22 21 20 17 14 10
+49 43 40 37 31
+14 7 6 8 5 2 1
+42 36 34 32 35 37
+49 42 41 43 40 39 38 38
+61 54 57 54 53 50 47 43
+97 90 92 91 89 86 85 79
+36 29 27 25 25 24 21
+28 23 23 20 18 16 17
+33 27 26 26 23 20 20
+90 83 83 80 76
+34 28 28 25 22 17
+61 54 50 47 46 44 43 42
+22 16 13 10 7 3 5
+73 68 64 63 63
+44 37 36 32 30 29 25
+85 79 78 75 71 65
+64 57 52 51 50
+54 47 42 39 40
+88 82 80 77 71 71
+61 55 54 49 45
+94 89 88 82 76
+43 40 37 34 31 28 27 30
+21 25 28 32 34 35 33
+54 57 59 58 57 55
+27 31 33 35 39
+10 14 16 16 17 18 22
+66 69 70 69 72 74
+21 27 29 31 34 41 45
+44 45 51 53 56 59 60 64
+73 74 71 65 62 61 62
+54 51 49 46 42 39 34
+81 83 82 75 72 70 66
+58 57 60 63 63 65 63
+72 71 68 64 64
+89 83 77 74 74
+42 45 48 52 51
+16 16 18 18 22
+62 69 72 75 76 76 77 80
+10 10 13 13 18
+53 59 62 64 64 65 67 71
+73 70 68 66 67 65 61
+95 92 89 87 85 80 79 78
+2 2 3 9 9
+77 76 71 70 66
+46 42 41 41 39 36 32
+57 58 57 53 50 50
+82 78 77 75 73 67 68
+71 69 73 76 77 75
+58 64 65 67 66 68 71
+95 91 88 86 82 83
+38 38 35 32 32
+39 42 45 48 50 54 56 61
+82 88 91 92 90
+51 47 45 42 41 39 37 38
+86 88 88 86 84 83 83
+62 62 58 56 54 54
+65 58 55 54 53 49
+90 86 85 82 79
+34 37 35 33 32 31 24 24
+93 89 86 89 91
+29 36 37 44 47 44
+32 35 33 32 29 26 25 22
+47 43 42 38 38
+80 82 83 82 82
+8 8 9 10 11 14 16 18
+16 14 17 19 20 21 28 25
+27 30 29 26 22
+65 64 61 60 57 53 51
+13 20 22 26 26
+47 42 41 39 37 35 33 33
+45 47 53 54 55 60
+66 62 60 58 55 56 54 50
+63 67 69 73 75 78 79 79
+4 6 7 10 12 9 10 14
+32 27 24 20 17 15 10
+39 39 38 36 35 37 33
+63 65 67 64 67
+24 24 22 23 22
+13 20 21 22 26
+27 27 24 22 21 21 18 20
+26 29 31 32 34 33
+76 76 75 74 71 68 64 62
+10 10 12 10 9 10
+47 40 37 36 34 37
+48 48 46 45 42 42 37
+58 58 57 51 48 42
+23 19 17 14 7 4
+64 57 55 50 47 46 49
+59 62 60 57 55 52 50 52
+55 50 50 47 45 39
+69 65 63 65 64 63 62
+55 56 54 50 48 47 50
+20 20 15 12 10 9
+38 37 37 40 41 44 46 46
+65 68 70 67 68 68
+5 7 13 16 19
+72 71 76 79 85
+86 81 78 75 73 76 73 67
+80 74 73 70 72 73
+71 67 60 59 58 55 52 52
+56 60 62 61 64 66 67 71
+79 74 71 67 65 64
+41 37 33 32 25
+96 90 88 86 80 78 76 72
+47 44 46 49 48 50 53
+12 19 23 24 27 28
+95 97 95 92 89 83
+47 44 46 49 50 57 58 58
+63 67 70 70 68
+34 30 27 26 19
+19 23 28 31 29
+46 53 54 58 61 66
+14 17 14 11 11 7
+77 77 75 74 73 71 68
+61 61 63 67 72
+59 55 53 50 47 45 45
+93 91 92 89 88
+55 48 46 47 45 43 40 40
+52 46 45 42 38 34
+76 73 72 69 65 63 64
+45 45 43 41 42
+69 69 66 63 59 56 52
+34 40 41 44 47 50 50
+42 42 45 52 55 57 64
+64 68 70 73 79
+66 60 59 56 53 53 50 46
+51 50 52 54 56 57 61
+52 59 62 62 63 66 64
+84 84 85 88 91 94 97 97
+57 57 60 59 58 58
+25 22 19 20 21 22 26
+67 65 63 61 58 57 56 50
+61 61 62 66 68 71
+86 79 77 75 76 73 69
+2 3 6 6 8 10 7
+17 22 24 27 32
+17 17 10 9 6 5 7
+73 69 72 71 65
+21 17 15 13 15 12 11 11
+28 31 34 38 42
+57 57 56 53 50 48 48 44
+71 69 70 71 72 73 74 81
+2 6 6 7 9
+7 11 12 15 16 16 18 18
+24 20 19 18 16 11 9 5
+85 81 79 77 75 73 69
+23 24 27 29 30 32 32 32
+36 29 26 26 24 21
+6 5 8 11 12 12 15 17
+14 9 7 6 6 6
+28 25 22 22 21
+74 75 73 71 73 71 67
+46 50 51 56 58 61 62 64
+16 23 25 29 32 34 35 39
+37 37 43 45 42
+26 26 32 34 38
+11 11 13 14 15 18 18 19
+75 77 74 70 67 63
+68 74 71 73 76 79 82 87
+69 69 71 70 67 61
+77 80 81 81 85
+36 39 36 33 33 32 29 30
+18 20 23 23 25 26
+80 86 88 85 89
+22 21 18 16 13 13
+64 64 63 61 56
+25 23 24 24 27 33
+16 16 17 19 18 19
+62 58 58 57 55 54
+20 25 27 32 32
+38 33 32 31 28 26 20
+77 76 75 73 70 63 63
+44 49 50 56 57 58 60
+48 53 56 58 60 60 63 63
+65 60 59 58 58 57 59
+35 36 38 39 42 49
+17 13 11 11 8 8
+67 71 75 78 84
+81 81 82 85 87 90 91 95
+69 69 72 74 77 80 86
+59 58 57 57 59
+57 60 61 64 67 66 71
+59 58 61 64 65 67 64
+51 51 53 56 53 53
+24 26 27 31 33 34
+26 27 30 32 35 35
+82 85 83 82 79 76 76 69
+60 56 54 52 51 45 42 35
+20 13 14 11 10
+73 71 68 67 64 61 57
+28 29 28 24 18
+54 47 45 39 38 35
+41 43 46 50 53 53
+32 36 38 44 47 54
+17 16 16 15 11
+50 51 48 48 46
+54 52 53 51 56
+21 25 27 30 32 30 36
+79 77 79 80 80 84
+18 19 18 17 14 13 13
+8 15 16 18 20 20 26
+42 42 44 48 49 49
+44 37 34 31 30 26 25 25
+76 80 81 82 88 92
+27 27 22 21 18 15 15
+26 26 25 19 17 13
+35 32 34 32 31 25
+37 41 43 50 50
+19 18 16 11 8 6 8
+18 21 19 13 6
+57 58 56 53 51 47 46
+58 57 54 51 52 52
+73 72 75 81 84 88
+14 13 18 20 21 24
+65 65 62 61 59 59 59
+76 80 80 83 85 88 91 97
+89 85 81 80 77
+23 23 23 26 27 25
+71 69 70 69 66
+29 31 36 37 40 43 45 45
+77 74 71 71 71
+44 47 44 41 44 39
+69 74 77 79 78 75
+55 55 57 60 63 62 66
+74 73 71 69 69 66 59
+25 21 20 17 16 13 13 14
+26 30 31 29 31 33 33
+37 41 44 45 48 52 53
+67 67 68 65 72
+76 76 79 77 79 80 83 82
+28 30 33 35 33 31
+48 54 56 57 61 62 59
+31 26 25 24 22 20
+10 11 13 13 20
+3 3 7 10 12 14 18
+75 79 76 79 80 81
+16 21 27 29 31 33 35 40
+24 20 19 18 18 17 10
+90 93 90 83 82 80 79
+37 35 33 30 29 27 26 24
+20 17 15 13 11 10 9
+1 2 5 6 9 11 13 15
+42 44 46 48 50 52 54 57
+40 38 36 34 31 28
+24 23 20 17 16 15 13 12
+78 77 75 72 71 68 67
+65 66 69 71 74 77 79 82
+65 64 62 59 58
+70 67 66 64 62
+23 21 20 19 16
+26 29 30 33 35 36
+50 48 47 45 44 41 38
+9 12 13 15 17 18 20 21
+43 41 40 38 37 34 32
+24 23 21 19 16 13 10 9
+93 91 88 86 83 80
+37 34 33 30 29
+36 33 30 29 28 26 23 21
+84 87 90 91 94 95 96
+57 55 52 51 50 49 47
+83 86 87 88 89 92 94 96
+56 58 59 62 63 64 67 70
+62 65 66 68 69 72 74
+52 54 57 59 60 63
+46 43 40 39 37
+70 69 68 65 63 60
+72 73 76 78 79 81
+23 24 25 26 29
+69 66 65 62 59
+49 50 53 54 56 58
+39 40 43 44 46 49
+50 48 47 45 42 41
+21 18 15 14 13 11 8 7
+66 68 69 70 72 75
+64 61 59 57 55 54 53
+22 25 26 29 30 33 36
+35 38 41 43 46
+22 21 19 17 14 12 10 7
+35 33 30 28 25 24
+81 79 76 75 73
+48 45 42 41 38 37
+24 25 27 29 31 32
+18 21 22 24 26 28 31 32
+21 24 25 26 29 30 32
+87 85 83 81 80 77 74 71
+35 32 29 27 24 22 19 16
+89 91 92 93 96 97
+37 35 34 33 32 31 29
+84 81 80 77 74 71 69
+38 35 32 29 26 25
+93 90 89 87 84 82 80 78
+88 85 83 81 79 78 76 73
+2 3 5 6 9 11 14 17
+31 30 27 25 23 20
+95 92 91 89 87 85 82
+6 7 9 12 13 15 17 20
+48 45 42 41 40 39 36 35
+76 73 72 69 66 64
+82 80 77 75 73 72
+67 69 71 72 75 76 78 81
+1 2 4 6 9 12 13
+21 20 19 16 13 11 9 8
+42 39 38 37 34 32
+21 22 25 27 30 33 36
+57 56 55 54 53 51 48 47
+37 35 33 30 27 25 23
+14 17 18 21 23 26 27 29
+43 45 48 50 51 52 53 55
+15 14 13 10 8
+17 18 21 22 25 26
+13 10 9 8 6 5 4
+84 86 88 91 93
+91 90 87 84 83
+35 32 30 29 28 26
+56 59 61 62 65
+20 22 24 27 28
+32 33 35 36 39
+48 49 50 51 53 54 56 58
+60 62 64 67 69 71
+25 22 19 17 14 12 11
+25 28 30 31 33 35 37 38
+56 54 51 50 47 46 43
+31 32 33 35 38
+59 58 56 54 52 50 47 46
+86 89 90 93 94 95 96 99
+95 93 92 91 88 85
+65 64 63 60 58 57 54
+74 76 77 80 82
+76 78 79 81 82
+12 11 10 7 6 4 2
+90 87 86 83 82
+16 13 12 11 9 8 7
+41 38 36 35 32 31 28 26
+43 45 46 48 51 52 54 55
+94 91 88 85 82 81
+77 74 72 69 68 66 65 63
+30 32 35 36 37 40 42
+82 83 85 87 88 90
+67 64 62 60 59 57 54
+92 90 89 88 87 84 83 82
+21 22 25 27 30
+63 65 68 69 71
+6 9 11 12 13 16
+92 89 88 86 83 80
+92 91 89 87 86 85 84 82
+18 16 13 11 9
+52 50 47 44 41 39 38
+10 11 13 15 18
+46 44 41 39 38 37 34
+27 30 31 33 36
+65 67 69 72 73 75 76 77
+40 43 46 47 50
+88 85 82 79 77 76 74
+87 89 91 94 95
+88 86 83 80 79 76 73 70
+41 43 45 48 51 52 55
+87 90 91 93 95
+79 82 85 88 89 91 92
+7 10 11 14 16 17 19
+46 47 48 50 51 52
+95 93 90 88 86 84 83 82
+68 70 71 73 76
+80 79 76 73 71 69
+80 83 84 87 89 90
+94 93 92 91 88 87
+85 82 80 77 74 71 68
+32 29 28 25 24 22 20
+45 42 40 37 35 33
+51 48 47 44 41 39
+33 36 38 41 42 45
+84 82 81 78 76 75 72 69
+24 25 28 29 30 32 33 36
+75 77 79 81 82 85 88
+2 5 6 9 10
+73 75 77 80 82 84 86
+69 68 65 62 59
+82 81 78 77 75 74
+69 71 72 73 76 77 79 80
+78 80 82 85 87
+95 94 91 90 88 85 84 81
+65 68 70 71 72 75 77
+80 81 83 85 86 87
+42 39 36 34 31 29
+82 85 87 88 90 91 92 93
+44 41 40 37 36 35 32
+71 69 67 65 62 60 58 56
+92 89 87 84 81 80 77
+31 30 28 26 23 22 19 17
+14 16 19 22 23 26
+84 86 88 90 91
+37 34 33 32 29
+75 76 79 82 85 86 87 90
+63 66 69 70 73 75
+26 27 28 31 33 34 37 39
+46 43 40 37 34 32
+28 26 25 23 21 19
+67 65 63 60 57 55 52
+33 35 36 39 42 43 45 46
+58 55 52 49 46 45
+99 98 97 95 92 90 88
+27 30 32 35 36 39 41 43
+59 58 57 56 54 53 50 47
+31 29 27 25 24 22 21 18
+35 33 32 29 28 25 23 20
+66 65 62 60 58 56 53 50
+50 51 54 55 58 61
+71 68 65 63 62
+47 48 51 53 55 58 59 61
+10 12 14 16 19 21
+33 35 37 38 39 41 44 45
+94 92 91 90 89
+10 12 15 17 19 22
+83 86 87 89 91 93 95 98
+27 24 22 21 18 15 13
+97 95 92 89 88 87
+20 21 24 25 28 29 31
+72 71 70 69 67 65 64
+65 62 59 56 55 52 51 48
+79 77 75 72 71 69
+70 67 65 63 61 59 56
+9 10 12 14 16 17 18 21
+9 10 13 15 17 19
+49 50 53 56 57
+51 54 56 57 58 61 63 66
+86 88 90 92 93
+37 38 40 42 43
+32 33 35 37 38 39
+77 75 72 69 68 65 63 60
+10 13 15 17 19
+29 31 34 35 36 38
+61 63 64 67 69 71 74
+86 84 82 81 79 76 74
+51 48 47 45 44 42 39 37
+37 39 42 45 46 49 50
+54 57 59 60 62 63 65 66
+43 45 48 49 51 52
+57 56 55 54 52 50 47
+13 15 18 19 20 23 26
+4 7 9 12 13 14
+24 23 20 19 16 15
+53 52 50 49 47 44 43
+11 13 15 17 20 22 24
+27 26 24 23 22 20
+4 5 6 9 11
+26 23 21 19 17 14 13 10
+34 35 37 39 41 44 46
+59 61 63 65 68 71
+50 47 46 44 42 41 39 36
+23 20 17 15 13
+28 25 23 20 17 14 12
+2 5 7 10 13 16
+16 18 19 20 23 25
+5 6 7 8 11 14
+44 47 48 50 53 54
+43 42 40 39 36 35 34 31
+57 59 61 62 65 66 67
+37 36 35 33 30 29 28 26
+80 79 78 76 73 70
+93 92 90 87 86 84
+54 52 49 47 46 44 43 41
+27 25 22 19 18 15
+76 78 80 81 83 85
+79 77 74 71 69 67 66
+29 28 25 24 21 18 16
+2 3 6 9 10
+12 9 6 3 2
+55 58 60 61 62 63 64 66
+16 17 18 20 21 22 25 28
+62 63 64 66 68 71 74
+17 20 21 23 26 27 29
+22 19 18 17 16
+44 47 48 51 52 54 56
+36 38 41 42 44 46 48 50
+28 27 24 23 20 19 17
+20 17 15 13 11
+65 64 61 60 58 55
+49 46 44 43 42 39 37 34
+75 73 72 71 68
+50 51 53 54 56 57
+73 72 69 68 66 63 61
+44 45 48 51 52 53
+66 65 63 60 59 57
+48 49 50 51 54 57 58 59
+71 74 77 79 82 84 86 87
+60 58 55 53 51 49
+12 14 15 16 19
+35 36 37 38 40 43 46
+20 19 18 17 15 13 12 9
+92 89 88 85 83 81
+14 15 17 20 21 22 24 27
+74 76 78 79 80 82 83 86
+61 58 55 52 50 49 46
+48 49 50 51 54 57 58 60
+86 87 88 90 93 95
+49 47 44 41 39 37
+10 9 8 7 5
+78 80 81 82 83 85 88 91
+51 50 48 45 44 41 40
+52 50 48 46 44
+88 89 90 91 94 95 96
+91 89 87 86 84
+26 24 23 21 20 18 17
+61 60 59 58 57 54 51 50
+20 23 25 28 30
+39 42 45 46 48 51
+49 51 53 55 58 61
+20 22 23 24 25 28 30 33
+50 52 54 56 59
+83 82 81 80 78
+66 63 62 60 57
+60 58 57 54 51 48 46 45
+86 87 90 92 93 95 97 98
+14 16 17 19 21
+42 41 40 38 35
+63 66 68 69 71
+78 79 81 84 85 86 87 89
+18 17 16 13 11 8
+66 68 71 74 77 79
+79 81 84 87 88 91
+45 46 47 48 50 51
+25 26 29 30 31 32 35 36
+59 60 63 64 66
+89 86 85 83 80 77 75
+31 29 27 26 23 21
+29 31 34 37 38
+78 79 80 82 84 86 89 90
+66 64 63 61 58
+53 56 58 59 62 64 67 68
+14 11 8 7 4
+57 59 61 63 65
+30 29 27 25 24
+29 27 26 23 21 19 16
+38 37 36 33 30 28
+19 21 24 27 29 32 33 35
+69 68 65 64 63 61 59
+84 83 82 81 80 79
+10 12 14 16 18 21 24
+40 41 42 44 47 50 52
+30 29 28 27 24 23
+62 60 59 57 54
+53 52 50 49 48 45 44 41
+28 26 25 22 20
+64 61 58 55 54 53 51
+63 65 66 69 70
+52 50 49 47 44 43 40 39
+25 27 28 30 31 33 36 37
+87 89 92 93 94 96 99
+94 91 88 87 85 82 79 76
+66 64 63 61 58 57
+60 58 57 55 52 49 48
+2 3 6 8 11 12 15
+34 33 31 30 29 26 24
+70 71 73 74 76 78 79
+19 22 23 26 29 31 32
+68 69 70 72 74 77
+73 71 69 68 65
+23 24 27 29 32 33
+57 56 55 52 51 50 48 46
+20 22 24 26 27 29
+78 81 84 87 89 91 94
+74 75 78 79 81 84 87
+48 47 45 44 41 38 35
+33 34 37 40 43 45
+74 76 79 80 82 84
+15 17 20 21 22 25 28 29
+7 10 12 14 15 16 19 20
+51 48 45 42 39 38 37
+1 4 7 9 12 14
+82 81 80 78 75 74 73 72
+39 37 36 34 32 29
+9 11 14 16 18 20
+8 9 10 11 13 15 17 20
+20 22 23 25 28 29 30
+87 84 83 80 79 77 74 72
+50 52 55 57 60 62 64 67
+75 72 71 69 66 65 62
+35 33 31 29 27 24 22
+78 79 82 84 86 87 90
+16 15 14 11 9 8 6 5
+56 58 59 61 64 66 69
+37 35 33 31 30
+14 16 18 19 22
+14 15 18 21 22 25
+83 84 86 87 90 92 95
+78 80 81 83 85 86
+3 4 5 8 9
+68 70 73 75 76 77
+65 63 62 59 56
+18 19 20 21 24 27 29 31
+45 47 49 50 53 55 58
+45 43 41 38 35 32 30
+53 54 55 57 58
+90 88 86 85 84 81 78
+6 8 10 11 14 15
+18 21 23 26 29 31 34
+51 50 47 46 43 41 39 37
+82 81 78 75 72 71 68
+98 95 94 93 90 88 85
+20 19 16 14 12
+11 14 16 18 19 22 24 27
+29 27 24 23 22
+19 18 16 13 10 7 5 4
+44 41 38 36 34
+45 44 42 40 39 37
+38 36 35 32 30 29 26
+27 28 29 30 33 36
+68 69 70 72 73 74
+89 90 93 94 96
+44 42 41 39 38 35
+85 82 81 80 77
+32 34 35 36 37 39 41
+44 43 42 40 37 36
+84 82 80 79 78 75 74 72
+40 42 45 48 49 51 52
+77 78 80 81 82 84 87 90
+37 40 42 43 46
+92 90 88 87 84
+37 39 40 41 44 45 46
+72 75 78 81 83 86 88 91
+66 67 69 70 73
+40 41 42 44 45
+92 90 87 86 83 82 79
+33 34 37 38 41
+75 77 78 81 83 84 87 90
+66 65 63 60 59
+69 68 66 65 62
+68 71 73 75 76
+79 82 85 87 90
+61 58 56 55 54 52
+6 7 9 12 13 14
+25 24 22 20 18 17 14 13
+48 51 52 53 56 59
+50 48 47 46 43 41 39
+3 5 6 9 10
+44 42 40 39 38
+47 46 43 40 39
+24 26 29 31 34 37 40 41
+13 15 18 21 22 23 25 28
+52 51 50 49 47 46 45 43
+48 47 44 42 39 36 34
+60 58 56 53 50 49
+26 23 20 17 16 15
+77 74 72 71 68 67 65 62
+9 10 12 13 16 17 19 21
+51 54 56 57 58 59 60
+54 57 59 61 64 65
+35 38 40 42 44
+37 38 40 43 45 48
+37 38 40 43 45 47 48
+80 81 83 84 87
+35 37 40 41 43
+80 78 75 74 71 68 66
+46 48 49 52 53 55 56
+53 54 57 58 59 61 64 67
+51 54 56 59 62 65 66 67
+21 24 26 27 28 30
+27 26 24 22 20 19 16
+19 21 23 25 28 29 31 32
+10 9 8 7 5 4
+32 35 36 39 40 42 44 46
+51 49 48 46 45 42
+51 48 46 45 43
+52 55 56 59 61 63 66
+19 17 15 12 10 9 6 5
+5 6 7 10 13
+46 44 43 40 38 36 33
+24 22 21 18 15 14 12
+50 53 54 57 59
+78 80 82 83 85
+14 15 16 17 18 21
+37 34 33 32 31 28 26
+55 57 59 62 65 66 69
+87 90 93 95 96 99
+37 39 42 44 45
+1 4 5 6 8
+24 21 20 19 16 15 13
+75 73 72 71 69 67
+77 79 82 85 87 90
+45 42 39 38 35 33 31
+34 31 30 27 25 23
+40 39 36 33 30
+77 80 82 85 87 90 91
+76 74 72 70 67
+58 60 63 66 69
+43 41 40 39 38
+46 44 42 40 39
+96 94 93 91 88
+90 89 88 86 83 80 77
+68 67 66 64 62 60 58
+87 90 93 94 95 96 99
+30 32 33 35 37
+41 44 45 46 47
+44 43 41 40 37
+16 14 11 9 6
+97 95 93 91 89 87
+23 21 19 16 15
+63 60 57 55 53 51 50 47
+60 62 65 67 70 73
+6 8 10 11 12 15 16
+79 78 77 74 71 70
+56 57 59 62 63 66
+46 43 42 40 38 37 35 32
+87 85 83 81 79 77 76 75
+74 72 70 69 66
+17 14 13 12 9
+74 76 77 78 79 81
+18 21 23 25 27 29 32
+34 31 29 27 25 23 20
+86 84 83 82 80 78 75
+41 42 44 45 48 51 54 57
+36 34 32 31 30 27 24
+42 39 37 36 35 32 30 28
+84 82 79 78 76 74
+42 40 37 36 35 34 31
+57 56 54 52 50 48 46
+20 21 24 26 27
+37 40 41 44 46 48 50 51
+28 29 30 31 34
+12 14 16 18 21
+69 70 73 75 76 77
+40 39 36 34 32 30 29 26
+57 59 61 64 66 69 70
+35 36 37 39 42
+56 55 54 53 50 49 48
+60 59 58 57 55
+33 30 29 27 26 24 22
+85 82 81 80 78 76 75
+67 64 61 60 57 54 52
+86 85 84 81 78
+47 45 43 42 41
+25 24 23 20 19 18 17 15
+58 57 54 53 50 49
+88 90 91 92 93 96 99
+46 43 41 38 35
+20 18 15 13 12 9 7
+81 79 77 74 73 72 69 67
+61 58 57 54 52 49 48
+93 91 90 87 85 84 81 79
+9 10 12 13 15 18 19 21
+66 69 72 75 77 79 82 83
+73 74 76 79 80 81 84
+61 59 57 56 55
+18 15 12 10 9 8 5
+85 82 79 76 74
+40 38 36 34 33
+69 72 74 77 80 82 83 85
+70 71 73 75 77 80 82
+78 77 75 73 71 70 69 68
+3 6 8 9 10 11 14
+5 6 9 12 14
+60 58 55 54 52 49 48
+8 11 14 15 16
+65 66 69 70 72 73 74 77
+79 82 84 87 88
+61 59 58 55 52 51
+44 41 40 39 37 34 32
+23 25 28 29 31 32 35
+33 36 37 39 41 42 44 46
+51 48 45 42 41
+62 59 58 56 55 52 49
+28 30 32 33 34 35 37 40
+52 54 55 57 58 59 62
+20 19 16 14 13 10 8 5
+60 61 64 67 69
+71 69 67 66 63
+98 96 95 92 90
+6 9 12 13 15 18 19 21
+35 36 38 41 43 45 48 50
+91 88 85 84 81 78 76
+83 85 87 90 91 94 97 98
+64 66 69 70 71 72 75 76
+57 55 52 51 49
+15 17 20 23 25
diff --git a/txt/2024_3.txt b/txt/2024_3.txt
@@ -0,0 +1,6 @@
+what()-%*;[mul(826,659)what()&mul(622,241)}^from();why()mul(499,923))mul(589,186)~how()why()]/~who()}mul(57,224)* ##[[*>mul(206,45)select(){~from(63,961)+!/'@mul(365,743)^ from()mul(94,410)$how()(^ )/,mul(592,884) mul(265,485))^#[[mul(763,659),mul(275,537)$;who()*mul(511,392)))what()(+from()from()>&-mul(416,947)mul(868,183)?:where()*when()#-where(890,406)#-mul(873,379)mul(195,835)/,%?],!-{(mul(225,902)where()'(where()-@#mul(544,955)how();~when(222,774)mul(538,277),from()from(717,816)$)(!%select()mul(247,162)**why()!}/where()mul(411,570)]mul(158,805)<[)}!@$select()don't()&?mul(475,153)when()mul(44,394)mul(505,328)select(),;[+mul(228,58)}/)why()?who()mul(706,785)$!#mul(635,796)#[where(){^select(275,150)-/)mul(85,214)<when()/*&where()mul(438,107)who(); what()why()why()mul(556,985):-+;@why()}?mul(581,266)why() %mul(570,646)what();@<$mul(626,256)#>do()where()@'<mul(42,958)#{mul(980,871) ,:{^!>mul(651,67)]-mul(530,38)why()+^don't(),where();what()~mul(532,711)<how()-;(^mul(538,343);mul(403,312)#where()select()<}mul(160,441) (mul(35,591)from()mul(458,977)mul(682,17)who()select()!^ :how()from()!~mul(698,638)'<@;'where()'from()!select(458,218)mul(80,356)^,what(554,850)*<&what()select()select()do()>,;)$why()+what();%mul(265,354)-mul(338,874)?]mul(284,884)}<when()mul(473,399)%>'?where(),mul(614,138)&who()~}[why()from()mul(779,747)^mul(7,27)select()}>+^-*<mul(808,414) &)when()[;&mul(969,162):where(){mul(923,581))*when()who()}?mul(604,624)**mul(968,780)):/{mul(808,433)]!who()from()mul(103,80)@^why()!mul(335,504)&how():how()}mul(407,608)'+mul(350,417)select()>who()*mul(545,113)who()('!&how(),don't()+{$&mul(842,42)<#mul(788,22),why(),mul(581,843)why()?mul(415,102)[mul(782,483)::(&',^mul(411,597)mul(800,946)[]($}:+)]mul(6,738)who()+where()@}(where()>$when()mul(737,227)select()~ why(984,422)mul(690,299)$how()!why()when() why()>:who()mul(62,391)mul(559,901)mul(152,669)([why()-select();*(mul(674,497)mul(195,917)from()#what(),mul(332,868)select()')@#mul(957,359)(when()]>(<what()!mul(602,990)+@how()]$^mul(885,543)mul(564,365)mul(912,603)what()when()how()mul(216,398+&#'*-,]:mul(971,792)!do()from()who()mul(741,501)~how()where()<what()[#where()mul(268,825)what()mul(958,990)){?(+'mul(427,368):%?how()?(mul(725,420)?when()}-from();mul(414,122/%-when():-'@mul(450,900)&what()<{ ]<'(?do()%]^!} mul(401,278)when() -(! -do()when()*select()?@[~@from()why()mul(892,125)~what()+;/mulwhy():mul(375,500)^(#>%,mul(252,836)[why()?<how(643,18);*mul(223,308)$where()mul(401,278)why():mul(276,426)mul(793,320)what(85,700)})mul(485,616)where();when()}[! from();]mul(582,705) !:mul(427,563)<*<#how():!do()'&-}!']:'mul(615,412)where(928,116)];select()(mul(812,857)&@?[select()$~do()mul(49,314)?{mul(164,850)mul(345,646)[}from()}]<'#select()don't()<;+%where(445,34)*!mul!when()-{mul(471,900)<[-from()&@mul(442,893)where())*mul(798,495)}<+select(130,600)why()(from()mul(860,565)select()~why(406,274)mul(397,514)who()why()]~mul(654,583>where()!,mul(877,551)&select()[<?&{}when(){mul(528,802),#-)+(&select()/mul(878,466)#how(872,781)mul(964,641>}->(*[mul(847,681),why()select()select()*@,mul(211,86)when()select()-:)#']mul(416,630):(}?$[:)mul(255,942):-*:!~%@how()what()mul(117,324)
+/}mul(804,424)mul?where())%}mul(933,657)%from()what()'~!}*:mul(916,775)who()<select()<how()don't()#from(773,402);/,when()mul(425,484)> {,what(485,199)when()#mul(760/-select();mul(859,259) )?mul(21,933)what()^from()#-mul(951,427)don't()<!mul(664,380)mul(747,497)*who()}from()*+mul(505^) <#:select()]?select()mul(383,587)*mul(747,795)how()where()who()&}#:mul[@%mul(488,640)how()who()^'>mulwhere(295,787)%'~*who()@mul(500,697)where()*^!@^what():mul(737,496)^{)^how()when()#mul(387,233)']%select();}mul(89,882)}(&mul(394,392)#from()what()}who()when()when()>;^mul(639,188) [*mul(302,818)[mul(874,794)~{(<>[%mul(217,113)~why() mul(651,680)^!/'select()mul(161,158)'}/*{mul(41,452)?;;@,[~}why()mul(71,555)<select()%:when()]@what(198,130)do()mul(364,266)*+)what(65,6)'mul(503where()'{what()?mul(84,10)/;''^;mul(180,571)how()(]mul(804,566)>who()}]where()*%where()?mul(909,630)%^where()how()'mul(678,912)*)+what():don't()*^[$mul(208,358)mul(99,216,??/-%]when(40,18)>'(mul(967,259)^!%!mul(574,337)mul(855,993)from()who()<@ -&mul(679,566)[;$how()mul(773,340)+-':-mul(46,577);>+%^#mul(668,549)@;#,[])don't()mul(471,350)why()?what()where()what()</[mul(725,898):(-mul(869,478)%don't()'mul(896,319)]from(){@don't(),,why(){what(394,834)?mul(58,736)%#/ <mul(51,867)*)^why()#'mul(176,298)$where()//>,]:!where()mul(474,215):#what():%}how():mul(47,116)-,^from()?[select()>mul(566,323);!$why()what()<>{%-mul(756,641)(]{what()$>@#$%mul(478,68)!](;@+when()mul(383,83)>>@ do())(/!when(){{)~when()mul(18,568)mul(933,58))mul(53,523)what()where()>+where()^mul(847,728)>where() who()how()]mul(499,856)mul(837,413)&:who();from()@mul(711,785)@from()select()$]#-}mul(603,647)!how()'}/mul(142,83)mul(236,987)(&[)+$<&when()mul(464,484)[mul(97,923{[{;~*how(603,347)why(397,750)[mul(397,378):from()who()@$[mul(33,741)@&<['from():do()]select()/!who()from()what()(+mul(425,204)<[^select()#:?do()/mul(977,606)how()select()?select() ^mul(481,671)^&,)&what()select()from()from()mul(219,42):what()?}mul(441where()({select(),mul(333,910)from()from()where()]*'mul(925,221):%?from()mul(981,324)%}mul(595,648)&select()/mul(742,838)when()~@from()don't()#+)(<^?}mul(554,328)} -?(mul(513,192)~~$*why()/~% mul(444,631)## mul(794,537)-#what()~how()why(310,427)(mul(781,606)< from()<mul(674,614)where()when()how(){who()when()where()where()what()mul(416,867)$!!why(54,460)^when()mul(153,262)]where()what()who()]'do()mul(179&$)%>@&mul(787,800)@how(266,66)<?~&,{mulselect()<>-{when()what()who()mul(538,246)[^*+why()where()mul(629,836)from()* [$+&]mul(77,354)%]:from()mul(260,304)@why()!/when()where()+(mul(354,804) mul(76,15)>mul@!!$]from()mul(357,50)(mul+%~]$-%%don't()(from();when()#;~when()mul(564,123)~&]<mul(985who()#mul(269,732)(mul(963:^mul(824,4)$*how()@%what() -%mul(891,926)^*how()?select()->@mul(489,580from()what(95,431)+:*- ,*'mul(745,620)how()'why()>-from()[?><mul(509,286)->!!mul(988,840))^)(]<mul(657,220)who()[;when()>]#^}mul(298,967)when():who()#who()what()mul(84,148)< ;&@^do()when()~^where()#^$mul(341,853)<+~*what(252,434)*{{mul(986,313)]&>&>mul(620,476)why()who()mul(69,875<$-&(''mul(106,787)mul(171,707)who();~when()+>;how();+mul(163,282)(];?>}* mul(571,602)/from()+/]!{+mul(372,949)$?*$(mul(921,212)@'>mul(705,437)($when()where()mul(371,384)>mul(445,760)'do()?/when()%[^mul(382,44)}&/)&$select()mul(284,899) when():%mul(554,813)$;~>mul(274,983)'')?-from()mul(668,571)when()why()mul(981,529)>where()%) #& [^mul(864,321)how()'[mul(752,285)$ mul(448,366)&why()])${;^from()who()mul(251,944)select()-&*mul(724>>)}^,select()~~}do()}))%who()#mul(652,853)
+mul(914,760)%]how())mul(325,361)>[@#{mul(49,627)> []!%?@:mul(866,756)!?^how()#select()(}&mul(217,708)>mul(534,113)<()(~(how()&mul(522,207)where() who()why())]mul(549,286)what(824,300)-]when()]}:select()mul(536,959$(~#&*[~})mul(47,72){:mul(907,280)&!mul(175,322)mul(460,379)select()'?&mul(697,154){^%[^from()when(552,273)mul(454,997)*&/mul(514,858)$why(29,970): ,+!<&mul(411,897)[%why(),mul(749from()where())+ <mul(565,182)>]how()'what()mul(739,713)mul(116,113)mul(203,704)/!select(379,766)]&when()^from()#mul(903,203)!,!< {%]?mul(330,707)where()(+how()>mul(526,973)~]^&'how()mulfrom() +];mul(964,967)@why()from()when()^~ mul(217,465)]from()/from()@&]where(263,584)+why()mul(267,301)}when():#don't()>who(860,416)<select()&mul(552,955)]@mul(830,261!% /-(why()when() ^mul(577,681) where(145,770)why()where()mul(604,697)]$[,mul(784,378);(@where(413,20)why()don't()#)/#mul(32,109;mul(212,539)<]>/,mul(126,52);<}+[who(),where()mul(868,540)when(332,336)mul(134,939)#mul(119,818)mul(777,396)+mul[mul(184,9)select()mul(375,842)]mul(527,499)~#what()'mul(260,652)mul(15,171)what()mul(273,578)-?mul(798,178)&?<;#%:mul(886,756)where()who()~^,from()$mul(775,238)[why()'mul(229,247)/mul(105,511)from()?]>+/why()$!:mul(578,64)?where()*)~:&( where()mul(917,699)&:~^'~who()mul(685,592); ,where()%[{mul(535,245)' why()*mul(166,874)!'who()why()/~:}-what()mul(430,972)[(mul(11,883)>?-%<when(560,496)$*mul(398,75):/why()^]where()mul>/#;who(382,885)why()}where()*&?mul(142,204),!why()from(805,222),mul(165,77>>from()mul(539,602)@- !!from()where()>mul(725,894)#mul(664,363)mul(436,916)(;*]!/mul(276,69)?^~how()?:-what()do()mul(174,136)where() ,#:*)mul(465,302)*!-why()^/mul(363,643)})(why()!mul(149,621))^*?who(),mul(172,73)mul(631,398)]from()mul(998,161)@[[@who()?mul(310,639)#-}{what()?;!(mul(584,757)~ !(do()$->#[)$(mul(124,565){mul(698,142)}})-mul(742,227)%#why()/,$:select()mul(152,975)why()*&?~#'~*?mul(908,265)mul(620,516)from()select(209,291)why()$mul(539,160);select()~}*{when()mul(784,853)who(15,285);where(),^;where()-[mul(342,770select()*;>-((*&mul(982,965)how()&mul(523,830)when(961,246)[ why()+why()]mul(785,203)who(99,69),*mul(936,742)?^','%;-why()!mul~)when()when()select()!(;&@how(900,734)mul(589,321)mul(964,282)-))how()why()what()(*})mul(47,984)@mul(253,826)mul(429,558)where()how();<#what()#+mul(983,307)~>}-)/who()mul(327,880)+}when(){when()}mul(593,869)mul(643,89)-:,,,<;mul(33^who()[)+-^mul(189,550)<:mul(519,574)*how()?where()[^;when()mul(563,151select()-what()]mul(574,867))}mul(800,881)who()'#~#mul(46$mul(693,762)-!@,#mul(454,19)$!select()from()*who()),mul(269,371)from()mul(330,479)%&!}how(477,247) [do())why()^}+''-how()mul(819,485)how()-)~*%what(447,325)why()mul(462,456)#?]mul(912,654)]mul(2,822)$)>':select()when()select()/]mul(557,454)'%<>+%what())*do()when()why(716,84)@/mul(89,140)select()('mul(310,84),*select(),$?mul(86,400)[/what()<@~$mul-!when()who()%#where()'[who()(mul(755,653)mul(594,757from()from()<[,;mul(916,545)mul(206,9)@$)mul(588,12) '][)select()$from()from(220,871)@mul(849,103)-/mul(887,921)$#who()who()mul(873,831):why()}who()[+mul+&>#how()how() : mul(323,651)why()!mul(620,114)<+what(844,679)/{/*mul(327,69)mul(472,982)how()^(mul(321,807)when()why()]why()$mul(694,629)/%/ who()*[mul(648,109)]>[''@mul(543,595)${{{:>;#!/usr/bin/perl ]-(#:how()]<+mul(770,832)
+$select()when()@*)&select()how()/mul(195,671)';;^(select()!mul(342,663)@$@%~)>)don't()what()mul(681,868)-@who(237,633)}when())*#>;mul(532'select(828,390);what(),<%?-:{mul(835,208)%/$select(21,874)mul(214,27)from()who()who()/mul(767,769)!~,+>who()<who()how()from()mul(378,284)mul(303,165)select(),%mul(550,216)(>,mul(204(}who()!when(940,779)<$from()^mul(944,886)mul(714,285)<)~~why()mul(352,872)what():/mul(419,248)#from()&select()>>mul(557,809)-why()from():mul^?);mul(231,230)(what()%/:{mul(635,952)mul(896,753)-&*%mul(475,955))[when()(&~}mul(865,939)mul(557,651) !)~:mul(172,689)/from()]{$,;what()mul(956,624):[,@+}what()mul(601,236))where()*from()from()mul(820,982)who()$select()when()/<when()mul(949,607):~-$mul(321,684),&&~mul(847,261)mul(726,906)[!@where()<*how()*#;mul(192,221)'from()select()what()%mul(832,291)mul(975,738) ,~mul(152,341)don't()*%mul(792,874)]where()@;mul(390,16)mul(285,187),mul(26,776)why():$#},select()mul(346,341))how():where()^/mul(899,379) }^,who()~select()!mul(105,998)how(18,23)<(select()mul(565)@]select():(when()mul(988,676);?mul(825,122);how()from():{)>mul(249,654)#,from():;!don't()}+select();/why(240,203)where()^!mul(373,721)from()?,mul(234,262)how()'>([mul(477,58)mul(161,422)~mul(985}/select()-~mul(344,788);mul(660,334)do()when()]where()&who()when(){mul(955,809)+who()>how()where()?-^/mul(800,971) mul(331,999)[{where(){}]@!mul(243,886)<mul(530,831)what()when() how(995,815)where()+,)!&mul(545,505)&:%(;mul(291,529who()where()[-{{-what()'>mul(807,365)why(708,402)@when()?who()mul(242,464)&^,[{how(){when()*(mul(593,164)&*/&where()select(237,204)mul(474#/<mul(376,919)when()how()where()/?'){mul(547,382);who()# )>mul(533,804)&, how()why(653,768)mul(489,173)]where()from()[&{?:mul(62,23)& )where()from() mul(234,284)@who()why()* }*mul(938,464)from(),+?(@why() don't()what(338,233)?~'+who()$@mul(63,606):mul(713,654)$from()(+&:mul(138,999);&#select()<select()-*who()[mul(925,57)when()&[<why()*where(221,603)~/mul(841,865)'why()%<mul(86,164)mul(226,558)!(:+(how()who()mul(193,897)where()#!}mul(939,962)%,why()(!'>~mul(432,589)?>^(?*&mul(117,404)@)where()why(6,662)mul(942,298)mul(16,588)how()<mul(261,707)<why()when()why(){~&%@mul(593,32)^mul(388,286)who()*%-mul(25,840)why() *}mul(972,967)]~mul(669,616),-;{mul(29,722)-/$<why(164,698)mul(440,168)who()-what()how()@^@}:mul(396,626)>*~<~ from()-mul(610,545):why()#]-;how())what()}mul(977,824)??when()mul(241,702)!^]@mul(98,19)!{what()mul(896,817)?who())^#&;:?mul(475,309){]~<what()select()-when()mul(249,917[when()[(([/where()select()mul(26,324):^!how()mul(978,685):%(+}/mul(138,943),how()+<?who()@>!who()mul(819,280)+~why(22,676)mul(714,597)from()when())^~+, mul(962,748)%mul(178,691)<from()@@>$what()mul(777,740)&who())where(),;mul(632select()/ *who()who()@mul(460,751)+',mul(862,580)# :-what()!+{don't():$!<^:from(){&who()mul(93,231)how()select()#+)-^don't()/&>*#'/&[<mul(287,405)!/'mul(590,513)from()mul(801,217)*from(10,240))>(;&>,from()do(),what())what()$*mul(742,889)mul(62,478)?[why()why(),mul(837,195)why(){>,$@!'mul(722,317)%%select()when()what()(('/+mul(251),)<mul(591,577)who():#*&#[@mul(605,108){ how():select()$#select()where();mul(386,407)+}[mul(283,172))<select()from()#+{{!mul(379,555,)*>>mul(148,406);don't()when()'mul(784,101)<[!^(where(365,573)<${mul(535,827):{*#mul(335,673)]]^:^]when(222,2)[mul(704,190)!from()who(){%(&} mul(407,649)+~:why()mul(575,579)@}:why()mul(945,425)[what():mul(42,200)
+/select()who()how()select()~when(364,150)mul(790,347)+,):+?mul(498,67)!!<'when()}',{mul(440,393)from(283,600):@[ :&mul(584,602)[*%+mul(913,926)(+from()why()(><,$ mul(4,866)where(){;+,why(),when()why()when(199,14)mul(370,854)why()^mul(665,756),>}*{:&when()-how(582,503)don't(){@^,@/mul(306,251)mul(2,820)~&[[^ mul(135,961){~!)mul(526,875)how()+what()?]mul(379,321)%why()%,who()^?don't(),select()%when()mul(476,779)select()mul(811,466)}~~%mul(389,923)>what(){&> :{>mul(806,620)mul(976,304)when(); :)/[mul(463,959)'when()[select()(^]mul(911,997)-%[*,mul(448,155)({from(10,578)mulwhat()when()<}select()(mul(492,179)+from(771,314)<mul(821,553)select(),why()how()why()how()who()select();[mul(755,27)}who()mul(595,676)}^;why()?)!mul(716,763)]{*~when()@;mul(389,65)where()where():how()select()mul(977,258)~(<<what()}(what()mul(165,261)how()when()/,mul(237,121)%mul(442,192)from()%mul(149,123)from()select()how()-why()mul(280,322}why(996,110)<mul(949,404)-mul(190,792)mul(85,466);why()>)&*:!]mul(624,243)who()how()(^&{%+$do()'?mul(171,189)who()where()mul(531,756)@what()who()}mul(83,163)> @)*mul(575,765)why()'$$<mul(794,127,mul(628,236)~,:mul(375,718)$@]mul(184,164)]$?mul(374,308#*mul(652,890)?-*,mul(394,73)~select()mul(37,351)#don't()!%#:when()mul(417,948)? &mul(571,57)?'when()select()@!when()mul(52,129)['/,#mul(609,910)!mul(734,504)?;mul(41,15)('what();why()select()mul(939,660)/%%/)*-don't()mul(393who()?!>who();{who():?+mul(644,730)~from()&/where()select(574,686)what()^?~mul(998,26)~<: [){}?do()how(851,386)#mul(29,770)]what()select(),^why()from(577,917)?/do() mul(309,161),#mul(684,763){#;why()$+[@]mul(99,693)who();(>select() don't()~^,mul(144,109)!@mul(757,540) <mul(635,426)mul(287,390)-[}?from()-&mul(641,514)/what()&@who():#>+mul(649,668),[^/~> &what()mul(948,181)(what()select()~mul(147,215)mul(790,557)+@when()who()>-{%mul(809,499)+from() mul(594,964)?select()) } ,%mul(105,293)mul(800,358)who())/{$select(343,382)>+from()>mul(556,232)mul(719,487)'&^?why()?^+mul(986]:why()<mul(31,917))mul(181,375)(mul(443,827)why()when()~select(148,144)mul(349,642){]>&mul(487,944)#/>[when()when())<mul(105,877)?#mul(442,949)^}?'&^+when()who()mul(764,156)mul(429,548)]@select(926,250)%;$/^>mul:select()what()&]>^~mul(356,737)$why()^~why()[>mul(357,835)from()~~$+&don't()mul(243,897)mul(606,944);--how() mul(200,517):?:?#),>who()}mul(588,55)&where() how()-:'when()^>mul(144,286)<%{} select()mul(957,918)!mul(901,352)!],;who()>mul(840,776)(,how(544,497)!#:/mul(319,341):what(836,872)<;!!,(!mul(182,549)~mul(550,899)what()>{}^%[do()when()- mul?-('[~@who()~&~mul(376,145)]#]mul(206,452)%?'{+ &how()#]mul(210,898)^+[from()why()'@]/mul(914,474)mul(814,374)how()?mul(679,233select()!$;)*why()who(),{mul(109,898)^^,$^who()what()mul(526,786)what()mul(966,480)mul(971,34)!who()mul(268,920)when(),!^+:!~~don't()'mul(324,732)why(98,537)where()^];}&*mul(341,746)/-+who()(mul(557,763)how()mul(30,249)mul(646,653)'where()(? ,,what() !mul*}&+when()when(579,74)what()]mul(100,419)%*,~-;*~mul(980[who()$where()({do()$)]*mul(154,681):)~select()>'select(110,162)/mul(499,447);~ ]!/%from()mul(140,215)'how()]>^&'/mul(54,832)<mul(654,364)&how()?-- #mul(445,723+select()?'mul(146,179)mul(127,447)(mul(970,298)where()>:*/from()/mul(176,59)@$$[#^]mul(802,12)~mul(85,515)
+@)::-from()who()mul(979,36)mul(966,513@+'}?don't()mul(428,358)+where()select(943,219)-?>mul(258,3)what()mul(415,26)/'mul(7,129)@who()how(){mul(104,970)]mul(626,872)where())&mul(349,194) *when()how()%&}(why() mul(827,914) how()[+what()^--[!mul(421,153)?mul(161,508):+where()mul(786;#(@/mul(857,712)why(841,104)[})&from()mul(411 ]how(223,310)mul(528,703) ]mul(17,407):*~+)mul(129,256]%$where()~mul(934,438)~where()&+#what(15,14)$select()mul(170,110)mul(367,246)@ mul(759,593));$' where()why(326,790)?why(101,864)~mul(941,890)what(863,919)}<mul(499,900)>>mul(291,785)where()~when()/what()when()mul(599,49)why()'what()}}/what()%{do()$?why()&what()'mul(235,289)<mul(567,598)what(940,872)#!'#mul(558,233)what()-'-how(18,51)@%how()mul$$what()~~mul(753,714)why():,mul(308,180)where(153,49)when()why()}>mul(326,542)-[why()>[;mul(539,793)mul(608,380)from()>- &:where()<?who()mul(111,200)(?^why()<:%how()&>mul}who()'*;:'how()from()mul(732,637)&>mul(66,802)*mul(549,82)>&from()+!who(809,63)mul(247,247):why();-select()}mul(70,653)] where()>$mul(436++mul(489,212)><}what()[what()when(279,911)mul(135,755)where():;#%$mul(961,126)#:why(),&select()where()mul(952,400)#~{~]/];from()mul(323,62)<#(]mul(216,941))mul(463,878):!+, -;how()mul(955,874) %: $',don't()<#,@$@-#>mulwhere()when()mul(414,753)/%$mul(121,719)?mul(461,998);,(;(@]mul(197,230)(#@who()]who()mul(843,541)%~}mul(444,889)what()~mul(351,825)#?how() *)}@!mul(903,612)from()-+>do()}#*+'{why()^who(469,233)mul(350,416) }where()#,mul(555,729)who()]&mul(688,456)select(818,922);*don't()]who(441,198)?mul(712,946)!)+- mul(224,129)who(){'!,what()mul(716,626)select()#(mul(26,417) )<what()~%)mul(507,65))mul(185,144)@^&*&:*!)mul(156,922)[who()@;mul(448,420)who()[,how()mul(705,34)why(923,293)#mul(779,33)[?}why()how()$ !mul(565,19)what()>when()+{@@^don't()+*/mul(141,786)(from()[select()]$#>%mul(889,476):why()><from()what()how()why()^mul(100,7)& #*mul(970,745)!#?@(who(641,375)mul(338,404) ){mul(546,582)'*!mul(491,915);why(807,382)mul(737,259)mul(769,95):what()/?+select()%why(){mul(219,377)mul(290,206)~%[[mul(492,759)?mul(982,630)&}+$@mul(722,843) :~'+/)mul(924,380)#;;who()select()+do()why(196,318)#$*when(747,804)~mul(50,493)>where()~]}#mul(183,580)mul(970,128)[select()}@;where()[why()mul(174,357)~](+[~#mul(471,870)^'from(874,759)%don't()when()[where()who()(mul(880,149)+@?mul(319,427)&&~from()<mul(996,58) ~^)where())!^mul(168,373)who()@where()how()*?(!*]mul(978,658)~]who()]$&how()why()<]mul(575,451)'/*mul(365,231)(~where()$&,(/where()<don't()select()[what()@/{+(from()mul(323,211)why()select()when()${mul(799,599)#'/'(from()+@mul(75,724)[::>$(mul(186,123)%what() }*(do()when()-where()!/)(mul(810,752)mul(421,178);{# !when()%mul(926,537)when()'mul(697,480){:~#]{<who()mul(371,502)!)/!what()how() {mul(452,449)from(),mul(117,131);when()$mul(602,113)(how()(}}when()>>-mul(536,791)*]$~*where()$mul(367,981)?(+~#mul(982,905)><},,*where() where()@mul(321,839)!{->]?what(){mul(467,883):/+)mul(849,445)why()when()[&<mul(558,491)what()%&*}*)mul(58,503)why()where()!why()+,mul(972,943)who()select()what()why()from()mul(552,996)}}from(88,271)&what()^/mul(252,989)](%{mul(193,149)&from()!mul(19,790)-who(),{!mul(842,509) *><do(),why()mul(834,147)/what()@<what()*(mul(334,354)'what()>$+!#
diff --git a/txt/2024_4.txt b/txt/2024_4.txt
@@ -0,0 +1,140 @@
+SMMMSMSMSSSMSSSXAMXXAASXMMSMXMAMSSSXSAMSAMXSXSSSMXMAXASXSASXSXMXSMSMSXSMMMMAMMXXSMMMSXSXXAMXMAMASMSMSSMMMMSAMXXMXMASMMMAMXSSMXAMXMASMSMSMSAA
+XAAAAXAAMAAAAAMMXXMASASAMAAXMXSMAAMASXMSXSXMAXAAXSMSXXMASAMSXAMAMAMASXSXSASAMSAMXAAXSSMXASXSXXMMSAXAAAAAMAMXXAXMASMSAMXAMXMASXSAXSASXAAAAMMM
+SSMSSSMSMSMMMSXASMAXMASXMXSSMAMMMMMAMAAMMMAMMMMMMSAAXMMMMMMAMAMAMAMXMAMASAMASAMXSSMMMASMMMAXAXSAMXMMMXAMSSMSMAXXMAXMASMSSMMAMMMAMMASMMMMXMAM
+XMAMXAAXAAAMXXASAXSXMXMASAAXMASXXXMXXMMXASAMAAXXAMMMMMAMAMXMSXMASASAMXMAMAMMMMMMXMSMSAMSAMXMMMSAMMAMXXSMMAASMMMMXMAXAMXXAMSASAMAMMAMAXAXASMS
+XMAMSMMMSMSMAMMXMAMXSAXAMMSMMASMMMMSXAMSXSASMSSMMMMAAXAXASAXAXMMSMSASMMASAXAAAAAAMAXMAMMMXAAAXMAXSAMXXXAMMMMAAXXAXXMMMXMAMXAXMXASMMSXSXSASAA
+XXAXMMMAXXXMXSAMXMMASXSXMAMAMAXAXAAXMAMSAMXMAMXXAASMSSSSXSMSMMSMSAMAMASXSASXSMSSMSAMMXMAMSSMMMSAMASXSXSAMXASMMSMSSMXSAMXSMSMMSSMMAAXXAMXMMMM
+MSMSAAMSSMXSXMMSAAMXSXSXMASMMXSXSMASMSMMAMMMMMXMXMXAXXXAXMXSMAAAMASAMXMAMAXAAAMAMXXSAASXMAMAMXMASAMXMMMXSSMXXMAMAAAAMAMMMAAXAXAASMMSXMAXXAMX
+AAAXXMMXAAASASASXSXAXAXXSASAMMSXAMAXXAMSMMMAASXSASMSMSMSMSAMMSMSMXAASAMXMMMSMMMMXAMMMMMAMASXMASXMMMXSAXAXAMXSXMASMMMSSMAMSMMSSSMMXMXMASMMMSS
+MMSMMSASMMMXAMAXAXMAMXAXMXXAMAMSXMXSSXMAMAXMMXASAMAXASAAAMMSAAAXXSAMXAAXSMAXASXSAAXAXMXSMASASASXMAXMASMMSSMAAAXMAXXAAAMSXXMXMAMSMASMMXAMAMAM
+MAMAAMMAXAXMSMMMSMASXASXMXSSMAXXMASMAMSAXMSMAMMMSMAMAMMMMMXMMSMMMXMXSAMXSMMSAMAMSMMMXMAXMXSMSXMAMMXMAMXXAAMXSXSXMSMMSSMMMXMAMAMASASAMXMSMMMS
+MAXMMSXMAMMAMAMAAAMAMMXAXAAXMXMAMSMXMASAXSAMMSAAXMAMXMXMMSAMMXAXXAMXMASAMAAMAMMMAXXXAMXSAMXAXMASXSMSASMMSMMXMMMAMAAXAAAXMASASMSXMXSXMXAAXAXA
+SMMSAAMXSAMSSMMSSSMMSMAXMAMSSMSSMMXSXMMAMSASXSMMXXMASXSSMSASASMMMASASASASMMSMMASMSSSXSMAMSMSMSAMXXASAXAMAAMASASMMSSMMSMMMAXAMXXMMMMMMMSXSMSM
+AMAAAMAAMAXAAAAAAAXXAMSSSXXAAAAXXXSAMXMXMMAMXXSAMXXXXAMMMSXMMXXAXXMASXSAMXAAMSAXXAMMMMMMSAMAAXMMMMMMSMXMXSMASMMAXMAMMAAMMMSAMSSMMSAAXAXAXAAM
+MMAMSAMXSXMSSMMMSMMSMXXAMXASMMMSAMXMAXMMSXMASAMXXMXMMMMAAMASASMSAMMAMAMAMMSSMMMSMMAASMMXSAXMMMAAXMAAMMXSAMMAMASMMXMSSMXSAAAAXAAAASMSSXSASXSM
+MAMXMAXMAMAXXXAAAXXSXSMMMSAMAXSMXXASMXMAMAMXMXMMASAXMAXMMSAMMAAMAXSXSXSAMXXMXMSAXSSXSAMXSAMSMMSAMSMSSXAMASMXMXMXMAMXXSAMMSMMMSMMMSSXAAMAMAAX
+MAMASXMXMXSXAXMSXSMMXSAXAMAMAMSAMSASMAMMSMMMSASXMSMSMAASAMMSXMMSAMSAAASXMXMXAXMAXXAXMAMMMXMAAMAMXXAMXMASAMMMSAMAMSSMAMXSXMAXAAMAMXAMMMMAMSMM
+XASXSXXAMXMAXSAMXSAMMSAMXMXMMSMAMMXMMAMXAAAAMMSAAMAAXMXXAXAMAXMAXAMXMXMMXXASMSMSMMMXXSMAXSSMSMSSXMAMAMAMAMAMXASXMMAMXMASASMMXXSASAMXMASXMMAM
+SASAMMSXSASAXXAMASAMAMASMSMSMAMSXMXAMXSSSXMSSMSMMMSMSMMSAMMXMMXMMSMMXSMMAAMAXXMAAAXAXMASAMXXXAAAASASMSASMMSMSXMXXMAMXSAMAMXSXMSXSXMAXXSMMSAM
+AXMMAMXASMXMXSAMXMAMSSSMAAAASMMXASXMSMMMXAXXAAXXAAMASAAMXXMASMMXMAAMAXAMMXMASMMSSMSAXSAMMMMSMMMXMMAAAMASXAXAMMMSSMAMAXXMXMXSAAXMSMSMSAXAXSAM
+MXMSSXMXMAMSAMASASMMMXAMSMSMSXMXAMMAAXMASMMSMMMSMXSASMSSMXMASAAAXSAMMSXMXMXAAAAXAXMAXMASXAASAMAASMMMMMSMMMMXMXAAAMAMMSMSSMASMMMMXAAAMMMSMSAM
+XAMAMXXMMMMMASAMXXXAXXMMXXXXMASMMMMSMSAAXXXSMMASXAMMMXMAMMMMMXSMMXAAMMXMAXMASMMSMMMSAMXMAMMSAMASXASAMXMXAXMXSMMSXMAMXAAAAMAMMAAMMMMSMXAAASXM
+MXMASAMSAMAMAMASMMSSMMSAMXMASAMXMAXMAXMASMAXXMASXMSSMSSSMAAMMAMXXMMMAMAXAXMAXMXAXSAXMXXXXSXMXMMXXXMAMAMMMSMAMAMXMSASXMSSSMASMSSSXSAMXXSMXMMM
+XAXMMXMXASMMMMAMAAAAAAAASXXAMMSASMSMMMMXAMXMMMMXMAXAXAAXXSSSMSMMXXSSMSSSSMMAMMSASXMMMSSMASAMSSMAMMMAMASAXAMMSSMAXMMMXAXMAMXSMAAMAMMSSMXMXAAM
+SXSMSSMSMMMASMXSMSMSMMMSMXMXMASASAXXXAXSXMASAAXAAMSMMMSMAMXMMMAMXXAAXMMAAXMAMAMMMAXAAAAMAMAMAAMASXSMSASMSMSAAAMMSSXSMSMMXSAMMMMMXMAAXMAMSSMS
+XXAAAAXAMXSASAAMXXXMASXMASXSAMXAMMMXSXMXAXAXSMSASAAMXMMAMXAMASAMXMXAMXMSMMSSSXSASMSMMSSMAMSMSSMASXAMMASAAASMSMSMAAMSAMXSAXMASXAMMMMSXSAMMAAA
+SMMMMSXMMMMASMMSASXSAMXMXMAXMMMXMXMAMSSXMMMXAMXAMXSMSSSSSSSMASXMASXXXAXXXXXAAASASASXMAMXMSMAMXMAXXMMMAMXMMMAAXAMMSMMAMAMASAMXSMMAMXAASAMSMMM
+XAAAXMMSAMMMMXSMASAMXXASAMXMSAAAMAMASASAAAXMSMMXMAMMXAXAAAXMAXAXAXXMSMSMXMMMMMMXMMMMMMSXXAMAMXMASMXSMSSXMAMMMSMXMAASMMSXXMASAAMSSSMMMSAMXAMX
+SSMSXSASASXAMXXMMXAXMMXXXMAAXMSASXSMSASMMXSAXAXXMASMMXMMMMMMMSSMMSMAAASMMXAAAXAMXSASXSAMXAMSMXMAXAAXXMAMMASAXAXSSSMMMAXAAXMMMMMMAAXSXMMSMASA
+XAAXXMAXAMMMSSXASMSMMMSMMSSSSXMAMAAAMXMXASMMSMMMMASAMMMXMMMMAAAAXAAXXSXAAXSXMXXAMSASXMASXMMXXMMSSMMMSMAMSAMXXMXMAMSXMASXSMSXSASMMMMSAMAXMAMM
+XMMMMMXMMMMXAMXSMAXXMAAAMXMAAXSAMXMSXSXXMXAXAMAAXXXXMASAMASMMSSSMMSMSMMMMXMAMSMSAMMMXMXMAMAMAMAMXMMXAAAMMXSMAXAMMMSXMAXXAAXASMSAXMAMXMMSMMSS
+SAXAASMXXAXMAXMMMSMXMMSSMAMXMAMXMXAXAMMXXSAMXSSSSMSMSSXXSAXXXMAMAAXXAXAAXAMAMAAASMSSSMSSSMASAMXSXMASMSMSMXSAMMMSMAXASASMMMMXMAMMMMXSXSAAAAAM
+AASMMSAMSMMXSMASMXAMXAAMXSMAXMSXMAXMSMASAAXAXAMXAAAAMAMMMXSAMXAXMMSSMSMSXMSMSMMMXMAAAAAAASASASXMXMMXAXMAMMMMXAASMXSAMXMAAXAMMXXXXSXAAMSSMMSS
+MMMMAMAMAAXAMXMXAXAAXMMSAMMMSMAASMMMAAMSMSASMAXXXMMSMAMAAAXMMAMXXMAMXMXMAMXMAXMASXMXMMMXMMMSMMMMAMMXSXSASMMAMXSMAXMMMSSSMMSXMASXAMMMMMAMXAAA
+XXAMXSAXSXMASMXMMMMMSAMMXSAAAMSMMAMSAMMXAXAMXAXMAAAXXSXMMMMXMAMMSMMXXMAXAMMSASMXSASXSASMMSXMAMASMSAAAAXASMMAXMAMXMSAMMAXAAMASAMMMMAXAMMSMXSM
+MMXXMMAMAXSXMAXAXAAMMAMAXMMSSXMXMAMXXMXXMMSMMSAASMMSXMASXXXXMASMAASAMMXSAMXMASAASMMASASXAXXXAMXMAMMSMSMMMXSAXXAMAAMAMXMSSMSMMMSAMXMMAXAAAMMX
+AAMSMMSMMMXAMXSSSMSSSMMSXMAMXAXMXSSSMSMAXAXXXMMMXAAXAMSMAMSXSASMSMMAMAMSAMXMSMMMSXMXMAMMXMMSMSASMMAAAMAMAMMMMSASMSSMMMXXMASAAXSXSASXSMXMSAMX
+SSMAAAXAXASXMAMAAAAAAAAAMSSMMSMMXMAMAASMMMSMXMXXXMMMSMXMAMXASASXMASAMXMMAMXMAXAXXXXSAAXXXXMAMSASXMSMXSXMASMAAXAMXAAASASXMXMMMMXAMASAXAASAMXM
+XAMSSMSAMXMSMASMMMMSSMMMXAAXAMXSXMAMSMSXAAAAAMAMSMSAXMASASMAMXMASAMSAMXSSMMSASMSSSMASMXMSAMXXMAMXXXAXAXSXSMSSMSMMMXMMSMMSMSMSXMMMMMMMMMMAXXS
+SSMMAMMAMAAXSAXXXMMAMAXMMSXMSSMMXMAMAMXMMXSXMXAXAAMASXASASMAMMSMMMMMXSAMAAAAXXAAAAMAXMXXMXSXXMMMSAMXAMMXXXAAAAAMXSAXMAXMAAAASAMXAXAXAMASMMMS
+MAASXMXAXMXMASXXAMXASMMSAXSXAAAXSXMMAXXMMAXAMSASMSMMMMXSAXMAXAMXAAAXMMASMMMSSMSMSMMASAMSMAMXMASAMXAXMXXAMMMMSMMXAAMMSMSSMSMSMAMSASXSXSXSXSAS
+SSMMMMMMSMSSMMSMAXMMMMAMASAMMSMMMASMSMSAMASAMXAXAAAAAXXMXSXAMSXSSSMXASMMXXAXMAAAAAXAMMAAMAMAAAMASMSXXMSAMXMMMMXMSSSXXMAAMXMAXAMXMXXMAMAMAMSM
+XAAMAAASAMXSAAXMXSSMAXMMMMMSAMASMAMAAASXMMSMMSXMXMSSSSXSAMMXMXAMMAMAXSMMMMSSMSMSXSMSSXXXSSSSSXSMMXMASAXSAMXXAMXAMAMXMMSSMXSSMSSSMMMMAMAMAMAX
+SSMMMAXSASASMMMXAAAXMXSAXAXMASAMMMXXMMMXMAMXAMXMXXXAAMXMAMASAMXMSAMMMMAAAAAAXXMMXXXMMMAXAXXMAXSXMAXXMXMXXXMSMMMSMMMMAMMMMAXAAAAAXXAXAXASMSMS
+MAMSAMXXAMASAMXMMSSMXAXSSMSMMMXMASAMMAXSSMMMMSAMXSMMMMASMMSMSSSMMASXASMSSMXAMXASMMXXXXXMASMASAMASXSXSXMSAMMAMMAMAASMXMAAMMSMMMSMMSSSSSMSAAMA
+SMAMAMAMMMMMAMSXMAXMMSXMMAMXMAXSAMAMSAXXAAAAMSAMAMAXXSXSAMXAAXAASAMXMSAMAMAMXSMSAXMASXXMSMMAMASXMAAAMAXAAMSAMSASXMXAMSSSSXXXAXXXXAASAAXMMMSM
+AXMMXSASAAAMAMXAMSSMAMAMMAMMMMXMXSMMMSXSMMXAMXMMASXMMSMMMMMMMSSMMMSAMMMMAMXAAMASAMMXMMSXAAXXSMMMMMMMMSSSSMMMMSAXXSMAMXAMMMMSXSAMMMMMXMMMXXXX
+AAXXMSASXSMMASMMMMAMAXAMXASAAXXXASAAAMMSAAXSSMSSMSAXAXAMMSSMXXXXAAMMSSSMSMXMASASAMXXXAAXMSMXXMXSAAXXXAAXMXAMMMSMAXSXMMMMAXMAXMAMXXXXAXASAMXM
+MSXSAMAMXMAMXSAMXSXMMSMMSASMSMMMAMXMXSASMMMAAAAMXSAAXSSMAAAASMMSMMSAAXXAAXMMMMXMAMXMMSSMMAMMAMXSMSMSMMSMMXXXAAAMMMMMSAMMSSMXSXMMMSMSXSASMAMA
+AAAMSMAMXXXASMMAXAXMXAAAMMMXXASAMMSMXMAXASXSMMMSAMMMXAXMMMXMMAASXMMMSSMSMMSXAMMMSMSAXAAXMAMMAMXMAXAMXAXAMSMSMSMXMASASMSAXMMMSXMAXAXAAMAMXXAM
+MMSMXSSXMMMXMAAMAMMMSMSMMXMAMAXXSAAAXXSMMAMMXAXMASMSAMXMSSSXMSMSAXXXAXMAMSMSASXMAAXSMSSMSMSSMSXMAMAMMXXAMAASXMAMSASXMAMXXAAAMASMSMMMMMMMSSSM
+XSAXMAXAAAMAMXMSAXAMXAAXXASMMSMMMMXXMAMAMMXXSASMMMXMAXMXAASAAXMSAMSMMSSXSAASMAASMSMMMMAAAAAAAXXMAXAMMMSSMMXMAMXMMMXMMXMMSSMMSAMXAXAAXAXSAAAX
+XSASMAMSSXSASMMSAXSAMXMXSASAAMASASAASASAMXSXMASMAMMSSMSXMXMXSMAXAMXXAAMMSMMMMXXMXAAAXMMMMMMMMMSSSSMSAXAMXSSMMMSXXAMSMSMXAAMMMAMXMMSMSMSMMSMM
+AMAMMXMMAMXXAAXMXMXASMAMMXSMMSXMAMSXMASXMASAMAMXAMAMAAMMSXMAAMMMSMSMSXSAMXMXMSAMSSMMSSXMXSMXSXXAAAXAMMASAXMASASMMMXSAMXMSSMAMASASAMXAMXXAXXX
+XMAMSXSMMMMMSSMMAMXAMMAMXAXXXXAMAMXXMMMMMXXAMMSMSSSMMXMAMAMXMASXXAAXAMMMMXAASAMMAMAAXAAXAXMASMMMMMMSXSMMMASAMASAMXAMXMAAXAMXXMSAMASXMSMMMSMX
+XSASMASXAAXMAMASASMSMSASMMSSSMMMSXMMXMAXXMSSMMSAMAMXXMMSSXMASMMAMSMMMASASMSXSMXMASMXMMSMSXMXSAXMAMAMMMXMXAXASASXMMMXAMMMSAMSSMMMMMMMAAXAXAMM
+XSMSMAMXSSSMSSXSSSXMASXSAMAAAAMAXAMXAMMSSMAMAAMAMMMMMAAAMAXAXAMAMAMXXXSAMAXAMXAMXMMASXAAXASMSAMSSSSMSAAMMMSMMXSXXMMXSXSAMAMAAXAXMXAMSMSSSXSA
+ASASMXSAMXXXAXXSAMXMAMMXAMMSMSMAMASMSSMAMMAXMMXMMXAXSXMMSXMMSMSSMMSMSXMMMSMMXSASAASASXMMMMSASMAXXAAAMSXSAMAXMSMXSAAAMXMASXMXSMMSSMMXMXAAAAXX
+MMAMAAMMSSMMSSMMXMSMMSMSSMXMXMMMXAMAXAMAMXMSSSMMMMSMMASASMSXAMAMAXMAXAAAAMAMAMAMXXMASXMASXMAMMXSMMMMMAXSXSAXMAAAXMMXSAMMMMMAMAXAMASAMMSSMMAM
+XMAMXMXXMXAAAXASAMXAXMXAMSXAAMASMMMSMSMMMAMAAAAXSAMASXMASAASXXAXSMMSMMXMXXMMAMAMSSMMSASASAMMMXAAXAAXMMMMAMASMMMMSXAASAMXAXMASAMMSAMASMXAAXXM
+MSSXMXXXXXMMXSSMASXSMSMMSXMMSMASAMXXAMAMMAMAMSMMMMSAMSMAMXMMMMSMMAMMAMASXSXSMSSMMAAASMMXMAMXMMXSSSSSSXAMAMAXMSAAXMMXSAMMXXSASMSXMMSMMASXMMSA
+XAAASXSMAAMAXMMSXMAXAAXMAMMAAMXMAMXMXMAMSXMSXXAXAAMMMXMAXAXAAXMASMMMAXMSAAAXMAMASMMMMXXXSMMSMSAMXXAAMSSMXXXXXXMASXXMMAMXXMAXMMMAMAAAMMMXSAMM
+MMSMMAAAXMMSSMAXXMXMSMSMMSMASMMSMMMMAMAMMAAXASXMMMSAMMSSSMSSSSSMMAASXSMMMMSAMSSXMASXSMSMAMAXAAMXMAMXMXMASXSXSXXMAXMMSXMMMMMMMXSXMMSSSXMXMASX
+MXAAMSMMMMXAAMMMMMMAMXAAXAMXXXAAMAASXSASXMMMMMXAXXXASMAAAAAAXAAXMXMXXAAAXXMAXAMMSMMASAASAMSMSMSMASMSSXSAMASASMSMMASAAMAMAAAAMXMASXXAXAMASXMX
+SSSMMXXXAXMMMMAAMAXMASMSMSSSMMMMSSXSASASXMAXAMSSMMMMMMMSMMMMSSSSMSSSMXMMSMSSMASAAAMAMAMMXSXAMMAMMXAAAAMMSXMAMAAXXAMXMSASMSSXSAXAMAMXSMSASASX
+AAMXSXMSSSSSMSMSMASXASAMXAAXXAMXAMXMAMXMAXSXMMAAMXASXSXXXXAXAAAAAAAXMMSMXAAXXMMXSSSMMXMMXMMSMSASXMMMMXMAXAMAMSMSMMSAXMASAAMMSXSMSXAMMXMXXAMS
+MMMXMAAAXAAAMXAXMAMMMMAMMMSMMSSMAXXMXMSSMMMAXMSSMSMSAASMXSXSMMMMMMSXSAAXMMMSMMXXXAAAAMXXMXAAXMAMMAMXXSMMSSMAMMAMAXMMSMMMMMSAXXMAAMSMMASXMSMS
+XXMASMMASMSMMMMXMAMAMXAXAXXAXAAMXMMSSMAAAASAMXAAXAAMMMXSASAMXXXXXXXAMSMMXMASAMXMMSSMMSASAMSSSMAMAMSSSXAAAASASMAMSXMASXSXXAXAMMMAMXMASASAAMAS
+XAXXXAXAMXMAXAMMSSXMASMSMMSSMSAMXAXAASMSMMMMAMSSSXMMAXAMMMAMXSMSSSMXMAXAMMASAMAAMAMXAXXXXAMXMMSSXSAMXXSMSMSXMMAMMASAMMXAMSXSAMAASASAMASMMMAM
+SXSMSXMAXAXSMMXXAXMAXSAMMAAAXXAMXMMSMMXMASXSSMMMMAAMSMMMASAMXAAXMASMXMASMMMMAMXSAMXMSSXMXXMXAAMAXMASMXXAXASAXSAXSAMASMMAMAAMSMMXXXSAMXXAAMXM
+XXAMAMXSMSXMASMMMXAMXMMMMMSSMMMMAMMMXXXXAMXAMXAAMMMMXASMMMAXSMSMMAMSAMXMAAMSSMAXMASAAMAMSSSXMXMXMAMXMXMAMAMAMSAXMMMMAMSMMMXMAMXSSXMASASXMMSA
+SMMSMSAXAXAMAMAAAMAMAMMXAAXXAASXXSAMMSMMMSXMSXMSSMMMSXMAXSSMXMAMMXMXXSXSSMXAAMMMXAASMMAMMAMXMMSSSMSAMMMMMMMXMMXMMXMMAXAXAMASMSAAXXSXMXXAAAXM
+AAXAAMAMMMXMSMMXMASMSXSAMXSMSMSAMXMSAAAXMAXXXASAMXAAXMMSMAXXAXASXMSMMMAXAXMXMMMSMSMMXSMSMAMASMMAAAMMMAAMASXSMMSSXSXSSSMSSSMSAMMSMAMAMMSMMMSX
+MSMMXMMMSSMMXAXXXXXAMAAXXAMMMMMXMSXMXSSMMMSMXXMASMMSXMAAMAMXSMXSAXAAAMSMSMMSAMXAXXAXAXAAXASMMAMMMMMSXSXSASAXAAXMASAMAAXAAAMMXMAMAAXAMXAAASXM
+XMAXXXAAXAAAMSMMMMMAMMMSSMXAMAAAXXAXXMXXAAAASXSXMMAXAMSSMASAMMSSXMSSMSAAXAAXMMMMSMSMSMSMSXSAXAMXXXASAXMMAMASMMSSMMAMSMMMMSMXSXMASMSSSSSSMMAS
+MMMSMSMSSSMMMAMXAASXMXAAAASMSMSSSSMMSMAMMMXSAAMMMMMMAMMAXAMMSMMXXXMAXSMSMMMSSSSMSMAMXAMXXASXMSSMMMXSMMAXXSASAMAAXSXMAAXMSMXMXMMAAAXAAAMAASAM
+SAAAAAAXAMMSAAMXSXSAXMASXMMXAAAMAXMAMMAMAASAMXMAAMXSSXSAMXSXAMXAMSSMAMXMAMAAAMAMXMASMMMSMXMAMAAAXMASXSXMMAASXMSSMXXSSSMMAAAMAXMAMXMMMMSSMMAM
+SMXSSMXMAMAXMXMXXAXAMXAMMSMXMSMAXXMSSXSSMXMAXSMXSSXAAAXMASXXSSMSMAAXMAAXAMMMMSAMASMSASAAMAXAMSSMMSSMMAAAXMMMMXXAMMMMMMMSSSMSASAMXSXXAXAMXXAM
+MSMXAXAMMMMXSSMSMAMSAMXSAAMSAMXMMMMAAAXAMASMMSAAXAMMSMMASXMAXAAXMXMMXMSSXSMSMSXSMSXSMMSASMSXMAMXAMAMSMAMXMAXAXSAMXAAAAAXXAAXASMMAXMSMXMAMSSS
+MMXMASMSMASAAAAAMAMXAXXMXSSSMSAAXMSMXMMAXMASAMMSMAXXAXSXMAMSMMSXMASASAMAXAAAAMXSASASXAMXMMAMMMMMXSMMAXAAMASXSASAMXSASMSSMSMMXMXMAXMASAXMXAMX
+XSAMXMAAMAMMMMMMXXMSSMMSAMXMASXSXXMAXXSXMXXMXMAAMMMSMMSASXMMXXAMMAMAMAXMSMSMSMAMAMAMMASASMASAMXSXMXSSSSXSAAAMXXXSAMXXXXAAXAXSXMMSMMAMMMXMAXX
+AMXSAMXMMXSAXMXSSSMAAAXMASAMMMMMMSXAMMXMMSXMMMSSXSAXXASAMMMAMMXSMASMSSMXAAAXMMXSAMMMMMSAMSXSASAXAMAMAAAAMMSXMXMAXAXMMSSMMMSMSAXAMMMSMSMSXSXX
+MSMMASXSSXMMSMAMAAMSMSASMSXSASAMASMSSXAMASXMAXAAAMXSMXMAMAMASMAMMMMXAAXSMSMSXAAMAMMXMAMXMXXMAMXXXMAXMMMMMMMMMXSSXSMAAAAXAXMASXMASAMXAAASAMXS
+MAAMAMMAMXXAAMAMSMMASXXXASMSASAMXSAAAXAMAXAXSSMMSMXMXMXMSMSASMMXASMMSMMXXAMXMMMXAMXAMMSSMXSMXMSMXSSSXXASXSAMXAMXAMSMMSSMMAMAMAMXMAMMMMXMAMAX
+SMSMSXMAMXMSSSMMXXXMSXSMAMAMASMMAMMMASMMMSSMMXMAAMASAMAAAAMASAMSAMXAXAMMMSMSXAXSXMMSSXAAXAXXAAAAAAXMXMMAASMMMXSMAMAXMAMAXXMXSXMASAMSASXSMMSS
+SAAAXASASAAMAAXSAMSXSASMAMXMAMASXXASXSAAAAAAXSMXXSXSASMSMSMXMAMMSMMMSSMAAMASMMMAASAMXMSMMSSXMMMMMMSMMMAMXMASMSAAAXXMMMSSSMSAMXSXMAMSASAMXAAA
+MSMSSMMASMSMMMMMAMXAMAMMXSXMMSAMASXSASXMMSSMMXAXXMASXMAMXMXAMAMMAMAAMXSSMMAMASAMAMXSXMAAAAMXSSSXAXAAAMASAXXAXSMSMSAMXAAAAAAXMXAASXMMSMMAMMSS
+XXXAAAMAMMXXMXMMAAMXMAMXAMMSMMAXXSAMMMAXAMAXSMMMAMAMSMXMAXMSSSXSASMSSXXXAMMSAMMSMXAMASXMMSMMMAXSASMSMSASMSSMMMXAAMAMSMMSMSMSMSMXMAAXAXMASAAM
+SMMSSMMAMAAXMAMXSSSMSSMMMSAAXSSMMMAMAMXMXSAMXAASXXXMXMASMSMMAAASXSMAMXASXMAMAXXAXMASAMXSXXXAMXMAMSAMXMASXAXMMSMMSMSXXMAXXMAMMMXMAXMMMMSAMMSM
+MAAAAXSSSMXSSXXAMXXAMXSXMAMXXAAAMSMMMSMMMMMSSSMSMMSMASASAAAMMMMMXXAAXMMMSMXXMMSASXXMASASASAXMMAMASXMXMMSMMXSAXMAMMMMAMXSMMMMMXMASAMXXXMAXXAM
+SSMSSMXMAMAAAAMSMMMSMXAXMAXXXSMMXAAAAAAAAMAAAMXMXAAMAMXMMMXSXMXXMMMSSSXAXSMMSMMMMMAMXMASASAMMMXSAMXMMSAXASAMMSMMSASXMMAMXAMMSXSAMAAMASXMASXS
+XAXAMAAMAMMMMMMXAAAAMSMAMMSSMXSSMSSMSXSMSSMMXMAXMSSXSSSSSXASAMSAMXAAMXMAXMMAAAAXXSSMMSAMAMMSXMXMXSASAMMSXMASAMXMSXMAMSASMXSAAMMMXMMMAXASXMAA
+SXMXSMMMSXMMSASXSMXMMAXMXAAMAMASAAAAAXMAMXMXASMSXAAXXAMASMXXAMXXXMMMMAXXMMMSSSMSAAXXXSAMXMASASXSXSXMASAMASMMXMAMMMSSMSASMAMMMMAXSSMMMSMMAXMA
+AAMASXMAMAAAXMXAXAAXXMSSMXMMSMAMMMMSMMSAMAAMMMASMMXXMAMAMXXMAMXSAMASMMSMSXAXAMASAMXMASAMMMMSAMAMXMASAMASXMMAASAMMAMXAMXMMSSSXMMSAAAAAAAXXMXM
+SXMASXMASXMMSSMXMMXSASAMXSAMXMAXSAMXAXSAMAXMAMAMASAMSMMMSAXSAMXMAMASAAMAMMXMXMAMASASAMAMXAMMMMAMXSXMMSAMAAMSXSAXMAMMSMMSXMAMXAXAXSMMSSSSMMAS
+MAMASMMASAMXAXXXXAAXXMAXAMXMSSMMSAXMXMSAMASXSMMSAMAXAAAAMAMXASMSAMSSMMMSMMMAMMSSMMAMAMSMSAMAMXMSMMMAAMMSSSMMAMXMSAMXAAAXXMAMXSXMMMMMAMXAASAM
+MAMAXAMASXMMASMSMMSSXMAMSSMMAAXASMMSMMSAMAMXAAAMAMSMSSMSMMSXAXXXXMAXXXAXAAMSMAAAMMXMAMXAXXSASXXAAAMMSMMAXMASMXSXMAMSAMXSMSSSXMXXAXAXMMSSMMSS
+SMMMSXMXSMXSXAMMAAAXXMAXMAMMSXMMMSAAAMSXMXSMSMMSSMXAXAMXMAMMSMSXSMXMAMXSSMSXMSSMMXMAXAMAMMAAMASXSXSMAAXMAMXMXAAASAMXSXXXAMXMASAMXSSMXXAAXAMX
+AAAXMXSAMXMMSMASXMSMSSMMMAMXXASAMMXXMAMXXSAMXAXAAMMMMSSMMMSAAAMAXXMSSMAMAXAXXXXAXXMSSMMMMMMMSMAAXASXSMMMSMSXMASAMXMAAMSMSMAXMMMSMAXSMMSSMSSS
+MSMXAMXASMMMAMXMMMXMAAASMMSASAMAMASMSMAXMMMMSXMASMAXMAMAAAMXSMMXMXMAXMMSAMMMMMMMAMAAAAAAAXXMAMMMMMMMMASXAAXXMXXASAMXSAXMAXMXSAAMMMMAMAMAMXAX
+MXXXAXSXMAXMXMAAAAMMSMMMAAMXSXMAMXSAAXMSMMAAMAMAMXSSMASXMMSAMXSAMAMAXXMXMMSAAASMSMMSSMMSMSASASXSXMAXMAMXMMMSMAXASXSAMXSXMMMAXMMXAXSMMMSASMMM
+AAAMXMMMSMMMSSMSMXSAXMSMMMMAXXSSSMMMMMAAAXMMSAMSXMMMXXSMAMMMSASMXAMSSSSSMASXMXSAXAMMAMXAMXAMASAMMSMSMMMXSAAAMAMAMASXMASAAAMXSSMSSXXXAMAMXAAM
+MMSXMAXAAXAAXAXXXSMMMMAMXAMXSMMMAXAASMSSSMMMMXXXASAMSXMMMMAAMMMMASXMAXAAMAMMXAMXMMMMAMMXXMMSSMAMAAMXMAAAXMSMXAMAMXXAMASMMMSAAAMAMXSAMXSSSSMS
+AXAASMMSSSMSSSMMMSAAMSASMSMXAMASAMSMXAMMMAAXMMSSMMAMMMSAAMMSSSMSAXASMMXMMSXSAXAAXMASASXSXSASASXMSSMAMMMMXXAMSMMXXMMMMAMAAAMMSMMASMAAMXAAAAAX
+MMMMMXAXAAAAXAAAASMMXMAMAAMMSXAXXAXMMSMSXSMSXAXAASXMAAMMMMMXXAAMASAMXAXSXMAXMASAXSASXSAXAMXSMMXMMXMAXAAXXMAMXMASASASMMSSMSSMXAMASASXSMMMMMMM
+SSMSSMSMSMMMSSXMMXAXAXAMSMSSMMSSMSAMXXAXAAXXMMSSMMXSMSMSSSSMMMMMMMMMMSMSAMMMXXXAXMASMMMMXMAMXXSMXXSMSMSSSMAMMMXSASASXMAMXAAXSAMASMXAAAXMAMAX
+AAAAXAAAAXXXXMXSASXMMMXXMASAXAAXMAMXMMAMSMMXAXMMMSASMXAAAMXAAAAXXAAMXMAMMMXMXXMMMMXMAAXMXMSSMMASXMAXAAXAXMASXMASXMAMMMASMSSMSAMXSXMXMSMMSSMS
+SMMMSXMSMSMMSMMMASMAXSSMSSSMMMMSMAMAXMMMAAXXSXXAAMMSAMMMMMSSMSMSSSMSAMSMSSXMSSMAMMXMXAMXAXMAASAMMSMMMSMAMSMSAMASXMXMASAMXMXMSAMXMXSMMMAMAAAS
+XAMASAAAXAAMAAMSAMXSMXMASAXXAAMAMASMSXXSSSXAXSMMSSXMXMXMMXXXAXMAMAASMSMAMAAXAXXAXXAMXAMSSSMSMMASAAXAAAMXMAASXMASXMAMMXMSMSAXSXMAMAXAAXAMMXMM
+SXMASMMMXASXMSMMAMXMXMMSMMMMSXSAXXAMXAMMAMMAMAXMAXAMMSXMXSSMSMMASMMMXXMAMSMMMSSSMSAMAAMAAMXAASMMXSSMSXXAMMMMAMASASASMMMAASMMMMSAMASMMSMSSXAA
+XXMASXAAXMXMAXMSSMMXAXXMAMAAMAMAMSAMMSMMAMMASMMSSSMMAAAMAXAAAAXAXMASXXSAMMAAXMAAXXAXSXMMSMSSXMAAXXAAAASMXXASXMASAMXAAMMMMMMAAMXAMASAAAAAMXXM
+MXSASMMSSMAMMMMAAAASXSMSMMMMMAMAMSAMAXASMXSASXAAAAMMMXXMMSMSSMMXSXXMSXSMSSSMSMMXMMMMMAASAMXMASMMSSMMMAXAASASASXMXMMMASAXAASMSMSAMXSMSMSMSMSX
+SAMSSMMAAMAMAAMSMMMMAAAAAASMSSMMXSAMXSAMAMMXSMMMMSMSSMSAAXXAAASAMXSXMMSAAAXXXMMSMAAAXSMMAXSAAXAAAXMAMXMSMSASAMAMXSXMAXMMSMMXAASAMXXAXAMASAMM
+MXMAXAMXSXMXSXXXSXAMSMMSSMSAAAXMAXAMXMAMMXSAMMSSMAAAMMXMSSMMSMMASASAMAMMMSMSSMMASMMXXAMXSMAMXXMMSXSASAAMAMXMAMXMASMMMXXAMAXMMMMAASMAMSMAMAMA
+ASMMMAMXXASMXMASXXXXMAAAXXMMMMMMMMSMAXAMXXMMXAAAXMMMSSMMMAMAXAXMMASXMAMAXAAMXAMXXXAXMASAAAMMSMXAMASAMMMXXXMSSMAMASASAAMSSMXSAMSXMSXMAXMXSXXX
+AXAAMSSXSAMAAASMAMSSSMMSSMXAAAMXMAAXSSMMSAASMMSMMXXSAMAAMAMXSAMSMMMASMSMSMSMSMMSXMAMSXMXSMXAAXXMAMMMMSXMXSAAXSAMAXMMMMSAAXASMMMMMMAMAMMMMMSM
+SSMMXAAMMAMSXSAMXMAAAMAAXMSSMMSAMSSMMAAAAMAMXMAMSSMMASMMSSSXMXMAASMMMAAAAAMXSAAXAMXXAMXMXMSSMSSSMXXSASAAAMMMMMMMASXMXMMMSMMXXAMAASAMASMAAAAA
+XAAAMMSMMAXXXMASXSMSMMSSXXAMAMMMMAAAMMMMASMSSMASAAASAMXAAMXAASXSXMAXXSMMMXMASMMSSMSAMXXAXMAMXMAAAAXMASMMMSMMAXAXMAXMSSMXAMXSXMSSXSXSASXSMSSS
+SSMMXAAASXMSASMMAXXXXAXXXMAMMMAMMSSMMSXXMXAAASMMXSMMMSMMMMMMMMMMMSMMXMMMSXMASAAAAAXSXMASMMASXMSMMMSMAMAMAMXSASMSMSAXAAXXXSAMXMAMAXAMASAMXXXM
+XXSXMMSMMAASAMXMXAMMMMSMSMSMMSASMMMMXMAMMMMSMMXMAMXAMXASMSMSSXAAAAAXXSAASAMASMMSMMMMXAMXASAMXMAMAMAMASXMASMMAMAAAMMMSSMSMMASMMAMSAMMXMMMMMXM
+XASXSMMXMMMMMMXXSXMAAMAAAAXAASXSMXAXAMXMXMAMXMAMXMSSMMXSAAAAMSSSSSXSASMMSAMXSXMAMAAXASXSMMASAMAXASMSMSASXSMMMMSMMMXAXAAAASXMASAMXAXXAAAAAXMA
+MSMAMAAASXMXSXSXAASXSSMSMSMMMXMSASMSMSMMAMASASXSAAMMASXMMMMMMAXAXAAMAMSASXMMSAMXSMXSMMAMASXMXSXXMMAAXSMMMMAAAMAMXXSSMMSMMSASMSXSMSMAMSSSXSAS
+SAMXMMSMSASXSASMMMMAMMAAAXMASXAMXMAAAAXSAMMSAMASMSMSAMAAXXSSMMSMMMMMMMMMMAMASASAMXASAMXMAMXMAXXASXSSMXSAASMMMSAMXAAAAAXXAXMMAXAAAMAMXAAXMAMX
+SMSMMXMASAMAMAMXSMMAMMSMSMMASMMMMSSMMMXSASXMXMXMAXAMXSMMMMXAAAAAMAMAAAXAMAMXSAMXSMMSASXMMSXMAXSSMAAAAXXSMSAAAMAMAMSSMMMMAMSMXMMMSMAXMMSMXMAS
+MXMAXAMXMAMXMAMMAMMSXXAAXXXAXAAMAXXMXXXSAMMMAMAMMMSMMMXSAMXSMMSXMAXSMMMXSSSXXMMMXMASAMASAMXMMMSAMSMMSMXMMMMMMSAMXMAMMSMMMXSAMXAXAMMMSAMXXSAX
+MAMXSMXMMXMAMXMAMMAMAMMXMMMMSSMSMMAMAAXXMXASASASAAAAAAAMASAMAAAAMSMXMMSAXAAXXMASAMMMASAMAXSAMXSAMAXAXMASAMXAXSXMASXMASXMSAMXXSMXSASAMASAMMMS
+SMSXAXAMXSSSSSSSXMAMAXXAMAAMMAAAMSAMASAAXSXSASASMSXSMSSSSMXSXMMSMXAMAAMMMXMMXSASXSXSAMXSAMXXMAMMMMMMMMXXAMMAXXASAXAMASAXMMSMMSXSXMASMXMASAMA
+AASXMMXSAAAXAXMXSMMXMMMSXSMSXMMMXXASXMXMMMXMMMAMMXAMAAMMXAMMMSXMAMAMMMSXMSMSAXASAMXMXSAMXMASMSSMAXAMSXMMAMSMSSMMXSAMASXMAXAMAMXMAXMMMAAXSASM
+MXMASAAMMMMMXMXAXXXAXAMMXMMSXXMXXMAMXAASAMXSAMAMAMAMMMSXMSMAAMASXSSMAAAAXAAMMSASMSAXSMXSSMMXMMAMXSMSAAMSMMAMAAAAAXAMAMXAAXSMMSMSAMSASMSMSAMX
+XSSMMMSSXSAMMSMMSSSMXASMASAMAXSASMAMXSMSASXAMSMSXSXMSXXMAMSMXSMMAAXAMXXMMMSMXSASASAMXMAXAXMAMMAMXMMSMMMAAAMMSSMMSSMMASMSAMXMXAMXXXSAMMAXMXXM
+AMAAMXMXASXSAAAXAAAASXMXAMASAXMAMSXSAXASMMXMXAAMAMXMMASMSMMSMAMMMMMSSXMSAMAMXMAMMMSAMXMSMMSMSMAMXAAXXASMXMXXMAMAAAXSAMXMAMXMMMSAMXMMMSSSSSMM
+XSSMMAMMMMAMXMXMMMMMMMAMXSMMMSMAMXMMASAMXSAXMMSMAXSXMAMXMSAAXMMSXXMASAAXMMAMXMAMXAXXAAXAXAAAXMASMMMSSMMAASXSSSMSSXMMSSSSMMMSAMSXMASAAXAAXMAX
+MXMAXAMAMMMMMMMMMXMXAMSMMMAMXAXXMAXMAMAMASMSXAXXMMSAMAXAMMSSSMASAMXXMSMMMSMXAMMMMMSMSMSSSSMSMSAMXAAAXXMSMMAXAAAAMXSAMXMASAASAMSASAMMSSMSMSSM
+AAXSSMSASXSAAASXSAXMAXAAAAAMSXSSSSMSASXMAMMMMMMAMASMMSSMSAMXAMASAXXMMAMMAAXMSMXAAXXXAMXAAASAMXMXSMMSSXAAAMMMSMMMSAMMMAXXMMMSAMXAMASXMXAAAXAX
+SAMXAAAAMASMSXSASASXSSSMMXSMXMXMAMASAXMMMXAMSSSMMAXAAAAMMMMSSMASMMMMMASMMSSXMASXSMSSSSMMMXMXXAMMMXMXXMMSMMXAXAMXMASMMSMXXAASAXMXMASAAMSMSSMM
+MMASMMMMMXMAMAMXMAMAAXAASXMASAMMAMXMSMSASMAMAAAXMMSMMSSMASXSAMXSASAASASXMAMXMXMAAAAMXXAXXAMXSXSAXAAMMAMAAXMXSMMASMMMAMAMSMXMXMSMMAXMMMXXAAAA
+SXXXAMXSMAMXMAXMMAMXMSXMMAMAXMXMASAMXMMAMXXMXSMMAMAMXXXMASXMSMASAMMXAAXXMSSMSASMMMMSSMMMSXSAMASMSMSAASMMSASXSASASASMASAMXMSSSMAAMXXSAMMMSSMM
+MMMMAMAMSMSMSMSASMSMMMMMMAMMMSMSASMMASMAMXSMMXMXMXMSSMSMASXMAMXMMMXSMMMXXXXAXXSXMXXMAASAMXMASAXAMXMXMXAAXAXXMAMXSAMMMXAXMMAAXSAMXMASASAAAAAX
+SASMSMXXAMAAAAAAMAXAAAAXSSSSMAAMASMSASMASAAAAMMAMAXXAMMMASASXSMSMSASAASMMMMSMMMAMXMMSMMAMMSMMMSSMSMSMSMMMMMSMAMAMASAMXSMSMMSMSMSSMMSAMMMSSMM
+MASAAAXSASMSMSMMMXMSMSSXXXMASMSMMMAMAXMASMSMMXSASMSSMMXMASXMASAAAMASXMAASAAAMASAMAXMAMSAMAAAAAXAASAAMAAAASAASAMXSASASAAAAASAASAAXAXMXMXAAMAS
+MMMMMMMSMMXAAXXMMXAXMAXASMSAMMAAXMXMXMMMSMXMAMSXSMXAXSXSAMXXAMMMSMMMMSSSMMSSSXSSSXSXMASMSSSSMSSMMMSMSSSSSSSXSSSXMASAMMSMSSMMSMMMSAMXAXAMMSAM
diff --git a/txt/2024_5.txt b/txt/2024_5.txt
@@ -0,0 +1,1378 @@
+96|54
+79|47
+79|13
+69|79
+69|67
+69|77
+15|78
+15|75
+15|39
+15|82
+39|23
+39|68
+39|59
+39|84
+39|86
+33|87
+33|35
+33|26
+33|19
+33|12
+33|99
+97|46
+97|23
+97|84
+97|15
+97|68
+97|64
+97|43
+28|55
+28|66
+28|39
+28|19
+28|21
+28|26
+28|31
+28|23
+67|46
+67|49
+67|66
+67|99
+67|62
+67|54
+67|84
+67|64
+67|88
+87|49
+87|62
+87|35
+87|21
+87|19
+87|26
+87|97
+87|99
+87|66
+87|31
+77|93
+77|31
+77|13
+77|59
+77|66
+77|47
+77|62
+77|12
+77|49
+77|88
+77|99
+78|97
+78|61
+78|67
+78|77
+78|54
+78|19
+78|33
+78|39
+78|94
+78|75
+78|62
+78|27
+54|66
+54|64
+54|39
+54|21
+54|97
+54|59
+54|24
+54|57
+54|88
+54|49
+54|31
+54|62
+54|74
+94|19
+94|69
+94|28
+94|96
+94|54
+94|99
+94|24
+94|39
+94|27
+94|62
+94|97
+94|23
+94|33
+94|61
+21|18
+21|49
+21|47
+21|27
+21|43
+21|86
+21|59
+21|13
+21|74
+21|52
+21|93
+21|46
+21|57
+21|84
+21|31
+31|68
+31|52
+31|86
+31|59
+31|27
+31|78
+31|64
+31|61
+31|49
+31|69
+31|18
+31|84
+31|57
+31|46
+31|13
+31|53
+75|87
+75|35
+75|28
+75|19
+75|69
+75|52
+75|24
+75|33
+75|79
+75|62
+75|54
+75|14
+75|37
+75|77
+75|97
+75|96
+75|67
+84|13
+84|86
+84|78
+84|68
+84|14
+84|93
+84|18
+84|53
+84|75
+84|15
+84|61
+84|28
+84|64
+84|43
+84|96
+84|94
+84|33
+84|57
+19|62
+19|12
+19|99
+19|67
+19|23
+19|35
+19|84
+19|54
+19|77
+19|59
+19|79
+19|39
+19|21
+19|66
+19|31
+19|55
+19|74
+19|88
+19|47
+13|68
+13|19
+13|14
+13|28
+13|15
+13|52
+13|82
+13|46
+13|18
+13|57
+13|33
+13|75
+13|86
+13|27
+13|64
+13|94
+13|43
+13|26
+13|78
+13|61
+53|87
+53|78
+53|18
+53|75
+53|15
+53|96
+53|46
+53|69
+53|68
+53|26
+53|43
+53|33
+53|61
+53|14
+53|82
+53|86
+53|52
+53|27
+53|64
+53|94
+53|37
+46|52
+46|18
+46|69
+46|33
+46|19
+46|94
+46|82
+46|57
+46|26
+46|28
+46|75
+46|78
+46|86
+46|37
+46|87
+46|14
+46|68
+46|79
+46|43
+46|96
+46|61
+46|35
+23|13
+23|86
+23|74
+23|55
+23|88
+23|53
+23|99
+23|59
+23|24
+23|21
+23|47
+23|49
+23|15
+23|46
+23|31
+23|57
+23|93
+23|66
+23|18
+23|68
+23|84
+23|12
+23|64
+86|94
+86|67
+86|26
+86|87
+86|61
+86|82
+86|18
+86|96
+86|43
+86|54
+86|28
+86|79
+86|15
+86|35
+86|52
+86|14
+86|33
+86|27
+86|69
+86|19
+86|77
+86|75
+86|78
+86|37
+47|31
+47|57
+47|53
+47|15
+47|86
+47|13
+47|96
+47|84
+47|46
+47|43
+47|27
+47|64
+47|18
+47|61
+47|37
+47|68
+47|94
+47|93
+47|78
+47|59
+47|75
+47|14
+47|49
+47|52
+35|84
+35|49
+35|97
+35|47
+35|62
+35|21
+35|23
+35|59
+35|53
+35|31
+35|39
+35|13
+35|99
+35|54
+35|67
+35|12
+35|55
+35|93
+35|24
+35|74
+35|64
+35|66
+35|88
+35|77
+52|96
+52|54
+52|62
+52|79
+52|69
+52|14
+52|39
+52|97
+52|37
+52|33
+52|82
+52|28
+52|99
+52|24
+52|67
+52|66
+52|27
+52|61
+52|23
+52|19
+52|87
+52|35
+52|77
+52|26
+74|55
+74|18
+74|88
+74|78
+74|93
+74|86
+74|49
+74|75
+74|31
+74|53
+74|27
+74|43
+74|15
+74|59
+74|94
+74|46
+74|47
+74|64
+74|13
+74|52
+74|68
+74|14
+74|57
+74|84
+64|86
+64|75
+64|37
+64|14
+64|96
+64|15
+64|94
+64|52
+64|43
+64|33
+64|69
+64|68
+64|26
+64|27
+64|57
+64|79
+64|61
+64|28
+64|82
+64|78
+64|87
+64|46
+64|19
+64|18
+82|19
+82|23
+82|39
+82|66
+82|47
+82|99
+82|97
+82|74
+82|35
+82|12
+82|77
+82|49
+82|54
+82|79
+82|84
+82|59
+82|21
+82|67
+82|55
+82|88
+82|62
+82|93
+82|31
+82|24
+14|67
+14|79
+14|82
+14|33
+14|61
+14|21
+14|37
+14|77
+14|39
+14|97
+14|24
+14|26
+14|96
+14|54
+14|87
+14|66
+14|23
+14|19
+14|99
+14|35
+14|62
+14|12
+14|28
+14|69
+12|21
+12|55
+12|46
+12|84
+12|18
+12|88
+12|31
+12|57
+12|49
+12|53
+12|13
+12|86
+12|47
+12|78
+12|68
+12|94
+12|93
+12|15
+12|52
+12|75
+12|64
+12|74
+12|43
+12|59
+49|15
+49|27
+49|46
+49|18
+49|93
+49|52
+49|64
+49|53
+49|86
+49|68
+49|75
+49|33
+49|14
+49|96
+49|37
+49|84
+49|94
+49|43
+49|59
+49|13
+49|78
+49|69
+49|57
+49|61
+24|84
+24|64
+24|59
+24|12
+24|68
+24|88
+24|86
+24|99
+24|21
+24|46
+24|55
+24|78
+24|31
+24|93
+24|13
+24|43
+24|53
+24|49
+24|66
+24|57
+24|15
+24|74
+24|47
+24|18
+57|28
+57|52
+57|77
+57|82
+57|27
+57|35
+57|15
+57|18
+57|67
+57|78
+57|43
+57|33
+57|96
+57|37
+57|19
+57|87
+57|75
+57|79
+57|26
+57|69
+57|94
+57|14
+57|61
+57|86
+61|33
+61|39
+61|23
+61|62
+61|28
+61|24
+61|19
+61|99
+61|66
+61|67
+61|54
+61|74
+61|96
+61|82
+61|21
+61|69
+61|37
+61|12
+61|97
+61|26
+61|77
+61|87
+61|35
+61|79
+99|43
+99|21
+99|75
+99|84
+99|31
+99|15
+99|78
+99|55
+99|47
+99|88
+99|46
+99|66
+99|57
+99|93
+99|12
+99|86
+99|68
+99|18
+99|74
+99|49
+99|13
+99|53
+99|64
+99|59
+43|35
+43|79
+43|61
+43|19
+43|15
+43|37
+43|28
+43|82
+43|94
+43|14
+43|33
+43|69
+43|52
+43|77
+43|54
+43|39
+43|27
+43|18
+43|67
+43|87
+43|75
+43|78
+43|96
+43|26
+59|33
+59|13
+59|78
+59|43
+59|69
+59|52
+59|14
+59|15
+59|94
+59|27
+59|28
+59|57
+59|68
+59|64
+59|75
+59|46
+59|96
+59|37
+59|26
+59|86
+59|87
+59|18
+59|53
+59|61
+37|39
+37|33
+37|99
+37|62
+37|67
+37|26
+37|12
+37|21
+37|24
+37|55
+37|74
+37|97
+37|96
+37|19
+37|35
+37|69
+37|87
+37|77
+37|79
+37|23
+37|54
+37|66
+37|28
+37|82
+93|59
+93|13
+93|57
+93|27
+93|87
+93|61
+93|28
+93|68
+93|53
+93|86
+93|14
+93|46
+93|33
+93|96
+93|78
+93|15
+93|52
+93|69
+93|37
+93|75
+93|64
+93|18
+93|94
+93|43
+55|88
+55|86
+55|84
+55|59
+55|57
+55|43
+55|68
+55|61
+55|93
+55|46
+55|64
+55|78
+55|53
+55|18
+55|15
+55|52
+55|27
+55|49
+55|94
+55|31
+55|13
+55|75
+55|47
+55|14
+62|55
+62|74
+62|43
+62|66
+62|31
+62|57
+62|59
+62|12
+62|49
+62|21
+62|47
+62|13
+62|99
+62|88
+62|23
+62|46
+62|64
+62|53
+62|97
+62|24
+62|84
+62|68
+62|93
+62|86
+66|43
+66|68
+66|93
+66|46
+66|64
+66|21
+66|59
+66|57
+66|49
+66|53
+66|13
+66|94
+66|55
+66|86
+66|74
+66|47
+66|84
+66|75
+66|15
+66|18
+66|31
+66|78
+66|88
+66|12
+68|35
+68|78
+68|86
+68|18
+68|37
+68|77
+68|19
+68|52
+68|33
+68|26
+68|27
+68|75
+68|14
+68|28
+68|79
+68|61
+68|94
+68|82
+68|69
+68|43
+68|15
+68|96
+68|87
+68|57
+27|33
+27|12
+27|67
+27|82
+27|66
+27|69
+27|26
+27|39
+27|37
+27|61
+27|77
+27|23
+27|54
+27|79
+27|62
+27|35
+27|28
+27|87
+27|99
+27|96
+27|97
+27|24
+27|14
+27|19
+26|19
+26|93
+26|39
+26|21
+26|23
+26|74
+26|79
+26|12
+26|24
+26|31
+26|84
+26|67
+26|35
+26|99
+26|88
+26|47
+26|82
+26|55
+26|66
+26|49
+26|97
+26|77
+26|62
+26|54
+88|53
+88|18
+88|64
+88|27
+88|14
+88|13
+88|15
+88|43
+88|86
+88|68
+88|52
+88|59
+88|75
+88|49
+88|57
+88|47
+88|61
+88|93
+88|37
+88|94
+88|46
+88|78
+88|84
+88|31
+18|39
+18|27
+18|26
+18|35
+18|62
+18|37
+18|28
+18|94
+18|77
+18|69
+18|54
+18|52
+18|79
+18|14
+18|67
+18|75
+18|78
+18|19
+18|96
+18|61
+18|82
+18|97
+18|33
+18|87
+96|99
+96|35
+96|67
+96|88
+96|55
+96|12
+96|39
+96|74
+96|33
+96|97
+96|26
+96|69
+96|28
+96|87
+96|82
+96|62
+96|66
+96|77
+96|24
+96|23
+96|19
+96|79
+96|21
+79|74
+79|66
+79|54
+79|39
+79|21
+79|93
+79|84
+79|12
+79|53
+79|55
+79|99
+79|24
+79|49
+79|59
+79|31
+79|62
+79|77
+79|67
+79|23
+79|35
+79|88
+79|97
+69|23
+69|33
+69|47
+69|66
+69|12
+69|21
+69|24
+69|39
+69|88
+69|54
+69|62
+69|55
+69|99
+69|82
+69|35
+69|97
+69|19
+69|87
+69|26
+69|28
+69|74
+15|54
+15|26
+15|79
+15|14
+15|87
+15|18
+15|69
+15|52
+15|67
+15|77
+15|61
+15|28
+15|33
+15|62
+15|37
+15|94
+15|27
+15|19
+15|35
+15|96
+39|53
+39|64
+39|99
+39|47
+39|46
+39|93
+39|66
+39|88
+39|74
+39|57
+39|21
+39|97
+39|12
+39|62
+39|13
+39|31
+39|24
+39|49
+39|55
+33|88
+33|21
+33|24
+33|79
+33|77
+33|55
+33|67
+33|74
+33|23
+33|54
+33|66
+33|82
+33|39
+33|62
+33|31
+33|97
+33|47
+33|28
+97|57
+97|93
+97|88
+97|47
+97|86
+97|12
+97|24
+97|13
+97|55
+97|21
+97|59
+97|53
+97|99
+97|49
+97|74
+97|66
+97|31
+28|24
+28|77
+28|35
+28|54
+28|79
+28|12
+28|99
+28|88
+28|47
+28|82
+28|67
+28|74
+28|87
+28|49
+28|97
+28|62
+67|55
+67|13
+67|24
+67|59
+67|47
+67|23
+67|68
+67|97
+67|93
+67|31
+67|53
+67|21
+67|39
+67|12
+67|74
+87|54
+87|84
+87|24
+87|77
+87|12
+87|88
+87|74
+87|39
+87|82
+87|67
+87|23
+87|47
+87|79
+87|55
+77|55
+77|23
+77|67
+77|64
+77|84
+77|74
+77|39
+77|21
+77|46
+77|97
+77|53
+77|24
+77|54
+78|37
+78|69
+78|28
+78|52
+78|96
+78|35
+78|82
+78|14
+78|79
+78|23
+78|26
+78|87
+54|84
+54|99
+54|46
+54|12
+54|93
+54|13
+54|23
+54|47
+54|68
+54|53
+54|55
+94|52
+94|82
+94|14
+94|26
+94|87
+94|37
+94|79
+94|67
+94|35
+94|77
+21|55
+21|94
+21|53
+21|75
+21|78
+21|64
+21|88
+21|15
+21|68
+31|15
+31|43
+31|96
+31|37
+31|93
+31|14
+31|75
+31|94
+75|82
+75|26
+75|39
+75|61
+75|23
+75|27
+75|94
+84|37
+84|59
+84|46
+84|52
+84|69
+84|27
+19|97
+19|53
+19|93
+19|24
+19|49
+13|96
+13|87
+13|69
+13|37
+53|13
+53|28
+53|57
+46|15
+46|27
+23|43
+
+78,18,57,52,59,14,87,53,15,28,94
+55,88,31,49,93,59,53,13,46,57,86,43,15,18,78,94,52,27,14
+33,19,35,67,62,21,47
+49,93,59,53,13,64,46,57,15,94,27,96,69
+47,31,57,86,78,14,37
+21,99,28,39,66,31,82,23,47
+68,86,43,15,18,78,75,94,27,14,61,37,69,28,26,82,19
+15,53,87,37,61,96,57,27,26,68,43,94,69,18,13,86,64
+55,88,31,93,75,52,27
+75,94,52,27,33,28,82,67,39,62,23
+53,57,86,15,18,75,27,37,96,28,26
+93,24,21,82,62,66,99
+55,31,49,13,46,68,86,15,75,94,14
+24,99,12,21,47,49,93,13,64,46,68,57,43,15,18
+14,37,69,33,87,26,77,39,97,24,99
+15,86,68,87,13
+94,55,18,12,46,84,68,31,49
+64,46,57,43,15,18,78,75,94,52,27,14,61,96,33,28,87,26,19
+54,78,39,94,97,14,52,62,79
+99,66,12,21,74,55,47,84,93,59,13,68,57,43,15,18,78
+37,33,87,26,19,79,35,77,67,24,99,66,12,21,74
+14,96,69,28,87,26,82,79,77,39,62,97,23,99,12
+84,93,13,68,86,18,78,37,33
+49,84,93,53,13,64,68,57,43,15,18,78,75,94,27,14,61,96,69
+49,84,53,64,46,68,57,86,43,15,18,78,75,94,52,27,37,96,69
+12,74,53,18,75
+46,14,37,15,75,61,59,52,43,47,13,27,78,94,49,57,84
+46,68,57,86,43,15,18,78,75,94,27,14,61,96,69,28,87,26,82,19,79
+61,37,96,69,33,28,87,26,82,19,79,35,77,67,54,39,62,97,23,24,99,12,21
+26,82,79,35,12,47,84
+55,93,86,59,84
+93,28,52,43,86,78,61,57,13,68,75,18,15,64,53
+74,55,47,49,59,13,64,68,57,86,18,94,52
+59,21,86,99,18,57,49,74,12,66,84,31,24,68,46
+82,28,13,78,52,14,33,86,46
+68,57,86,94,27,37,96,87,35
+57,46,84,94,75,15,47,64,12,53,59
+66,33,74,35,88,69,12,19,79,28,87,54,99
+77,82,35,99,24,31,62,93,21,39,67,79,54,19,66,23,97
+12,67,23,39,47,62,66,99,88,21,24,74,64,59,53
+39,19,62,87,77,35,14,26,28,96,99,23,61,24,66,27,97,67,69,33,54,79,82
+13,64,46,43,15,18,94,27,14,61,37,96,69,33,28,87,82
+19,62,47,49,84
+47,23,53,46,31,93,54,64,67
+18,93,21,57,15,84,68,64,86,46,88,13,24,12,53
+33,87,82,79,67,39,24,66,47
+94,75,82,33,37,27,61,86,69,43,13,15,68
+79,77,28,57,26,87,69,19,96,82,18,52,61
+94,52,27,14,61,37,96,69,33,28,87,26,82,19,79,35,77,54,39,97,23
+66,31,24,84,47,68,74
+88,31,49,84,93,59,53,64,86,43,15,18,78,75,94,52,27,14,61
+78,86,93,94,46,61,75,47,64,88,52,27,59,18,31,49,57,15,14,43,84,53,13
+35,99,24,77,52,14,23,79,69,67,33,82,61,26,28
+99,97,31,43,23,55,84
+88,23,43,99,24,84,31,12,68,46,93,55,15,21,47,66,57,64,59,53,74,49,13
+19,79,35,77,67,54,62,97,23,24,99,66,12,21,74,55,88,47,31,93,59
+31,93,59,46,68,43,18,78,94,14,61,37,96
+19,54,62,23,99,12,21,55,49,93,59
+37,26,75,78,86,64,18,94,82,33,68,87,52,43,57
+14,33,87,77,67,54,62,24,12
+79,55,97,54,21,74,28,35,96,26,62,67,82,66,87
+78,75,94,52,27,14,37,96,69,33,87,82,19,79,35,77,67,54,39
+62,97,66,74,31,84,93,59,86
+86,75,94,61,28,35,67
+53,64,78,94,96,28,26
+59,53,64,86,18,27,37,96,87
+77,67,54,62,97,23,99,12,21,74,88,47,84,93,59,53,64
+13,64,46,57,86,43,15,78,75,94,52,27,14,61,37,96,69,33,87
+74,55,88,47,93,59,53,64,46,68,57,86,43,15,78,94,52
+99,66,12,21,55,88,47,31,49,84,93,59,53,13,64,46,68,57,86,15,78
+68,57,94,52,27,96,69,33,28
+62,97,23,74,47,57,86
+23,24,99,66,12,21,74,55,47,31,49,84,59,53,13,64,57,86,15
+86,43,15,18,75,37,96,33,26,19,79,35,67
+12,74,88,47,49,84,53,46,86,18,94
+67,54,62,97,23,12,21,88,31,84,93
+53,43,78,18,84,75,57,52,94,21,47,68,93
+87,78,96,86,35,82,94
+97,74,54,28,77,88,19,67,24,62,69
+47,43,66,97,21,99,53,46,74
+31,74,49,39,99,88,77,79,54
+23,24,99,66,12,21,74,88,47,31,49,93,53,64,57,86,43
+77,62,21,49,93,13,64
+18,99,86,15,59,78,47,21,64
+86,75,94,27,37,96,33,28,26
+77,67,39,62,97,23,24,99,66,12,21,74,55,88,47,31,49,84,93,59,53
+54,62,99,66,12,21,74,47,49,84,93,13,68
+31,78,53,18,15
+94,52,61,37,96,69,28,19,77,67,54,62,24
+37,96,69,33,28,87,26,82,19,79,35,77,54,39,62,97,23,24,99,66,12,21,74
+84,59,53,13,64,46,68,86,15,18,78,75,94,27,14,61,37,96,33
+33,28,87,26,19,79,35,67,54,39,99,66,47
+55,13,64,57,43,18,27
+43,78,75,94,14,61,37,69,33,26,35,67,54
+57,86,43,15,18,78,75,52,27,14,61,37,96,69,33,28,87,26,82,19,79,35,77
+43,15,18,78,75,94,52,27,14,61,37,96,69,33,28,87,26,79,35,77,54
+67,77,54,84,21,62,49,66,35,31,88,79,26,74,97,82,24
+79,28,37,74,54,35,21,82,87,12,19,67,23
+69,33,26,19,79,35,67,97,23,21,74,55,88
+87,96,61,67,19,12,28,35,26,24,97,37,82,99,66,69,62,23,21,33,54
+15,18,78,75,94,52,27,14,61,37,96,69,33,26,82,19,35,77,67,54,39
+26,79,77,67,23,47,31,49,84
+19,66,62,79,35,69,28,33,67,24,37,23,14,27,77,61,99,96,54,82,87
+26,82,61,77,87,37,69,54,79,67,27,18,75,14,43,52,94
+87,18,19,33,78,94,69,35,75,27,14,79,43,37,54
+59,13,64,18,78,75,94,52,27,14,61,37,96,69,87
+86,18,78,94,14,61,37,77,67
+97,12,61,33,26,77,28,24,66,37,39,21,69,54,35
+61,33,62,96,52,94,82,18,79
+67,23,21,74,55
+47,23,26,88,82,28,87,66,67,99,55,21,19,54,79,39,31,24,97,12,74,62,35
+12,31,84,53,57,86,94
+18,52,28,94,93,86,53,68,13,64,27
+24,99,66,12,21,55,88,47,31,49,84,93,59,53,13,64,46,68,57,86,43,15,18
+88,47,31,49,84,93,59,13,68,57,86,43,18,78,75,52,27,14,61
+79,77,67,54,62,23,99,66,74,55,88,31,84,59,53
+61,43,33,18,52,28,13,15,64,78,57,96,27,94,87,59,37,69,53,46,86,14,68
+31,49,84,59,53,13,64,46,68,57,86,43,15,18,78,75,94,52,27,14,61,37,96
+68,57,78,94,96,26,19,79,35
+96,33,28,87,26,19,79,35,77,54,39,62,97,23,24,99,66,12,21,74,55
+55,64,15,75,59,66,78,74,68,46,47,88,18,12,84
+59,13,15,18,78,94,69,28,87
+86,46,66,12,99,13,47,68,15,93,88,43,59,24,21
+12,47,93,43,21,53,88,55,59,31,13,74,49,94,15,18,46
+97,37,52,67,39,99,69,14,87
+62,46,39,64,12,99,59,13,66,23,54,88,74,84,24,21,47,97,53,31,67
+77,67,54,62,24,12,21,55,49,84,93,13,64
+69,28,87,19,35,77,67,39,62,97,23,24,99,66,74,55,88
+35,77,67,54,39,62,97,23,24,99,12,74,55,88,47,49,84,93,59,53,13
+37,96,69,26,54,62,97,23,24,99,74
+14,93,15,68,13,46,57,27,59,52,64,75,84,43,86,18,47,78,37,49,94,31,61
+93,59,53,13,64,46,68,57,86,43,78,75,94,27,14,61,37,96,69,33,28
+67,84,54,19,99,49,62,77,93,66,47,97,74,79,12,35,23,59,21,31,39
+23,24,74,88,59,64,86
+74,55,88,47,31,49,84,93,59,13,64,46,68,57,86,43,15,18,78,75,94,52,27
+69,26,75,94,86
+93,55,78,47,15,74,52,21,31,64,18
+23,24,99,66,12,21,74,55,88,47,49,84,59,53,13,64,46,68,57,86,15
+97,67,55,96,74,87,82
+35,67,54,39,62,23,24,99,66,12,88,47,49,93,53
+39,97,23,24,66,12,74,55,88,47,31,49,84,93,59,53,13,64,46,68,57
+74,55,88,31,49,93,59,13,64,46,68,57,86,43,15,18,78,75,27
+24,66,12,74,55,47,31,84,53,64,46,68,86,15,18
+15,14,93,27,75,43,53,28,13,69,18,33,57
+68,15,78,52,96,69,33,28,35
+64,86,18,94,52,27,28,26,19
+18,78,75,94,52,27,14,61,37,96,69,33,28,87,82,19,79,35,67,54,62
+77,24,88,47,31,59,64
+47,93,59,53,13,46,57,86,43,15,78,52,27,61,37
+26,82,19,79,62,23,24,66,21,74,88,47,31,49,84
+52,68,27,18,78,94,28,43,87,75,86
+55,47,31,53,78,75,14
+46,57,86,43,15,94,52,27,14,61,37,28,87,19,79
+96,69,33,28,87,26,82,19,79,35,77,67,54,39,62,97,23,24,99,66,21,74,55
+28,79,35,24,66
+53,86,18,33,14,78,96,37,46,69,27,57,64,52,43,13,28,61,59,93,68,15,94
+43,15,18,78,75,94,52,14,61,37,96,69,33,28,26,19,35,77,54
+62,33,87,37,69,67,26,74,12,39,28,35,23,97,19,79,24
+79,35,62,23,21,88,93
+87,82,19,35,54,62,97,24,66,12,88,31,49
+53,64,46,68,57,86,15,18,75,61,37,96,28,87,26
+43,15,18,78,94,27,14,96,28,87,82,19,79
+66,12,21,74,55,88,31,49,84,93,59,53,13,64,46,68,57,86,43,15,18,78,75
+87,62,88,35,47,24,28,26,66,33,23,99,67,39,97,79,19,74,77
+31,52,49,78,59,57,21,84,86,18,15
+15,18,78,75,94,52,27,14,61,37,96,69,33,28,87,82,19,79,35,77,67,54,39
+64,93,13,84,49,43,86,47,74,12,68,59,23,21,15,88,57,66,24,99,55
+77,67,54,97,99,12,21,55,88,49,84,59,53,13,64
+35,67,54,97,23,66,12,21,74,55,88,47,31,49,84,93,59,53,13
+43,33,37,77,54,96,18,94,75,52,14
+26,79,67,39,97,23,66,12,21,74,55,88,47,49,84
+62,93,64,86,46,21,47
+67,54,39,62,97,23,24,99,66,74,88,47,49,93,59,53,13,64,46
+31,93,68,75,94,14,96
+94,14,61,96,33,28,87,82,19,79,35,77,67,39,97,23,24
+99,66,12,21,74,55,88,47,31,49,84,93,59,13,64,46,57,86,43,18,78
+37,96,33,82,39
+79,35,77,97,99,66,47,31,53
+49,84,93,53,13,64,46,68,57,86,43,18,78,94,52,27,61,37,69
+18,78,94,14,37,96,33,26,77,54,62
+74,55,88,49,59,13,64,46,86,43,18,75,94,52,27
+93,59,53,46,68,18,78,14,96,33,28
+75,94,61,69,33,28,87,77,67,54,23
+97,47,24,31,68,12,54
+13,46,68,86,43,15,18,75,94,52,27,37,33,28,87,26,82
+35,87,26,33,96,18,78,15,61,54,69,39,67,94,75,77,82
+78,94,52,14,28,82,79,77,54,39,97
+77,62,49,59,53
+87,82,77,67,54,62,66,12,21,74,55,47,49
+68,57,43,78,75,94,52,27,37,33,28,87,26,82,19,79,35
+12,31,84,47,24,66,13,93,67,97,21,35,55
+86,43,15,75,52,37,96,33,28,87,26,82,79,77,67
+14,61,37,96,69,33,87,26,82,67,54,39,62,23,99,66,12
+47,31,49,84,93,59,53,13,64,46,68,57,86,43,15,18,78,75,94,27,14,61,37
+62,24,99,66,12,21,74,55,88,47,31,49,84,93,59,53,13,64,68,57,86
+39,79,69,77,75,82,78,15,18,37,61
+39,21,28,54,77,82,88,74,87
+69,33,28,87,26,82,19,79,35,67,54,39,62,97,23,24,99,66,12,21,74,55,88
+86,43,15,18,78,75,94,52,14,61,96,69,33,28,87,26,82,19,35
+66,12,47,49,84,59,53,13,64,15,75
+46,68,57,86,43,15,18,78,75,94,52,27,14,61,37,96,69,33,28,87,26,82,79
diff --git a/txt/2024_6.txt b/txt/2024_6.txt
@@ -0,0 +1,130 @@
+.#..#......................#........#........................................#.............#......#...............#...............
+.......#...........#........................#..............#.....#......#..##............#.....#.....................##...........
+.#.....#........#.##..#.............#...........#................#............#.#.........#.....................#......#..........
+...........#...#.#.................................#.....................#............#.....#.#................#..#...............
+..................................................................................#...............................................
+..................#....................#.................#.........#..#.................#...........#...................#.........
+.......#......#................#.......#............................#.................#.........................#...#........#....
+................................#..............................................................#.........#.........#..............
+.......................................................#............#......#........#.#...................#............#..........
+.....#......#..............................................#..............................................#.......................
+......#..........................................................................................#................#...............
+............................#..................#............#..#.#..............#..........#......................................
+......#..........................#...................#..........#....#.........................#.......................#....#..#..
+..................................#..........#....................................................................#........#......
+..#.................................#..................................................#......................#...................
+.....#............#..................#......#...................................#.#........#.#......#........#....................
+........#......................#.....#...#.##................................#......#.............................................
+...........#.........#...............................................................................#............................
+..................................#...##...............................#.............#.........................................##.
+..........................#.#..#......................................#........#..............................#...................
+......#...........###..#....#........................................................................................#............
+..............#.....................................................................#......##.............#.......................
+.................................#...................#.........#..............................................#...........#.......
+....................#..#...................................................#................................#........#............
+........................................#.#.#..................#....................#.....#.................#.....................
+.........................#....#.....#.................##...............................................#.......#...#..............
+..#.........................#....................#.........................#..............................#...................#...
+..................##....#..#..#.#.................................................................#...............................
+..............#........................................................#.............................#......#.....................
+.................#...........#........................#......#..........##....................#.................................#.
+..........................#.............................................#..#.................................#.........#...#......
+..#..................##.....................................................#.....................#.......#.....#.................
+....#.........................................#..................#.#.........................#.......................#............
+...#.....#.#..............................................................#................#......................#...#........#..
+.............................#..#......#.....................................................##...................................
+...........#......................#....#.........#........................#......................................................#
+............#.............................................#.................................#....#................................
+..............................................................#.............#................#.........#.........................#
+..........................................#....#........#......................#.....#.............#..............................
+..#..#.............#...............................................#.....................................................#........
+................................................................................#.............#...................................
+...............................................#.......................#................#............#....................#.#.....
+.......................#.............................#.#..................#...#....#.................................#...#.....#..
+.......................#...........................#.........................................#.........#.........................#
+...#.........#.....#..........................................#...................................................................
+..........#..#...#...#........................#..........#..........................................#......#.........#............
+...............#............................#.#...................##.....................................................#........
+.........................................................#....................#........................#.........#....##....#...#.
+......................................#.#................................................#........................#...............
+..........#.............................................................#..#..#..............................#...#...#.#..........
+.........#.....................................................................................#...........#..#......#..........#.
+............................#....................#..............#...#.............................................................
+...........................................................#........#......................#.................................#....
+.........#..................#.........#.......#...............................#................#.............#...........#........
+............................#.........#...........................................................................................
+................................#...........#.......................................#..........#.#.....#..........................
+..........................................#.................................................................................#.....
+..............#...............................................#...................................................................
+...#....#.....................#..........#..#......................#..............................................................
+.......................#..........#.................................................#......#.............#........#....#..........
+.........................................................................#.#......................................#...............
+..........................................#.......................#...............................................#.........#...#.
+............................#.......................................................#...#.........#..#...##........#..............
+...........................................................................#..............#..........#.............#..............
+#............#..#...#..#........#....................#...........#..#.........................................#..........#........
+...........................................................................#......#..^.........#.........#........................
+......#............................#.............................................................................................#
+......................#.....#.......................................................#........................#..........#.........
+................#....#.......#.............................#..............#....................#....#....................#........
+......#...................................#..................................................................#....................
+.....#..............#.#...........................................................#.................#.........#......#........#...
+..#..#..#..#........#...........#...........#....##...........#.....................#.............................................
+......................##..........................................................................................................
+...........#............#.........................................................#.....#.....#....................#..............
+#.............#..........#...............#..#.......................................#..............................#..............
+#.......................................#........#....#.......................................................#..#.............#..
+.......................#...#.....#..#...........................#...........#.........................#...#...#................#..
+#...............................................................#........................................#.....................#..
+..#.....................#............................##..........#..................##...#.....................................#..
+.......#...................##..........................................#........#.................................................
+.........................................................#............................................#...............##..........
+.......................#......#..............................................................................................#....
+...........#.......................................#.................................#..........#.............#..................#
+....#.............#......#............................#........................#...................#......#.....#..........#......
+.................................................................#................................#...............................
+..........................................................#.......................#...#...........................................
+.#............#...........................................#............................#..............................#...#.#.....
+..#.................................................#.............................................#.....................#.........
+.....#...............#...#.......................#.......................#......................................#...........#.....
+...........#...#................................#.............................#........#.........................................#
+..............................#.....................#......................#...#................................#.................
+.........#.....................................................#...#......................................#................#......
+.....#.....................#.................................#...................................................#....#......#....
+................#.........#.........................#...........#...#..............................................#..............
+.................................#....................................................................#..................#......#.
+#..............#......................................................................#.....#.....................................
+.............#......#..............##.#............#.#.....................#..........#.......#..........................#........
+.......#............#.................#...........................................................#.............................#.
+...........................#.......................#..................#....#....................................#.................
+....#.....##...........................................#...........#.............#........................#.....#.................
+............................#..............................................##..........#..................#.......#...............
+#.............................#.............#...............................#..........#...#.....................................#
+.............#.......#.....................................#...###......##...............#..#..............#.........#............
+.......#......##.....#..................#....................................#............#................#...................#..
+..............#......................#............#........#.....................................................#.........#....#.
+.............#.......#...............................................##......#...........#...........#............................
+#.#....#..............................................................#.........................................#...............#.
+...#....#........................#.#.......#.....................#.............................#.#......................#.#.......
+.##........................................................#.#...................#.....#.................................#........
+............................#.#..................................#....#...........................................................
+..................................................#......#...............#...............................#..#..#.......#..........
+..........#......................#..........#.........................#...............#..##.....................#.................
+...#.......#.........................................................#............#.........#...#................................#
+....................#...................................#..........#.....#...#..#........#............#................#..........
+...............................#........#.....................................#.....................................#.........#...
+....#....................#...................................#.#........................#.........................................
+.........#............................#.....................#.............#...........##.........#................................
+.............................................##........................................#......#................................#..
+...#...............................#.#...#...........#.............................#.............................................#
+.............................#...........#................#..................................................#............#.......
+................#....................................................................................#..#.#.......................
+...#.............#.#..#.......................#.................#...............#..#....#..............#............#......#......
+...........#......#............................#.....#..........#.#.................#..........#...........#...............#...#..
+....#..................#...........................#.........#............#........#..........#..............................#....
+..........#.......#...................#......#.......#.......#....................#.....................................#.........
+...#....................................................#......#...#...................#.....................#....................
+....................#..#.....#......#...................#............#.......................................#...............#....
+.........................#.......#.....#..#.......#...........#......##..............................#.........#..................
+.#...........#...#.........#....#...#.......#....#........................#...................#...#..................#............
+.........##......#..............................#....................#..#...#..................#............................#.....
diff --git a/txt/2024_7.txt b/txt/2024_7.txt
@@ -0,0 +1,850 @@
+590877201219: 9 985 5 9 7 8 76 8 174
+341481: 7 3 31 915 25 394 9 75
+4060: 4 35 47 1 3 5 4 3 8 1 895
+10555865325: 7 7 2 2 78 6 546 9 81 5
+589800341: 996 79 4 5 11 2 137
+499: 2 9 9 5 4
+14644280: 35 996 84 616 5
+58781: 2 5 4 337 6 7 3 1 4 7 3 6
+78542: 8 777 44
+75387319: 7 76 6 7 4 2 9 7 6 9 8 318
+156833006145: 2 87 6 1 6 23 8 898 1 47
+23407953580: 4 9 2 476 260 683
+16536082970: 50 836 40 3 989
+263150646: 30 22 2 72 87 5 1
+8008759260192: 3 35 9 3 46 10 7 83 32
+2988763: 82 185 8 149 3 65
+292548726: 2 4 7 4 4 2 9 9 7 5 38 27
+116759788099: 2 955 944 395 99
+3716625: 365 1 1 65 62 5 1
+1336614665: 5 2 11 72 102 943 9 7
+351364: 5 88 4 5 932
+306429: 54 242 8 8 42 3
+496581763: 926 71 9 944 8
+1004: 28 35 24
+729266593: 717 5 117 664 71 121
+57422: 543 15 16 18 7
+27069: 471 5 36 60 256 2
+140711341: 3 5 2 6 641 6 7 560 7 2 2
+47640974: 753 1 7 632 81 6
+22341061: 3 6 62 49 1 62 3 96 59
+111725316757: 8 50 32 88 92 3 694 85
+683490481804: 2 729 10 2 9 3 5 97 931
+694400: 5 8 42 8 3 3 222 6 8 7 16
+684786: 2 3 661 750 33
+26925082664: 597 451 40 342 664
+444150: 84 8 15 92 26 45
+675949120: 65 6 28 600 5 3 8 55 7 7
+151616887: 252 631 2 635 1 6 4 61
+4813038385: 8 3 486 6 12 2 9 381 1
+90386: 11 504 4 384 89
+4324782: 3 99 1 933 3 14 5 5 34 3
+1610070872006: 88 8 56 906 3 73 25 8 6
+61335: 9 99 7 1 4 68
+69422101008: 2 119 4 439 8 819 1 6 5
+1755533171: 637 448 6 3 459
+9464832: 574 58 39 8 48
+561077: 401 2 3 942 312 338
+498378: 41 8 52 31 75
+14072856: 82 3 9 40 65 6 76 4 4 4 6
+23920344397: 3 2 19 11 17 74 73 468
+4236348: 674 1 9 752 3 6 982
+34943027544: 8 30 1 421 27 544
+956229692: 2 665 6 346 204 46 89
+1291680: 4 15 598 9 4
+17406915: 29 6 1 2 4 6 484 4 9 1 9 6
+12804488: 34 3 3 45 1 76 8 4 5 3 8
+738024908: 7 8 5 1 5 8 15 828 5 6 71
+33610025552: 231 7 9 5 3 7 3 9 82 6 4 9
+184299: 2 9 8 94 975 2 7 1 6 4 3 1
+61568: 19 697 77 743 3 5 2 4 8
+8323590: 307 8 4 18 58 1 9 43 3 8
+31643: 4 520 7
+735: 5 147 1
+7734: 23 315 9 477 1
+25965018: 404 46 577 1 8
+381726414323: 1 377 9 7 55 5 3 8 9 7 2 5
+7198253075: 232 201 709 3 31
+67016589: 9 8 9 8 4 9 3 3 1 82 584 5
+93649: 153 6 9 91 855
+2121312276: 3 3 2 7 8 16 9 8 7 1 227
+1004: 38 62 799 97 8
+8288281798: 164 7 6 483 17 96
+75116813: 2 5 511 68 11
+112283: 27 8 8 40 16 5
+123687502: 46 33 9 9 9 502
+6287743044: 9 2 6 8 9 594 5 2 2 75 36
+914528962: 8 278 9 62 567 6 6 1 5 9
+26697895485: 169 29 4 256 7 84 2 66
+118181: 193 306 1 10 6 9 2 6 7
+4860404640: 221 750 520 464 9 7
+221863: 7 309 94 7 6
+34759: 6 5 49 6 5 365 44
+125066: 842 5 905 71 585 89
+75690824: 189 4 90 821
+777498: 37 57 5 7 6 638 9 606
+5365990302: 619 8 8 50 1 7 1 3 43 3 6
+89137440000: 93 6 9 6 6 67 7 8 3 7 75 4
+36190: 6 97 452 5 7
+97895519: 5 16 462 130 825 1 1 8
+6579: 55 51 6 6 1 7 6 920 703
+19: 9 2 1
+82236: 822 2 7 6
+458700698113: 764 492 9 6 98 107 4
+259798729602: 3 4 9 6 1 49 3 4 50 422 4
+432085: 9 60 8 8 3
+36186: 49 22 505 1 210 63 55
+433240464: 65 6 9 2 18 89 7 197 34
+1940: 1 9 38
+403135: 56 6 879 2 331 54 254
+578901186: 7 2 11 7 1 5 6 3 529 6 4
+4873227439: 115 25 332 411 439
+4244991173: 9 6 2 979 5 7 8 7 4 1 6 8
+244041445017450: 8 1 3 47 1 483 39 3 451
+7334: 848 531 5 65 6 368
+1031568: 1 9 3 148 8 5
+39537375: 73 2 453 524 6
+1799: 960 1 1 61 6 751 6 5 6 4
+19683930422: 3 20 3 44 194 466 17
+2992968: 150 4 68 1 682 80 6 8 9
+143489508: 851 98 56 27 6 60 48
+1633086: 595 3 2 7 39
+4102: 5 565 3 903 371
+132039052: 44 6 10 7 803 5 28 9
+219373058: 5 2 496 4 796 934 58
+1770060718141: 21 852 6 81 7 4 8 1 3 8
+27300370328021: 4 7 893 9 9 35 4 772 20
+5831145: 33 7 3 4 7 5 3 239 7 5 5 6
+5395959457: 7 8 35 6 2 6 5 9 5 938 7 7
+65113388: 1 4 4 255 3 8 3 7 9 3 7 2
+30758: 90 1 255 89 53
+63936847222: 1 7 7 718 963 1 3 9 53 4
+424436: 95 446 3 636 97
+42036: 7 60 20 13
+941772392: 941 7 723 9 2
+84578: 8 93 2 1 781 5 9 94 72
+127686: 44 402 2 536 7 47 54
+125107379: 8 4 862 31 4 4 8 4 87 92
+13639451: 2 81 8 894 692 13 9 14
+12501969064: 694 3 18 42 3 690 61
+8006402: 272 841 35 82
+134109600: 7 96 8 57 692 5
+133447951: 4 6 1 2 5 2 82 479 35 6 8
+3236693: 7 963 48 10 794 222
+1392: 6 23 9
+2821548757: 1 28 214 1 4 7 996 762
+268648831: 88 2 1 2 6 3 8 41 4 7 2 19
+426215: 6 2 7 6 976 1 3 8 4 420 2
+167947: 4 176 8 890 37 590 1
+631866547412: 9 702 66 54 740 9
+51984865: 8 550 9 77 93 7
+130026: 2 3 7 5 1 5 9 683 3 808 2
+1429: 9 26 8 4 39 456 762
+74596050960: 9 8 6 6 2 8 8 7 4 501 9 62
+15375262058186: 5 322 642 9 1 45 81 88
+10064773: 133 84 94 8 8
+3374281: 9 920 8 4 9 52 75 956 1
+12264: 17 9 4 8 4 9 957 76 339
+1890047: 2 5 315 731 487
+1441460: 8 86 5 21 99 713
+9149992: 9 149 943 44 7
+10214: 3 85 1 32 8 5 2 62 3
+64961897: 6 6 3 6 5 26 7 3 77 5 9 6
+2531533121: 305 83 2 815 496 8
+61290135: 58 1 781 45 132
+47866682: 182 2 423 615 2
+3485393: 3 345 45 8 90
+4981892069: 46 95 3 4 969 95 16
+333529: 2 36 97 527
+863393445: 1 7 578 778 8 1 4 1 5 3 1
+32473449120: 95 1 843 255 6 2 280 4
+12217522351598: 7 53 1 168 9 4 4 7 9 19 5
+9408614: 940 18 9 601 67 4 42
+2589967782: 6 2 6 6 598 656 4 778 1
+209019069622: 8 709 6 766 6 8 4 19
+75814: 2 1 41 916 481 224
+8183473443006: 89 2 6 79 3 69 707 58
+2266968172: 8 31 88 31 169
+59978: 10 40 28 969 8
+2570: 56 45 31 7 12
+1749230422: 860 836 811 3 742
+126071336759: 5 5 9 8 4 6 1 9 7 669 6 9
+25954985: 3 31 993 1 8 7 719 7 74
+10764846: 5 468 46 1 4 834
+76992: 1 9 86 3 9 30 1 6 7 23 1 5
+174302137: 584 9 2 13 149
+205096551780: 590 91 1 956 12 382 5
+753554337: 7 64 4 89 29 5 420 77 3
+1735904: 707 9 1 2 7 7 9 7 6 136
+590570235: 6 984 93 77 237
+75848896: 457 194 107 488 97
+3160356946606: 395 16 713 889 4 2 5 3
+5255049: 7 945 16 23 15 9
+43148557688: 1 867 90 28 1 7 5 33 7 7
+766118: 475 160 8 603 7
+822646826: 550 83 570 24 95 25 1
+46207080: 6 62 38 877 8 37 5 4 6 3
+29405645: 8 1 2 2 4 46 9 4 82 5 237
+3092868591: 39 5 3 261 913 946 4
+2889460045: 22 6 894 5 99 89 54
+693: 8 3 672 1 8
+397281130294: 5 877 5 4 234 781 3 3 4
+745312: 912 7 811 1
+322435163146: 3 223 5 8 515 1 314 3 1
+57393: 4 2 9 82 1 810 1 9 8 7 3 4
+956019806: 19 781 9 537 407 7
+7896459305: 789 645 927 4 31
+13345802: 25 58 63 92 7
+4036163600: 297 949 2 358 40
+262417795428: 877 3 697 53 3 8 7 25 9
+3727: 8 8 4 7 3 2 361 7 7 52 4
+217251: 6 9 2 7 7 1 78 73 1
+62405808392: 7 55 2 391 51 9 7 1 9 1 3
+4816: 4 27 6 3 32 5 7
+262: 215 29 16
+871: 9 777 85
+31355100: 656 9 46 252 5 35
+1107: 9 6 73 23 10
+549255168081: 86 8 16 1 9 9 88 70 78
+588201: 735 8 99 7 81 13
+83476167: 160 1 4 1 6 2 6 7 4 6 8 9
+2830: 210 1 70 2 3
+312766: 1 745 88 85 9 34
+498245: 653 39 8 90 5
+120400: 4 1 57 99 3 57 4 652 43
+181238: 181 18 42 752 6
+8595645176: 3 5 7 2 1 95 627 18 176
+63941249: 1 10 934 831 11 1 341
+222: 8 11 10 1 32
+648782: 879 37 43 973 67 7
+118832: 44 30 15 6 32
+473849: 4 39 77 41 2 7 36
+27720691: 688 4 92 8 5 2 75 5 4 8 3
+6960275411: 527 33 1 92 3 8 852 4
+896629360: 1 49 43 8 227 6
+742: 660 1 15 65 1
+73902349: 4 91 41 6 338
+10983281: 1 7 5 5 8 1 64 330 881
+4204579: 96 2 715 6 60 19
+582461: 939 1 57 146 4 798
+132639366: 172 41 896 695 6
+2349058: 59 4 2 987 1
+60891768227: 9 1 833 659 96 72 225
+304: 291 7 9
+57841: 2 89 13 6 2 2
+3780564840: 605 8 34 7 38 6 54 54 1
+7456: 7 215 61 649 8
+1935: 5 6 82 6 2 4 587
+240128427: 8 322 3 2 9 1 3 4 3 8 31 7
+432062477: 334 98 6 22 80
+4224726446: 238 71 6 5 5 73 3 444
+347487: 3 3 27 65 6
+1881036: 855 11 2 36
+13872472: 25 143 5 4 8 394 69 9
+227170245: 93 868 4 242 5
+1311858450: 889 7 7 4 83 4 7 35 9 2 1
+284211255: 70 302 4 938 754
+78885: 1 770 14 80 149 254
+4970590223: 71 70 590 22 5
+1602907: 78 87 82 45 2 11 96
+13841612: 9 967 7 493 197
+6794281800: 28 24 414 24 81 24 75
+3445: 53 3 4 7 26 2 5 8 27 529
+2153642498: 5 9 271 7 1 12 34 2 8 9 8
+1101127586: 71 284 2 31 7 584
+748: 2 1 82 2 578
+14912132: 590 35 532 704 6
+94380: 71 2 2 6 897 6 79 8
+374: 4 364 1 6
+573343848: 9 2 96 7 7 1 2 3 9 2 76 9
+88452868266: 402 8 764 6 711 6
+16067: 27 790 9 55 3 6 157 52
+36465214: 663 15 8 2 53 326 885
+121966181322: 5 61 28 53 7 2 1 41 2 8
+4837640: 567 7 24 312 34 8 1 3 3
+9556492: 1 4 940 3 6 2 639 1 6 4 4
+50007513650: 22 372 804 76 48 5 1
+43315: 4 5 3 5 5 1 9 2 3 5 28 87
+202771978716206: 5 1 334 67 8 5 7 8 790 9
+79852128: 7 737 43 52 2 6 8
+4147549908: 6 2 81 4 8 8 1 8 2 9 910
+200429752: 7 3 8 4 5 4 8 2 71 420 7 9
+225679: 6 781 48 1 750
+178161139: 99 7 5 6 4 53 514
+536762: 6 487 60 45 4
+38997: 55 6 7 7 9
+5829: 6 854 1 644 60
+25746433854: 2 27 640 578 77 6 4 5
+175809002: 34 4 8 60 7 47 5 66 500
+6980: 687 6 4 4 40
+369920: 41 9 924 40 8
+1624: 4 9 31 9 2 6
+9411309: 5 5 1 22 57 997 962 7 9
+667326108: 453 91 141 15 87
+1004698: 8 20 3 1 60 81 5 12
+36731761: 452 520 961 25 19 5 8
+58424832: 2 4 166 6 1 5 409 4 192
+120: 2 1 7 1 8
+36176974: 9 6 6 829 2 20 727
+107142489: 653 418 423 1 91
+2538: 3 2 80 8 27
+2096316498: 87 3 464 3 24 218 1
+1143187220466: 9 45 7 3 2 96 3 5 5 4 468
+2311353: 5 77 667 7 15 9
+2616546960: 4 6 4 3 7 19 6 8 23 4 180
+467450295: 2 241 46 4 2 8 4 8 6 1 3 6
+9970163: 436 1 3 676 7 5 11 4 9 1
+35850448667: 4 80 7 65 3 8 286 45 4 2
+569902155: 4 9 75 6 79 823 56 445
+117431: 75 52 77 7 4 3
+39762: 8 270 7 9 16 57 15 192
+65228: 104 9 9 61 693
+168936037718: 35 195 80 6 1 286 6
+10846807: 191 3 567 8 88
+107280: 7 81 2 17 280
+1328917: 6 1 3 91 253 58 2
+39225: 8 498 6 886 8
+423272592: 42 3 271 874 716
+12478726: 766 91 416 7 5 2 6 798
+2068614935396: 86 3 799 4 8 9 3 6 5 39 6
+3608786755: 9 513 1 6 8 9 5 4 768 8 4
+214825563: 397 825 1 1 1 2 3 1 9
+1577: 54 3 6 72 6 137
+265199760167: 29 39 4 3 6 632 8 9 1 6 8
+4832712: 6 20 866 9 432
+388203616: 462 14 69 28 3 223
+838702483053: 19 3 776 3 7 8 290 15 3
+8353141: 85 332 74 4 14 3 4
+805660234766: 33 9 3 9 72 8 7 84 471
+49483708029: 39 9 9 3 2 1 3 7 54 3 62
+8892416966: 49 1 9 20 72 413 3 9 66
+6336692: 1 4 2 9 88 519 88 9 73
+45323953: 4 272 8 7 462 4 7 2 3 5 5
+1656480: 22 2 2 4 5 4 7 5 5 238 3 2
+1885042369: 231 85 858 4 3 8
+70734: 70 659 76
+451366: 8 9 9 73 653 6 8 7 1 7 2 5
+393595517955: 9 632 871 35 1 4 511 3
+999: 9 8 6 6 7
+336677287334067: 879 99 977 66 23 4 5 6
+760635: 4 3 60 245 391
+130284: 8 2 83 658 2
+2404653: 528 897 979 64 5 8
+681300892: 71 94 9 656 561 5 7 6 4
+1604729427: 73 86 408 369 8 3 84 8
+6976026652: 5 811 2 35 3 1 45 4 85 2
+15162053: 1 153 6 2 95 380 50
+1787623976242: 798 473 3 8 6 95 592
+66792649: 1 78 934 66 588 60
+8106810: 255 8 2 1 3 4 9 9 6 8 93
+785870580: 3 745 37 870 5 80
+585080: 68 717 2 6 8
+6453586: 383 337 6 5 8
+37391642512: 4 245 2 776 3 450 52 5
+621878912: 5 4 727 3 6 8 1 915
+33622021: 7 85 7 79 89 36 27 522
+18663545806077: 896 165 649 234 89
+7478552: 1 73 88 90 289 264
+193124594589: 965 62 297 296 2
+851168884: 2 16 8 5 9 71 4 4 3 1 884
+201303846: 38 293 1 49 2 8 2 1 94 9
+19384474050: 6 3 8 2 53 3 447 40 47 6
+101416182: 4 1 7 6 712 8 546 5 4 76
+1389457: 52 668 40 1 16
+62222885: 59 9 22 9 2 68 5 55 85
+157550163508: 6 95 2 3 274 163 505
+1194: 74 824 72 1 223 3
+47245667: 4 15 325 5 36 5 3 76 42
+14656583414: 1 3 1 65 583 75 25 9 11
+100928239: 6 46 957 28 23 8
+28737516: 5 19 5 278 7 4 2 5 1 5 9
+319611572280: 5 39 9 585 6 307 749
+1087345979: 10 7 8 5 80 8 43 2 977
+5670810053865: 9 601 7 4 5 99 9 947
+4785796947: 4 6 4 9 8 21 8 6 618 1 8 4
+5583960: 926 5 950 5 34 55 1 8
+6593: 1 5 8 5 97 8 7 2 257 1 13
+557119332: 363 121 14 906 1
+115695268: 964 12 788 738 5
+148681847648411: 743 4 5 461 9 121 4 13
+598955: 2 32 47 319 953 2
+5322245312: 66 96 84 530 9
+11637274559: 2 8 4 9 9 9 381 787 146
+24562136: 537 8 6 50 571
+26208: 246 320 5 82 9
+105736523: 71 7 2 9 2 64 7 88 1 641
+44037634342: 6 1 1 9 2 708 1 1 1 4 341
+26535: 7 39 538 878 912
+3815734: 381 57 27 7
+6998128: 699 41 2 398 3 28
+643469713261: 233 3 84 9 5 4 6 493 6 3
+1153089117: 28 91 67 184 2 5 393
+87211006: 25 114 34 75 33 9 25 9
+28171737697: 4 4 9 7 98 7 9 1 3 99 697
+1394607205: 5 6 841 628 1 7 5 2 16 4
+3404811221: 3 399 5 811 224
+3849330: 3 3 3 6 9 296 7 92 8 4 8
+617623508: 2 56 3 762 351 1
+14853187: 674 146 671 328 22
+1454: 3 9 3 487 90 50 797
+8962405: 448 2 188 1 525
+259572: 706 367 74 362 34
+2779245985: 3 441 45 3 7 986
+296: 9 9 151 1 63
+55496: 1 10 544 9 5
+144484: 304 471 9 790 498 3
+41910660: 51 83 37 3 99
+52391086: 9 688 8 846 1
+2689350: 6 297 3 6 3 493 2 8 7 8 6
+115312: 11 5 3 1 4
+124: 2 52 1 7 2
+1619708377122: 74 435 8 8 4 8 84 68 1
+1012786558572: 5 316 6 78 36 7 3 6 7 7 3
+18705: 59 4 8 222 63 3 8
+5427163016: 859 9 90 78 10 18
+130598: 53 67 47 782 4
+5303900187: 8 52 456 699 40 27
+548152: 6 4 802 25 3 1 3 3 9 3 7 9
+5703654827: 97 9 1 97 913 8 6
+941392235: 67 8 6 9 2 129 5 7 7 5 6 6
+17002440: 5 1 9 1 4 4 7 5 7 9 52 30
+1832216: 192 679 503 2 7 21
+10092595635: 96 1 7 1 7 1 3 207 1 5 8 7
+93223: 93 831 3 31 2 8 470 1
+104178948: 6 868 9 474 2
+60571: 60 4 73 4 94
+16135488: 21 409 6 9 8 514
+61341829: 69 889 74 8 6
+222710400: 9 1 76 74 8 495
+97147: 7 7 96 286 5 45 172
+9371290: 1 10 860 914 985
+510996: 29 27 5 768 421 5 93
+95890474420: 95 88 9 5 9 7 39 45 476
+1584: 111 70 27 602 98 676
+69285328043: 69 2 1 8 526 6 80 34 2 7
+77406525462: 48 378 6 8 38 26 1 31 2
+53638: 8 638 83 4 5 8 3
+89682: 3 96 90 2 583
+38950: 1 2 67 48 56 6 6 1 6 9
+147192243: 696 35 162 10 6 245
+5875749569: 8 9 30 2 6 91 574 9 571
+86094936075: 6 94 3 140 124 76
+831: 5 1 89 729 9
+209738679: 98 2 5 198 183 2 6 680
+622617586: 108 6 6 3 1 57 7 8 9 796
+36002: 49 19 57 72 4 2
+70185240486: 618 4 80 61 507 7
+133062: 97 35 858 9 197
+673138: 5 4 3 9 763 7 6 29 143 1
+5354409: 9 6 47 555 322
+21: 7 6 9
+2985: 496 90 8 3 5
+134744: 49 83 8 9 9 5 53 82 9
+21136: 9 56 4 40 40 2 1 9 764
+34359: 5 4 23 6 72 807
+590700448: 587 26 82 472
+4656: 236 55 8 2
+2091397218: 433 483 71 39 68 8
+30253359: 35 3 7 75 9 33 2 5 2 5 57
+368680312: 367 7 73 907 315
+27669457: 27 603 66 457
+1909598: 57 5 67 72 29
+363584496: 9 5 42 226 37 503 6 4
+1695: 8 2 25 70
+75459782: 78 297 2 4 5 9 780
+396365711: 22 67 445 31 5 709
+4227: 6 694 47 1 16
+193414: 42 98 45 4
+178472020519: 6 297 5 8 85 102 2 69
+2356070: 1 271 2 34 858
+297355331: 887 5 1 335 44 4 489 4
+275421342: 5 918 3 1 550 7 6 1
+3931: 2 7 924 79 9 3 851 2
+844164: 991 1 4 50 27 1 786
+41294252: 4 12 942 20 4 30
+251642899052: 54 75 2 589 6 766 6
+18494: 3 4 6 4 6 6 1 5 2 77 717
+4448239240: 8 4 8 6 3 524 3 237
+1303: 58 1 732 4 5 3 2 83 415
+39780279: 9 68 7 2 68 94 3
+55590: 17 8 8 2 51
+6708163529: 670 81 541 79 1 15 29
+1430317: 6 1 86 92 4 14 89 1 57 2
+369: 4 87 13 2 6
+188043537614: 967 8 2 4 6 6 633 80 3 9
+1043: 37 59 46 7 7
+1058627808: 2 8 75 440 8 92 7 3 25 9
+2258503303: 43 9 1 257 764 641 9 2
+4321966143: 432 196 5 911 232
+378672480215: 7 9 5 5 6 1 3 8 96 5 2 16
+61080272022: 1 191 460 79 88 22
+306296408: 2 6 51 55 4 1 9 1 3 78 5
+379989863177: 654 9 634 7 69 904
+46216845635: 649 104 9 712 34
+963: 42 95 1 7 4
+366029: 4 54 2 50 199 440 589
+352032: 7 7 1 179 2 2 3 6 5 7 813
+5312011266: 40 8 22 6 40 1 7 4 1 53 5
+4022967: 5 7 4 782 49 70
+28435262: 2 8 1 4 4 7 7 8 3 442 84 1
+1694589: 429 957 26 1 6 12
+20192882: 1 81 916 37 68 3
+5585510298369: 70 644 852 47 9 29 32
+449126029511: 590 170 8 751 761
+2685843: 58 9 3 667 6 5 26 2 43
+1061506: 39 31 5 3 9
+291029855: 5 1 485 247 51 5 8
+20727882975: 4 473 7 662 978
+55904160038049: 467 8 55 869 1 32 679
+4015421905: 4 187 202 3 25 70 70 6
+479990: 2 101 44 54 38
+210045090: 694 3 5 45 8 275 5 1 73
+19759927905: 1 6 343 8 4 9 9 15 7 90 2
+67111: 49 81 33 1 782 8 14 9
+441928: 6 3 1 33 7
+11171760: 75 3 432 9 94 9 9 963
+4991508: 10 843 74 1 8 757 183
+425042235: 420 4 56 221 10 1 81
+62161: 538 71 30 4 239 991
+2725764: 42 6 10 3 8 75 45 789
+11173464936742: 6 8 9 7 2 1 6 9 312 2 48 3
+11978613: 934 3 272 47 5
+594683457: 88 506 14 54 345 4
+660: 83 498 76
+490497802406: 70 7 497 802 409
+5440724: 7 1 4 9 160 317 9 3 75
+19985: 3 79 2 9 784 10 422 2 1
+102695426: 999 53 10 967 24
+151408: 70 4 28 2 280 4 36 5
+2712720: 98 8 996 508 3
+122880: 50 38 8 6 6 64
+6229710: 4 7 2 788 2 959 8 37 1 9
+19658825: 57 2 34 98 23
+28160630: 4 273 3 32 9 8 5 2 6 2 7 5
+591140433: 67 63 62 874 44
+60896: 5 12 1 889 8
+94197: 1 93 415 782 1
+62: 5 1 17 9 30
+7622540: 8 84 158 458 5 2 254
+140652520: 5 5 8 7 6 58 5 7 3 1 81 41
+983263: 422 585 9 769 63
+32107: 3 8 3 953 11 180 467
+2122597: 212 2 27 5 9 313
+3600598: 5 5 36 150 4
+839022336: 531 205 142 892 9
+7853: 7 4 23 7 22
+74556: 21 355 5
+6519534705375: 3 4 40 848 8 21 652 88
+596866566: 6 7 8 9 6 1 5 489 1 4 5 34
+4194599: 4 9 9 1 6 8 69 9 9 9 2 689
+186052032: 4 211 338 9 96
+491053582121: 914 3 7 765 821 18
+259: 3 29 5 7
+148635877: 29 5 41 435 25
+7357400: 884 208 7 56 40
+1247536694: 1 3 5 374 9 1 460 33 8 9
+5242752494530: 97 9 79 20 824 14 6 45
+33841: 79 7 5 226 7 6 908 5
+1017708422: 234 49 7 86 8 258 62
+17063: 6 64 322 4 77 1 60 1
+2458291: 245 823 6 1
+1858104: 671 460 2 974 41 7 6
+3981306130: 8 250 8 8 2 6 5 9 6 3 4 31
+33108: 869 3 37 847 1
+324328158: 990 13 2 33 126
+150610: 3 86 4 3 8 2 74 1 7 5 903
+59551331753: 4 248 52 2 6 3 8 749 4
+11392: 1 21 5 6 509 3
+35886972295: 260 8 9 382 1 3 639
+1195518239: 355 807 3 6 16 70
+390263415: 58 81 79 3 84
+43719425980686: 67 677 130 646 688
+38806776535: 808 465 8 6 9 8 538
+11108160581: 81 147 12 812 116 5
+62188: 79 1 777 8 20
+4328338: 8 541 338
+767871302: 1 45 7 91 594 471 959
+48307625: 96 6 5 762 7
+25845765120: 18 5 898 609 768 60
+4920993: 6 69 89 30 990
+2009844728: 9 8 2 3 600 57 5 5 4 6 3 5
+16262: 8 8 327 3 526 40
+102649613987: 9 1 7 1 8 2 746 10 7 48 8
+62832: 7 8 3 1 40 25 35
+546770312: 69 3 1 3 8 2 3 5 3 871 6 1
+995210: 4 6 88 4 13
+27764: 96 63 43 9 38 57 4
+6596051: 659 5 826 76 151
+1696: 4 4 96
+76387474: 29 3 878 885 589
+887958: 265 9 62 7 1 6 76 620
+239447: 604 98 37 3 9 4 2 3 5
+5171959300066: 3 48 406 194 57 5 8 67
+1798335: 3 39 7 69 3 845 99 3 5
+665214448: 665 202 4 8 447
+7050: 6 2 2 89 560
+5828: 3 3 2 656 36 2 3 3 8 4 92
+49296672: 77 64 6 1 9 6 73
+448659113757: 594 219 5 363 416
+28490582: 74 964 38 426 3
+908714: 80 10 248 623 1
+441207837: 459 5 9 15 96
+3122771: 389 4 8 38 7 86 2
+4664: 7 4 748 6 9
+14799610652: 881 139 646 26 8
+79002161: 9 1 17 7 5 956 9 3 8 6 9
+24535779: 385 3 7 7 5 9 6 70 3 4
+774464: 2 3 8 6 39 9 53 5 8 656
+86843: 315 3 350 130 3
+7373481: 1 78 6 62 69
+821633561721: 5 25 2 4 1 8 977 2 9 722
+42373933703: 5 9 7 2 8 741 7 4 2 1 1 92
+14065359: 3 50 4 25 57 12 52 3
+615099: 4 27 2 3 9 1 8
+4561880: 569 8 4 35 8
+1274: 418 551 1 2 264 38
+1526839: 9 3 70 193 733
+779652: 326 1 8 985 5 1 4 5 9 6 9
+595317104: 92 59 61 6 7 2 6 6 6 76 4
+2523150: 38 7 30 89 21
+13263: 3 62 2 70 6 97
+3728386: 9 47 4 1 62 1 1 43 65 22
+3432857: 8 429 8 5 9
+476343664267: 42 31 836 48 57 9 94 6
+255870: 90 9 9 642 29
+4900956092109: 699 8 3 36 5 4 4 458 7 7
+818241: 358 72 25 19 769
+555645818638: 5 90 8 58 5 81 85 4 7 91
+95396: 5 6 8 190 199 3 2 8 9 7 6
+809185020: 1 734 98 41 274
+194875: 3 121 534 54 980
+3564788: 5 94 126 1 6 30
+9241712: 2 7 225 53 86 10 8 74
+5769566: 2 8 6 6 77 4 75 107 6 1
+11480278754: 68 2 164 27 86 85 67
+55692: 4 98 7 6 13
+216953: 18 12 955
+307145445609: 78 313 474 53 7 74 64
+446713: 2 84 716 557
+1629146995: 264 4 4 2 1 2 3 7 5 8 44
+25569836: 8 1 7 8 3 4 47 9 736 3 5 9
+6437873153: 5 6 4 594 2 6 9 664 8 8 1
+719037270: 28 3 9 7 8 51 69 695
+49498478570: 6 1 4 525 95 898 2 84 1
+26544258088721: 408 373 2 65 7 1 87 2 2
+651847677: 145 175 88 9 643 4
+2130440: 8 3 11 41 250 3 680
+6372: 69 57 5 7 1
+42364964: 62 948 537 770 78 44
+236043: 686 49 5 89 7 86
+93309627778: 43 1 1 989 24 9 3 77 7
+18465: 251 69 966 4 4 12 160
+20058194459: 9 97 25 6 9 3 9 35 3 9 3 9
+22540578: 9 709 7 46 9 3 4 28 2 1 6
+76804489172: 8 960 3 6 8 8 9 16 8 5 1
+37315111728: 84 15 4 649 248 1 46
+2099244933: 33 3 4 394 3 4 904 1 31
+5788323: 23 54 5 69 7 21
+28236624: 86 61 6 7 2 16 2 1 4 6 8
+1313564365: 84 3 159 18 98
+757: 8 91 29
+11800: 1 1 802
+452490301161: 878 62 1 944 515
+2990297456: 7 3 59 8 5 2 9 74 1 53
+66006075241: 3 4 64 5 5 20 92 2 7 5 7 3
+71271389: 5 277 7 2 3 7 4 75 7 1 9 5
+24291: 32 4 11 72 77 96
+86163645: 8 97 53 8 96
+8392581117: 88 61 76 786 939 66
+373836672: 1 3 9 4 409 8 848 792
+1417505625: 6 31 687 6 374
+6470100: 3 72 6 4 9 1 553
+270: 7 6 4 2 5
+1432399648684: 8 8 89 7 231 93 520 9 2
+7114565: 7 3 3 46 97
+1580299: 7 52 7 1 744 8 177 45
+99294: 7 4 8 2 6 8 90 7
+110: 8 6 1 48 10
+6450588963334: 82 284 99 783 6 333 1
+15008: 27 3 53 3 383 32
+5704417: 67 92 59 608 699 70
+66464462: 5 5 2 2 59 3 5 74 2 2 9 1
+426712: 74 220 71 1 61 26
+803: 91 307 385 4 16
+102173848: 6 9 5 6 940 7 3 827 24
+1638256836: 409 1 4 63 5 5 4 2 2 2 3 6
+4428018648: 204 1 216 185 62 85
+2228269601: 91 171 45 8 8 90 904 3
+277540661734: 3 98 32 5 79 59 734
+12670: 872 20 375 1
+1216423: 47 527 56 7 7
+502212: 68 50 25 73 337
+1730465056: 986 587 15 110 59
+638559: 2 50 329 4 419
+136631196394: 3 2 8 7 6 6 54 913 2 753
+84170763: 2 2 425 2 30 7 9
+13421696: 83 89 52 159 44 8 55 3
+808201: 23 488 1 8 9
+88960833: 414 9 623 21 4
+1217735408: 826 63 8 5 6 7 234 99 8
+671300261: 9 5 9 14 50 259
+44644370: 330 555 8 56 9 4 6 7 1 1
+7517938: 3 6 2 4 20 58 4 5 54 57 1
+132: 30 3 3 19 5 9
+333479: 1 3 201 387 280
+12096715360: 1 6 126 6 71 535 9
+3585279167: 71 61 9 5 432 4 5 1 6 3 7
+57353: 16 468 79 7 95 3 3
+1275887: 8 337 77 8 92 34 6 5 6
+1262728: 3 3 4 9 1 1 514 44 2 2 1 8
+1073500: 566 59 6 286 16 978 6
+13086888523: 81 3 69 9 6 221 99 45
+7232: 15 318 2 3 54 2
+10945041: 986 111 9 35 3
+63462422: 9 402 70 67 22
+387968229: 63 92 74 6 822 5 3
+39655: 159 3 971 7 5
+4811134: 1 6 60 748 96
+4882688: 8 480 268 5
+7286: 3 2 291 5 11
+40082445503: 8 275 702 69 27 476
+15464: 4 550 9 7 1
+10750553322: 413 48 282 26 2
+1569941232997: 941 60 23 8 8 25 40 49
+7408: 6 9 4 5 5 6 8 914 8 16 50
+54432: 407 1 97 6 18
+1474838566: 73 741 920 8 2 7
+7170164160: 841 214 4 996 2
+509285509: 427 3 4 405 97 731 2
+284618201: 5 431 310 6 407 1 71 4
+9728716074: 6 869 8 2 398 3 7 582
+564880555: 3 87 923 68 45 54
+598: 6 5 2 4 9 8 6 95 245 1
+586932: 58 6 592 324 6 9
+2193899545: 98 87 71 6 208 1 604 9
+2836770: 830 261 26 1 70
+394334517187: 5 6 5 5 13 4 8 764 23
+10765: 492 6 2 767 79 8
+167839818: 4 2 815 1 46 746 258 4
+201714977: 14 408 2 317 1 7 758
+142: 32 5 35 4 66
+140659203186: 72 370 66 8 30 93 92
+3787386567: 5 188 5 1 73 2 559 8
+5352640: 3 16 3 950 8 3 1 688
+23236875956: 2 9 34 5 45 5 85 6 9 9 59
+7786061171: 4 1 3 5 8 9 4 9 6 6 423 87
+2361736314: 1 36 9 28 831 49 7 17
+10066686244863: 8 7 8 6 3 7 3 672 834 66
+15643152: 9 9 366 57 56 6
+1478892934: 53 9 642 2 3 7 7 293 7 1
+9366820: 9 349 1 7 8 2 816 4
+206191: 694 2 982 87 1
+22831500: 5 925 982 5 5
+17122508: 364 1 6 5 3 9 1 6 1 52 59
+11308680: 1 4 24 37 4 4 1 566 5 6 9
+11784: 974 12 96
+752177: 4 9 3 21 1 9 9 996 3 7 9 9
+478615: 478 315 242 2 56
+1805023: 8 2 2 2 488 481 1 2 3 92
+198940: 6 631 3 7
+5763734: 960 612 6 49 11
+67926: 9 51 7 164 765
+766583: 3 754 9 5 85
+421852: 4 257 9 41
+12361838487: 515 4 2 61 283 6 5
+7901: 21 768 9
+1758: 766 31 22 60 2
+96937597: 91 5 937 594
+2247652915: 47 864 615 5 8 9
+11004556166: 11 267 8 16 2 488 6
+10613252: 149 48 738 1 73
+3854: 6 6 1 60 3 77
+256528: 1 27 4 8 36 6 9 7 8
+60876279: 2 5 78 169 463 75 37
+569727271: 560 9 7 272 72
+35508: 779 22 546 63 7 2
+189229180: 2 3 80 22 24 5 1 78
+28582830: 948 95 658 35 740 9
+9630: 3 5 601 7 2
+1552791240: 973 465 11 8 39
+48506850: 156 7 2 4 758 3 522 5 9
+41769051: 663 70 9 3 5 16
+52058: 97 27 419 3 5 94
+224060: 5 8 56 3 6 25
+25784: 85 609 36 1 799
+21211654: 265 4 58 2 54
+50704: 269 237 1 9 5
+78384: 86 9 94 8 873 9
+33453: 7 34 450 68 56 9
+629445337: 27 79 1 713 295
+37698877440: 302 9 7 172 3 4 960
+2306: 5 3 4 72 2
+1902864298: 779 86 244 4 54 99
+97546534: 6 8 2 1 6 9 9 6 997 4 9 4
+55651121155: 4 7 6 4 7 1 175 7 48 797
+85969834364: 9 513 8 9 9 648 4 57 7 6
+2399485184: 227 1 128 485 165 19
+1600106: 5 137 7 7 4 8 45 968
+1768050938: 5 6 8 2 4 8 5 1 7 77 3 7
+261477770026: 1 162 3 324 46 2 6 7 75
+124551: 46 71 7 65 659
+7360000110: 1 34 266 25 736 110
+3763620: 6 6 617 3 93 26 4 4 4 9 4
+101736: 7 4 9 6 2 5 6 67 6 68 65 6
+1544: 8 9 626 143 8 679
+61814592717: 135 124 393 783 12
+1190233: 4 5 22 986 1 1 27 6 3 8
+878475: 3 3 8 4 1 2 1 1 5 103 4 74
+152674956: 34 2 60 43 84 417
+948935145: 8 259 1 4 7 8 6 9 5 1 63 2
+2590109: 5 834 621 464 75
+1218360: 3 21 55 923 1
+2893245317: 7 201 4 7 680 2 57 6 9
+13734971359: 4 5 77 7 9 123 8 4 9 4 6 6
+150780: 207 9 2 1 91 77 1 86 4
+5125789: 1 284 6 95 3 7 285 901
+13267368: 24 69 95 6 93 15 8 7 1
+436128: 3 817 537 61 664
+52277926: 50 689 734 854 91 9 5
+27736: 6 9 5 47 6
+80388: 5 8 9 695 99
+76368: 5 20 8 30 29 83 7
+39090: 3 29 8 4 7 630 5 5 70 1 4
+9799459400: 48 994 8 24 962 8 4 5
+2835518: 48 59 3 1 4 21
+657763085: 1 9 33 4 8 9 79 70 9 35
+273865679: 7 6 6 9 4 6 199 1 8 990 4
+173337: 9 897 6 19 5 6
+465640352: 6 9 8 9 6 74 5 936 1 6 3
+8355185149214: 83 46 9 1 85 14 9 215
+3273008: 3 827 492 665 8 808
+2154849: 1 41 8 31 437
+38944925: 59 6 4 653 4
+1751852: 3 3 905 8 20 95 28 24
+4381: 36 12 1 54 6
+23017632: 8 27 41 516 307 8
+14593: 220 2 33 2 71
+2571008: 3 949 6 9 5 1 1 57 1 9 1 1
+20887367880: 9 2 9 541 9 1 3 5 7 8 355
+38042064: 36 6 268 96 9
+5647886509: 3 1 6 848 6 9 59 837 3
+13639: 8 2 3 1 32 4 99 7 1 4 397
+20530114: 88 224 4 813 98 5 4 4 4
+320: 4 56 96
+879215047: 4 8 4 2 9 3 8 841 4 198 7
+41374: 1 3 1 57 4 4 5 6 9 8 227
+71557700: 746 9 2 5 1 761 8 6 7 7 4
+13448009: 71 7 8 27 74 12
+265082680: 2 9 1 9 67 3 8 8 6 241 8 4
+79661: 28 3 3 2 314 9 28
+49842363: 17 18 7 29 65
+353560953: 9 549 4 63 37 50
+179089654066: 29 224 813 766 8
+13504695: 2 4 7 523 47 2 1
+207932: 8 8 7 3 890 227
+41953: 89 2 461
+266192390: 26 810 78 12 99
+90301815: 2 88 301 805 8
+58819003770: 5 84 80 655 3 717 51
+85165026225: 6 70 5 8 25 2 262 24 3
+388: 5 85 2 14 2
diff --git a/txt/2024_8.txt b/txt/2024_8.txt
@@ -0,0 +1,50 @@
+...........g......................................
+......e.g......s.............R...........I........
+............g........................I............
+..b......Q....s.....................P.............
+.......e..T...................K...........P...F...
+.....g................U.............4.............
+.........b..........4..RU..................1.F....
+....a.....Q..........b........R..U...............1
+.S...T............s.............I.........f.......
+...A....T...............................I.........
+.....Qa............A.G...K...........P............
+...........................G................1.....
+...D...................................4.f........
+..................................................
+................k.......R....................t....
+.........T.e..............K........u.......t......
+....................A.............................
+......S....a.............F...........KG...........
+....D...h......k..................................
+..D...............k............................4..
+..............................................i...
+.........S..................d.....................
+......QU....S......s..d...G............i..........
+...........d....9...F.h...E.......................
+.................d....B...........................
+...h........................H.......t.............
+.........h.B..3.E.............H..r................
+.......E......B......2...5.....H..................
+.z...........9................................t...
+.....9...D........................................
+.....Z.......39..a................................
+..........3.............r.........................
+...............Er.............................7...
+.........................J...k.r.q.......i.8.p....
+.......................u...............H.p..q.....
+..............................i.u6........p.......
+....................................0.............
+...............3..J....P...0......................
+........................2j........................
+...............................j2B0...............
+................J..2...5.....6......p....8........
+............y.........................7...........
+..............5.........y...........6.............
+................................j.................
+.........................Y.J.....0................
+.........................................y........
+..................Z...uy...................q......
+.......z.........Z............Y.6.............8...
+z.........................Y..........7............
+....................Z...5..Y......................
diff --git a/txt/2024_9.txt b/txt/2024_9.txt
@@ -0,0 +1 @@
+9784655050729485573117742146782326749053498466885232318469815561847691115579219126424913618270688347973152818919128645713775717082567712712848206277773411336387458133442690406171708766702781215622546518863514373138206156266459929759732354709137917859531572434442251941721151753261263740418547176124631533465840804657649393764239176927184438613825617433778748813456926439928247389618479323898636344088664539763748733958654445415242939032759580923440119731367886661968236250262735552514709512552555273754366753928243232762421110232558278691291442121118652318453346214652688445696133387371489966146418212765791868544591392213105225302526778350729645461128996651828460419683639312752592757746968768757830787881126374344684724250155922529623341230642726334591888995854356632194624484538814507984265129949948387759982676983132234440706674822224476375586625477833101551201786573727923385961314281440671916288935192720687945952128909477983015677351184115226818181711561749573127619168722458646618234337665066499585965578981596324673596021257473652852724921361719227267892037264134282741541668468155538929604483656341784726358113872494958565693916358743949354916242262214765612414944675741447216221615933714282628763118257849454283624696548910966430572966587368521311711390676798374737377244874693295616835088723595661090737367998828949088608845311381772846598817725057605011752575536425579146534379815367406650183629455185752024947637916386588478616670857963505596351524351874458758283887601293299945304570824584665682478535644415742872919850396698274649367920387477725239673060299510517564969785122513531731291174822999179694463720189626886854716536735315967992296712624398882177658491153751108562126883799966679713337331491564924235826329562926813371652940435538225630736749521351319150295445739958394023674472138883429390895015255254773890432978578012417258353758813361561936759072709335657495166152243659387253678159291852611129609945494639884896463434422563757638283562459127432775159634859875318960528775763352336043406382483444559162314115276561289198483036973180435573329143645980564536451119247485533910854219348632363081773351593613601533236770363481171664683891704941937626564850576016785837635839491645427897951638644275945839361755494282412921428891797759287943605021531695159238757060298448576254657610349090703881919190765041174390356443414162197378898856705455939526977276399339378750569437975535181819176865637752621932779928127728875688398099649383204938707491767582912717849736404511453119812290409619408556292547293763698457984082903910863328968088435139551650154089683832121939943092544911712216578695989661215681718538301786671452153995571118265490547887495188143882693366266686673220389925426840937594345291196528524352227999422930636699319557826230556135246130767197845370707633386376219783126732736789522730816160527211613776287586346558137314127561368584987783987437262058997345542860984874574331377454937686819199553437993650522699771788952666774162668346245565427494636129591097567476577390237931698153142679465864213320724193583898765510547334101030237187395581343370863518519841693746366978539317815127927759928677247175157431886277886122929360974198498959818655575990964080201272315990258429312529522297603711116952512029753886655637944727418185165839731431756056496663218344513259534743132464627077527910249864633271572823105059792126555326874917786098494134298693989077153512216830275546442162225872764266549541801069932665476934288338221283944925301316726472783664765236776343562728359265308419722072405986618398961092286417698022726880618110558393542656274073534019543473767862856688632413602165164628811755804558736933836673646253466446885420114178281582512820661034686757849284273093694670735179712122767656616495632228215370944967539049777213859148758966664687616193867334598899101985522934134374424999675533694973926965172792183484318015303651462282422547118093233412444572898549513896359872936834349876884457899661277817805084373157856563333710228795388098531925274142287344465120584643201210581618403898237382815116634035299082251180738280104495943917986170296684749786537666241077532175883395536181503229644478522634723523233991991850402237584121222512365580717117257427117274274362561093236499708535122054921999527678784171465986595567457566401653927688785056178285831894495897282795831220192314331093169960361620873476382569891421438096361189284344138320855460637766646661894219906061713374706345728764557936645432245184851750732227979119223349259441596713272416318334858282274191615191298626702851288525701830243665155990287376118512468927467752111067365489941733345027701355897276993459896352274931784220175154555176448847949390947714756767414923522231171390245122481956835015217458968727802972302390891399396618885657433143392753675449694181189838126961532691811190996164257115941046104210107210695014298075889953858928595534596319752159861627512611812455165584522326796046243510648491463744894797799266598176244199757746481626827636625834741562576614426795447999534837593019575667259139945617119679794712911659431735147664611533482070465220233029897672735590357351655281587751256989317445784913377284595523215414629185225896806331935795223077252818941090176260987046959385396894342725896473323345695925153160787337714260314589779774402884428310997849669577898855535823855080763750877049424620879121744078479067861425448735514849662768727417499015811215971136222139152930738773597779319374585914306472576271628347491199698964855541596696233394623555676656462246434599165582277133585773328141121963509473849131277543716863178088858127725096726492901371422081513031497541597485536066996826404828954191115863113537786761377330973313776057281627708159546952649362571152816732372336888233814489938136317332761779154987913046469637271782753215169681354058506015402466216818577033386448766196195965179574886798699521954883492179366445845828663811572133496731792249447718365376362970121226501725614439303426406192631058312610193093246776983122128413618459448714359916655749205945431516129995597956978566657880383678968634848240409357603192928529435171233121182828866037128437119565124479595257508890729384152946493726166094334749899580393637377712516889312046976039301891734999828272241929968919223971251660546872115082652241996410403597766322164337361527645770455897188713886231994649792445845915353874349886909647361630384817317286563151552852487485232189685612415226818752583854153661798015586944452088353745251694671070512460156613467554346634858547257172399287668095239324153510677560761044466313215659395453778175898358105060344513448216997541474787486041483688844138292653487729283725511625146922174844428561814683942144585024481499826227827475606116138512538410414756354775723364878538973586326026944259871913955441316915394721823334628851348066177589506710702394328090411096655520443528849988907775429571481615466776415225337966489788875847298237963448836338697120744838819836472535664145971696278247217010683820893048744220456664685187115856563879453897615812618640822571947039382091287393589427484599164578586739917316609549724132203338992798408843966352342719628919357112933778511511416137445311382362211677115667874439318123756829866485298496905645739486418090409061673362569231363623425930907364254087337649485371176145512213111516314932907081908110789675565714931581519785777880587627388263104330942547402023165751156516429266524056914611682148538929555493625313197835469186514381121119294837312377591367383295903034123632274492443078331995278756664415241478756737527242599931667334337572505210709424154169594635411699469651218425503668165431581640151670877036948543706544134956359562362155653685464573589645725756271387595959326716545435552257917630636388896010965910334757312863587137894265696313616939128291836427958446166869598475703486336213903252616251959724593891389118445796638816796762919010138169838711984135443145834398402484421913465164822373124699857916429733764829312914596567793992312432529950785932758017352522348766728683891713997361522059481384635638585125527794587774998095491154895187892031995070404859138491904192598911501383595075447818924416653946957057533017456621931215138092969730553152289074523536143860703461432057473689596387592940445771917631197739138772617421746226206216156330852239716246271349834311237799581755329113203492275220753153942870635745869324143390408364272045267547571561103244236331769637996458993052181356425081727771953995983838511716335284127599428772757588251270313758351619747691667710456779974677424870603388378931609939445634607423563866438179699580527618178156526019732063896841807867476759582870736936789171479015852039923185685899345292832639599853831277159267834322782364849416127188402440214715832221673525692879117325719237715041102267232465886715476668432417554592903169406392625961159422483265952215755879731350556956399159683229922763882865535027657191138719797615733688428754187388807141207239798229924141972415697849389875291270274424165670269152477453534985751463265564305227754830758566138463322378667014876116669215448469202730774164382278916582783941173188556741709586279726567372505872454082446616746081713772508379797542239694828855648465287570942559406568435481566638487765838712389520364420484930546031396753485094169612443151868533856997387766151244588876196230223254479648458727792198501569649464649214606468849537725117596078842261518185359255346617747410588749959244532445726677371798396399888763133941644199878350109096527422412383953739505177727341722497453643787682175789252064223171694829397292872437703935881564601144215044487628182532843075128854514657793356613174522017473551925733216541485851643865472975864014392410292511291019446768628076662242944958169635255221314354245470978846624057652795104042521522783498864260506360515565333287339579822755355919124271654434628434758932195665573546834360952646835624469916118560933059677837568645327475211850622491784770186259115997874683419432141745619361642177904797618573837040688330464019539392482897205755261160506975749558393790482257937733871951135912404175418818916326254939396095766494237968533542421242156233586532842694871335483810362372606394899561353829495539953399484142176724511438345490288041962749475789545032285463378535336432488627809638766537137166305141746590346949247968844345861419984594468862982855757121474944543257307338321997823590208468354243308567538912662616839253782028816363382338117649434972866995436422724291363944134863614453231712488654267211262032603159557682276960657293887930582161252875517244158764781315246878338773592966421317535733461758584830113712329074688950679413414073336469603234645337725041386550561683385843689681999094177854849366349087323053726120666596599853246384156126843790533510253798859749504276766559467863164045525972716422689824637147946915963075197299841711936977765970718459868220627813867972203816893915768085198580957871293392443992542592594379203812487975813416397249101328156593155682599439852515505585604057315490781867406971634133772872611481978462349727996996944939795233292315164972226864936794784759832495151849734565719086266125209925841820778365625060327166965349386124434696225748422358449938756513346545214488512974757289589492598813396199957093433042821515754795548916867249117036205689633164444650132714423465327445161568436448707736128567488521337637779679411399574270734089113752648213579998619541948113167437626417842164588738177051959259391720952233942311156996315525355930947177432897574452471379824729975259815974834085234540217168823342287024823682351288714880112232274387271299371870462131871419714929129540681297207851125062276575683358747186619191224291886629696465677517647237795540993793631968729179839113962846704236238651518297472821803958599219951543969813461023147614905192697157705582941657922196363310343177597514903827883631324836985828914641936226522525983674648350613065696718934622362511851921308078126348949314358925488939597542455892136716983750595662859370849916225321855971203727439345603072897679239451555360426334924413223586783389764381281780635859546084542579604493848449293527146671837729927590635144182323372589473274786019329844391562224714926936555767546183937283233185539946266176796299574747299925953595985598363582821539197139322629813346317713344999465170309874108961689948545385891594436287176419216287123250421128326677886894632429563886403990362350222279883335415497383714262396883799491550729294124886687828271026349832836928787872675579159942494058706553241590276919594393883343691185659878936751508247515949311521216192319456209637392493113437381510497431116532618628747172827571345315914773553913748299627397439434354439294018559028516493769193357864603311199739467430132593411349888830357410583320548656926430341881584823339367528377684792826916968287422728736244156763255569613447418418237071243049555246825391425099176743862522981617659568805874213080831238701026765479583659879626121854242556772393568420861195403444595185308514815592186982864716544375493250479650309527454883553051582439555759985186736748194889677688987655675589811762732891845861562868112424575130105783996938405512553472466053325383168231991070479099875622262647713939124095832825689564373157541391175183727090706815928868789479373246966014448288776950991444424443114912573928538044682576487278806059684410242418546993378262253017505869859964123713796158746868614981653885273223661794149176216818802973564458644739232510695411425610487493432878616529349269118557636552398322676236388721963286336431243086397690923481458315634096832382984953326685726546608880877147188555353331296439631998181099288868661837541184196057554493517771434835389648189729378965651598856211579384992317677616304195909331964745758227209078302512387619441414514862675445976996228363919859406114741634502259338543262593662072321240229727231383182839715472898576953889636810544081359759474813473714171156105686251569908832219113802945781611228542858046464932454195768917196553933470832415211920572883712388678922796964388657497876214023347112539072684897911761834642211719326183466285326981469447377485152226182017824349339737353993918055633124963064227555845460199761406977123146995789309029577717279987252964315932592138517146657730107750133750218055149898646199452578234481609689298577901213668965576221408510606093636972951253542077184326983489373344176690727951468548191474102410869210519197923239114191457279299933457299987077694941527478557756553348137456933636696728833181115688486949107354316870956623636454854278911311452285141054339012692024758514799983163296454647813130969679415164345169644145858282353074838956611755327452944699551089893258113612988469719121653566278171901094716814644280763610803697673164261472542897788253675021293270605550586769822787138046183945864323124362892648827982879824563815712987677751613887423698286083173692677840996231647253356540233214433881879189974188624165959151581817882610563897919454546412102766943296483683629828105534291160593614338543561692916135331248582168709799121546129489748280905746256479885076308555686457179572658128447430555335835477456545372287959573948951684153808880636451299366996844957558523744771118691953253910786812398631894155306913347855163174742944482772729389978734761010236046514639564122269967333462914129853165641979275698649851614332991130453023811727879156223658752020665810494510477873791473787290608066743995807356866857522684648820247369156012786989542417739686474943567143786376117916894639403481479627302379528615398056583366684624521135708868191146916229433263965883319466654713229181882722835720493983342051945626222267375541607998613992129289407878237920554395456544774352484469861219571588439847606392634260663082567754861363536163702581752169107217694844877898771210446086347512468598773971627786235036715125314626616386991745244042803756905918739197208347641783101018844738866160465546442611406516426359185566364049868362241896431014491577498543498047433741762886288883363056875876702214128662781984638913653048713061565332335185653520295544269849903233796226549784821593507099168852461278368136182278111198299470199540195717947366497253589483315638819067837220577544578946775211206188413427959489767457632899447734412328752541833859166450105313174326827471184243485941852861533761488732271254269437141517355578934934289126171444901291959689489598165847352879492898304462409724139014275321971222828516742253257443182249699250994173358940647823498968274092665553967345977814624075897591493037449684515056768886471717847424848335112638196444945177688092253072527198934196328243985290775380356291549427147590183564142955122722461567123412206229404553221437515120116891462821445390816352671421938632661252136911233055171670779562821534157965107854242953547461353715261115167490837753374498594285585314203617934880875358914290771838762087121078123787623050713429413964487917235391294327247127477463395258628545787158965568356012436575959492104122475464204222699631804284585839306719705025856926639736754876747251842845202528701528633325205765254464986963403940737850429855926154188164605937655797142841287863535918437162552078139043443093541628557342191067351195726128686541284995932490919462711276698057747271856151455442842341337955493694454896905875703539176687825819455551373236552521517852246286149949614388562880447773832448426051192050797379863590707932191959331819594428188637588889354671407560133394439548918249871420865471249043904284404415259968277926822075888153761749688431149024791267898541855264279766587569993067199147239965846852593562689754526439706015541729708254921519386618775211667864242670725820754334117277163286823557639656931344928359171648984895533964683638149837941199882343927472642298686412155878355419104581783472259761652269715966164931975957265988111736877064482129702126176585263995141520372943987943423961117012164237364065747168421872182599577361869920194053747615813555508448206476865383632512299898736260622653792880422580637169225821735129147998429698829013683423496876839383903939917780219254497520724511311768213418634929803850933666796270282621731980994570461130655181317375547378293891354752603230272828829489167729258945628191713468698270808423797227229031417369257649565329489291305131519916109982725926391048826557466418981566847518948056166092786764317844212556792297489787888391223898323042772351337481867995123730764958281464687380369478501682295488137370175519374363439450799124627930275484986052956419531038237384439518409267539279453548678812413822315187761387652636207249445654916061694854727964987065721083168988135564229095819894945533775042226597435870329746603036808844896246278130988478321910276982957113257887639827851782136591292376918838371582563326608533736330904249796791969987632070882674759117125946933297142890871389252035604524103688357419938941514875694043738988981797374060609848104616109331398984101194291560477987829443361060133252765237759352888196692469998239525875202961755933971943636635313790641512354211717351251616111566473087359329361979243671137618895378608076496614843365343979111210494674601574271328175631339162757649608287168532726278964773611880739181384667591372733458951718555165745941774960918982662923164662549162507643389751809042751241924144435726246136795219805431367953801512822340786224679193246176314686881316178572998821638540282339534036185282792545942981561424475952857074529523389637112790327890831616175113807082811027652987261675195143585051102495201783683453708468925614606175985639325359966150506152889632587077792660897942108614614329596189346040638053679514251932942150858568807490228672696876472836583320251167183179758931377538186389227219752960564070572024145879658274844430563976923160243881504621293382231018133428708770842674829220964154504729208813525212616247801527635789811317478740636033756498881783605285984840752574538725636810446928737940143415985518498050523349869086435188331580143150264388808498241993199255915123309593481676527772274293469634171076915019132968462643445646495542712755384749602050509916433645711454764286951075202392937010374163791