diff --git a/20230119/in1.txt b/20230119/in1.txt
new file mode 100644
index 0000000000000000000000000000000000000000..5f0fa2d61bdeef79f1f658435dfce9b5f11af229
--- /dev/null
+++ b/20230119/in1.txt
@@ -0,0 +1,10 @@
+1
+2
+3
+4
+5
+6
+7
+8
+9
+-1
diff --git a/20230119/in2.txt b/20230119/in2.txt
new file mode 100644
index 0000000000000000000000000000000000000000..a9152315c1ba3e2e8bb63346ca7cbad476b579a2
--- /dev/null
+++ b/20230119/in2.txt
@@ -0,0 +1,10 @@
+1
+2
+3
+3
+3
+9
+8
+7
+6
+-1
diff --git a/20230119/main.c b/20230119/main.c
new file mode 100644
index 0000000000000000000000000000000000000000..580a6d37fcdee998368ceedc88fabdbb0efe1914
--- /dev/null
+++ b/20230119/main.c
@@ -0,0 +1,94 @@
+#include <stdio.h>
+
+#define ARR_SIZE(arr) (sizeof(arr) / sizeof(*arr))
+
+#define MARK -1
+
+int write_to_file(char *filename, int arr[]) {
+    int ret = 0;
+
+    FILE *file;
+    if ((file = fopen(filename, "w")) == NULL) {
+        ret = -1;
+    } else {
+        int i = 0;
+        while (arr[i] != MARK && arr[i + 1] != MARK) {
+            fprintf(file, "%d-", arr[i]);
+
+            ++i;
+        }
+        fprintf(file, "%d", arr[i]);
+
+        fclose(file);
+    }
+
+    return ret;
+}
+
+int read_from_file(char *filename, int arr[], int size) {
+    int ret;
+    FILE *file;
+    if ((file = fopen(filename, "r")) == NULL) {
+        ret = -1;
+    } else {
+        int i = 0;
+        int end = 0;
+        int buf;
+        while (i < size && !end) {
+            fscanf(file, "%d", &buf);
+            if (buf == MARK) {
+                end = 1;
+            } else {
+                arr[i] = buf;
+                ++i;
+            }
+        }
+        if (end) {
+            arr[i] = MARK;
+            ret = i;
+        } else {
+            arr[0] = MARK;
+            ret = -1;
+        }
+
+        fclose(file);
+    }
+
+    return ret;
+}
+
+void modify(int arr1[], int arr2[]) {
+    int i = 0;
+    while (arr1[i] != MARK && arr2[i] != MARK) {
+        int a = arr1[i];
+        int b = arr2[i];
+        if (a == b) {
+            arr1[i] = 0;
+        } else if (a < b) {
+            arr1[i] = b;
+        } else {
+            ++arr1[i];
+        }
+        ++i;
+    }
+}
+
+int main(void) {
+    int ret = 0;
+
+    int arr1[10];
+    if (read_from_file("in1.txt", arr1, ARR_SIZE(arr1)) < 0) {
+        ret = 1;
+    } else {
+        int arr2[10];
+
+        if (read_from_file("in2.txt", arr2, ARR_SIZE(arr2)) < 0) {
+            ret = 1;
+        } else {
+            modify(arr2, arr1);
+            write_to_file("out.txt", arr2);
+        }
+    }
+
+    return ret;
+}
diff --git a/20230119/out.txt b/20230119/out.txt
new file mode 100644
index 0000000000000000000000000000000000000000..0684616c9eb02ba0db58ac03f6d1edf856f3ccbf
--- /dev/null
+++ b/20230119/out.txt
@@ -0,0 +1 @@
+0-0-0-4-5-10-9-8-9
\ No newline at end of file