From 47510ec0ff4a0fdeb1d74d7b0ab8f1ced2801c2f Mon Sep 17 00:00:00 2001 From: TimStallard Date: Mon, 25 Dec 2017 23:22:40 +0000 Subject: [PATCH] all done --- day17/part1.js | 8 + day17/part2.js | 10 + day18/input.txt | 41 ++ day18/part1.js | 39 ++ day18/part2.js | 54 +++ day19/input.txt | 201 ++++++++++ day19/part1.js | 35 ++ day19/part2.js | 37 ++ day20/input.txt | 1000 +++++++++++++++++++++++++++++++++++++++++++++++ day20/part1.js | 15 + day20/part2.js | 14 + day21/input.txt | 108 +++++ day21/part1.js | 66 ++++ day21/part2.js | 66 ++++ day22/input.txt | 25 ++ day22/part1.js | 31 ++ day22/part2.js | 32 ++ day23/input.txt | 32 ++ day23/part1.js | 30 ++ day23/part2.js | 13 + day24/input.txt | 56 +++ day24/part1.js | 25 ++ day24/part2.js | 28 ++ day25/part1.js | 36 ++ 24 files changed, 2002 insertions(+) create mode 100644 day17/part1.js create mode 100644 day17/part2.js create mode 100644 day18/input.txt create mode 100644 day18/part1.js create mode 100644 day18/part2.js create mode 100644 day19/input.txt create mode 100644 day19/part1.js create mode 100644 day19/part2.js create mode 100644 day20/input.txt create mode 100644 day20/part1.js create mode 100644 day20/part2.js create mode 100644 day21/input.txt create mode 100644 day21/part1.js create mode 100644 day21/part2.js create mode 100644 day22/input.txt create mode 100644 day22/part1.js create mode 100644 day22/part2.js create mode 100644 day23/input.txt create mode 100644 day23/part1.js create mode 100644 day23/part2.js create mode 100644 day24/input.txt create mode 100644 day24/part1.js create mode 100644 day24/part2.js create mode 100644 day25/part1.js diff --git a/day17/part1.js b/day17/part1.js new file mode 100644 index 0000000..24273b4 --- /dev/null +++ b/day17/part1.js @@ -0,0 +1,8 @@ +var input = 344; +var arr = [0]; +var pos = 0; +for(var i = 1; i <= 2017; i++){ + pos = (pos+input)%arr.length + 1; + arr.splice(pos, 0, i); +} +console.log(arr[pos+1]); diff --git a/day17/part2.js b/day17/part2.js new file mode 100644 index 0000000..5d9aa8f --- /dev/null +++ b/day17/part2.js @@ -0,0 +1,10 @@ +var input = 344; +var len = 1; +var pos = 0; +for(var i = 1; i <= 50000000; i++){ + pos = (pos+input)%len + 1; + len++; + if(pos == 1){ + console.log(i); + } +} diff --git a/day18/input.txt b/day18/input.txt new file mode 100644 index 0000000..90173ae --- /dev/null +++ b/day18/input.txt @@ -0,0 +1,41 @@ +set i 31 +set a 1 +mul p 17 +jgz p p +mul a 2 +add i -1 +jgz i -2 +add a -1 +set i 127 +set p 622 +mul p 8505 +mod p a +mul p 129749 +add p 12345 +mod p a +set b p +mod b 10000 +snd b +add i -1 +jgz i -9 +jgz a 3 +rcv b +jgz b -1 +set f 0 +set i 126 +rcv a +rcv b +set p a +mul p -1 +add p b +jgz p 4 +snd a +set a b +jgz 1 3 +snd b +set f 1 +add i -1 +jgz i -11 +snd a +jgz f -16 +jgz a -19 diff --git a/day18/part1.js b/day18/part1.js new file mode 100644 index 0000000..5a02d16 --- /dev/null +++ b/day18/part1.js @@ -0,0 +1,39 @@ +var pc = 0; +var registers = {}; +var lastsnd = 0; +var instructions = require("fs").readFileSync("input.txt").toString().split("\n").filter((a)=>(a)); +while((pc >= 0) && (pc < instructions.length)){ + val = a => ((isNaN(parseInt(a))) ? (registers[a]) : (parseInt(a))); + var instruction = instructions[pc]; + var parts = instruction.split(" "); + switch(parts[0]){ + case "snd": + lastsnd = val(parts[1]); + break; + case "set": + registers[parts[1]] = val(parts[2]); + break; + case "add": + registers[parts[1]] += val(parts[2]); + break; + case "mul": + registers[parts[1]] *= val(parts[2]); + break; + case "mod": + registers[parts[1]] = registers[parts[1]] % val(parts[2]); + break; + case "rcv": + if(val(parts[1]) != 0){ + console.log(lastsnd); + pc = instructions.length; + } + break; + case "jgz": + if(val(parts[1]) > 0){ + pc += (val(parts[2]) - 1); + } + break; + } + pc++; +} + diff --git a/day18/part2.js b/day18/part2.js new file mode 100644 index 0000000..59e504b --- /dev/null +++ b/day18/part2.js @@ -0,0 +1,54 @@ +var pc = [0,0]; +var registers = [{p: 0}, {p: 1}]; +var lastsnd = [0,0]; +var queue = [[],[]]; +var instructions = require("fs").readFileSync("input.txt").toString().split("\n").filter((a)=>(a)); +var deadlock = 0; +var numSends = [0, 0]; +while(deadlock < 2){ + deadlock = 0; + for(var p = 0; p <= 1; p++){ + if((pc[p] >= 0) && (pc[p] < instructions.length)){ + val = a => ((isNaN(parseInt(a))) ? (registers[p][a]) : (parseInt(a))); + var instruction = instructions[pc[p]]; + var parts = instruction.split(" "); + switch(parts[0]){ + case "snd": + numSends[p]++; + queue[1-p].push(val(parts[1])); + break; + case "set": + registers[p][parts[1]] = val(parts[2]); + break; + case "add": + registers[p][parts[1]] += val(parts[2]); + break; + case "mul": + registers[p][parts[1]] *= val(parts[2]); + break; + case "mod": + registers[p][parts[1]] = registers[p][parts[1]] % val(parts[2]); + break; + case "rcv": + if(queue[p].length >= 1){ + registers[p][parts[1]] = queue[p].splice(0,1)[0]; + } + else{ + pc[p]--; + deadlock++; + } + break; + case "jgz": + if(val(parts[1]) > 0){ + pc[p] += (val(parts[2]) - 1); + } + break; + } + pc[p]++; + } + else{ + deadlock++; + } + } +} +console.log(numSends[1]); diff --git a/day19/input.txt b/day19/input.txt new file mode 100644 index 0000000..2b317f4 --- /dev/null +++ b/day19/input.txt @@ -0,0 +1,201 @@ + | + +---------------------------------------------------------------------------+ +---------------------+ +---+ +-------------------------------------+ + | | | | | | | | | + +---------------+ +---------------+ +-------|-------------------------------------+ | | | | +-----------+ +-----+ + | | | | | | | | | | | | | | | | | + +---+ | | +-------+ | | +-----------------------------|-------------------------------------------|-----------+ | | | | | | +-----------+ + | | | | | | | | | | | | | | | | | | | | | | | | | + +-----------+ | +-|-----------|-----------+ | +---+ | | | +-----------------------|-|---------------|-------|-----------|-----------------------+ | + | | | | | | | | | | | | | | | | | M | | | | | | | | | + | | | +-|-----------|---------------------|-----+ | | | | | +---------+ +-+ +---------------|-----------|---------------+ | +-+ | + | | | | | | | | | | | | | | | | | | | | | | | | | | | | | + | | | | | +-------------------------|---------------|---------------|-------|-------+ | | +-----+ +-----+ | | | | | | | +---+ +-+ | | | | | | + | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | + | | +---|-+ | +---+ | +---------------------------------------|-------------|---------------------------|-----|-|---|-------|---------------------|-|-|---------+ | + | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | + | | +---+ | | | | | | | | +-------|-------|-------|---|-|-----|---------------|-----------|-------------|-|-----------|---|-|-|-|---+ | | | | + | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | + | | | | | | | | | | | | +-----------------------------|---------------------|---|-|-------------------|-|-----------|---|-|-|-|-------|-|---+ + | | | | C | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | + | | +-|---|-----|-|-----------|-------|-----------------------------|-------------+ | | | | | | +-------------|-|---|-|-|---|---+ | | | | | | | | | | | | + | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | + | | +-|---|-----|-------------|-------|-----------------------------|---------------|-------------------|-------|-----|---------|---|-+ | | | | | | | | | +-|---|---|-----|-+ | + | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | + | +---+ | | | | | | | | +-+ | +---------------------|---+ | | | | | | | +-|-----|-|-------------|-----------+ | | | | | | | | +---+ + | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | P | + | | | | | | | | | | | | | +-+ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | + | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | + | | | | | | +---|-+ | +---|-|-----|-----------|-+ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | + | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | + | | | | | | | | | | | | | | | | | | | | | | | +---|---------+ | | +---|-|-|---|---------|-----------|-+ +-+ | | | | | | | + | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | + | | | | | | | | | | | | | | | | | | | | | | | | +-------+ | | | | | | | | | | +-------+ | | | | | | | + | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | + | | +---|---|---|---------|-----+ +-----|-|-----|-------------------|-----|-------------|-|-------|-----------|-|-----|-------------------|-------|---------|---|-----------|-----------+ | | | | | + | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | + | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | +-------+ | | | + | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | + | | | | | | | | | | | | | | +---+ | | | | | | | | | | | | | | | | | | | | | | | +-|-+ Y +-|-|-----+ | | | + | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | + | | | | | | | | | | | | | | | | | | | | | | | | | | | +-+ | | | | | | | | | | | | | | | | | | | | | | | + | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | + | | | | | | +-|-------|-----|-|-----|-------------------|-------------|---------------|---------------------|-----|-|---------|-|---|-|-|-------|---|-------+ | | | | | | | | | | | | | + | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | + | | | | | | | | | | | | | | | | | +-----|---------|-------------|---------------|---|---|-|-|-----|-+ | | +-------|-+ +---|---|-------+ | | | + | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | + | | | | | | | | | | | | | | | | | | | +-------------------|-------|-------------|---+ | | | | | | | | | | | | | | | | | + | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | + | | | | | | | | | | | | | | | | +-|-------------------|---|-----+ | | | | | | | | | | | | | | | | | | | | | | | | | + | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | + | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | + | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | + | | | | | | | | | | | | | | | | | | +-----|-----|---------|-------|---|-|-------------------|---------------------------------------------|-|-----|---+ | | | | + | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | + | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | +-|-+ | | | | | | | | | | | | | + | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | + | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | + | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | + | | | | | | | | | | | | | | | +-----|---|-|-|-----|-----|-+ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | + | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | + | | | | | | | | | | | | | | | | +-------|-|-----|-----|-+ | | +---+ | +---------|-------|---------|-|---|-----|-|-|-+ | | | | | | | | | | | | + | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | + | | | | | | | | | | | +---|-|---------------|-|---|-|-----|-------------|-+ | | | +-----------|-------------|---------+ | | | | | +-----+ | | | | | | | | | | | | + | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | + | | | | | | | | | | | | | | | | | | | | | | | | | | | | +-------|---------------------------|---|-------|---+ +-------|---+ | | | | | | | | | | | + | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | + | | | | | | | | | | | +-+ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | + | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | + | | | | | | | | | | | +-----|---------------|-|-----------|-|-----|-----|-|---|---|-----------------+ | | | | | | | | | | | | | | | | | | | | | | | | | | | | + | | | | | | | | | | | | | | | | | | | | | | | Q | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | + | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | +-----+ | | | | | | | | | +-+ | | | | | | | | | | | | | | | + | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | + | | | +-----------|---|---------|-|-----------------------+ | | | | | | | | | | | | | | | | +---------------------|-|-|-----------|----------E------+ | | | | | | | | | | | + | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | + | | | | | | | | | | | | | | | | | | | | | | +---------|-|---|-----------|-|-|---+ | | | | | | | | | | | | | | | | | | | | | | | + | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | + | | | | | | | | | | | | | | | | | | | | | +---|-------|---|-+ | | +-|-------------|-|-----------|-----|---|-----+ | | +-+ | | | | | | | | | | | + | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | + | | | | | | | | | | | | | +-----------------|-|---|-----|-----------|---|-|---------------|-----|-------------------|-|-|-----|---------------+ | | | | | | | | | | | + | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | + | | | | | | | | | | | | | | | | | | | +---|-|---|-------|---|-----|---|-----------|---------------|-----|-------|---|-----|-----------------+ | | | | | | | | | | | + | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | + | | | | | | | | | | | | | +-------+ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | + | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | + | | | | | | +---------------|-+ | | +-|-|-------------------|-----------|-----|-|-|-|---------------|-|-----------|-----|-|-|---------------------|-------------|-|-|-|-----|-|-+ | | + | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | + | | | | | +-|---+ | | | | | | | | | | | | | | | +-|---|-----+ | +---|---|-|---+ | | | +-------|-|-------|---|-|---|-------|-----+ | +-------|-----+ | | | | | + | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | + | | +-+ | | | | | | | | | | +-----------|-|-|---|---|-------|---|---|---------------|-|-|---------+ | | +-|---|---------|-|-----------|-------|-------|-----|-----|-----|---+ | | + | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | + | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | +-------|-|-+ | | + | | | | | | | | | | | | | | | | | | | | | | H | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | + | | | | +-|---|-----+ | | | | | | | | | | | | | | | | +-|-------|---|-|-----------|-----------|-|---+ | | | | | | | | | | | | | | | | | | | | + | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | + | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | +-----|-|-------|-|-----|---|-----|-------------------|-------|-+ | | | | | | | | + | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | + | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | +-|-----+ | | | | | | | | | + | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | + | | | | | | | | | +---|-|---|-|---|-----------|---|-----|-|---------|---|-------------|-|-----|-----|-------|-------|-------|---|---|-|-|-|-----------------------------------|-------------+ + | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | + | | | | | | | | | | | | | | | | | | | | | | | | +-|-------|---+ | | | | | | | | | | | | | | | | | | | | | | | | | +-----|-+ | | | | | + | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | + | | | | | | | | +-------|---|-------|---------------|-|---------|-----|---|-----------|---|-|-|-|-----------------------------|-------|-|---------+ | | | | | | | | | | | | | + | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | + | | | | | | | | | | +-+ | | | | | +---|-----|-----------------|-|-------+ | | | | | | | +-|-------+ | | | | | | | | | | | | | | | | | | | | | | | | | + | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | + | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | +---|---|-------|-|---|-----------------+ | | | | +---+ | | | | + | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | + | | | | | | | | | | | | | | | | +-------|-|-|-|-------|---------|-|-------------|-|---|-|-----|-|-------------------|-------|-|-------|-------------+ | | | | | | | | | | | + | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | + | | | | | | | | | | | | +-----+ | | | | | | | | | | | | +---------|-----+ | +-+ | | | | | | | | | | | | | | | | | | | | | | | | | | | | + | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | + | | | | | | | | | | | | +-|-----------|---|-|---|-------+ +-------|-----------+ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | + | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | + | | | | | | | | | | | | | | | | | | | | | | | | | | | | | +-|-----+ | | | | | | | | | | | | | | | | | | | | | | | | | | | + | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | + | | | | | | | | | | | | | | | | | | | | | | | | | | | | +---|-|---------|-|---------------+ | | | | | | | | | | | | | | | | | | | | | | | + | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | + | | | | | | | | | | | | | | +---|---------|---|---------------|---|---|-----|---------|-------|---------------------|---|-------|-|-|-----+ | | | | | | | | | | | | | + | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | + | | | | +-|-+ | | | | | | | | | | | | | | | | | | | | | | | | +-|---------|-------------------|-----------|---|-----|-------|-----|---------|-+ | | | | | | + | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | + | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | +-----|-----+ | | | | | | + | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | + | | +-|---|-|---|-|-----|---|-|---|-|-+ +---|-+ | | | | | | | +-------|-----+ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | + | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | + | | +---+ | | | | | | | | | | | | | | | | | | | | | | | | | +---|-----|-------|-|-----------------|-|-|-|-|---|-|---|-|-|-|-------------------|-------|---|-----+ | | | + | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | + | | | +-----|---+ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | + | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | + | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | +-------|---------|-------|-|-|-------|-----|-|-|-|---------|-----|-----+ | | | | | + | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | + | | | | | | | | | | | | | | | | | | +-|-+ | +-------------|---|---|---------|-------------|-|---------|-------|---|-|-|-------|-|-|---------|-------|-|---|-----------|-----+ | | | + | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | + | | | | +-----|-----|---------|-+ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | +-----+ | | + | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | + | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | + | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | + | | | | | | | | | | | | | | | | | | | +-------|-----------|-------|-|-------|-----+ | | | | | +---|-|-|---|-|-|-+ | | | | | | | | | | | | | | | | + | | | | | | | | | | | S | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | + | | | | | | | | | | | | | | | | | | | +---|-------|---------------------------------|---------|-----------------|---|-|---|-|---+ | | | +---------|-----|---------+ | | | | +-|-+ + | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | + +-----|-|---|-|---|-----------|-----|-|---|-----|---------|---+ | | | | | +-------|-+ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | + | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | + | | | | | | +---|-----|---------|-----|---|-|-|-|-----|-------|-------|---|-----|-------+ +-|-|-------|-|---------------------|-|-|-------------------|-|-+ | | +-|---+ | | | | | | | | | | + | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | + +-------------|-|-|-|-----|---------|-----|-|-----|-|---------------------|---|-----|---------|-|-|-|-------|---------+ | | | | | | | | | | | | | | | | | | | | | | | | | | | + | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | + | | +-|-----|-|---|-|-----|---------------|---|---|---|---|-------|-------|-------|-----+ | | | | | | | | | | | | | +---|-+ | | | | | | | | | | | | | +-+ | | | + | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | + | | +---|---|-|-----------|---|-------|-------|---+ | | | | +-----------------------|---|-------|---+ +---------------|-----+ | | | | | | | | | | | | | | | | | | | | | + | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | + | | | +---+ | +-|---|-+ +-----|-----|-+ +-+ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | + | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | + | | | +-|-----------|-|---|---+ | +-------|-+ | | | | | | | | | +---|-+ | | | | | | +-|-|-----|-----+ | | | | +---+ | +-+ | +-+ | | | | | | + | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | + | +-----|-|V------|-|---|-|---------|-|-------|-----|-----------------|-------------------------|---------|-----|---------------------------+ | | | | +-|-+ | | | | | | | | | | | + | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | + | | +-|-|-----|-|-|-|---------------------|-|-------|---------------|---|-------|-------------|---------|-|-----------+ | | | | | | | | | | | | | | | | | | | | | + | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | + | | +-----+ | | | | | | +---|-----------|-|---------------|-------|---|-|-----------------------|---|-----------------|-----|-------|-|---|-|---|---+ | | | | | | | | | | + | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | + | | +---------|-|---|-|-|-----------------|-|-------------------|-------|---|-------------------|---------|---------------------|-|-----|-------|---|-|---|-------------------|-|-----|---|-|-----+ | + | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | + | +-|-----|-----+ +---|---|-----------------|---+ | | | | | | | | | | | | | +-----------+ | | | | | | | | | | +-|---|-----|-----+ | | + | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | + +-|-|-----|---------|-|-+ | +-----|-|-+ | | | | | | | | | | | | | +-----------|---+ | | | | | | | | | | | | | | | | + | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | + +---------|---------|-|-----------------|-+ | | | +---|-------|---|---|---|---------------+ | | | | | +-|-------+ | | | | | | | | +---------------------|-+ | +-----+ | + | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | + | | | +---|---------+ +-+ | | | | | +---------|---------------+ | +-|---------------|-------|-----|---------------|-|-----|-------|-------|---------------------|-|---+ | | + | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | + | | | | | | | | | | +---+ | | +---|-----------|---|-----------|-----------|-|---------|-|-----------|-----------|-|---|-|-------------------------|-----|-------------+ + | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | + | | | | | | | | +-------|-|-+ | | | | | | | | | | | | | +-----------|-----+ | +---+ | | | | | | | +---------------------+ +-------|-------+ + | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | + | | | | | | +-----|-----|-+ | | +-|-----------|---|-----------------|---+ | | | +-----+ | +-------|-----------+ | | | | | +-------------|-------------+ + | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | + | | | | | | | | | | | | | | +---------|---|---|---|-------|-|-|-----------|-|-|---------|-------------------+ | +---|-------------+ +-------------|-----+ + | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | + | | | | | | | | | | +-----------|-----|-----------+ | | +-----|-|-|-------------------------|-----------+ +-|-|-|-------------+ | + | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | + | | +---------------------|-----|-------|-|---------|-----|-----------|-|-----|---|-+ +-------+ | +-|-|-+ | | | +---------------------------------+ + | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | + | | +-|-|---------|---|-------|---------|---|-|---------------|-------|---------|---------|-|-|-|---------|---------------------|-------|---------+ | | +-+ + | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | + | | | | | | | +-------|-----|-----------|---|---|---+ | | | | | | +-+ +---------|---------------+ | | | | | | | | | | | + | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | + | | +---+ | | | | | | | | | | | | | +---------|-|-|-------|---------+ | | +---------|-----+ +-+ | | | | + | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | + | | | | | | | +---------|-+ | | | | | +-----+ | +-----|-------+ +-+ +---------------+ | | | | | | | + | | | | | | | | | | | | | | | | | | | | | | | | | | + | | | | | | | +---------|-------|---------|---|---|-----|-----------|---------------------------------------------|-------+ +-------------------------------------|---------------+ + | | | | | | | | | | | | | | | | | | | | | | | | + | | | +---------+ | +-------------|-----------|---------|---|-------------|-------------------------------------------------+ | | | | | + | | | | | | | | | | | | | | | | | | | | + | | | | +---------+ +---------|---+ +---|---------+ +-+ +---------------------------------------------+ | | | | | + | | | | | | | | | | | | | | | | | | + +-+ +-------------------------|-----------+ +-+ +---|---+ | +---------------------------------------------------------------+ +-----+ | +-------------+ + | | | | | | + +-----+ +-------+ +--------------------------------------------B----------------------------------------------------------------------+ + diff --git a/day19/part1.js b/day19/part1.js new file mode 100644 index 0000000..1fb009a --- /dev/null +++ b/day19/part1.js @@ -0,0 +1,35 @@ +var grid = require("fs").readFileSync("input.txt").toString().split("\n").map((a)=>(a.split(""))); +var x = 163; +var y = 0; +var dirs = [[0, 1], [1, 0], [-1, 0], [0, -1]]; +var dir = 0; +var visited = []; +var end = false; +var letters = []; +while(!end){ + if(grid[y][x].match("[A-Z]")){ + letters.push(grid[y][x]); + } + visited.push((y*201) + x); + if(grid[y][x] == "+"){ + var changed = false; + var i = 0; + while(!changed){ + if(visited.indexOf(((y + dirs[i][1]) * 201) + (x + dirs[i][0])) == -1){ + //not visited before + if(grid[y+dirs[i][1]][x+dirs[i][0]] != " "){ + //not empty + changed = true; + dir = i; + } + } + i++; + } + } + x += dirs[dir][0]; + y += dirs[dir][1]; + if(grid[y][x] == " "){ + end = true; + } +} +console.log(letters.join("")); diff --git a/day19/part2.js b/day19/part2.js new file mode 100644 index 0000000..cfa6bd5 --- /dev/null +++ b/day19/part2.js @@ -0,0 +1,37 @@ +var grid = require("fs").readFileSync("input.txt").toString().split("\n").map((a)=>(a.split(""))); +var x = 163; +var y = 0; +var dirs = [[0, 1], [1, 0], [-1, 0], [0, -1]]; +var dir = 0; +var visited = []; +var end = false; +var letters = []; +var moves = 0; +while(!end){ + if(grid[y][x].match("[A-Z]")){ + letters.push(grid[y][x]); + } + visited.push((y*201) + x); + if(grid[y][x] == "+"){ + var changed = false; + var i = 0; + while(!changed){ + if(visited.indexOf(((y + dirs[i][1]) * 201) + (x + dirs[i][0])) == -1){ + //not visited before + if(grid[y+dirs[i][1]][x+dirs[i][0]] != " "){ + //not empty + changed = true; + dir = i; + } + } + i++; + } + } + x += dirs[dir][0]; + y += dirs[dir][1]; + if(grid[y][x] == " "){ + end = true; + } + moves++; +} +console.log(moves); diff --git a/day20/input.txt b/day20/input.txt new file mode 100644 index 0000000..6f99fed --- /dev/null +++ b/day20/input.txt @@ -0,0 +1,1000 @@ +p=<-1021,-2406,1428>, v=<11,24,-73>, a=<4,9,0> +p=<-181,-26,548>, v=<11,73,-8>, a=<0,-7,-2> +p=<-2101,-2706,-1112>, v=<-19,-66,75>, a=<12,19,-2> +p=<-1221,-16,-1412>, v=<0,-1,-15>, a=<6,0,8> +p=<1009,-716,-1062>, v=<-164,55,125>, a=<11,-2,-7> +p=<-671,1794,-1062>, v=<46,87,41>, a=<-1,-17,1> +p=<255,-544,641>, v=<-21,93,-83>, a=<-1,-7,4> +p=<-945,-1004,-29>, v=<88,106,-38>, a=<1,-1,8> +p=<-1045,-644,-949>, v=<76,114,98>, a=<5,-9,0> +p=<640,956,741>, v=<-21,-79,-49>, a=<-8,-3,-4> +p=<230,461,-54>, v=<-35,-46,-8>, a=<2,0,3> +p=<-250,596,-354>, v=<-31,-87,-22>, a=<10,5,11> +p=<815,-779,-1364>, v=<-22,78,134>, a=<-11,0,1> +p=<-175,841,-459>, v=<55,-84,93>, a=<-7,0,-8> +p=<349,-2471,-1471>, v=<-29,111,4>, a=<1,3,8> +p=<-443,2236,5>, v=<53,-46,17>, a=<-3,-8,-2> +p=<-1658,634,20>, v=<149,5,-92>, a=<-3,-8,13> +p=<786,-822,-175>, v=<17,131,-7>, a=<-11,-10,3> +p=<-1151,1323,-84>, v=<-9,-118,35>, a=<14,2,-4> +p=<1163,-237,-578>, v=<-117,93,24>, a=<4,-11,3> +p=<1273,28,-590>, v=<-105,-68,57>, a=<-2,11,0> +p=<-1400,-170,-678>, v=<108,52,35>, a=<3,-6,5> +p=<1504,-720,-1767>, v=<-144,0,80>, a=<1,11,14> +p=<624,622,-1206>, v=<-64,-20,59>, a=<1,-6,9> +p=<-102,-412,1258>, v=<14,38,-63>, a=<-1,0,-8> +p=<-1477,-390,488>, v=<79,102,31>, a=<9,-11,-12> +p=<5988,-431,13>, v=<-177,-45,62>, a=<-6,5,-5> +p=<4236,853,1285>, v=<-54,-11,109>, a=<-10,-2,-13> +p=<1248,-755,1921>, v=<-42,81,-30>, a=<-1,-4,-4> +p=<-3756,-1103,-1391>, v=<54,-17,58>, a=<8,5,0> +p=<-4296,-215,1249>, v=<-36,-29,-2>, a=<17,3,-4> +p=<-2088,-2183,2257>, v=<72,3,-44>, a=<1,7,-4> +p=<348,3397,-3599>, v=<-42,-117,0>, a=<2,-2,12> +p=<-1416,4645,-407>, v=<44,-44,-83>, a=<1,-12,8> +p=<-2700,2065,-11>, v=<85,26,88>, a=<2,-9,-7> +p=<4572,4273,601>, v=<-93,-91,-50>, a=<-8,-7,2> +p=<6937,1685,-3884>, v=<-121,-76,16>, a=<-17,0,14> +p=<722,288,-2267>, v=<-34,-93,92>, a=<0,7,1> +p=<5001,112,3310>, v=<-102,53,-58>, a=<-11,-5,-8> +p=<-686,-4882,76>, v=<7,96,20>, a=<2,11,-2> +p=<-3260,-3958,384>, v=<32,54,-132>, a=<10,11,10> +p=<84,1894,3046>, v=<110,-28,-92>, a=<-10,-5,-4> +p=<2592,-2814,1946>, v=<-50,48,-88>, a=<-6,7,0> +p=<-213,-1571,-3257>, v=<43,-43,-1>, a=<-3,10,13> +p=<524,2169,1462>, v=<-2,-98,-66>, a=<-2,0,0> +p=<-1885,-2781,1506>, v=<73,127,-45>, a=<1,0,-2> +p=<-996,3744,-5856>, v=<-150,-41,96>, a=<9,-3,3> +p=<-1794,1483,13030>, v=<-12,-40,-128>, a=<3,0,-11> +p=<-10230,4485,5848>, v=<93,-2,-17>, a=<9,-6,-7> +p=<420,1686,-809>, v=<-23,-136,93>, a=<0,4,-5> +p=<-2351,-4485,-2475>, v=<131,164,110>, a=<1,11,4> +p=<2392,-2853,3985>, v=<-121,86,-126>, a=<-2,9,-12> +p=<437,632,-2356>, v=<-186,-2,85>, a=<18,-4,6> +p=<2817,-2054,1129>, v=<-83,12,-48>, a=<-9,12,-2> +p=<-1122,1614,2284>, v=<108,-33,-86>, a=<-5,-6,-4> +p=<-1140,-4209,295>, v=<-5,167,34>, a=<7,7,-5> +p=<-1671,-2589,-3872>, v=<34,39,142>, a=<6,11,8> +p=<-708,-1725,-38>, v=<-10,-9,-33>, a=<5,11,4> +p=<147,399,3715>, v=<9,-32,-118>, a=<-2,1,-9> +p=<1785,-384,997>, v=<-63,97,-43>, a=<-4,-8,-1> +p=<-1302,-132,1996>, v=<99,-12,44>, a=<-3,2,-16> +p=<2541,-1203,1069>, v=<66,0,-66>, a=<-22,7,1> +p=<435,1713,1771>, v=<-7,-124,-10>, a=<-2,3,-9> +p=<-2698,-5379,-1198>, v=<35,70,-43>, a=<2,4,4> +p=<-7619,-717,3279>, v=<73,39,83>, a=<7,-1,-9> +p=<-484,-2306,-875>, v=<-43,65,6>, a=<8,8,5> +p=<-1147,1383,-2388>, v=<-4,-80,23>, a=<8,0,13> +p=<-212,-4618,2848>, v=<49,147,-15>, a=<-4,14,-17> +p=<2151,-402,4089>, v=<-72,70,-97>, a=<-6,-5,-16> +p=<2695,3661,1998>, v=<-86,-133,-82>, a=<-8,-9,-4> +p=<1981,992,1284>, v=<19,-48,-49>, a=<-15,-1,-3> +p=<2151,1740,366>, v=<-54,-38,-103>, a=<-8,-7,9> +p=<2661,1961,-824>, v=<-111,-6,-24>, a=<-5,-12,8> +p=<-1167,977,-542>, v=<-13,-25,-43>, a=<8,-3,8> +p=<660,950,-605>, v=<-86,-71,27>, a=<5,2,1> +p=<-1419,1229,-1244>, v=<20,-115,91>, a=<6,5,-2> +p=<-1851,-85,2518>, v=<44,91,-61>, a=<6,-9,-8> +p=<-1261,4127,-1342>, v=<-43,-148,-12>, a=<6,0,4> +p=<-323,-8711,-1202>, v=<-4,122,-17>, a=<1,13,4> +p=<-4355,3693,2732>, v=<24,-60,-85>, a=<9,-5,-1> +p=<1553,-2551,-376>, v=<-71,18,55>, a=<1,5,-3> +p=<1175,1621,3054>, v=<15,-44,5>, a=<-4,-1,-8> +p=<-771,-3783,72>, v=<41,4,-48>, a=<-1,9,3> +p=<-561,-2929,-992>, v=<19,-12,-10>, a=<0,8,3> +p=<-5321,81,618>, v=<44,98,-53>, a=<10,-7,2> +p=<-1361,-1168,-1743>, v=<106,60,62>, a=<0,4,10> +p=<-438,-1051,-1028>, v=<0,72,42>, a=<5,1,5> +p=<-1348,41,-1>, v=<91,-75,19>, a=<2,10,-3> +p=<-477,769,1052>, v=<24,-47,-69>, a=<2,-2,-2> +p=<-919,-388,-781>, v=<72,7,30>, a=<0,3,4> +p=<-633,-336,675>, v=<106,-18,-19>, a=<-8,6,-5> +p=<-230,-271,259>, v=<5,19,-29>, a=<2,0,1> +p=<1408,-349,-612>, v=<-44,46,-32>, a=<-9,-3,11> +p=<-1452,847,-1262>, v=<113,-18,46>, a=<0,-7,7> +p=<91,-1183,-4776>, v=<15,-69,89>, a=<-1,6,3> +p=<-7763,5209,2551>, v=<106,-82,-74>, a=<7,-4,0> +p=<-3275,4903,-1614>, v=<79,67,-144>, a=<1,-12,11> +p=<-1388,-3495,-2617>, v=<-134,104,78>, a=<10,0,0> +p=<-5672,-3801,-662>, v=<62,8,3>, a=<6,6,1> +p=<1035,-5126,-1612>, v=<-67,50,-126>, a=<2,11,14> +p=<580,-615,1924>, v=<-63,-83,-46>, a=<3,8,-2> +p=<2049,1101,3055>, v=<-25,13,-49>, a=<-4,-4,-5> +p=<5091,-1187,-156>, v=<-115,-7,7>, a=<-6,4,0> +p=<-18,-4398,-2821>, v=<-40,-5,96>, a=<3,13,1> +p=<-486,3285,-5473>, v=<59,-44,144>, a=<-3,-6,5> +p=<-2462,1309,923>, v=<-54,-49,6>, a=<11,0,-3> +p=<320,4533,-3913>, v=<-53,-65,84>, a=<3,-8,5> +p=<3180,1153,6487>, v=<26,-16,-100>, a=<-11,-2,-11> +p=<-581,-3794,236>, v=<-43,72,19>, a=<7,11,-3> +p=<-1231,-2234,1536>, v=<-126,36,-25>, a=<18,7,-5> +p=<-2001,2066,1196>, v=<112,-95,-71>, a=<-1,-1,1> +p=<1719,-2804,3646>, v=<-32,33,-36>, a=<-5,10,-14> +p=<-41,1856,866>, v=<14,31,40>, a=<-1,-12,-8> +p=<-3241,-354,-3044>, v=<111,26,183>, a=<5,-1,-3> +p=<549,-1024,-2094>, v=<-110,49,146>, a=<8,0,-4> +p=<6554,-2720,-1361>, v=<-73,-47,28>, a=<-8,8,1> +p=<-2966,1552,4415>, v=<43,-98,95>, a=<3,3,-14> +p=<-870,-1840,-10081>, v=<-105,8,119>, a=<8,3,12> +p=<-118,1168,863>, v=<-13,46,-25>, a=<1,-5,0> +p=<-12374,1200,4303>, v=<106,12,82>, a=<17,-3,-13> +p=<-5974,-3440,10463>, v=<-28,58,-94>, a=<13,3,-14> +p=<3418,4384,-2673>, v=<-74,28,36>, a=<-2,-10,3> +p=<1322,2208,-1889>, v=<-25,-3,61>, a=<-1,-4,0> +p=<3114,6272,-3569>, v=<18,2,64>, a=<-7,-12,3> +p=<-2617,-3668,-2074>, v=<205,-99,-101>, a=<-7,10,8> +p=<-4707,1120,12290>, v=<65,9,-11>, a=<3,-2,-16> +p=<-7500,-11211,-6729>, v=<-37,41,119>, a=<12,13,3> +p=<4014,-11021,5602>, v=<11,153,48>, a=<-6,7,-10> +p=<1354,-1578,-3423>, v=<81,2,-85>, a=<-6,2,9> +p=<9714,-2167,-1770>, v=<-22,-41,8>, a=<-12,5,2> +p=<-6265,-2376,9022>, v=<67,23,-42>, a=<5,2,-10> +p=<4432,-115,-6938>, v=<-117,-95,-51>, a=<0,5,12> +p=<394,4626,3880>, v=<1,-184,-16>, a=<-1,1,-9> +p=<6847,1062,-2654>, v=<-196,46,-68>, a=<-4,-6,12> +p=<637,2034,-3113>, v=<-50,-172,117>, a=<2,7,0> +p=<-6049,-10384,-3497>, v=<46,69,-38>, a=<10,18,10> +p=<-8554,6566,88>, v=<21,-217,-49>, a=<17,0,3> +p=<-5239,-1084,-1997>, v=<-74,69,5>, a=<16,-2,4> +p=<1301,-3604,-3527>, v=<-106,-33,-37>, a=<4,10,10> +p=<-379,5021,943>, v=<12,5,62>, a=<0,-11,-6> +p=<-319,2486,1423>, v=<10,12,-47>, a=<0,-6,0> +p=<-3034,1346,-1607>, v=<-70,-43,23>, a=<11,0,2> +p=<-3004,-1063,-3803>, v=<7,110,-8>, a=<7,-5,10> +p=<5172,2423,-1535>, v=<-24,0,-2>, a=<-11,-6,4> +p=<-4502,71,-1437>, v=<162,-3,38>, a=<0,0,1> +p=<-6952,687,-1871>, v=<32,-83,-48>, a=<15,4,8> +p=<4000,4104,-2139>, v=<129,-58,-99>, a=<-17,-5,11> +p=<8065,-9456,-8259>, v=<-22,84,-19>, a=<-16,15,19> +p=<-10007,-68,2480>, v=<34,-45,32>, a=<18,3,-7> +p=<1866,10937,7440>, v=<-61,-96,48>, a=<0,-16,-18> +p=<595,3001,6510>, v=<-148,32,-34>, a=<8,-8,-11> +p=<6020,-5710,5022>, v=<-3,41,-98>, a=<-12,9,-4> +p=<1618,-6175,930>, v=<-69,24,-30>, a=<1,11,0> +p=<694,-14199,-2624>, v=<37,135,-93>, a=<-3,14,9> +p=<-5948,-2787,-5324>, v=<18,3,-18>, a=<8,4,9> +p=<6922,-4911,2704>, v=<-62,-86,55>, a=<-7,12,-7> +p=<289,-1614,2216>, v=<-15,125,-79>, a=<0,-3,-7> +p=<665,-750,-32>, v=<-13,71,-15>, a=<-3,-3,2> +p=<206,596,-89>, v=<-3,-38,26>, a=<-3,-3,-3> +p=<1207,420,395>, v=<-88,-22,0>, a=<-4,-3,-6> +p=<-377,123,417>, v=<2,23,-14>, a=<5,-6,-4> +p=<-190,-867,21>, v=<9,71,-50>, a=<1,1,8> +p=<894,-3318,-9396>, v=<-25,33,44>, a=<0,3,11> +p=<-4767,-10459,-6695>, v=<14,169,9>, a=<6,6,9> +p=<-2954,-8239,1260>, v=<41,128,41>, a=<2,5,-4> +p=<4113,715,-3513>, v=<59,-95,-1>, a=<-9,4,5> +p=<103,9579,2043>, v=<-3,47,54>, a=<0,-17,-6> +p=<1309,6033,-1179>, v=<56,53,88>, a=<-5,-12,-3> +p=<4623,-4737,-3090>, v=<-172,73,86>, a=<-1,9,3> +p=<-1677,-412,4135>, v=<67,17,-73>, a=<0,0,-7> +p=<723,563,410>, v=<-42,-22,50>, a=<1,0,-5> +p=<-2327,-912,-3365>, v=<2,37,-33>, a=<7,0,13> +p=<3598,1138,-3740>, v=<-53,20,86>, a=<-7,-5,5> +p=<323,-2587,-2915>, v=<39,0,66>, a=<-4,8,4> +p=<1448,3513,2235>, v=<-32,-75,-88>, a=<-2,-5,0> +p=<-4527,-2412,-2690>, v=<64,-7,31>, a=<9,8,6> +p=<-327,-2162,-6040>, v=<-78,22,35>, a=<7,5,16> +p=<-4527,2863,3385>, v=<51,-101,22>, a=<10,-1,-12> +p=<-693,-661,-821>, v=<-97,-44,21>, a=<20,12,5> +p=<728,816,-1108>, v=<4,-67,124>, a=<-7,1,-6> +p=<1470,2447,1090>, v=<-64,-101,-78>, a=<-5,-10,0> +p=<1015,431,1818>, v=<-24,-32,-145>, a=<-6,0,2> +p=<511,2068,-2125>, v=<-28,-34,17>, a=<0,-10,12> +p=<-322,-3474,-1683>, v=<120,148,81>, a=<-11,6,2> +p=<18,2102,-323>, v=<-8,-45,10>, a=<1,-9,1> +p=<-1597,912,-357>, v=<132,16,-24>, a=<-4,-8,5> +p=<1225,3122,-918>, v=<-88,-69,54>, a=<2,-13,0> +p=<-1121,1184,1615>, v=<59,-9,-14>, a=<1,-7,-9> +p=<-2807,-2982,46>, v=<78,2,49>, a=<6,14,-5> +p=<83,138,826>, v=<49,-7,-95>, a=<-5,0,5> +p=<-3337,-4542,16>, v=<31,59,-2>, a=<13,16,0> +p=<1083,-562,1226>, v=<-106,28,-31>, a=<5,0,-3> +p=<-1637,-1712,-1284>, v=<-54,180,0>, a=<13,-9,6> +p=<2683,308,3386>, v=<24,-26,-55>, a=<-15,1,-11> +p=<1053,778,-114>, v=<-94,45,36>, a=<4,-8,-3> +p=<-1777,-1532,-2384>, v=<58,108,34>, a=<3,-3,8> +p=<3985,-31,-2486>, v=<-47,-127,0>, a=<-5,8,5> +p=<6465,372,6039>, v=<-63,-44,-67>, a=<-9,2,-8> +p=<5163,1550,3249>, v=<-5,-50,-105>, a=<-10,0,0> +p=<-1688,-3410,-347>, v=<8,30,-5>, a=<3,5,1> +p=<544,-5177,11185>, v=<48,71,-137>, a=<-4,6,-14> +p=<-641,-708,2>, v=<55,38,96>, a=<-2,1,-11> +p=<-521,924,2762>, v=<-29,-47,-119>, a=<7,-1,-6> +p=<9928,-5087,261>, v=<-95,-29,73>, a=<-8,8,-4> +p=<-173,-10469,-6798>, v=<-16,89,134>, a=<1,9,2> +p=<1317,-593,485>, v=<-96,31,7>, a=<1,1,-5> +p=<3012,22,-1435>, v=<-137,30,71>, a=<-8,-4,3> +p=<-873,-758,500>, v=<58,178,-42>, a=<0,-16,1> +p=<-678,-2498,-40>, v=<37,54,-62>, a=<1,14,8> +p=<177,-8,-1150>, v=<-100,24,52>, a=<11,-3,3> +p=<-453,1687,-25>, v=<30,-25,33>, a=<0,-11,-4> +p=<222,-1043,2180>, v=<-39,13,-74>, a=<3,7,-9> +p=<1047,187,2645>, v=<-6,-45,-97>, a=<-8,4,-10> +p=<777,-1403,-1000>, v=<-52,53,66>, a=<0,5,0> +p=<324,780,1066>, v=<-20,-32,-7>, a=<0,-2,-7> +p=<148,196,1450>, v=<-9,-72,-82>, a=<0,7,-1> +p=<1484,1868,466>, v=<-101,-117,39>, a=<1,0,-8> +p=<196,-740,-894>, v=<-46,46,22>, a=<4,0,4> +p=<812,-1660,-1846>, v=<-8,163,107>, a=<-5,-7,1> +p=<412,-1492,186>, v=<-17,93,48>, a=<-1,0,-7> +p=<-308,-1276,914>, v=<62,20,11>, a=<-5,7,-8> +p=<1492,142,-249>, v=<28,5,65>, a=<-16,-2,-6> +p=<1867,-728,-9>, v=<-109,-25,73>, a=<-2,9,-9> +p=<1687,1297,21>, v=<-33,24,-1>, a=<-10,-14,0> +p=<1057,-23,1521>, v=<-79,0,51>, a=<1,0,-19> +p=<2092,442,-1449>, v=<-116,-47,25>, a=<-3,2,9> +p=<2572,922,-3804>, v=<-84,-23,150>, a=<-11,-5,13> +p=<2197,832,306>, v=<-91,-81,12>, a=<-7,3,-4> +p=<919,1669,-1409>, v=<-40,-69,27>, a=<-3,-7,10> +p=<2060,-1313,180>, v=<-99,9,-19>, a=<-6,11,1> +p=<548,1270,-2851>, v=<-21,-108,160>, a=<-2,2,6> +p=<1395,-718,-730>, v=<16,49,31>, a=<-15,0,3> +p=<-36,1770,1658>, v=<-2,-31,-92>, a=<0,-11,-2> +p=<-2616,315,-262>, v=<170,34,76>, a=<0,-7,-7> +p=<-771,-285,443>, v=<23,-22,-27>, a=<3,5,0> +p=<-276,-1095,83>, v=<-2,48,-91>, a=<2,3,11> +p=<1503,1767,-7081>, v=<51,-21,155>, a=<-6,-2,4> +p=<-2897,279,855>, v=<40,108,72>, a=<3,-7,-6> +p=<-3547,-7946,5832>, v=<6,-20,42>, a=<5,13,-11> +p=<5579,5266,2214>, v=<-81,-91,-24>, a=<-4,-3,-2> +p=<-452,181,-8175>, v=<13,-23,154>, a=<0,1,5> +p=<-5858,-10478,4031>, v=<172,133,145>, a=<0,10,-15> +p=<-1064,4210,-2565>, v=<-4,-19,-11>, a=<2,-6,5> +p=<2676,-2845,3674>, v=<26,-39,-107>, a=<-6,7,0> +p=<9000,62,6309>, v=<-90,-72,8>, a=<-10,4,-11> +p=<-3597,5876,-5744>, v=<123,2,-40>, a=<-1,-10,12> +p=<6161,-1655,-7784>, v=<11,-109,20>, a=<-11,9,12> +p=<925,-584,-1528>, v=<-45,52,46>, a=<1,-2,0> +p=<5396,-5548,4660>, v=<-54,58,-66>, a=<-6,6,-4> +p=<1796,-8375,-1230>, v=<-81,83,44>, a=<1,15,0> +p=<1012,-8683,5350>, v=<-53,123,12>, a=<1,13,-14> +p=<1796,2125,2928>, v=<-110,56,26>, a=<3,-9,-9> +p=<632,-10146,994>, v=<50,73,7>, a=<-5,20,-3> +p=<-124,298,-1568>, v=<19,-10,84>, a=<-1,0,-2> +p=<-4464,1880,308>, v=<58,-23,17>, a=<7,-3,-2> +p=<58,-2838,8988>, v=<-118,44,-177>, a=<8,4,-10> +p=<5956,-490,530>, v=<-152,-15,-96>, a=<-3,2,5> +p=<841,-3805,1550>, v=<96,-13,25>, a=<-8,9,-5> +p=<-3569,1355,2105>, v=<-98,32,-71>, a=<14,-5,0> +p=<2431,1610,1265>, v=<-81,-54,81>, a=<0,0,-8> +p=<646,-6310,-7000>, v=<-68,24,0>, a=<3,12,15> +p=<-734,815,3095>, v=<71,50,-42>, a=<-3,-5,-4> +p=<1311,-524,1013>, v=<-19,26,-99>, a=<-17,4,1> +p=<1377,15,177>, v=<-73,-5,-5>, a=<-9,1,-2> +p=<970,-172,991>, v=<-90,-18,-91>, a=<0,6,0> +p=<-1109,103,408>, v=<51,-73,-38>, a=<8,11,0> +p=<-218,-7,397>, v=<36,-9,-31>, a=<-3,2,-1> +p=<1465,-821,-593>, v=<-63,35,83>, a=<-12,7,-5> +p=<64,-474,785>, v=<-62,51,-69>, a=<8,-2,1> +p=<-1288,-851,-1438>, v=<119,3,102>, a=<-3,9,1> +p=<-937,1203,-1139>, v=<-13,-22,37>, a=<12,-10,7> +p=<129,436,-853>, v=<-123,-33,-6>, a=<16,0,10> +p=<1403,-1644,408>, v=<-60,127,2>, a=<-7,0,-5> +p=<-313,-1306,-723>, v=<-103,94,54>, a=<18,1,0> +p=<-14,371,629>, v=<14,-7,-22>, a=<-2,-3,-4> +p=<-2,1154,-6362>, v=<-78,86,148>, a=<4,-6,1> +p=<1480,1439,-6457>, v=<39,-97,14>, a=<-4,3,8> +p=<-3285,-3050,1237>, v=<139,125,0>, a=<0,0,-4> +p=<5475,2230,3001>, v=<-51,-120,-111>, a=<-14,2,-1> +p=<-1197,-3626,373>, v=<2,49,-64>, a=<4,8,4> +p=<-1617,190,-5975>, v=<82,-10,88>, a=<-1,0,13> +p=<675,3898,-6179>, v=<-1,-102,84>, a=<-2,-5,14> +p=<617,2333,2796>, v=<-72,-24,-158>, a=<4,-11,0> +p=<329,-763,3363>, v=<-18,110,-180>, a=<0,-7,-1> +p=<338,677,654>, v=<-28,-8,37>, a=<1,-3,-8> +p=<-2551,-313,-1767>, v=<28,-48,86>, a=<12,7,1> +p=<-3154,452,-1596>, v=<147,33,86>, a=<3,-6,0> +p=<104,1226,906>, v=<118,-29,-34>, a=<-13,-4,-2> +p=<-895,4691,753>, v=<-26,-98,41>, a=<8,-17,-9> +p=<320,-466,-507>, v=<68,27,-3>, a=<-9,0,3> +p=<-1102,-1618,-1965>, v=<-62,91,97>, a=<13,0,1> +p=<2849,1037,4587>, v=<-101,29,-210>, a=<-6,-9,-5> +p=<3362,-144,329>, v=<-126,-53,14>, a=<-8,7,-4> +p=<421,2372,-2391>, v=<-70,-66,66>, a=<5,-8,8> +p=<1781,-858,1417>, v=<-15,61,-95>, a=<-10,-1,1> +p=<319,-586,-1286>, v=<-100,63,91>, a=<9,-3,-2> +p=<829,859,-623>, v=<-49,59,-65>, a=<0,-12,11> +p=<-786,672,-1065>, v=<82,43,69>, a=<-4,-9,-1> +p=<115,-671,-317>, v=<2,41,25>, a=<-1,0,-1> +p=<591,-1385,3355>, v=<-35,47,-146>, a=<0,4,-6> +p=<438,-2881,-164>, v=<-44,0,7>, a=<2,19,0> +p=<-2622,757,1077>, v=<46,-16,15>, a=<12,-3,-9> +p=<-286,-626,-748>, v=<27,-25,-1>, a=<-1,2,1> +p=<3029,-9791,-3361>, v=<-58,-90,26>, a=<-1,17,3> +p=<-5356,6160,-14437>, v=<57,-39,30>, a=<4,-6,17> +p=<6050,3006,2925>, v=<-112,-144,-25>, a=<-10,2,-7> +p=<4250,2331,3475>, v=<-66,91,-47>, a=<-8,-14,-7> +p=<4064,-4572,1529>, v=<-58,-20,12>, a=<-3,8,-3> +p=<-76,5814,13697>, v=<-91,6,-67>, a=<5,-9,-17> +p=<-152,-192,662>, v=<-84,-59,85>, a=<11,8,-15> +p=<552,128,-1570>, v=<25,-28,46>, a=<-7,2,6> +p=<-2264,-304,4334>, v=<99,16,-221>, a=<5,0,-6> +p=<136,640,1454>, v=<17,-43,10>, a=<-3,0,-12> +p=<-1528,1152,-2378>, v=<70,-160,88>, a=<3,10,7> +p=<-728,1432,-18>, v=<37,-67,0>, a=<1,-3,0> +p=<1724,-224,-2735>, v=<-104,45,71>, a=<3,-2,0> +p=<-1164,-509,-132>, v=<-106,33,-56>, a=<7,-1,3> +p=<-1449,-4233,-3514>, v=<-1,-64,72>, a=<2,9,1> +p=<8127,-2219,4713>, v=<-19,0,31>, a=<-10,3,-8> +p=<-7054,3443,3345>, v=<127,-32,28>, a=<3,-3,-6> +p=<-4394,-14759,8437>, v=<-60,96,-106>, a=<9,15,-6> +p=<-2779,2075,-3913>, v=<73,-35,24>, a=<0,-1,4> +p=<-2141,-6916,851>, v=<88,27,40>, a=<0,21,-6> +p=<3139,3848,3671>, v=<-82,-134,-115>, a=<-4,-2,-3> +p=<1327,-2536,107>, v=<6,32,21>, a=<-5,6,-2> +p=<-3389,-1612,959>, v=<65,6,-27>, a=<6,5,-1> +p=<-1229,-244,3167>, v=<0,-26,-44>, a=<4,3,-7> +p=<1447,-1384,3911>, v=<26,34,-25>, a=<-7,2,-11> +p=<475,860,-1777>, v=<129,78,87>, a=<-12,-9,-1> +p=<1627,-2428,359>, v=<-119,40,-27>, a=<4,5,1> +p=<3211,488,-445>, v=<-60,-19,-31>, a=<-6,0,4> +p=<-1937,824,-2473>, v=<-33,-33,16>, a=<9,0,7> +p=<292,-3241,2398>, v=<-8,108,93>, a=<0,0,-11> +p=<-1568,5159,808>, v=<54,-110,-40>, a=<0,-4,1> +p=<4687,4169,3058>, v=<-46,-108,40>, a=<-7,-2,-9> +p=<7282,-961,-2897>, v=<-148,32,99>, a=<-6,0,0> +p=<-2205,1288,-648>, v=<57,-58,52>, a=<1,1,-2> +p=<-3810,-5357,-2283>, v=<-60,24,29>, a=<12,10,3> +p=<-4485,-3332,4107>, v=<40,3,-60>, a=<7,7,-5> +p=<-570,-4637,-3948>, v=<-13,31,-24>, a=<2,8,10> +p=<7155,673,822>, v=<24,133,-28>, a=<-17,-10,0> +p=<1305,-4037,-1368>, v=<-122,-51,45>, a=<5,12,0> +p=<1200,2773,-633>, v=<-10,-92,5>, a=<-2,0,1> +p=<4155,5713,3492>, v=<0,-4,-86>, a=<-9,-12,-2> +p=<845,-4997,2504>, v=<15,-6,35>, a=<-3,12,-8> +p=<-1185,281,3287>, v=<-35,7,-22>, a=<5,-1,-6> +p=<-2635,2572,561>, v=<90,-42,12>, a=<0,-3,-2> +p=<-2925,1006,1634>, v=<40,-33,-55>, a=<4,0,0> +p=<1381,3639,6097>, v=<-37,21,-5>, a=<0,-6,-8> +p=<89,-5709,-9692>, v=<-42,-6,40>, a=<2,8,11> +p=<12952,3240,-1522>, v=<-166,12,59>, a=<-9,-5,-1> +p=<12458,694,16110>, v=<-75,-116,-93>, a=<-13,5,-17> +p=<-1531,-2207,4330>, v=<97,-46,63>, a=<-3,7,-12> +p=<-3643,-1487,8010>, v=<31,-85,-19>, a=<5,8,-14> +p=<-75,-13119,3066>, v=<68,163,86>, a=<-4,15,-11> +p=<-411,-3647,-86>, v=<29,65,-63>, a=<-1,3,4> +p=<5093,-3807,3370>, v=<-11,-62,27>, a=<-9,11,-8> +p=<-424,633,-2094>, v=<89,-67,115>, a=<-7,3,1> +p=<-2362,-1815,-1414>, v=<104,77,3>, a=<4,3,9> +p=<-1002,2554,-1159>, v=<-30,-63,69>, a=<10,-10,0> +p=<936,-115,-1839>, v=<-54,-23,1>, a=<0,3,12> +p=<-2294,1211,82>, v=<19,-29,-13>, a=<13,-5,1> +p=<1633,-710,626>, v=<-32,3,-27>, a=<-7,4,-1> +p=<-2073,-1628,3261>, v=<123,120,-110>, a=<0,-3,-9> +p=<129,105,1073>, v=<-3,26,-119>, a=<-1,-5,5> +p=<-1623,-1077,-151>, v=<91,92,-43>, a=<7,0,9> +p=<-459,-1413,-2851>, v=<-19,55,182>, a=<9,10,9> +p=<-933,2439,1211>, v=<92,-123,-85>, a=<-2,-12,-2> +p=<-33,63,23>, v=<30,-3,-77>, a=<-4,0,12> +p=<-141,1275,11>, v=<13,-91,-11>, a=<0,-2,2> +p=<-579,-1785,-733>, v=<17,86,64>, a=<5,10,0> +p=<-405,189,-403>, v=<48,58,17>, a=<-2,-11,3> +p=<687,579,185>, v=<-30,-20,7>, a=<-4,-4,-3> +p=<-105,-489,2315>, v=<-16,4,-164>, a=<4,6,-4> +p=<5019,2191,-1557>, v=<-134,-9,25>, a=<-5,-6,3> +p=<2844,1491,1193>, v=<-8,-46,-85>, a=<-8,-1,3> +p=<619,3541,-2282>, v=<29,-76,28>, a=<-4,-5,5> +p=<435,137,1248>, v=<64,-37,-76>, a=<-9,3,1> +p=<-1626,-1609,-120>, v=<-21,3,38>, a=<12,9,-3> +p=<-429,56,726>, v=<55,-4,-9>, a=<-3,0,-3> +p=<-1572,-61,159>, v=<-62,-26,13>, a=<16,3,-2> +p=<-402,848,-498>, v=<-70,-48,97>, a=<10,0,-7> +p=<3278,-120,1704>, v=<26,66,24>, a=<-14,-5,-8> +p=<1185,-4812,1750>, v=<-111,90,58>, a=<5,10,-11> +p=<-4907,-1991,-6006>, v=<29,94,114>, a=<7,-2,4> +p=<-7085,814,4455>, v=<146,-8,-33>, a=<4,-1,-6> +p=<-815,-6446,132>, v=<-44,8,-55>, a=<4,11,3> +p=<-584,2530,-4521>, v=<17,-60,-50>, a=<0,-1,11> +p=<-1630,229,-1067>, v=<105,46,90>, a=<3,-9,-1> +p=<762,-876,-14>, v=<33,61,16>, a=<-13,1,-2> +p=<1269,879,948>, v=<15,10,-128>, a=<-16,-11,8> +p=<6413,-3286,-3895>, v=<-111,76,58>, a=<-4,1,3> +p=<6448,2524,-4105>, v=<68,-90,64>, a=<-14,1,3> +p=<-10562,-6331,-1095>, v=<32,181,-76>, a=<15,0,6> +p=<-6327,7599,3035>, v=<-107,17,-14>, a=<16,-13,-4> +p=<-1672,7809,-2355>, v=<84,-79,-22>, a=<-2,-8,5> +p=<6028,-2551,-6765>, v=<-28,-53,68>, a=<-8,7,7> +p=<-692,-3181,5520>, v=<20,73,77>, a=<0,1,-13> +p=<-1077,482,-1703>, v=<-17,56,80>, a=<10,-10,3> +p=<35,-1510,-4519>, v=<126,70,188>, a=<-15,3,11> +p=<1347,610,-287>, v=<-41,-105,17>, a=<-5,8,0> +p=<5512,5313,6606>, v=<-42,-96,-190>, a=<-5,-2,1> +p=<-1937,-3774,-1701>, v=<-11,17,43>, a=<3,4,0> +p=<-1079,1296,6801>, v=<27,-153,5>, a=<0,6,-9> +p=<1807,-2760,3564>, v=<-47,51,-32>, a=<0,1,-3> +p=<8398,1374,-2598>, v=<-16,-95,46>, a=<-10,3,1> +p=<-1469,3402,1458>, v=<-43,13,2>, a=<4,-5,-2> +p=<3367,8277,11520>, v=<-107,-52,-156>, a=<1,-8,-7> +p=<9607,8160,3018>, v=<-87,71,-78>, a=<-8,-14,0> +p=<884,505,-1467>, v=<-45,95,101>, a=<-2,-17,0> +p=<324,2157,-1264>, v=<-20,-53,34>, a=<0,-13,7> +p=<2361,-1938,-557>, v=<-113,112,21>, a=<-7,4,2> +p=<555,-657,1536>, v=<31,28,-91>, a=<-9,3,-3> +p=<646,988,178>, v=<-58,-67,6>, a=<2,0,-3> +p=<373,-2274,1914>, v=<29,136,-28>, a=<-7,4,-15> +p=<44,1793,262>, v=<45,-117,-15>, a=<-6,-1,-1> +p=<-1620,592,-839>, v=<31,-101,7>, a=<6,7,4> +p=<-1287,1510,-956>, v=<98,-19,137>, a=<-3,-7,-9> +p=<-45,2257,-1730>, v=<-28,-127,-48>, a=<3,0,15> +p=<734,490,2595>, v=<-18,-58,-115>, a=<-4,3,-9> +p=<-582,693,2532>, v=<16,-20,-43>, a=<4,-4,-18> +p=<-463,2387,-100>, v=<45,-126,55>, a=<-1,-6,-6> +p=<-1058,-700,894>, v=<95,12,-61>, a=<-2,5,0> +p=<-78,-2107,-1843>, v=<10,210,82>, a=<0,-8,7> +p=<-302,-1393,257>, v=<26,24,-53>, a=<0,10,5> +p=<776,-2030,54>, v=<-51,62,-1>, a=<0,11,0> +p=<-274,-329,1965>, v=<24,-7,-70>, a=<0,4,-9> +p=<426,189,264>, v=<-11,-89,-16>, a=<-2,10,0> +p=<2505,-742,880>, v=<-62,15,0>, a=<-15,5,-8> +p=<-2983,-3194,-209>, v=<8,-53,50>, a=<8,13,-3> +p=<2984,-4559,-1821>, v=<-100,13,4>, a=<-1,12,5> +p=<-2385,732,-105>, v=<147,-15,-116>, a=<-4,-1,9> +p=<1539,-193,-2637>, v=<-21,53,18>, a=<-6,-4,12> +p=<-969,-1656,-2067>, v=<21,30,-12>, a=<3,6,12> +p=<323,-2435,2170>, v=<-87,81,-105>, a=<7,5,-1> +p=<6722,-1881,6800>, v=<-51,23,-36>, a=<-9,2,-10> +p=<2960,990,2576>, v=<46,-30,-44>, a=<-8,0,-2> +p=<1640,-2310,-1879>, v=<-16,36,108>, a=<-2,2,-3> +p=<1904,-13365,7427>, v=<61,14,-72>, a=<-7,23,-9> +p=<254,-3762,2972>, v=<-93,-5,-158>, a=<5,7,4> +p=<1186,738,-74>, v=<-79,-95,71>, a=<-3,5,-10> +p=<-668,954,-1496>, v=<69,4,66>, a=<-2,-13,9> +p=<2080,366,1786>, v=<-69,-12,-149>, a=<-16,-3,0> +p=<-872,-630,-2924>, v=<21,71,211>, a=<8,-3,5> +p=<-1112,204,-86>, v=<119,34,20>, a=<-4,-8,-2> +p=<652,-510,-962>, v=<-80,113,41>, a=<4,-11,6> +p=<28,-846,-1340>, v=<63,128,92>, a=<-10,-9,3> +p=<802,-2301,-981>, v=<102,41,-112>, a=<-8,2,9> +p=<7622,2163,-4732>, v=<-6,25,57>, a=<-15,-6,6> +p=<-4190,2922,2674>, v=<132,-56,-84>, a=<15,-15,-10> +p=<210,634,-262>, v=<-24,-66,40>, a=<1,3,-3> +p=<1002,-502,186>, v=<-150,-12,12>, a=<10,5,-3> +p=<1582,-7,-39>, v=<-79,12,55>, a=<-6,-2,-7> +p=<-134,890,1287>, v=<46,-57,-33>, a=<-5,-2,-9> +p=<1361,-670,-754>, v=<-76,77,40>, a=<-4,-4,3> +p=<1556,1735,-949>, v=<-14,-73,34>, a=<-15,-9,6> +p=<-56,-891,2080>, v=<40,73,-87>, a=<-5,-1,-10> +p=<191,357,-533>, v=<21,26,9>, a=<-5,-8,5> +p=<1699,-1580,-117>, v=<-137,28,-58>, a=<1,13,10> +p=<-966,695,-1118>, v=<26,-63,54>, a=<7,1,5> +p=<-943,-389,98>, v=<2,141,-84>, a=<5,-12,8> +p=<1584,3867,364>, v=<-11,-93,-38>, a=<-7,-11,2> +p=<-521,-279,62>, v=<57,-41,-18>, a=<-1,11,2> +p=<-488,227,-213>, v=<78,-39,-59>, a=<-5,3,13> +p=<2697,157,659>, v=<-88,110,-41>, a=<-8,-13,0> +p=<-499,-812,-4203>, v=<55,23,155>, a=<-3,3,10> +p=<-482,752,-123>, v=<36,48,5>, a=<-1,-10,0> +p=<300,531,829>, v=<-19,43,-33>, a=<0,-8,-2> +p=<-1230,1704,-786>, v=<62,-134,-55>, a=<1,4,11> +p=<-1689,-251,251>, v=<71,-19,10>, a=<3,4,-3> +p=<1473,-1186,47>, v=<-70,27,-41>, a=<-2,5,4> +p=<-2148,-13,-718>, v=<17,-24,76>, a=<12,3,-4> +p=<-652,2469,-701>, v=<-44,-134,75>, a=<9,-1,-4> +p=<3519,1232,7089>, v=<-56,-102,-81>, a=<-4,4,-10> +p=<-651,4187,1299>, v=<-103,-61,-43>, a=<8,-5,0> +p=<-2491,-2393,2721>, v=<101,62,14>, a=<1,4,-12> +p=<6243,-1854,1137>, v=<-112,-43,-98>, a=<-15,11,4> +p=<-478,4691,-29>, v=<-25,-53,-45>, a=<4,-14,4> +p=<-1611,-534,-458>, v=<-31,35,-37>, a=<9,-1,5> +p=<-3129,-3493,-2207>, v=<61,66,-15>, a=<7,8,10> +p=<798,-2085,-326>, v=<-37,25,26>, a=<0,6,-1> +p=<-1622,3327,-425>, v=<27,-175,19>, a=<4,2,0> +p=<28,148,-2075>, v=<-2,96,94>, a=<0,-9,0> +p=<1544,6146,-1718>, v=<-39,143,44>, a=<0,-15,0> +p=<13010,1310,3469>, v=<-93,27,-129>, a=<-12,-3,2> +p=<-6295,-2824,-4409>, v=<-38,33,-167>, a=<10,2,14> +p=<-6334,6887,3391>, v=<23,4,-87>, a=<7,-9,0> +p=<-2707,-7153,-2693>, v=<110,84,-51>, a=<-2,5,6> +p=<3572,-4111,-1562>, v=<9,126,40>, a=<-5,-1,0> +p=<4462,-2550,-1370>, v=<-8,113,-23>, a=<-8,-2,4> +p=<-2754,-5894,-3082>, v=<3,3,80>, a=<5,11,1> +p=<-5170,-6022,-2090>, v=<95,73,16>, a=<4,7,3> +p=<-6370,-3782,-7594>, v=<83,36,56>, a=<7,5,11> +p=<-82,-598,1126>, v=<-64,-47,-35>, a=<4,4,0> +p=<5198,-502,-746>, v=<-97,16,-92>, a=<-4,0,7> +p=<14,-3830,-890>, v=<-1,21,61>, a=<0,6,-2> +p=<-3362,-1270,566>, v=<22,73,-34>, a=<5,-2,1> +p=<4998,5749,-1919>, v=<-132,6,12>, a=<0,-8,2> +p=<-9423,-8843,-12274>, v=<-45,39,109>, a=<15,10,11> +p=<-5623,-4093,-4465>, v=<-106,-47,40>, a=<13,8,4> +p=<-2868,-6905,703>, v=<75,66,-18>, a=<0,6,0> +p=<3839,-4207,-190>, v=<74,-83,-170>, a=<-9,10,9> +p=<-5768,7005,2433>, v=<-80,-103,-50>, a=<13,-5,-1> +p=<820,-4083,3477>, v=<-115,20,-42>, a=<5,5,-3> +p=<3459,-1784,-608>, v=<-8,78,-21>, a=<-12,0,4> +p=<2194,-3601,-2655>, v=<47,121,32>, a=<-12,3,7> +p=<216,3437,3624>, v=<157,-149,11>, a=<-14,0,-14> +p=<-14,-4498,1600>, v=<11,40,-9>, a=<-1,13,-5> +p=<-3947,4748,-4173>, v=<86,10,26>, a=<7,-18,13> +p=<4379,2540,4820>, v=<-48,34,-113>, a=<-12,-12,-8> +p=<-819,-1692,1738>, v=<10,2,57>, a=<2,6,-11> +p=<-1785,171,2497>, v=<-32,41,36>, a=<9,-4,-12> +p=<-5786,-3541,4522>, v=<147,-29,-75>, a=<0,6,-2> +p=<7279,8393,6784>, v=<32,-15,-53>, a=<-11,-10,-6> +p=<-7892,-2293,-4877>, v=<81,-1,26>, a=<6,3,5> +p=<-5786,203,-3629>, v=<47,-65,-66>, a=<5,3,8> +p=<-5942,-3307,-14744>, v=<71,-55,-21>, a=<4,7,20> +p=<9892,-2332,-8660>, v=<-55,160,43>, a=<-10,-5,9> +p=<-8087,-1045,-6359>, v=<46,87,-16>, a=<8,-3,9> +p=<10675,-4517,-152>, v=<1,-32,4>, a=<-17,9,0> +p=<-1960,-11377,6848>, v=<38,56,-124>, a=<1,15,-4> +p=<3675,2133,-8622>, v=<-195,-114,48>, a=<5,3,11> +p=<945,-1577,5798>, v=<-63,46,-4>, a=<2,0,-9> +p=<1624,-2462,-468>, v=<235,-355,-66>, a=<-10,30,7> +p=<811,628,3099>, v=<109,87,442>, a=<-8,-6,-33> +p=<-2613,-1644,-44>, v=<-377,-233,-11>, a=<22,19,2> +p=<2665,1031,1462>, v=<380,152,214>, a=<-27,-15,-13> +p=<-1167,2956,-837>, v=<-167,423,-119>, a=<11,-29,7> +p=<-500,-1627,2542>, v=<-71,-233,361>, a=<6,15,-24> +p=<2759,-228,330>, v=<393,-38,47>, a=<-32,1,-7> +p=<-1933,385,-1305>, v=<-277,56,-185>, a=<18,-2,10> +p=<-740,-3178,0>, v=<-107,-453,-2>, a=<14,28,3> +p=<837,2734,1599>, v=<119,385,227>, a=<-8,-24,-18> +p=<2029,-2022,2099>, v=<288,-287,299>, a=<-20,22,-19> +p=<1362,530,-2350>, v=<197,80,-335>, a=<-13,-5,21> +p=<35,1448,-2444>, v=<5,205,-349>, a=<5,-12,30> +p=<2512,-2034,-1044>, v=<355,-291,-148>, a=<-25,24,12> +p=<96,2593,1687>, v=<10,372,246>, a=<0,-24,-10> +p=<1697,-1020,-899>, v=<245,-145,-122>, a=<-21,10,13> +p=<322,-1743,1920>, v=<46,-248,279>, a=<-7,16,-17> +p=<462,44,3385>, v=<65,5,483>, a=<-1,-1,-33> +p=<2308,-1372,400>, v=<329,-191,60>, a=<-24,13,-2> +p=<993,-539,2957>, v=<140,-76,423>, a=<-8,7,-28> +p=<-894,-2502,-1769>, v=<-127,-359,-249>, a=<8,25,18> +p=<-1533,1125,-2885>, v=<-219,157,-418>, a=<19,-12,28> +p=<-1714,2565,204>, v=<-248,361,28>, a=<17,-24,-5> +p=<50,2129,1755>, v=<3,299,252>, a=<0,-18,-22> +p=<1377,-2722,-155>, v=<202,-392,-22>, a=<-9,29,-1> +p=<-2051,-135,2402>, v=<-295,-24,342>, a=<21,1,-28> +p=<1690,-2279,794>, v=<240,-322,113>, a=<-13,22,-7> +p=<1765,-1008,2234>, v=<251,-140,319>, a=<-20,9,-21> +p=<-944,201,2749>, v=<-135,25,393>, a=<8,0,-32> +p=<1277,1073,2254>, v=<181,153,325>, a=<-15,-15,-22> +p=<-1068,-1656,2795>, v=<-149,-236,395>, a=<5,19,-26> +p=<2481,-1470,-1338>, v=<355,-210,-193>, a=<-24,16,11> +p=<-448,2393,-837>, v=<-61,342,-119>, a=<3,-22,11> +p=<-2560,643,563>, v=<-366,89,77>, a=<26,-5,-8> +p=<3211,344,1361>, v=<460,46,194>, a=<-29,-6,-15> +p=<-510,-2939,993>, v=<-73,-418,141>, a=<4,32,-13> +p=<3090,1341,-594>, v=<441,191,-82>, a=<-24,-11,7> +p=<-2650,-1076,1037>, v=<-377,-153,150>, a=<26,6,-9> +p=<-2076,-1191,1581>, v=<-296,-162,228>, a=<25,11,-15> +p=<475,162,3389>, v=<66,25,487>, a=<-3,0,-35> +p=<378,1697,-2105>, v=<55,242,-299>, a=<-7,-18,19> +p=<245,608,2984>, v=<34,83,425>, a=<-3,-6,-29> +p=<1522,256,-1893>, v=<216,33,-273>, a=<-17,-1,19> +p=<-2367,902,1555>, v=<-333,128,223>, a=<20,-7,-15> +p=<389,-2674,-1034>, v=<55,-378,-141>, a=<-8,22,13> +p=<-2530,1332,773>, v=<-358,189,105>, a=<29,-18,-14> +p=<-960,-1666,-1362>, v=<-135,-241,-199>, a=<12,15,12> +p=<-1847,-2094,2325>, v=<-265,-303,333>, a=<21,20,-23> +p=<-119,-1836,2646>, v=<-14,-262,381>, a=<1,17,-26> +p=<2251,1198,990>, v=<323,171,145>, a=<-22,-11,-9> +p=<-464,-1556,-2369>, v=<-70,-222,-339>, a=<4,20,19> +p=<1703,745,2520>, v=<238,104,358>, a=<-16,-7,-23> +p=<-1691,1716,-2618>, v=<-246,244,-374>, a=<16,-18,30> +p=<1472,-2238,853>, v=<210,-315,118>, a=<-15,26,-8> +p=<-1947,2351,-1449>, v=<-286,338,-205>, a=<18,-27,12> +p=<-2815,1474,650>, v=<-404,209,86>, a=<29,-13,-3> +p=<1434,-1949,1020>, v=<208,-277,148>, a=<-20,18,-11> +p=<2722,1173,-256>, v=<390,166,-33>, a=<-25,-11,5> +p=<3026,-916,18>, v=<430,-130,-2>, a=<-28,8,3> +p=<1336,1272,-1884>, v=<188,185,-265>, a=<-15,-16,13> +p=<-562,-2147,-1631>, v=<-83,-310,-235>, a=<2,24,17> +p=<2473,-660,-62>, v=<350,-96,-12>, a=<-23,2,0> +p=<-1360,-1074,-2694>, v=<-194,-149,-380>, a=<13,11,31> +p=<-2791,-1608,-902>, v=<-395,-230,-128>, a=<27,14,9> +p=<811,282,2237>, v=<113,38,316>, a=<-8,-10,-20> +p=<-2080,-1126,-1316>, v=<-293,-163,-191>, a=<20,6,7> +p=<1893,-617,2345>, v=<267,-88,338>, a=<-19,6,-20> +p=<-2131,-721,-1427>, v=<-306,-101,-206>, a=<18,7,11> +p=<-2635,49,615>, v=<-377,7,86>, a=<25,1,-11> +p=<1224,3029,-1172>, v=<172,429,-161>, a=<-16,-31,6> +p=<67,-301,3085>, v=<11,-43,440>, a=<0,7,-30> +p=<1224,1528,-2785>, v=<177,216,-397>, a=<-12,-11,25> +p=<-863,2724,381>, v=<-126,391,52>, a=<5,-24,-2> +p=<-1288,-1610,2625>, v=<-184,-226,375>, a=<12,19,-25> +p=<-269,2017,-2101>, v=<-39,283,-300>, a=<2,-24,24> +p=<1950,1442,-103>, v=<278,203,-13>, a=<-20,-12,2> +p=<352,247,-2877>, v=<55,32,-410>, a=<-4,-6,26> +p=<1809,2045,-1944>, v=<259,292,-276>, a=<-14,-20,20> +p=<-21,-2189,988>, v=<-1,-313,141>, a=<-3,21,-9> +p=<-1001,-2217,1954>, v=<-140,-315,281>, a=<3,22,-21> +p=<2373,951,1447>, v=<340,139,206>, a=<-24,-11,-12> +p=<2379,1655,509>, v=<336,233,77>, a=<-23,-19,-5> +p=<884,-1431,-2145>, v=<125,-206,-306>, a=<-10,14,22> +p=<-372,-2465,658>, v=<-56,-346,93>, a=<0,29,-10> +p=<1671,2547,-1793>, v=<233,362,-252>, a=<-19,-28,11> +p=<326,736,-2726>, v=<46,105,-385>, a=<-6,-7,23> +p=<2241,-739,-1255>, v=<318,-105,-176>, a=<-19,6,12> +p=<1853,-1037,-1564>, v=<263,-148,-219>, a=<-15,9,20> +p=<-1518,-1071,2789>, v=<-218,-157,399>, a=<19,8,-30> +p=<1045,1858,1247>, v=<152,265,178>, a=<-11,-21,-13> +p=<281,-1098,3271>, v=<40,-161,468>, a=<-6,8,-31> +p=<1122,-2393,-122>, v=<158,-337,-17>, a=<-8,22,2> +p=<-727,1445,2272>, v=<-100,209,327>, a=<7,-14,-20> +p=<1448,2165,-1632>, v=<206,309,-239>, a=<-14,-23,16> +p=<2453,-1690,-1411>, v=<351,-245,-201>, a=<-27,16,15> +p=<1030,515,3122>, v=<147,72,446>, a=<-8,-6,-32> +p=<-589,-2972,1141>, v=<-79,-431,167>, a=<9,26,-9> +p=<1558,-2331,1268>, v=<224,-333,181>, a=<-14,15,-14> +p=<-1156,-1848,-1958>, v=<-165,-268,-279>, a=<9,18,17> +p=<-328,2409,-1728>, v=<-47,346,-252>, a=<3,-20,11> +p=<-2236,745,2041>, v=<-319,101,291>, a=<22,-8,-18> +p=<-2618,-1525,492>, v=<-380,-216,72>, a=<26,15,-11> +p=<-2468,166,-2092>, v=<-352,24,-296>, a=<28,-2,23> +p=<1132,2952,1200>, v=<164,419,170>, a=<-11,-29,-10> +p=<-929,-715,-2801>, v=<-132,-104,-401>, a=<6,2,23> +p=<150,-2148,-1598>, v=<12,-300,-225>, a=<-4,22,5> +p=<-3006,323,-1215>, v=<-429,51,-173>, a=<26,-1,8> +p=<-1606,-1914,962>, v=<-233,-271,135>, a=<15,18,-10> +p=<2816,-397,-1439>, v=<403,-54,-205>, a=<-29,1,14> +p=<-2638,684,-1710>, v=<-376,98,-244>, a=<26,-3,19> +p=<896,-1998,1773>, v=<131,-285,255>, a=<-14,19,-20> +p=<617,-1910,2135>, v=<88,-272,304>, a=<-8,21,-19> +p=<-1155,30,3112>, v=<-165,1,441>, a=<10,-3,-31> +p=<-685,-434,2700>, v=<-95,-63,385>, a=<11,4,-27> +p=<-1309,-2857,-1754>, v=<-191,-406,-250>, a=<17,29,15> +p=<1804,-461,-2272>, v=<257,-64,-323>, a=<-18,1,18> +p=<-2916,837,-229>, v=<-418,116,-31>, a=<27,-13,-2> +p=<-2396,-750,-958>, v=<-340,-112,-139>, a=<19,7,12> +p=<-1035,-2366,-1895>, v=<-147,-341,-274>, a=<12,23,16> +p=<-3113,-1407,191>, v=<-445,-198,26>, a=<30,11,7> +p=<-1076,2730,802>, v=<-153,390,114>, a=<10,-26,-4> +p=<2033,1679,1326>, v=<292,246,187>, a=<-18,-19,-5> +p=<2560,-2091,-1321>, v=<364,-295,-188>, a=<-28,21,12> +p=<684,-59,2815>, v=<95,-8,401>, a=<-7,1,-31> +p=<-1564,2964,-405>, v=<-223,425,-57>, a=<15,-26,-1> +p=<-2485,-1814,1918>, v=<-353,-256,274>, a=<25,23,-16> +p=<655,-984,2797>, v=<97,-140,395>, a=<-4,11,-24> +p=<1926,-2137,-790>, v=<276,-302,-110>, a=<-13,18,7> +p=<-540,46,2356>, v=<-79,6,338>, a=<3,1,-24> +p=<-2129,617,-2410>, v=<-306,85,-346>, a=<21,-8,26> +p=<2362,846,-1443>, v=<333,118,-204>, a=<-27,-9,11> +p=<557,-708,-2693>, v=<71,-100,-386>, a=<2,11,26> +p=<-3162,548,714>, v=<-451,73,102>, a=<38,-5,-6> +p=<2359,862,1641>, v=<339,116,235>, a=<-22,-5,-19> +p=<-2245,-1426,1021>, v=<-314,-201,142>, a=<26,9,-9> +p=<-1787,1609,-651>, v=<-253,228,-86>, a=<14,-12,7> +p=<-2046,-2176,675>, v=<-295,-314,98>, a=<20,21,-2> +p=<92,1224,2925>, v=<15,174,419>, a=<3,-13,-35> +p=<-2676,1132,792>, v=<-383,167,110>, a=<26,-11,-6> +p=<-2747,44,530>, v=<-392,6,75>, a=<31,-1,-10> +p=<1635,2416,-694>, v=<231,341,-96>, a=<-19,-30,9> +p=<2566,1397,141>, v=<365,201,25>, a=<-25,-13,-2> +p=<-2687,1625,156>, v=<-381,228,24>, a=<26,-19,1> +p=<1187,2782,593>, v=<166,400,84>, a=<-14,-27,-8> +p=<12,-1995,2377>, v=<-2,-282,339>, a=<0,22,-17> +p=<-3012,-360,-1500>, v=<-432,-48,-218>, a=<29,2,19> +p=<-2365,1525,199>, v=<-332,215,31>, a=<24,-17,-1> +p=<-254,1669,2513>, v=<-31,237,359>, a=<4,-16,-23> +p=<-1071,2203,1517>, v=<-154,320,216>, a=<12,-23,-17> +p=<2195,231,1764>, v=<310,33,253>, a=<-22,-1,-19> +p=<-765,-2729,630>, v=<-112,-390,93>, a=<5,24,-8> +p=<2437,-1776,-1403>, v=<349,-251,-197>, a=<-23,18,14> +p=<793,1403,2970>, v=<111,201,419>, a=<-6,-14,-29> +p=<1594,-2749,-1482>, v=<227,-396,-207>, a=<-16,27,11> +p=<1418,1864,1818>, v=<200,265,261>, a=<-16,-19,-17> +p=<-942,-1572,2134>, v=<-137,-226,308>, a=<7,13,-20> +p=<-2352,1032,1986>, v=<-334,151,285>, a=<27,-7,-26> +p=<-2238,-1898,1513>, v=<-319,-271,222>, a=<22,19,-14> +p=<144,-741,2701>, v=<23,-101,385>, a=<3,8,-27> +p=<2485,-1973,846>, v=<350,-277,114>, a=<-21,18,-1> +p=<-103,100,-2421>, v=<-14,12,-349>, a=<1,-5,30> +p=<-51,-2900,-418>, v=<-7,-416,-59>, a=<-4,33,2> +p=<-2342,-1431,-1158>, v=<-332,-199,-162>, a=<25,13,11> +p=<3047,-188,-482>, v=<441,-26,-68>, a=<-31,-3,2> +p=<-302,3019,-1359>, v=<-44,433,-192>, a=<5,-29,18> +p=<-2582,-1307,936>, v=<-366,-182,132>, a=<20,15,-3> +p=<-1140,-2503,-1090>, v=<-164,-357,-154>, a=<11,25,8> +p=<-1908,-1869,1747>, v=<-266,-266,249>, a=<18,18,-19> +p=<-569,183,2831>, v=<-78,30,403>, a=<5,-1,-27> +p=<-1931,-2513,927>, v=<-275,-358,132>, a=<19,23,-12> +p=<-502,2000,2056>, v=<-74,286,294>, a=<5,-20,-18> +p=<-2656,269,1039>, v=<-375,45,146>, a=<27,0,-8> +p=<-1126,1513,-2691>, v=<-159,215,-381>, a=<10,-20,26> +p=<-823,1328,-2091>, v=<-119,189,-296>, a=<8,-16,24> +p=<-2693,-978,580>, v=<-389,-142,84>, a=<23,12,2> +p=<-878,-277,-3355>, v=<-123,-40,-478>, a=<9,2,33> +p=<240,-2544,282>, v=<33,-367,36>, a=<-5,23,-2> +p=<-59,-572,3078>, v=<-5,-78,444>, a=<-1,3,-30> +p=<2532,832,2194>, v=<361,118,312>, a=<-28,-8,-21> +p=<748,2769,-376>, v=<100,390,-56>, a=<-6,-27,3> +p=<1468,175,2378>, v=<209,25,340>, a=<-16,2,-28> +p=<2324,1671,-2021>, v=<336,243,-286>, a=<-23,-17,20> +p=<-2635,-888,-467>, v=<-376,-124,-72>, a=<26,9,4> +p=<-118,2602,-2121>, v=<-15,374,-304>, a=<5,-23,15> +p=<1240,1379,2572>, v=<179,201,362>, a=<-13,-11,-26> +p=<-1191,406,-2299>, v=<-173,58,-333>, a=<11,-11,22> +p=<-2652,1550,299>, v=<-380,221,42>, a=<27,-15,0> +p=<-2310,-2072,226>, v=<-328,-298,30>, a=<24,20,-2> +p=<1112,2562,1028>, v=<156,361,138>, a=<-11,-26,-14> +p=<-1282,205,3040>, v=<-187,35,438>, a=<10,-2,-30> +p=<-2655,-409,816>, v=<-381,-58,116>, a=<29,4,-8> +p=<-595,-2598,562>, v=<-87,-371,76>, a=<2,30,-1> +p=<-1080,-1161,-2609>, v=<-155,-165,-374>, a=<8,14,26> +p=<129,-2416,1481>, v=<23,-342,211>, a=<-1,26,-13> +p=<-1290,531,-1895>, v=<-182,77,-267>, a=<9,-4,18> +p=<542,-3071,-1074>, v=<82,-443,-155>, a=<-6,30,7> +p=<-1564,1953,-842>, v=<-223,280,-125>, a=<12,-14,10> +p=<-2106,2188,-1213>, v=<-299,312,-175>, a=<19,-24,11> +p=<2634,198,708>, v=<374,26,101>, a=<-26,-2,-4> +p=<533,-2693,-1322>, v=<76,-381,-186>, a=<-7,27,10> +p=<-1197,-2782,19>, v=<-171,-397,3>, a=<9,24,0> +p=<3042,1356,22>, v=<435,193,3>, a=<-33,-18,2> +p=<-542,1215,2351>, v=<-79,169,335>, a=<6,-12,-25> +p=<-2630,-699,-1044>, v=<-376,-101,-150>, a=<22,8,8> +p=<-3027,-359,-1400>, v=<-434,-47,-198>, a=<30,9,11> +p=<1135,-753,2936>, v=<161,-107,418>, a=<-18,10,-26> +p=<-42,2063,-1784>, v=<-1,291,-254>, a=<-4,-24,16> +p=<-1999,1276,-2642>, v=<-283,184,-376>, a=<21,-9,25> +p=<120,1838,-2283>, v=<12,259,-326>, a=<-4,-16,22> +p=<-1024,-1742,2584>, v=<-142,-251,369>, a=<10,12,-28> +p=<721,-2855,641>, v=<101,-409,93>, a=<-8,32,-8> +p=<1490,2720,-427>, v=<214,389,-62>, a=<-15,-31,5> +p=<1421,-2724,-181>, v=<204,-389,-28>, a=<-11,27,2> +p=<-2360,582,-1120>, v=<-338,83,-165>, a=<22,-10,13> +p=<269,1999,2898>, v=<38,283,412>, a=<1,-18,-24> +p=<1655,2601,-1260>, v=<235,376,-180>, a=<-19,-25,18> +p=<1942,480,-1689>, v=<277,66,-242>, a=<-17,-3,16> +p=<2661,-338,-795>, v=<379,-48,-117>, a=<-24,0,13> +p=<-2134,1862,151>, v=<-307,261,26>, a=<24,-18,-1> +p=<395,2238,1976>, v=<54,319,279>, a=<-5,-19,-19> +p=<-1141,2540,821>, v=<-162,361,117>, a=<10,-27,-7> +p=<308,1830,2034>, v=<45,268,288>, a=<-6,-14,-22> +p=<1793,-260,2231>, v=<260,-39,320>, a=<-18,1,-21> +p=<1849,-611,-1885>, v=<262,-87,-265>, a=<-17,4,18> +p=<-1380,1752,1205>, v=<-196,253,172>, a=<4,-19,-12> +p=<2708,897,-747>, v=<386,121,-102>, a=<-30,-6,8> +p=<2889,-1381,-891>, v=<411,-191,-129>, a=<-26,12,8> +p=<-324,-1067,-2585>, v=<-45,-150,-371>, a=<11,16,25> +p=<1961,564,2554>, v=<280,79,365>, a=<-20,-2,-28> +p=<698,-2610,-474>, v=<99,-373,-74>, a=<-3,26,4> +p=<-1090,-2386,-377>, v=<-157,-335,-54>, a=<14,23,7> +p=<806,1740,-2303>, v=<116,246,-328>, a=<-6,-17,20> +p=<-505,-2361,-842>, v=<-76,-341,-122>, a=<4,28,7> +p=<2614,-396,-1722>, v=<371,-56,-248>, a=<-26,3,17> +p=<1756,-1364,1108>, v=<250,-192,160>, a=<-13,10,-11> +p=<335,-2431,1555>, v=<48,-346,217>, a=<0,26,-15> +p=<-726,1196,2161>, v=<-100,163,308>, a=<9,-7,-21> +p=<-601,-1618,-2643>, v=<-85,-233,-381>, a=<3,18,26> +p=<-393,2630,547>, v=<-58,375,79>, a=<-1,-24,-2> +p=<-1361,-2031,1574>, v=<-198,-293,224>, a=<13,21,-10> +p=<-2160,1193,-1156>, v=<-308,172,-166>, a=<23,-11,11> +p=<-445,2972,-226>, v=<-65,421,-36>, a=<11,-29,0> +p=<-1198,-46,-2987>, v=<-168,-8,-427>, a=<7,0,29> +p=<-2653,-381,1831>, v=<-376,-57,266>, a=<24,3,-18> +p=<1327,1037,1965>, v=<189,148,285>, a=<-13,-10,-19> +p=<2148,-1555,1233>, v=<306,-222,176>, a=<-19,12,-13> +p=<-1982,-576,2273>, v=<-279,-82,322>, a=<17,6,-22> +p=<2224,-1197,2241>, v=<313,-170,320>, a=<-22,13,-26> +p=<2010,-929,2125>, v=<287,-129,303>, a=<-19,11,-22> +p=<-2360,2080,-414>, v=<-328,299,-56>, a=<30,-19,7> +p=<-595,-1253,2351>, v=<-85,-184,333>, a=<6,11,-16> +p=<-2267,-2244,1322>, v=<-324,-320,187>, a=<20,23,-8> +p=<-2046,1657,1637>, v=<-297,235,235>, a=<20,-8,-14> +p=<-756,-1657,-2373>, v=<-108,-232,-340>, a=<4,15,26> +p=<2756,412,1668>, v=<392,59,234>, a=<-30,-5,-21> +p=<2758,-798,762>, v=<390,-114,110>, a=<-29,8,-11> +p=<-1593,617,2060>, v=<-227,91,293>, a=<13,-7,-22> +p=<491,-2699,835>, v=<71,-386,119>, a=<-5,24,-11> +p=<890,2658,-262>, v=<126,383,-36>, a=<-8,-24,2> +p=<1795,-2852,130>, v=<257,-408,12>, a=<-21,27,6> +p=<-2725,-1481,765>, v=<-391,-208,114>, a=<27,19,-7> +p=<-2723,2258,1012>, v=<-389,322,142>, a=<25,-22,-6> +p=<2522,1827,447>, v=<360,261,58>, a=<-25,-18,-4> +p=<-1683,2548,682>, v=<-240,364,94>, a=<18,-24,-2> +p=<384,569,-3079>, v=<53,84,-439>, a=<0,-3,28> +p=<-1861,1920,1736>, v=<-262,273,248>, a=<15,-22,-17> +p=<-169,-1604,2028>, v=<-27,-224,285>, a=<-2,16,-20> +p=<-662,-2466,-822>, v=<-94,-349,-117>, a=<6,24,2> +p=<1706,-389,-2530>, v=<241,-58,-361>, a=<-14,3,22> +p=<2714,156,1611>, v=<385,30,228>, a=<-27,1,-18> +p=<1490,2184,280>, v=<212,314,45>, a=<-12,-21,-1> +p=<-1244,1802,1193>, v=<-177,259,172>, a=<14,-17,-11> +p=<1919,1888,-1698>, v=<274,273,-242>, a=<-12,-16,18> +p=<241,3194,375>, v=<33,451,52>, a=<-4,-33,-3> +p=<-1884,-964,-2394>, v=<-270,-134,-336>, a=<17,10,22> +p=<2568,-1502,-54>, v=<368,-214,-9>, a=<-28,15,-2> +p=<-886,-718,-2639>, v=<-126,-101,-378>, a=<1,5,22> +p=<-1945,-900,-2633>, v=<-280,-130,-373>, a=<13,9,26> +p=<-239,-556,2764>, v=<-31,-78,396>, a=<-2,-2,-28> +p=<-2138,-218,2748>, v=<-298,-25,392>, a=<23,1,-29> +p=<-1637,-2820,378>, v=<-233,-398,53>, a=<20,33,2> +p=<193,-575,2576>, v=<25,-80,370>, a=<1,8,-26> +p=<605,2629,1304>, v=<89,378,190>, a=<-6,-29,-16> +p=<836,852,2538>, v=<119,117,360>, a=<-8,-9,-22> +p=<-1333,-2240,-1051>, v=<-192,-324,-150>, a=<11,22,10> +p=<18,-2875,-335>, v=<4,-408,-50>, a=<0,33,-1> +p=<-918,-1709,-2115>, v=<-137,-244,-303>, a=<13,12,21> +p=<85,-2882,613>, v=<8,-410,82>, a=<0,27,-10> +p=<-639,-2216,-1903>, v=<-94,-316,-274>, a=<6,25,18> +p=<2782,142,-550>, v=<397,23,-79>, a=<-25,3,5> +p=<1602,1495,-1811>, v=<227,212,-259>, a=<-20,-17,18> +p=<-620,1564,-2076>, v=<-90,223,-297>, a=<11,-17,19> +p=<-2278,-1759,2266>, v=<-325,-253,326>, a=<21,17,-23> +p=<-586,2535,-445>, v=<-82,355,-70>, a=<6,-23,0> +p=<-104,-235,2787>, v=<-15,-35,400>, a=<3,2,-26> +p=<2921,-472,1807>, v=<420,-63,263>, a=<-26,6,-19> +p=<-1991,-813,-2235>, v=<-287,-111,-317>, a=<20,8,22> +p=<1441,2300,19>, v=<203,326,-2>, a=<-20,-17,4> +p=<-1473,1810,-2502>, v=<-210,258,-358>, a=<14,-18,24> +p=<908,-1484,2373>, v=<129,-208,339>, a=<-9,17,-22> +p=<2873,672,-91>, v=<415,101,-9>, a=<-29,-6,0> +p=<1096,-140,-2284>, v=<161,-20,-324>, a=<-15,-6,20> +p=<-2830,528,-828>, v=<-404,78,-120>, a=<32,-5,9> +p=<114,-1499,-1649>, v=<15,-212,-234>, a=<4,14,11> +p=<3081,468,338>, v=<440,66,48>, a=<-31,-3,-1> +p=<-2575,1783,-922>, v=<-366,254,-133>, a=<25,-16,7> +p=<2457,-1530,-1409>, v=<351,-220,-202>, a=<-25,15,19> +p=<930,-955,2829>, v=<131,-142,405>, a=<-6,9,-28> +p=<1024,268,2510>, v=<146,38,357>, a=<-11,3,-25> +p=<-2613,783,-255>, v=<-373,112,-37>, a=<24,-3,3> +p=<2409,579,133>, v=<345,79,24>, a=<-26,-7,-2> +p=<-965,-2692,2075>, v=<-133,-383,293>, a=<9,31,-18> +p=<-3,-2099,2393>, v=<-4,-299,343>, a=<-1,19,-23> +p=<1736,671,2334>, v=<248,95,337>, a=<-24,-4,-28> +p=<1147,-2922,-452>, v=<163,-415,-62>, a=<-6,29,6> +p=<1640,-2525,-622>, v=<242,-361,-88>, a=<-14,23,6> +p=<540,2258,1727>, v=<74,320,251>, a=<-1,-19,-16> +p=<1303,-449,2867>, v=<186,-62,413>, a=<-16,2,-21> +p=<-2721,1071,1253>, v=<-389,149,178>, a=<27,-13,-18> +p=<416,1877,1908>, v=<58,268,278>, a=<-1,-19,-19> +p=<-847,2302,1418>, v=<-120,327,202>, a=<8,-24,-8> +p=<-749,3158,-182>, v=<-104,452,-27>, a=<3,-33,-7> +p=<-833,151,2877>, v=<-113,24,410>, a=<8,-2,-28> +p=<2416,-32,-522>, v=<345,-4,-71>, a=<-26,1,5> +p=<1538,-2361,1077>, v=<221,-336,154>, a=<-14,22,-9> +p=<183,-2061,2457>, v=<23,-294,349>, a=<-1,23,-27> +p=<294,-739,-2874>, v=<44,-109,-411>, a=<-1,10,29> +p=<219,888,-3099>, v=<31,129,-439>, a=<-5,-4,31> +p=<-2714,1712,-703>, v=<-387,241,-98>, a=<23,-14,6> +p=<580,-2685,329>, v=<83,-385,50>, a=<-6,27,-9> +p=<1602,-2225,594>, v=<225,-312,82>, a=<-15,22,-6> +p=<-2216,2293,-6>, v=<-316,325,5>, a=<25,-26,2> +p=<566,-333,-3381>, v=<80,-44,-485>, a=<-14,3,33> +p=<778,2937,764>, v=<113,413,113>, a=<-8,-25,-1> +p=<-1579,2289,684>, v=<-227,330,97>, a=<12,-21,-6> +p=<-311,-1348,2861>, v=<-42,-188,406>, a=<1,11,-24> +p=<1454,2941,792>, v=<206,416,110>, a=<-18,-27,-12> +p=<-3130,484,262>, v=<-447,66,37>, a=<27,-1,-1> +p=<-134,1496,-3097>, v=<-24,216,-442>, a=<3,-15,26> +p=<-2050,-2080,-233>, v=<-291,-294,-33>, a=<22,21,0> +p=<2036,-2084,1404>, v=<294,-295,194>, a=<-22,19,-15> +p=<2424,1709,603>, v=<346,244,88>, a=<-24,-17,-4> +p=<-317,2401,-1590>, v=<-44,341,-226>, a=<7,-22,16> +p=<-1625,2183,-583>, v=<-228,308,-78>, a=<13,-20,4> +p=<-1738,812,2472>, v=<-246,119,353>, a=<17,-13,-24> +p=<-2533,1137,-2055>, v=<-360,166,-293>, a=<26,-6,20> +p=<2673,824,-1584>, v=<383,117,-228>, a=<-28,-9,14> +p=<-1366,-850,-2087>, v=<-193,-117,-301>, a=<10,8,20> +p=<-825,2218,-1454>, v=<-119,318,-202>, a=<3,-22,19> +p=<1155,2901,-761>, v=<162,415,-106>, a=<-11,-28,14> +p=<2150,14,-1951>, v=<307,2,-276>, a=<-23,4,21> +p=<-2778,391,421>, v=<-394,58,57>, a=<27,1,-3> +p=<-1369,1076,-2495>, v=<-192,155,-362>, a=<15,-5,20> +p=<-3039,703,-75>, v=<-439,100,-10>, a=<32,-12,1> +p=<-1660,1972,-1387>, v=<-235,281,-199>, a=<18,-16,11> +p=<-2951,-94,-1146>, v=<-419,-12,-164>, a=<34,-2,8> +p=<1062,176,2808>, v=<151,26,403>, a=<-6,3,-32> +p=<1345,1285,-2594>, v=<190,183,-370>, a=<-10,-10,28> +p=<1831,261,1743>, v=<265,34,253>, a=<-19,0,-16> +p=<2280,1868,-1042>, v=<329,270,-150>, a=<-26,-19,10> +p=<-1024,2588,1616>, v=<-146,372,232>, a=<12,-28,-19> +p=<2381,1809,-161>, v=<342,258,-23>, a=<-19,-24,3> +p=<1334,-2983,743>, v=<184,-426,105>, a=<-18,31,-12> +p=<-396,2571,-747>, v=<-51,368,-106>, a=<2,-26,11> +p=<963,2288,930>, v=<142,325,132>, a=<-9,-29,-8> +p=<-928,-2396,1354>, v=<-135,-341,195>, a=<9,30,-11> +p=<146,796,-2515>, v=<23,111,-361>, a=<4,0,24> +p=<958,630,2955>, v=<144,93,422>, a=<-6,-3,-32> +p=<601,-1734,-2450>, v=<87,-247,-350>, a=<-6,18,25> +p=<2599,-616,1270>, v=<378,-91,185>, a=<-26,6,-9> +p=<199,-2036,-2354>, v=<29,-290,-343>, a=<3,20,23> +p=<247,772,2206>, v=<37,111,315>, a=<-1,-8,-18> +p=<-2228,1569,969>, v=<-322,227,140>, a=<22,-15,-9> +p=<-1749,-939,-1821>, v=<-249,-134,-262>, a=<18,8,18> +p=<-1860,-3024,-265>, v=<-266,-427,-39>, a=<20,28,1> +p=<1522,1810,1745>, v=<216,264,250>, a=<-11,-19,-17> +p=<1842,511,-2521>, v=<262,73,-353>, a=<-23,0,23> +p=<-1619,-2370,-589>, v=<-235,-344,-83>, a=<16,23,6> +p=<-1794,1706,-796>, v=<-258,237,-116>, a=<19,-17,8> +p=<88,22,-2919>, v=<6,5,-416>, a=<0,1,31> +p=<2649,611,1019>, v=<376,88,142>, a=<-22,-4,-11> +p=<1339,-2121,2155>, v=<186,-307,305>, a=<-13,21,-17> +p=<2271,1004,1369>, v=<328,141,197>, a=<-17,-14,-18> +p=<-1214,-1374,2161>, v=<-168,-190,308>, a=<10,12,-22> +p=<3088,337,-1749>, v=<443,45,-252>, a=<-26,-3,19> +p=<45,-1088,2359>, v=<5,-155,335>, a=<2,6,-23> +p=<1236,-967,-2901>, v=<171,-138,-413>, a=<-13,3,31> +p=<-1861,2148,557>, v=<-268,310,79>, a=<18,-20,-2> +p=<2559,1712,1910>, v=<362,245,270>, a=<-27,-16,-12> +p=<360,-2737,-63>, v=<48,-389,-7>, a=<-8,26,5> +p=<-2342,344,-639>, v=<-331,48,-91>, a=<22,-4,6> +p=<-1927,1718,-363>, v=<-280,245,-52>, a=<13,-20,-4> +p=<-709,135,2956>, v=<-102,18,425>, a=<14,-2,-25> +p=<-1172,-247,-2787>, v=<-167,-31,-398>, a=<9,2,28> +p=<-1765,-2164,249>, v=<-249,-304,35>, a=<21,21,-2> +p=<-1650,-274,-2505>, v=<-238,-36,-351>, a=<15,2,19> +p=<-2000,1250,1355>, v=<-287,184,194>, a=<20,-11,-14> +p=<2935,-445,167>, v=<421,-61,20>, a=<-29,4,-1> +p=<1991,-2237,-145>, v=<284,-313,-17>, a=<-19,19,2> +p=<-1051,-2065,1870>, v=<-154,-294,267>, a=<5,17,-15> +p=<-1045,2303,1779>, v=<-146,331,254>, a=<5,-25,-16> +p=<-1391,1424,-2606>, v=<-196,202,-375>, a=<9,-14,26> +p=<-449,-2757,482>, v=<-66,-394,63>, a=<4,25,-8> +p=<0,-1817,-2332>, v=<0,-261,-340>, a=<4,21,26> +p=<1435,599,2138>, v=<206,90,305>, a=<-14,-11,-17> +p=<-333,-2904,512>, v=<-46,-413,69>, a=<3,27,0> +p=<-1300,-2501,974>, v=<-185,-356,141>, a=<15,20,-7> +p=<-1152,1985,-1339>, v=<-167,285,-189>, a=<10,-15,10> +p=<-2231,-1654,-73>, v=<-315,-237,-10>, a=<24,16,4> +p=<1000,1712,2282>, v=<143,249,330>, a=<-15,-17,-22> +p=<-3328,362,-738>, v=<-477,56,-107>, a=<30,-3,7> +p=<2125,1946,1266>, v=<308,281,172>, a=<-18,-22,-10> +p=<584,1286,2843>, v=<81,178,401>, a=<-4,-14,-29> +p=<3430,-271,802>, v=<494,-38,118>, a=<-36,-1,-7> +p=<-2158,-405,2248>, v=<-308,-55,326>, a=<22,4,-22> +p=<-1612,-2558,132>, v=<-228,-365,18>, a=<21,29,0> +p=<-489,2723,-1390>, v=<-64,390,-198>, a=<1,-24,11> +p=<3076,1529,326>, v=<441,216,45>, a=<-24,-17,-1> +p=<1698,1152,2581>, v=<243,167,370>, a=<-20,-9,-25> +p=<-2453,80,-872>, v=<-348,14,-123>, a=<24,2,8> +p=<-2106,-1936,523>, v=<-303,-276,77>, a=<21,17,-5> +p=<-2612,-1675,657>, v=<-373,-244,93>, a=<22,18,-4> +p=<-1482,-1967,-1702>, v=<-207,-283,-245>, a=<14,16,17> +p=<-2518,1724,-814>, v=<-358,248,-115>, a=<24,-14,8> +p=<-2594,1458,-618>, v=<-374,214,-89>, a=<28,-15,7> +p=<-2498,1382,-322>, v=<-355,203,-48>, a=<27,-12,2> +p=<1526,-471,-2412>, v=<219,-70,-343>, a=<-11,4,25> +p=<-818,-1187,-2436>, v=<-111,-169,-348>, a=<10,6,25> +p=<1285,1242,-1814>, v=<179,177,-258>, a=<-12,-15,20> +p=<-2778,-1519,388>, v=<-395,-221,54>, a=<26,15,-4> +p=<-1778,-2274,-445>, v=<-256,-320,-63>, a=<17,18,2> +p=<1465,2951,-1028>, v=<214,421,-146>, a=<-10,-29,12> +p=<-2586,-2176,882>, v=<-367,-310,125>, a=<27,15,-11> +p=<-1800,-2702,-158>, v=<-255,-382,-20>, a=<20,24,1> +p=<-1488,-2830,-496>, v=<-212,-404,-70>, a=<14,27,4> +p=<2028,2471,-471>, v=<291,358,-66>, a=<-15,-21,0> +p=<1151,-79,2727>, v=<164,-8,390>, a=<-11,1,-26> +p=<-2620,-2745,-61>, v=<-373,-394,-8>, a=<31,27,0> +p=<231,-1223,2860>, v=<33,-170,409>, a=<-1,10,-26> +p=<2302,-656,-944>, v=<325,-88,-133>, a=<-21,6,15> +p=<-1157,-1411,2594>, v=<-170,-201,370>, a=<14,15,-31> +p=<-2064,-2094,1251>, v=<-294,-299,178>, a=<20,18,-11> +p=<2100,-2124,-488>, v=<295,-307,-70>, a=<-25,20,1> +p=<-1825,-2378,459>, v=<-263,-339,72>, a=<19,23,-6> +p=<-1205,1830,984>, v=<-173,261,132>, a=<12,-20,-9> +p=<3020,-168,-204>, v=<431,-24,-25>, a=<-32,2,5> +p=<1518,-1957,-2681>, v=<215,-278,-381>, a=<-19,19,27> +p=<-1734,-1066,2148>, v=<-249,-149,306>, a=<20,10,-23> +p=<-153,-2000,1830>, v=<-21,-283,264>, a=<-5,15,-14> +p=<-2504,-1384,1088>, v=<-356,-198,149>, a=<25,11,-14> +p=<1669,881,2447>, v=<236,118,352>, a=<-15,-6,-21> +p=<1535,-853,2618>, v=<221,-121,379>, a=<-17,11,-29> +p=<-2917,54,1511>, v=<-414,6,215>, a=<29,0,-12> +p=<-1106,-180,-2705>, v=<-156,-25,-386>, a=<7,0,21> +p=<-59,336,-2881>, v=<-9,51,-407>, a=<0,-2,29> +p=<-2210,1011,-845>, v=<-322,146,-120>, a=<19,-7,0> +p=<2826,-524,2237>, v=<403,-72,319>, a=<-22,5,-22> +p=<-1208,-2358,645>, v=<-171,-343,89>, a=<5,29,-1> +p=<-2048,2314,800>, v=<-293,334,112>, a=<22,-25,-1> +p=<-2149,5,-1355>, v=<-306,-3,-196>, a=<21,4,18> +p=<1284,662,-2593>, v=<184,94,-374>, a=<-12,-6,32> +p=<-1874,-2537,450>, v=<-267,-361,60>, a=<20,19,-5> +p=<2705,530,-198>, v=<387,75,-20>, a=<-29,2,1> +p=<-2624,-954,-1520>, v=<-377,-134,-220>, a=<23,12,22> +p=<-695,-376,-2690>, v=<-99,-52,-384>, a=<4,3,30> +p=<2412,-1747,-1046>, v=<339,-246,-151>, a=<-21,12,10> +p=<-1279,-2107,-1243>, v=<-180,-304,-177>, a=<12,22,14> +p=<337,-1405,2548>, v=<49,-203,364>, a=<-5,18,-27> +p=<1135,-2203,1556>, v=<161,-315,220>, a=<-14,27,-15> +p=<-754,2322,-1334>, v=<-107,331,-189>, a=<4,-24,11> +p=<-1854,-529,-2664>, v=<-261,-72,-378>, a=<16,8,28> +p=<2070,2256,-1296>, v=<290,326,-182>, a=<-15,-23,11> +p=<-1011,2553,1237>, v=<-149,365,177>, a=<9,-25,-14> +p=<-1374,-2495,412>, v=<-196,-353,61>, a=<12,24,-4> +p=<172,-2059,2245>, v=<24,-295,318>, a=<0,21,-24> +p=<88,1541,-2567>, v=<12,220,-369>, a=<-3,-15,29> +p=<-886,2415,982>, v=<-129,344,142>, a=<9,-29,-12> diff --git a/day20/part1.js b/day20/part1.js new file mode 100644 index 0000000..a31e4c0 --- /dev/null +++ b/day20/part1.js @@ -0,0 +1,15 @@ +var input = require("fs").readFileSync("input.txt").toString(); +var inputjson = "[{" + input.replace(/([a-z])=/g, "]").replace(/\n/g, "},\n{").slice(0,-3) + "]"; +var objects = JSON.parse(inputjson); +for(var i = 0; i < 1000; i++){ + objects = objects.map(o=>{ + o.v = o.v.map((v,x)=>(v + o.a[x])); + o.p = o.p.map((p,x)=>(p + o.v[x])); + return o; + }); +} +var locations = objects.map(o=>(o.p)); +var distances = locations.map((a)=>(a.map((b)=>(Math.abs(b))).reduce((b,c)=>(b+c)))); +var maxdist = Math.min.apply(null, distances); +console.log(maxdist); +console.log(distances.indexOf(maxdist)); diff --git a/day20/part2.js b/day20/part2.js new file mode 100644 index 0000000..ea926e3 --- /dev/null +++ b/day20/part2.js @@ -0,0 +1,14 @@ +var input = require("fs").readFileSync("input.txt").toString(); +var inputjson = "[{" + input.replace(/([a-z])=/g, "]").replace(/\n/g, "},\n{").slice(0,-3) + "]"; +var objects = JSON.parse(inputjson); +for(var i = 0; i < 10000; i++){ + objects = objects.map(o=>{ + o.v = o.v.map((v,x)=>(v + o.a[x])); + o.p = o.p.map((p,x)=>(p + o.v[x])); + return o; + }); + var locations = objects.map(o=>(o.p)); + var locationsStr = locations.map((a)=>(a.join(","))); + objects = objects.filter((a)=>(locationsStr.filter((b)=>(b==a.p.join(","))).length == 1)); + console.log(objects.length); +} diff --git a/day21/input.txt b/day21/input.txt new file mode 100644 index 0000000..280e26d --- /dev/null +++ b/day21/input.txt @@ -0,0 +1,108 @@ +../.. => ..#/#../.#. +#./.. => #../#../... +##/.. => ###/#.#/#.. +.#/#. => ###/##./.#. +##/#. => .../.#./..# +##/## => ##./#.#/### +.../.../... => ##../.#../#.#./.... +#../.../... => ..../##.#/...#/##.# +.#./.../... => ###./####/#.../#..# +##./.../... => ###./.##./...#/..## +#.#/.../... => .###/.##./#.../#.## +###/.../... => ##.#/#..#/#.#./#.## +.#./#../... => #.#./.###/#.../#.## +##./#../... => #.../####/#.##/.... +..#/#../... => #.##/..#./...#/...# +#.#/#../... => #.##/####/.#.#/#.#. +.##/#../... => #.../##../##.#/.##. +###/#../... => ..../#.#./.###/#... +.../.#./... => .#.#/#..#/##../#.## +#../.#./... => ###./.###/.#.#/..#. +.#./.#./... => ..##/.##./..##/.#.# +##./.#./... => ..#./##../###./...# +#.#/.#./... => ..##/.##./.###/###. +###/.#./... => ..#./.###/###./#.## +.#./##./... => ###./..../.#../#... +##./##./... => .#.#/##../##.#/...# +..#/##./... => ##.#/.##./.###/..## +#.#/##./... => .###/..#./#.##/#### +.##/##./... => ##.#/..#./..##/###. +###/##./... => ..../.#.#/.#../#... +.../#.#/... => ###./.#.#/.#../#.## +#../#.#/... => ####/#..#/..../.... +.#./#.#/... => #.../..##/#.##/#.#. +##./#.#/... => #.#./###./##../#.#. +#.#/#.#/... => ...#/.##./.##./.#.. +###/#.#/... => ..../.##./####/#.#. +.../###/... => .###/.#../.###/#.## +#../###/... => ..##/..##/.##./##.. +.#./###/... => .#.#/..#./..##/##.# +##./###/... => ...#/#.##/#.#./##.# +#.#/###/... => #.##/.##./...#/###. +###/###/... => ##../...#/..##/#### +..#/.../#.. => #.##/#.../.#../#.#. +#.#/.../#.. => .##./.##./.#.#/.##. +.##/.../#.. => .#.#/#.##/...#/##.# +###/.../#.. => ##../..#./...#/##.. +.##/#../#.. => ##../..##/#..#/#..# +###/#../#.. => ##../..#./#.#./.... +..#/.#./#.. => .##./##.#/##../#### +#.#/.#./#.. => ####/...#/.#.#/..#. +.##/.#./#.. => .#.#/..#./##.#/.#.. +###/.#./#.. => #.../#.##/..../##.# +.##/##./#.. => #.#./#.#./#.##/#.#. +###/##./#.. => ...#/###./.##./.#.# +#../..#/#.. => ####/####/..../.##. +.#./..#/#.. => #.##/...#/..#./#### +##./..#/#.. => ..#./#.../..##/#### +#.#/..#/#.. => #.../#.##/#.##/..## +.##/..#/#.. => ####/..../##../#### +###/..#/#.. => ..../##.#/.##./#### +#../#.#/#.. => ...#/..##/###./#..# +.#./#.#/#.. => #..#/..#./.###/##.# +##./#.#/#.. => ###./####/#.##/..#. +..#/#.#/#.. => ##../##.#/..##/.##. +#.#/#.#/#.. => .#.#/.##./#.../##.# +.##/#.#/#.. => .#.#/#..#/.##./..#. +###/#.#/#.. => ...#/.#../.##./##.# +#../.##/#.. => ###./##../#.#./#### +.#./.##/#.. => .#../##../#.#./.#.# +##./.##/#.. => ##.#/.#../.#.#/#### +#.#/.##/#.. => ####/.#.#/..../.... +.##/.##/#.. => ####/##../#..#/#### +###/.##/#.. => .###/##.#/.#../#.## +#../###/#.. => #..#/###./####/.#.# +.#./###/#.. => ..##/##../##.#/.#.# +##./###/#.. => #..#/.#../####/...# +..#/###/#.. => ##../##.#/...#/#..# +#.#/###/#.. => ..#./.##./#..#/.... +.##/###/#.. => #..#/#.../..../.#.. +###/###/#.. => ..#./#.##/.##./#... +.#./#.#/.#. => .#.#/.##./##.#/.##. +##./#.#/.#. => #..#/.###/.#.#/.##. +#.#/#.#/.#. => #.../##../#.../.### +###/#.#/.#. => ###./.###/###./.... +.#./###/.#. => .#../####/...#/##.. +##./###/.#. => ####/###./..../.... +#.#/###/.#. => ...#/.###/..../#### +###/###/.#. => ..../#.../..#./.### +#.#/..#/##. => #.#./#.../####/#.## +###/..#/##. => .#.#/#..#/.###/#... +.##/#.#/##. => ..##/..#./..../##.. +###/#.#/##. => #.#./##.#/####/#..# +#.#/.##/##. => ..../.#../#.#./##.# +###/.##/##. => ..../..../.#../##.# +.##/###/##. => #.#./.###/#.#./#.## +###/###/##. => ##.#/##.#/.###/..#. +#.#/.../#.# => #..#/.#../#.../...# +###/.../#.# => ##../.#../##.#/..#. +###/#../#.# => ..##/#.#./####/.#.. +#.#/.#./#.# => ...#/...#/#..#/#.#. +###/.#./#.# => ..../####/.##./.#.# +###/##./#.# => #..#/.#.#/..##/#### +#.#/#.#/#.# => #.#./..#./...#/.#.. +###/#.#/#.# => ...#/##.#/.###/.#.. +#.#/###/#.# => .#.#/###./.#../.##. +###/###/#.# => ...#/.###/.#.#/###. +###/#.#/### => #.##/.#.#/...#/.#.. +###/###/### => ..##/.#../#.#./.#.. diff --git a/day21/part1.js b/day21/part1.js new file mode 100644 index 0000000..866623d --- /dev/null +++ b/day21/part1.js @@ -0,0 +1,66 @@ +var maps = {}; +for(var map of require("fs").readFileSync("input.txt").toString().split("\n").filter(a=>(a))){ + map = map.split(" => "); + maps[map[0]] = map[1]; +} + +for(var i = 0; i < 1; i++){ + for(var input of Object.keys(maps)){ + var lines = input.split("/"); + rotated = input.split("/").map((line,y)=>(line.split("").map((a, x)=>(lines[lines.length-1-x][y])).join(""))).join("/"); + maps[rotated] = maps[input]; + } +} + +for(var input of Object.keys(maps)){ + maps[input.split("/").reverse().join("/")] = maps[input]; +} + +for(var input of Object.keys(maps)){ + maps[input.split("/").map(line=>(line.split("").reverse().join(""))).join("/")] = maps[input]; +} + +function runRound(textInput){ + var oldGrid = textInput.split("/").map((a)=>(a.split(""))); + var sideLen = oldGrid[0].length; + if(sideLen%2 == 0){ + var sideSquares = sideLen/2; + var squareLen = 2; + var newSquareLen = 3; + } + else if(sideLen%3 == 0){ + var sideSquares = sideLen/3; + var squareLen = 3; + var newSquareLen = 4; + } + + var newGrid = []; + for(var i = 0; i < (sideSquares * newSquareLen); i++){ + newGrid[i] = []; + } + + for(var x = 0; x < sideSquares; x++){ + for(var y = 0; y < sideSquares; y++){ + var section = []; + for(var i = 0; i < squareLen; i++){ + section.push(oldGrid[(y*squareLen) + i].slice(x*squareLen, (x+1)*squareLen)); + } + var sectionText = section.map((a)=>(a.join(""))).join("/"); + var newSectionText = maps[sectionText]; + var newSection = newSectionText.split("/").map(a=>(a.split(""))); + for(var x1 = 0; x1 < newSquareLen; x1++){ + for(var y1= 0; y1 < newSquareLen; y1++){ + newGrid[(y*newSquareLen) + y1][(x*newSquareLen) + x1] = newSection[y1][x1]; + } + } + } + } + return newGrid.map(a=>(a.join(""))).join("/") +} + +var currentGrid = ".#./..#/###"; +var iters = 5; +for(var i = 0; i < iters; i++){ + currentGrid = runRound(currentGrid); +} +console.log(currentGrid.split("").filter(a=>(a=="#")).length); diff --git a/day21/part2.js b/day21/part2.js new file mode 100644 index 0000000..54a3092 --- /dev/null +++ b/day21/part2.js @@ -0,0 +1,66 @@ +var maps = {}; +for(var map of require("fs").readFileSync("input.txt").toString().split("\n").filter(a=>(a))){ + map = map.split(" => "); + maps[map[0]] = map[1]; +} + +for(var i = 0; i < 1; i++){ + for(var input of Object.keys(maps)){ + var lines = input.split("/"); + rotated = input.split("/").map((line,y)=>(line.split("").map((a, x)=>(lines[lines.length-1-x][y])).join(""))).join("/"); + maps[rotated] = maps[input]; + } +} + +for(var input of Object.keys(maps)){ + maps[input.split("/").reverse().join("/")] = maps[input]; +} + +for(var input of Object.keys(maps)){ + maps[input.split("/").map(line=>(line.split("").reverse().join(""))).join("/")] = maps[input]; +} + +function runRound(textInput){ + var oldGrid = textInput.split("/").map((a)=>(a.split(""))); + var sideLen = oldGrid[0].length; + if(sideLen%2 == 0){ + var sideSquares = sideLen/2; + var squareLen = 2; + var newSquareLen = 3; + } + else if(sideLen%3 == 0){ + var sideSquares = sideLen/3; + var squareLen = 3; + var newSquareLen = 4; + } + + var newGrid = []; + for(var i = 0; i < (sideSquares * newSquareLen); i++){ + newGrid[i] = []; + } + + for(var x = 0; x < sideSquares; x++){ + for(var y = 0; y < sideSquares; y++){ + var section = []; + for(var i = 0; i < squareLen; i++){ + section.push(oldGrid[(y*squareLen) + i].slice(x*squareLen, (x+1)*squareLen)); + } + var sectionText = section.map((a)=>(a.join(""))).join("/"); + var newSectionText = maps[sectionText]; + var newSection = newSectionText.split("/").map(a=>(a.split(""))); + for(var x1 = 0; x1 < newSquareLen; x1++){ + for(var y1= 0; y1 < newSquareLen; y1++){ + newGrid[(y*newSquareLen) + y1][(x*newSquareLen) + x1] = newSection[y1][x1]; + } + } + } + } + return newGrid.map(a=>(a.join(""))).join("/") +} + +var currentGrid = ".#./..#/###"; +var iters = 18; +for(var i = 0; i < iters; i++){ + currentGrid = runRound(currentGrid); +} +console.log(currentGrid.split("").filter(a=>(a=="#")).length); diff --git a/day22/input.txt b/day22/input.txt new file mode 100644 index 0000000..9e00ab9 --- /dev/null +++ b/day22/input.txt @@ -0,0 +1,25 @@ +..#..##...##.######.##... +..#...#####..#.#####..#.. +...##.#..##.#.##....#...# +#.#.#.#..###...#....##..# +..#..#####.....##..#.#..# +.##.#####.#.....###.#..#. +##..####...#.##.#...##... +###.#.#####...##.#.##..#. +#.##..##.#....#.#..#.##.. +###.######......####..#.# +###.....#.##.##.######..# +...####.###.#....#..##.## +#..####.#.....#....###.#. +#..##..#.####.#.##..#.#.. +#..#.#.##...#...#####.##. +#.###..#.##.#..##.####### +...###..#..####.####.#.#. +.#..###..###.#....####### +.####..##.#####.#.#..#.#. +#.#....##.....##.##.....# +....####.....#..#.##..##. +######..##..#.###...###.. +..##...##.....#..###.###. +##.#.#..##.#.#.##....##.# +.#.###..##..#....#...##.# diff --git a/day22/part1.js b/day22/part1.js new file mode 100644 index 0000000..4e7abd7 --- /dev/null +++ b/day22/part1.js @@ -0,0 +1,31 @@ +var grid = require("fs").readFileSync("input.txt").toString().split("\n").filter(a=>(a)).reverse().map(a=>(a.split(""))); +var dirs = [[0, 1], [1, 0], [0, -1], [-1, 0]]; +var dir = 0; +var x = Math.floor(grid.length/2); +var y = Math.floor(grid.length/2); +var numInfected = 0; + +for(var i = 0; i < 10000; i++){ + var clean = true; + if(grid[y]){ + if(grid[y][x] == "#"){ + clean = false; + } + } + else{ + grid[y] = []; + } + if(clean){ + grid[y][x] = "#"; + numInfected++; + dir--; + } + else{ + grid[y][x] = "."; + dir++; + } + dir = (dir+4)%4; + x += dirs[dir][0]; + y += dirs[dir][1]; +} +console.log(numInfected); diff --git a/day22/part2.js b/day22/part2.js new file mode 100644 index 0000000..a727de8 --- /dev/null +++ b/day22/part2.js @@ -0,0 +1,32 @@ +var grid = require("fs").readFileSync("input.txt").toString().split("\n").filter(a=>(a)).reverse().map(a=>(a.split(""))); +var dirs = [[0, 1], [1, 0], [0, -1], [-1, 0]]; +var dir = 0; +var x = Math.floor(grid.length/2); +var y = Math.floor(grid.length/2); +var numInfected = 0; + +for(var i = 0; i < 10000000; i++){ + var clean = true; + if(grid[y]){ + if(!grid[y][x]){ + grid[y][x] = "."; + } + } + else{ + grid[y] = []; + grid[y][x] = "."; + } + + var states = [".", "W", "#", "F"]; + var dirChanges = [-1, 0, 1, 2]; + dir += dirChanges[states.indexOf(grid[y][x])]; + grid[y][x] = states[(states.indexOf(grid[y][x])+1) % 4]; + if(grid[y][x] == "#"){ + numInfected++; + } + + dir = (dir+4)%4; + x += dirs[dir][0]; + y += dirs[dir][1]; +} +console.log(numInfected); diff --git a/day23/input.txt b/day23/input.txt new file mode 100644 index 0000000..e6f711d --- /dev/null +++ b/day23/input.txt @@ -0,0 +1,32 @@ +set b 540 +set c b +jnz a 2 +jnz 1 5 +mul b 100 +sub b -100000 +set c b +sub c -17000 +set f 1 +set d 2 +set e 2 +set g d +mul g e +sub g b +jnz g 2 +set f 0 +sub e -1 +set g e +sub g b +jnz g -8 +sub d -1 +set g d +sub g b +jnz g -13 +jnz f 2 +sub h -1 +set g b +sub g c +jnz g 2 +jnz 1 3 +sub b -17 +jnz 1 -23 diff --git a/day23/part1.js b/day23/part1.js new file mode 100644 index 0000000..9c30660 --- /dev/null +++ b/day23/part1.js @@ -0,0 +1,30 @@ +var pc = 0; +var registers = {a: 0, b: 0, c: 0, d: 0, e: 0, f: 0, g: 0, h: 0}; +var instructions = require("fs").readFileSync("input.txt").toString().split("\n").filter((a)=>(a)); +var numMul = 0; +while((pc >= 0) && (pc < instructions.length)){ + val = a => ((isNaN(parseInt(a))) ? (registers[a]) : (parseInt(a))); + var instruction = instructions[pc]; + var parts = instruction.split(" "); + var pcstart = pc; + switch(parts[0]){ + case "set": + registers[parts[1]] = val(parts[2]); + break; + case "sub": + registers[parts[1]] -= val(parts[2]); + break; + case "mul": + numMul++; + registers[parts[1]] *= val(parts[2]); + break; + case "jnz": + if(val(parts[1]) != 0){ + pc += (val(parts[2]) - 1); + } + break; + } + pc++; +} +console.log(numMul); +console.log(registers); diff --git a/day23/part2.js b/day23/part2.js new file mode 100644 index 0000000..e43804c --- /dev/null +++ b/day23/part2.js @@ -0,0 +1,13 @@ +var num = 106700; +var end = 123700; +var numNotPrime = 0; +while(num <= end){ + for(var i = 2; i <= Math.sqrt(num); i++){ + if(num%i == 0){ + i = num; + numNotPrime++; + } + } + num += 17; +} +console.log(numNotPrime); diff --git a/day24/input.txt b/day24/input.txt new file mode 100644 index 0000000..234aa1f --- /dev/null +++ b/day24/input.txt @@ -0,0 +1,56 @@ +31/13 +34/4 +49/49 +23/37 +47/45 +32/4 +12/35 +37/30 +41/48 +0/47 +32/30 +12/5 +37/31 +7/41 +10/28 +35/4 +28/35 +20/29 +32/20 +31/43 +48/14 +10/11 +27/6 +9/24 +8/28 +45/48 +8/1 +16/19 +45/45 +0/4 +29/33 +2/5 +33/9 +11/7 +32/10 +44/1 +40/32 +2/45 +16/16 +1/18 +38/36 +34/24 +39/44 +32/37 +26/46 +25/33 +9/10 +0/29 +38/8 +33/33 +49/19 +18/20 +49/39 +18/39 +26/13 +19/32 diff --git a/day24/part1.js b/day24/part1.js new file mode 100644 index 0000000..4f5cec5 --- /dev/null +++ b/day24/part1.js @@ -0,0 +1,25 @@ +var components = require("fs").readFileSync("input.txt").toString().split("\n").filter(a=>(a)).map(a=>(a.split("/").map(b=>(parseInt(b))))); +var finalBridges = []; +function getLongerChains(state){ + var additions = components.filter(a=>(state.components.indexOf(a) == -1)).filter(a=>(a[0] == state.end || a[1] == state.end)); + if(additions.length == 0){ + finalBridges.push(state.components) + } + else{ + additions.forEach(a=>{ + var newState = { + components: state.components.slice(), + end: a.filter((b,i)=>(i!=a.indexOf(state.end)))[0] + } + newState.components.push(a); + //console.log(newState); + getLongerChains(newState); + }); + } +} +getLongerChains({ + components: [], + end: 0 +}); +var bridgeLengths = finalBridges.map(bridge=>(bridge.map(a=>(a[0] + a[1])).reduce((a,b)=>(a+b)))); +console.log(bridgeLengths.reduce((g, b)=>((b>g || g==null) ? b : g),null)); diff --git a/day24/part2.js b/day24/part2.js new file mode 100644 index 0000000..ae2619b --- /dev/null +++ b/day24/part2.js @@ -0,0 +1,28 @@ +var components = require("fs").readFileSync("input.txt").toString().split("\n").filter(a=>(a)).map(a=>(a.split("/").map(b=>(parseInt(b))))); +var finalBridges = []; +function getLongerChains(state){ + var additions = components.filter(a=>(state.components.indexOf(a) == -1)).filter(a=>(a[0] == state.end || a[1] == state.end)); + if(additions.length == 0){ + finalBridges.push(state.components) + } + else{ + additions.forEach(a=>{ + var newState = { + components: state.components.slice(), + end: a.filter((b,i)=>(i!=a.indexOf(state.end)))[0] + } + newState.components.push(a); + getLongerChains(newState); + }); + } +} +getLongerChains({ + components: [], + end: 0 +}); +var bridgeLengths = finalBridges.map(bridge=>(bridge.length)); +var maxLength = bridgeLengths.reduce((g, b)=>((b>g || g==null) ? b : g),null); +var maxLengthBridges = finalBridges.filter(bridge=>(bridge.length == maxLength)); +var bridgeStrengths = maxLengthBridges.map(bridge=>(bridge.map(a=>(a[0] + a[1])).reduce((a,b)=>(a+b)))); +var maxStrength = bridgeStrengths.reduce((g, b)=>((b>g || g==null) ? b : g),null); +console.log(maxStrength); diff --git a/day25/part1.js b/day25/part1.js new file mode 100644 index 0000000..f25bd0a --- /dev/null +++ b/day25/part1.js @@ -0,0 +1,36 @@ +var state = "A"; +var tape = {}; +var pointer = 0; +var actions = { + A: [ + [1, 1, "B"], [0, -1, "B"] + ], + B: [ + [0, 1, "C"], [1, -1, "B"] + ], + C: [ + [1, 1, "D"], [0, -1, "A"] + ], + D: [ + [1, -1, "E"], [1, -1, "F"] + ], + E: [ + [1, -1, "A"], [0, -1, "D"] + ], + F: [ + [1, 1, "A"], [1, -1, "E"] + ], +} +aactions = { + A: [[1,1,"B"],[0,-1,"B"]], + B: [[1,-1,"A"],[1,1,"A"]], +} +for(var i = 0; i < 12629077; i++){ + var action = actions[state][tape[pointer] ? 1 : 0]; + //console.log(state, pointer, tape); + tape[pointer] = action[0]; + pointer += action[1]; + state = action[2]; +} +console.log(tape); +console.log(Object.keys(tape).map(a=>(tape[a])).reduce((a,b)=>(a+b)));