diff --git a/day5/crates b/day5/crates new file mode 100755 index 0000000..d3470ae Binary files /dev/null and b/day5/crates differ diff --git a/day5/crates.c b/day5/crates.c new file mode 100644 index 0000000..db323a2 --- /dev/null +++ b/day5/crates.c @@ -0,0 +1,93 @@ +#include +#include +#include + +#define BUFFER_SIZE 64 +#define STACK_SIZE 64 + +typedef struct stackStruct { + char s[STACK_SIZE]; + char *h; +} stack; + +void cp(char*, stack*); +char pop(stack*); +void push(stack*, char); +void move_n(stack*, int, int, int); + +int main() { + char buf[BUFFER_SIZE], *p, c; + memset(buf, 0, BUFFER_SIZE); + p = buf; + int first = 1, numofstacks, counter = 0; + int moveCount, moveFrom, moveTo; + + stack *stacks; + + while ((c = getchar()) != EOF) { + *p++ = c; + if (c == '\n') { + if (first) { + first = 0; + sscanf(buf, "%i", &numofstacks); + stacks = (stack*)malloc(numofstacks * sizeof(stack)); + for (int i = 0; i < numofstacks; i++) { + memset(stacks[i].s, 0, STACK_SIZE); + stacks[i].h = stacks[i].s; + } + } else if (counter < numofstacks) { + cp(buf, &stacks[counter]); + counter++; + } else { + sscanf(buf, "move %i from %i to %i", &moveCount, &moveFrom, &moveTo); + + // First part + //for (int i = 0; i < moveCount; i++) { + // push(&stacks[moveTo - 1], pop(&stacks[moveFrom -1])); + //} + // + // Second part + move_n(stacks, moveCount, moveFrom-1, moveTo-1); + } + memset(buf, 0, BUFFER_SIZE); + p = buf; + } + } + + printf("Stacks:\n"); + for (int i = 0; i < numofstacks; i++) { + printf("%s\n", stacks[i].s); + } + printf("\nTop:\n"); + for (int i = 0; i < numofstacks; i++) { + printf("%c", *(stacks[i].h - 1)); + } + printf("\n"); + + free(stacks); +} + +void cp(char* p, stack* st) { + char *q = st->s; + while((*q++ = *p++) != '\n') {} + *(--q) = 0; + st->h = q; +} + +char pop(stack* st) { + char c = *(--st->h); + *st->h = 0; + return c; +} + +void push(stack* st, char c) { + *st->h++ = c; +} + +void move_n(stack* stacks, int count, int from, int to) { + for (int i = count; i > 0; i--) { + *stacks[to].h++ = *(stacks[from].h - i); + *(stacks[from].h - i) = 0; + } + stacks[from].h -= count; +} diff --git a/day5/input.txt b/day5/input.txt new file mode 100644 index 0000000..ba76f1e --- /dev/null +++ b/day5/input.txt @@ -0,0 +1,511 @@ +[V] [T] [J] +[Q] [M] [P] [Q] [J] +[W] [B] [N] [Q] [C] [T] +[M] [C] [F] [N] [G] [W] [G] +[B] [W] [J] [H] [L] [R] [B] [C] +[N] [R] [R] [W] [W] [W] [D] [N] [F] +[Z] [Z] [Q] [S] [F] [P] [B] [Q] [L] +[C] [H] [F] [Z] [G] [L] [V] [Z] [H] + 1 2 3 4 5 6 7 8 9 + +move 2 from 1 to 7 +move 6 from 2 to 6 +move 10 from 7 to 6 +move 4 from 3 to 1 +move 5 from 6 to 4 +move 1 from 1 to 9 +move 4 from 6 to 9 +move 12 from 4 to 1 +move 5 from 1 to 4 +move 7 from 9 to 8 +move 11 from 8 to 1 +move 6 from 6 to 2 +move 2 from 5 to 2 +move 3 from 6 to 3 +move 4 from 9 to 4 +move 2 from 2 to 5 +move 1 from 6 to 4 +move 3 from 3 to 6 +move 1 from 8 to 4 +move 1 from 6 to 1 +move 28 from 1 to 4 +move 28 from 4 to 5 +move 1 from 9 to 1 +move 4 from 4 to 1 +move 2 from 6 to 2 +move 2 from 1 to 6 +move 7 from 4 to 2 +move 14 from 2 to 9 +move 1 from 4 to 1 +move 1 from 1 to 2 +move 18 from 5 to 6 +move 2 from 2 to 6 +move 1 from 9 to 7 +move 8 from 9 to 2 +move 15 from 6 to 5 +move 1 from 6 to 3 +move 3 from 2 to 5 +move 1 from 7 to 5 +move 2 from 1 to 3 +move 3 from 2 to 1 +move 1 from 6 to 4 +move 5 from 6 to 5 +move 2 from 2 to 9 +move 35 from 5 to 7 +move 4 from 9 to 3 +move 1 from 4 to 1 +move 5 from 1 to 7 +move 6 from 5 to 3 +move 1 from 9 to 4 +move 11 from 7 to 6 +move 2 from 9 to 2 +move 1 from 4 to 7 +move 14 from 7 to 4 +move 5 from 6 to 9 +move 2 from 2 to 4 +move 6 from 7 to 9 +move 2 from 9 to 5 +move 6 from 9 to 5 +move 8 from 4 to 9 +move 5 from 4 to 3 +move 3 from 5 to 7 +move 1 from 3 to 9 +move 5 from 3 to 4 +move 7 from 9 to 8 +move 2 from 7 to 4 +move 4 from 5 to 7 +move 1 from 5 to 3 +move 5 from 6 to 4 +move 8 from 4 to 8 +move 5 from 7 to 6 +move 1 from 4 to 7 +move 3 from 6 to 9 +move 2 from 6 to 5 +move 7 from 8 to 3 +move 2 from 5 to 9 +move 17 from 3 to 1 +move 3 from 1 to 3 +move 6 from 8 to 9 +move 4 from 4 to 7 +move 6 from 3 to 5 +move 2 from 8 to 5 +move 14 from 7 to 5 +move 2 from 4 to 5 +move 6 from 9 to 5 +move 1 from 7 to 9 +move 1 from 6 to 9 +move 8 from 1 to 9 +move 8 from 5 to 2 +move 2 from 1 to 3 +move 7 from 2 to 6 +move 2 from 3 to 4 +move 1 from 2 to 6 +move 3 from 1 to 6 +move 16 from 9 to 4 +move 2 from 9 to 8 +move 1 from 1 to 6 +move 2 from 9 to 4 +move 1 from 6 to 9 +move 1 from 6 to 1 +move 1 from 1 to 7 +move 1 from 6 to 9 +move 1 from 9 to 3 +move 1 from 3 to 8 +move 1 from 9 to 2 +move 1 from 2 to 7 +move 2 from 5 to 3 +move 7 from 5 to 8 +move 2 from 7 to 9 +move 1 from 6 to 7 +move 3 from 6 to 9 +move 10 from 8 to 7 +move 1 from 4 to 3 +move 3 from 3 to 1 +move 1 from 7 to 1 +move 19 from 4 to 6 +move 3 from 9 to 7 +move 1 from 9 to 2 +move 2 from 1 to 7 +move 1 from 9 to 1 +move 12 from 6 to 9 +move 2 from 7 to 1 +move 1 from 2 to 4 +move 11 from 6 to 3 +move 1 from 4 to 8 +move 1 from 6 to 8 +move 11 from 7 to 9 +move 2 from 8 to 9 +move 18 from 9 to 6 +move 5 from 3 to 7 +move 5 from 3 to 8 +move 11 from 5 to 6 +move 26 from 6 to 4 +move 1 from 6 to 5 +move 1 from 3 to 7 +move 3 from 8 to 3 +move 1 from 8 to 7 +move 3 from 3 to 6 +move 5 from 9 to 3 +move 1 from 4 to 9 +move 8 from 4 to 5 +move 2 from 7 to 8 +move 3 from 3 to 6 +move 3 from 4 to 6 +move 7 from 7 to 4 +move 1 from 9 to 1 +move 5 from 5 to 3 +move 2 from 9 to 7 +move 3 from 8 to 2 +move 7 from 3 to 7 +move 1 from 7 to 6 +move 3 from 5 to 6 +move 7 from 4 to 8 +move 10 from 4 to 5 +move 2 from 4 to 2 +move 3 from 7 to 5 +move 2 from 4 to 1 +move 6 from 8 to 5 +move 5 from 1 to 4 +move 5 from 4 to 2 +move 5 from 7 to 8 +move 10 from 2 to 8 +move 3 from 8 to 3 +move 2 from 5 to 3 +move 13 from 6 to 1 +move 19 from 5 to 3 +move 12 from 3 to 9 +move 4 from 8 to 2 +move 2 from 6 to 7 +move 5 from 8 to 7 +move 9 from 3 to 9 +move 1 from 5 to 9 +move 2 from 7 to 6 +move 3 from 2 to 3 +move 15 from 9 to 3 +move 13 from 3 to 5 +move 1 from 6 to 2 +move 5 from 5 to 8 +move 1 from 2 to 5 +move 1 from 7 to 6 +move 6 from 9 to 6 +move 6 from 6 to 8 +move 4 from 7 to 1 +move 2 from 3 to 6 +move 11 from 1 to 9 +move 1 from 2 to 3 +move 4 from 5 to 6 +move 1 from 1 to 6 +move 10 from 9 to 2 +move 8 from 2 to 3 +move 3 from 1 to 2 +move 8 from 3 to 1 +move 5 from 5 to 4 +move 1 from 9 to 8 +move 2 from 3 to 7 +move 2 from 4 to 5 +move 6 from 1 to 6 +move 9 from 8 to 1 +move 16 from 1 to 9 +move 2 from 7 to 3 +move 3 from 3 to 8 +move 6 from 9 to 6 +move 1 from 5 to 4 +move 1 from 3 to 8 +move 5 from 2 to 1 +move 5 from 1 to 9 +move 2 from 4 to 9 +move 4 from 8 to 6 +move 1 from 8 to 7 +move 4 from 8 to 5 +move 2 from 8 to 2 +move 17 from 9 to 5 +move 11 from 5 to 7 +move 1 from 2 to 5 +move 1 from 2 to 5 +move 1 from 9 to 1 +move 1 from 1 to 6 +move 5 from 7 to 6 +move 20 from 6 to 7 +move 4 from 6 to 4 +move 15 from 7 to 8 +move 2 from 3 to 7 +move 1 from 6 to 5 +move 10 from 8 to 4 +move 1 from 3 to 6 +move 4 from 6 to 4 +move 13 from 7 to 8 +move 1 from 7 to 5 +move 1 from 6 to 3 +move 1 from 6 to 3 +move 1 from 6 to 9 +move 9 from 4 to 1 +move 3 from 8 to 2 +move 14 from 5 to 6 +move 2 from 2 to 8 +move 1 from 3 to 9 +move 14 from 6 to 2 +move 1 from 3 to 9 +move 1 from 9 to 3 +move 15 from 2 to 1 +move 1 from 3 to 9 +move 4 from 4 to 9 +move 10 from 8 to 5 +move 1 from 9 to 5 +move 1 from 1 to 5 +move 4 from 8 to 7 +move 3 from 9 to 3 +move 1 from 8 to 5 +move 1 from 4 to 7 +move 2 from 8 to 7 +move 6 from 5 to 6 +move 4 from 1 to 2 +move 1 from 2 to 5 +move 2 from 2 to 8 +move 2 from 8 to 1 +move 3 from 7 to 2 +move 3 from 4 to 9 +move 18 from 1 to 8 +move 1 from 7 to 3 +move 3 from 9 to 6 +move 1 from 1 to 5 +move 5 from 6 to 4 +move 2 from 1 to 9 +move 8 from 4 to 5 +move 4 from 3 to 2 +move 16 from 5 to 4 +move 8 from 8 to 6 +move 2 from 2 to 6 +move 1 from 7 to 6 +move 7 from 8 to 1 +move 1 from 2 to 3 +move 2 from 8 to 3 +move 4 from 4 to 9 +move 4 from 1 to 2 +move 1 from 7 to 2 +move 1 from 5 to 4 +move 1 from 3 to 7 +move 3 from 4 to 5 +move 1 from 9 to 6 +move 9 from 2 to 5 +move 2 from 3 to 6 +move 3 from 5 to 8 +move 3 from 1 to 7 +move 4 from 5 to 8 +move 1 from 4 to 3 +move 5 from 9 to 5 +move 5 from 5 to 8 +move 1 from 3 to 4 +move 4 from 5 to 1 +move 2 from 5 to 4 +move 13 from 6 to 2 +move 12 from 2 to 9 +move 3 from 9 to 2 +move 4 from 1 to 6 +move 8 from 6 to 2 +move 1 from 4 to 9 +move 3 from 7 to 9 +move 2 from 9 to 8 +move 1 from 7 to 2 +move 9 from 9 to 5 +move 2 from 8 to 6 +move 4 from 2 to 3 +move 1 from 7 to 2 +move 1 from 6 to 4 +move 4 from 3 to 9 +move 9 from 5 to 8 +move 10 from 4 to 2 +move 1 from 4 to 7 +move 1 from 6 to 2 +move 1 from 6 to 7 +move 13 from 2 to 6 +move 1 from 2 to 5 +move 6 from 6 to 5 +move 7 from 5 to 8 +move 1 from 4 to 5 +move 27 from 8 to 5 +move 3 from 6 to 3 +move 2 from 8 to 6 +move 8 from 9 to 5 +move 1 from 7 to 9 +move 1 from 6 to 2 +move 4 from 5 to 9 +move 2 from 3 to 4 +move 9 from 2 to 5 +move 1 from 4 to 1 +move 1 from 4 to 2 +move 1 from 2 to 4 +move 1 from 3 to 7 +move 1 from 1 to 3 +move 1 from 3 to 9 +move 6 from 9 to 4 +move 1 from 7 to 5 +move 13 from 5 to 2 +move 1 from 9 to 5 +move 1 from 7 to 2 +move 5 from 2 to 7 +move 8 from 5 to 7 +move 6 from 4 to 2 +move 1 from 4 to 5 +move 3 from 2 to 4 +move 4 from 2 to 7 +move 2 from 4 to 3 +move 13 from 7 to 3 +move 5 from 2 to 3 +move 4 from 7 to 8 +move 11 from 3 to 8 +move 11 from 5 to 9 +move 4 from 6 to 9 +move 1 from 6 to 5 +move 1 from 4 to 2 +move 1 from 3 to 6 +move 3 from 2 to 6 +move 3 from 6 to 2 +move 1 from 6 to 1 +move 1 from 3 to 8 +move 3 from 3 to 6 +move 2 from 2 to 7 +move 4 from 3 to 9 +move 16 from 9 to 2 +move 1 from 7 to 8 +move 2 from 2 to 8 +move 9 from 2 to 3 +move 6 from 2 to 7 +move 1 from 6 to 3 +move 2 from 9 to 2 +move 1 from 9 to 7 +move 2 from 6 to 3 +move 4 from 3 to 9 +move 2 from 2 to 7 +move 1 from 2 to 5 +move 14 from 5 to 6 +move 14 from 6 to 3 +move 4 from 9 to 8 +move 5 from 8 to 4 +move 1 from 1 to 5 +move 4 from 8 to 1 +move 1 from 5 to 9 +move 8 from 7 to 2 +move 18 from 3 to 7 +move 1 from 1 to 5 +move 1 from 1 to 9 +move 1 from 4 to 5 +move 1 from 8 to 5 +move 8 from 2 to 9 +move 3 from 5 to 8 +move 7 from 7 to 1 +move 3 from 4 to 7 +move 1 from 3 to 6 +move 7 from 8 to 3 +move 2 from 9 to 3 +move 3 from 8 to 9 +move 9 from 1 to 7 +move 9 from 3 to 4 +move 2 from 3 to 4 +move 12 from 7 to 4 +move 1 from 3 to 8 +move 1 from 8 to 7 +move 8 from 4 to 7 +move 11 from 4 to 9 +move 5 from 4 to 8 +move 19 from 7 to 9 +move 1 from 6 to 2 +move 2 from 7 to 4 +move 2 from 8 to 3 +move 1 from 7 to 8 +move 1 from 3 to 2 +move 3 from 8 to 4 +move 1 from 8 to 9 +move 1 from 3 to 2 +move 36 from 9 to 1 +move 5 from 9 to 6 +move 5 from 4 to 2 +move 24 from 1 to 3 +move 5 from 6 to 7 +move 1 from 1 to 4 +move 14 from 3 to 4 +move 4 from 7 to 3 +move 1 from 8 to 5 +move 5 from 2 to 9 +move 1 from 1 to 6 +move 5 from 9 to 1 +move 3 from 2 to 3 +move 1 from 5 to 3 +move 11 from 4 to 2 +move 1 from 7 to 1 +move 6 from 1 to 9 +move 3 from 4 to 2 +move 1 from 6 to 7 +move 10 from 1 to 7 +move 3 from 2 to 1 +move 3 from 3 to 2 +move 2 from 1 to 7 +move 1 from 4 to 8 +move 13 from 3 to 2 +move 1 from 8 to 3 +move 2 from 7 to 5 +move 2 from 3 to 7 +move 2 from 5 to 2 +move 1 from 1 to 7 +move 28 from 2 to 6 +move 1 from 2 to 3 +move 2 from 8 to 2 +move 6 from 9 to 7 +move 1 from 3 to 8 +move 1 from 9 to 8 +move 3 from 6 to 2 +move 14 from 7 to 9 +move 3 from 2 to 1 +move 2 from 2 to 9 +move 2 from 1 to 9 +move 1 from 9 to 1 +move 7 from 6 to 9 +move 2 from 1 to 4 +move 2 from 4 to 6 +move 4 from 8 to 7 +move 1 from 7 to 6 +move 1 from 8 to 1 +move 1 from 3 to 6 +move 1 from 1 to 5 +move 14 from 9 to 8 +move 1 from 5 to 9 +move 5 from 7 to 3 +move 16 from 6 to 3 +move 2 from 7 to 4 +move 8 from 9 to 5 +move 6 from 6 to 1 +move 8 from 5 to 9 +move 2 from 7 to 4 +move 11 from 9 to 1 +move 4 from 4 to 1 +move 14 from 8 to 3 +move 2 from 1 to 7 +move 20 from 3 to 6 +move 5 from 3 to 1 +move 1 from 3 to 5 +move 2 from 7 to 4 +move 20 from 6 to 7 +move 18 from 7 to 6 +move 17 from 6 to 9 +move 1 from 5 to 3 +move 6 from 3 to 2 +move 3 from 3 to 1 +move 1 from 6 to 2 +move 2 from 7 to 8 +move 4 from 1 to 5 +move 2 from 4 to 9 +move 1 from 3 to 2 +move 1 from 8 to 6 +move 18 from 1 to 4 +move 1 from 2 to 7 +move 1 from 6 to 2 +move 3 from 4 to 3 +move 1 from 8 to 1 +move 4 from 1 to 6 +move 7 from 2 to 1 +move 1 from 5 to 7 +move 1 from 4 to 1 +move 2 from 6 to 3 +move 3 from 5 to 9 +move 9 from 9 to 8 +move 10 from 9 to 3 +move 9 from 3 to 5 diff --git a/day5/inputc.txt b/day5/inputc.txt new file mode 100644 index 0000000..55d2f0c --- /dev/null +++ b/day5/inputc.txt @@ -0,0 +1,511 @@ +9 +CZNBMWQV +HZRWCB +FQRJ +ZSWHFNMT +GFWLNQP +LPW +VBDRGCQJ +ZQNBW +HLFCGTJ +move 2 from 1 to 7 +move 6 from 2 to 6 +move 10 from 7 to 6 +move 4 from 3 to 1 +move 5 from 6 to 4 +move 1 from 1 to 9 +move 4 from 6 to 9 +move 12 from 4 to 1 +move 5 from 1 to 4 +move 7 from 9 to 8 +move 11 from 8 to 1 +move 6 from 6 to 2 +move 2 from 5 to 2 +move 3 from 6 to 3 +move 4 from 9 to 4 +move 2 from 2 to 5 +move 1 from 6 to 4 +move 3 from 3 to 6 +move 1 from 8 to 4 +move 1 from 6 to 1 +move 28 from 1 to 4 +move 28 from 4 to 5 +move 1 from 9 to 1 +move 4 from 4 to 1 +move 2 from 6 to 2 +move 2 from 1 to 6 +move 7 from 4 to 2 +move 14 from 2 to 9 +move 1 from 4 to 1 +move 1 from 1 to 2 +move 18 from 5 to 6 +move 2 from 2 to 6 +move 1 from 9 to 7 +move 8 from 9 to 2 +move 15 from 6 to 5 +move 1 from 6 to 3 +move 3 from 2 to 5 +move 1 from 7 to 5 +move 2 from 1 to 3 +move 3 from 2 to 1 +move 1 from 6 to 4 +move 5 from 6 to 5 +move 2 from 2 to 9 +move 35 from 5 to 7 +move 4 from 9 to 3 +move 1 from 4 to 1 +move 5 from 1 to 7 +move 6 from 5 to 3 +move 1 from 9 to 4 +move 11 from 7 to 6 +move 2 from 9 to 2 +move 1 from 4 to 7 +move 14 from 7 to 4 +move 5 from 6 to 9 +move 2 from 2 to 4 +move 6 from 7 to 9 +move 2 from 9 to 5 +move 6 from 9 to 5 +move 8 from 4 to 9 +move 5 from 4 to 3 +move 3 from 5 to 7 +move 1 from 3 to 9 +move 5 from 3 to 4 +move 7 from 9 to 8 +move 2 from 7 to 4 +move 4 from 5 to 7 +move 1 from 5 to 3 +move 5 from 6 to 4 +move 8 from 4 to 8 +move 5 from 7 to 6 +move 1 from 4 to 7 +move 3 from 6 to 9 +move 2 from 6 to 5 +move 7 from 8 to 3 +move 2 from 5 to 9 +move 17 from 3 to 1 +move 3 from 1 to 3 +move 6 from 8 to 9 +move 4 from 4 to 7 +move 6 from 3 to 5 +move 2 from 8 to 5 +move 14 from 7 to 5 +move 2 from 4 to 5 +move 6 from 9 to 5 +move 1 from 7 to 9 +move 1 from 6 to 9 +move 8 from 1 to 9 +move 8 from 5 to 2 +move 2 from 1 to 3 +move 7 from 2 to 6 +move 2 from 3 to 4 +move 1 from 2 to 6 +move 3 from 1 to 6 +move 16 from 9 to 4 +move 2 from 9 to 8 +move 1 from 1 to 6 +move 2 from 9 to 4 +move 1 from 6 to 9 +move 1 from 6 to 1 +move 1 from 1 to 7 +move 1 from 6 to 9 +move 1 from 9 to 3 +move 1 from 3 to 8 +move 1 from 9 to 2 +move 1 from 2 to 7 +move 2 from 5 to 3 +move 7 from 5 to 8 +move 2 from 7 to 9 +move 1 from 6 to 7 +move 3 from 6 to 9 +move 10 from 8 to 7 +move 1 from 4 to 3 +move 3 from 3 to 1 +move 1 from 7 to 1 +move 19 from 4 to 6 +move 3 from 9 to 7 +move 1 from 9 to 2 +move 2 from 1 to 7 +move 1 from 9 to 1 +move 12 from 6 to 9 +move 2 from 7 to 1 +move 1 from 2 to 4 +move 11 from 6 to 3 +move 1 from 4 to 8 +move 1 from 6 to 8 +move 11 from 7 to 9 +move 2 from 8 to 9 +move 18 from 9 to 6 +move 5 from 3 to 7 +move 5 from 3 to 8 +move 11 from 5 to 6 +move 26 from 6 to 4 +move 1 from 6 to 5 +move 1 from 3 to 7 +move 3 from 8 to 3 +move 1 from 8 to 7 +move 3 from 3 to 6 +move 5 from 9 to 3 +move 1 from 4 to 9 +move 8 from 4 to 5 +move 2 from 7 to 8 +move 3 from 3 to 6 +move 3 from 4 to 6 +move 7 from 7 to 4 +move 1 from 9 to 1 +move 5 from 5 to 3 +move 2 from 9 to 7 +move 3 from 8 to 2 +move 7 from 3 to 7 +move 1 from 7 to 6 +move 3 from 5 to 6 +move 7 from 4 to 8 +move 10 from 4 to 5 +move 2 from 4 to 2 +move 3 from 7 to 5 +move 2 from 4 to 1 +move 6 from 8 to 5 +move 5 from 1 to 4 +move 5 from 4 to 2 +move 5 from 7 to 8 +move 10 from 2 to 8 +move 3 from 8 to 3 +move 2 from 5 to 3 +move 13 from 6 to 1 +move 19 from 5 to 3 +move 12 from 3 to 9 +move 4 from 8 to 2 +move 2 from 6 to 7 +move 5 from 8 to 7 +move 9 from 3 to 9 +move 1 from 5 to 9 +move 2 from 7 to 6 +move 3 from 2 to 3 +move 15 from 9 to 3 +move 13 from 3 to 5 +move 1 from 6 to 2 +move 5 from 5 to 8 +move 1 from 2 to 5 +move 1 from 7 to 6 +move 6 from 9 to 6 +move 6 from 6 to 8 +move 4 from 7 to 1 +move 2 from 3 to 6 +move 11 from 1 to 9 +move 1 from 2 to 3 +move 4 from 5 to 6 +move 1 from 1 to 6 +move 10 from 9 to 2 +move 8 from 2 to 3 +move 3 from 1 to 2 +move 8 from 3 to 1 +move 5 from 5 to 4 +move 1 from 9 to 8 +move 2 from 3 to 7 +move 2 from 4 to 5 +move 6 from 1 to 6 +move 9 from 8 to 1 +move 16 from 1 to 9 +move 2 from 7 to 3 +move 3 from 3 to 8 +move 6 from 9 to 6 +move 1 from 5 to 4 +move 1 from 3 to 8 +move 5 from 2 to 1 +move 5 from 1 to 9 +move 2 from 4 to 9 +move 4 from 8 to 6 +move 1 from 8 to 7 +move 4 from 8 to 5 +move 2 from 8 to 2 +move 17 from 9 to 5 +move 11 from 5 to 7 +move 1 from 2 to 5 +move 1 from 2 to 5 +move 1 from 9 to 1 +move 1 from 1 to 6 +move 5 from 7 to 6 +move 20 from 6 to 7 +move 4 from 6 to 4 +move 15 from 7 to 8 +move 2 from 3 to 7 +move 1 from 6 to 5 +move 10 from 8 to 4 +move 1 from 3 to 6 +move 4 from 6 to 4 +move 13 from 7 to 8 +move 1 from 7 to 5 +move 1 from 6 to 3 +move 1 from 6 to 3 +move 1 from 6 to 9 +move 9 from 4 to 1 +move 3 from 8 to 2 +move 14 from 5 to 6 +move 2 from 2 to 8 +move 1 from 3 to 9 +move 14 from 6 to 2 +move 1 from 3 to 9 +move 1 from 9 to 3 +move 15 from 2 to 1 +move 1 from 3 to 9 +move 4 from 4 to 9 +move 10 from 8 to 5 +move 1 from 9 to 5 +move 1 from 1 to 5 +move 4 from 8 to 7 +move 3 from 9 to 3 +move 1 from 8 to 5 +move 1 from 4 to 7 +move 2 from 8 to 7 +move 6 from 5 to 6 +move 4 from 1 to 2 +move 1 from 2 to 5 +move 2 from 2 to 8 +move 2 from 8 to 1 +move 3 from 7 to 2 +move 3 from 4 to 9 +move 18 from 1 to 8 +move 1 from 7 to 3 +move 3 from 9 to 6 +move 1 from 1 to 5 +move 5 from 6 to 4 +move 2 from 1 to 9 +move 8 from 4 to 5 +move 4 from 3 to 2 +move 16 from 5 to 4 +move 8 from 8 to 6 +move 2 from 2 to 6 +move 1 from 7 to 6 +move 7 from 8 to 1 +move 1 from 2 to 3 +move 2 from 8 to 3 +move 4 from 4 to 9 +move 4 from 1 to 2 +move 1 from 7 to 2 +move 1 from 5 to 4 +move 1 from 3 to 7 +move 3 from 4 to 5 +move 1 from 9 to 6 +move 9 from 2 to 5 +move 2 from 3 to 6 +move 3 from 5 to 8 +move 3 from 1 to 7 +move 4 from 5 to 8 +move 1 from 4 to 3 +move 5 from 9 to 5 +move 5 from 5 to 8 +move 1 from 3 to 4 +move 4 from 5 to 1 +move 2 from 5 to 4 +move 13 from 6 to 2 +move 12 from 2 to 9 +move 3 from 9 to 2 +move 4 from 1 to 6 +move 8 from 6 to 2 +move 1 from 4 to 9 +move 3 from 7 to 9 +move 2 from 9 to 8 +move 1 from 7 to 2 +move 9 from 9 to 5 +move 2 from 8 to 6 +move 4 from 2 to 3 +move 1 from 7 to 2 +move 1 from 6 to 4 +move 4 from 3 to 9 +move 9 from 5 to 8 +move 10 from 4 to 2 +move 1 from 4 to 7 +move 1 from 6 to 2 +move 1 from 6 to 7 +move 13 from 2 to 6 +move 1 from 2 to 5 +move 6 from 6 to 5 +move 7 from 5 to 8 +move 1 from 4 to 5 +move 27 from 8 to 5 +move 3 from 6 to 3 +move 2 from 8 to 6 +move 8 from 9 to 5 +move 1 from 7 to 9 +move 1 from 6 to 2 +move 4 from 5 to 9 +move 2 from 3 to 4 +move 9 from 2 to 5 +move 1 from 4 to 1 +move 1 from 4 to 2 +move 1 from 2 to 4 +move 1 from 3 to 7 +move 1 from 1 to 3 +move 1 from 3 to 9 +move 6 from 9 to 4 +move 1 from 7 to 5 +move 13 from 5 to 2 +move 1 from 9 to 5 +move 1 from 7 to 2 +move 5 from 2 to 7 +move 8 from 5 to 7 +move 6 from 4 to 2 +move 1 from 4 to 5 +move 3 from 2 to 4 +move 4 from 2 to 7 +move 2 from 4 to 3 +move 13 from 7 to 3 +move 5 from 2 to 3 +move 4 from 7 to 8 +move 11 from 3 to 8 +move 11 from 5 to 9 +move 4 from 6 to 9 +move 1 from 6 to 5 +move 1 from 4 to 2 +move 1 from 3 to 6 +move 3 from 2 to 6 +move 3 from 6 to 2 +move 1 from 6 to 1 +move 1 from 3 to 8 +move 3 from 3 to 6 +move 2 from 2 to 7 +move 4 from 3 to 9 +move 16 from 9 to 2 +move 1 from 7 to 8 +move 2 from 2 to 8 +move 9 from 2 to 3 +move 6 from 2 to 7 +move 1 from 6 to 3 +move 2 from 9 to 2 +move 1 from 9 to 7 +move 2 from 6 to 3 +move 4 from 3 to 9 +move 2 from 2 to 7 +move 1 from 2 to 5 +move 14 from 5 to 6 +move 14 from 6 to 3 +move 4 from 9 to 8 +move 5 from 8 to 4 +move 1 from 1 to 5 +move 4 from 8 to 1 +move 1 from 5 to 9 +move 8 from 7 to 2 +move 18 from 3 to 7 +move 1 from 1 to 5 +move 1 from 1 to 9 +move 1 from 4 to 5 +move 1 from 8 to 5 +move 8 from 2 to 9 +move 3 from 5 to 8 +move 7 from 7 to 1 +move 3 from 4 to 7 +move 1 from 3 to 6 +move 7 from 8 to 3 +move 2 from 9 to 3 +move 3 from 8 to 9 +move 9 from 1 to 7 +move 9 from 3 to 4 +move 2 from 3 to 4 +move 12 from 7 to 4 +move 1 from 3 to 8 +move 1 from 8 to 7 +move 8 from 4 to 7 +move 11 from 4 to 9 +move 5 from 4 to 8 +move 19 from 7 to 9 +move 1 from 6 to 2 +move 2 from 7 to 4 +move 2 from 8 to 3 +move 1 from 7 to 8 +move 1 from 3 to 2 +move 3 from 8 to 4 +move 1 from 8 to 9 +move 1 from 3 to 2 +move 36 from 9 to 1 +move 5 from 9 to 6 +move 5 from 4 to 2 +move 24 from 1 to 3 +move 5 from 6 to 7 +move 1 from 1 to 4 +move 14 from 3 to 4 +move 4 from 7 to 3 +move 1 from 8 to 5 +move 5 from 2 to 9 +move 1 from 1 to 6 +move 5 from 9 to 1 +move 3 from 2 to 3 +move 1 from 5 to 3 +move 11 from 4 to 2 +move 1 from 7 to 1 +move 6 from 1 to 9 +move 3 from 4 to 2 +move 1 from 6 to 7 +move 10 from 1 to 7 +move 3 from 2 to 1 +move 3 from 3 to 2 +move 2 from 1 to 7 +move 1 from 4 to 8 +move 13 from 3 to 2 +move 1 from 8 to 3 +move 2 from 7 to 5 +move 2 from 3 to 7 +move 2 from 5 to 2 +move 1 from 1 to 7 +move 28 from 2 to 6 +move 1 from 2 to 3 +move 2 from 8 to 2 +move 6 from 9 to 7 +move 1 from 3 to 8 +move 1 from 9 to 8 +move 3 from 6 to 2 +move 14 from 7 to 9 +move 3 from 2 to 1 +move 2 from 2 to 9 +move 2 from 1 to 9 +move 1 from 9 to 1 +move 7 from 6 to 9 +move 2 from 1 to 4 +move 2 from 4 to 6 +move 4 from 8 to 7 +move 1 from 7 to 6 +move 1 from 8 to 1 +move 1 from 3 to 6 +move 1 from 1 to 5 +move 14 from 9 to 8 +move 1 from 5 to 9 +move 5 from 7 to 3 +move 16 from 6 to 3 +move 2 from 7 to 4 +move 8 from 9 to 5 +move 6 from 6 to 1 +move 8 from 5 to 9 +move 2 from 7 to 4 +move 11 from 9 to 1 +move 4 from 4 to 1 +move 14 from 8 to 3 +move 2 from 1 to 7 +move 20 from 3 to 6 +move 5 from 3 to 1 +move 1 from 3 to 5 +move 2 from 7 to 4 +move 20 from 6 to 7 +move 18 from 7 to 6 +move 17 from 6 to 9 +move 1 from 5 to 3 +move 6 from 3 to 2 +move 3 from 3 to 1 +move 1 from 6 to 2 +move 2 from 7 to 8 +move 4 from 1 to 5 +move 2 from 4 to 9 +move 1 from 3 to 2 +move 1 from 8 to 6 +move 18 from 1 to 4 +move 1 from 2 to 7 +move 1 from 6 to 2 +move 3 from 4 to 3 +move 1 from 8 to 1 +move 4 from 1 to 6 +move 7 from 2 to 1 +move 1 from 5 to 7 +move 1 from 4 to 1 +move 2 from 6 to 3 +move 3 from 5 to 9 +move 9 from 9 to 8 +move 10 from 9 to 3 +move 9 from 3 to 5