From d5fbba3277eee1e578df6cda4be27abb202260bb Mon Sep 17 00:00:00 2001 From: TimStallard Date: Sat, 16 Dec 2017 12:12:56 +0000 Subject: [PATCH] days 11-16 --- day11/input.txt | 1 + day11/part1.js | 30 + day11/part2.js | 41 + day12/input.txt | 2000 +++++++++++++++++++++++++++++++++++++++++++++++ day12/part1.js | 11 + day12/part2.js | 19 + day13/input.txt | 43 + day13/part1.js | 4 + day13/part2.js | 8 + day14/part1.js | 32 + day14/part2.js | 61 ++ day15/part1.js | 13 + day15/part2.js | 19 + day16/input.txt | 1 + day16/part1.js | 11 + day16/part2.js | 19 + 16 files changed, 2313 insertions(+) create mode 100644 day11/input.txt create mode 100644 day11/part1.js create mode 100644 day11/part2.js create mode 100644 day12/input.txt create mode 100644 day12/part1.js create mode 100644 day12/part2.js create mode 100644 day13/input.txt create mode 100644 day13/part1.js create mode 100644 day13/part2.js create mode 100644 day14/part1.js create mode 100644 day14/part2.js create mode 100644 day15/part1.js create mode 100644 day15/part2.js create mode 100644 day16/input.txt create mode 100644 day16/part1.js create mode 100644 day16/part2.js diff --git a/day11/input.txt b/day11/input.txt new file mode 100644 index 0000000..33031e9 --- /dev/null +++ b/day11/input.txt @@ -0,0 +1 @@ +ne,se,se,s,nw,s,ne,sw,s,nw,sw,sw,sw,sw,sw,s,sw,nw,nw,nw,nw,ne,nw,nw,n,n,n,nw,nw,nw,n,n,s,nw,sw,se,n,n,ne,n,n,n,sw,n,ne,n,nw,n,sw,n,se,n,ne,ne,sw,n,n,ne,ne,ne,ne,s,se,ne,ne,ne,n,ne,ne,ne,sw,ne,ne,sw,se,se,ne,sw,nw,se,s,nw,se,nw,se,se,se,se,se,ne,se,se,n,n,se,se,sw,se,se,se,se,se,se,se,se,se,ne,se,ne,se,se,s,se,se,se,se,se,s,se,ne,s,se,s,se,ne,s,se,s,s,s,se,se,s,s,nw,s,s,s,se,s,s,s,s,nw,nw,s,s,nw,s,s,nw,s,s,s,s,s,s,s,nw,s,sw,s,s,sw,s,s,s,s,s,ne,nw,s,s,n,s,sw,s,n,sw,sw,sw,sw,s,sw,sw,sw,sw,sw,sw,s,s,se,se,sw,sw,nw,s,s,s,s,sw,sw,sw,ne,s,sw,s,sw,sw,sw,sw,sw,sw,sw,sw,sw,sw,nw,sw,sw,sw,se,se,sw,sw,sw,sw,sw,sw,sw,nw,nw,sw,sw,nw,nw,s,sw,sw,sw,sw,se,sw,s,nw,se,sw,nw,sw,sw,sw,sw,sw,sw,nw,nw,sw,sw,sw,sw,sw,n,n,nw,sw,sw,nw,se,sw,nw,sw,ne,sw,nw,n,n,nw,sw,nw,nw,nw,nw,nw,sw,n,nw,nw,sw,nw,n,nw,sw,nw,s,sw,sw,sw,nw,nw,sw,nw,nw,nw,sw,sw,nw,nw,nw,nw,nw,nw,sw,nw,nw,nw,nw,ne,nw,ne,nw,nw,sw,nw,nw,se,nw,nw,se,nw,nw,nw,sw,n,n,nw,n,nw,nw,sw,nw,n,nw,s,nw,nw,ne,nw,nw,nw,nw,nw,n,nw,n,nw,nw,nw,se,nw,nw,n,se,n,ne,nw,nw,nw,nw,nw,nw,n,nw,nw,nw,n,nw,ne,n,nw,se,n,nw,se,nw,n,n,s,nw,n,n,n,ne,sw,n,se,nw,nw,nw,nw,nw,n,n,nw,n,nw,nw,nw,n,n,nw,s,nw,nw,nw,nw,n,n,sw,n,n,nw,nw,se,nw,ne,nw,n,nw,se,n,n,n,n,n,n,n,n,n,n,n,n,n,n,n,nw,s,s,ne,nw,nw,ne,sw,nw,se,n,se,ne,ne,nw,nw,n,nw,s,n,se,n,n,n,n,n,n,n,n,n,n,n,n,nw,n,n,n,n,nw,n,se,n,n,sw,n,n,ne,s,n,n,n,n,n,n,n,n,n,s,n,nw,n,n,ne,s,n,ne,se,n,n,ne,ne,n,s,s,n,n,nw,n,n,s,ne,n,n,n,ne,ne,n,se,n,n,n,n,sw,n,sw,n,se,s,nw,n,n,n,ne,n,ne,n,ne,se,s,se,ne,n,n,n,ne,ne,ne,ne,ne,ne,n,ne,n,n,ne,n,n,se,ne,n,n,n,n,se,ne,n,n,n,se,s,ne,ne,ne,ne,ne,ne,ne,sw,sw,ne,ne,ne,nw,n,ne,n,ne,ne,ne,n,ne,ne,sw,ne,n,se,ne,nw,ne,n,s,ne,ne,ne,ne,n,ne,ne,ne,ne,ne,ne,sw,s,n,ne,n,ne,ne,ne,n,nw,sw,ne,ne,ne,ne,ne,ne,se,ne,n,s,ne,sw,nw,ne,n,ne,n,n,ne,n,ne,ne,ne,s,ne,ne,ne,ne,ne,ne,se,ne,ne,ne,ne,ne,ne,s,ne,se,n,ne,sw,ne,n,ne,ne,ne,ne,ne,ne,s,ne,ne,ne,ne,se,ne,s,ne,ne,ne,ne,s,ne,ne,s,ne,ne,ne,ne,ne,ne,ne,se,se,se,ne,ne,n,ne,ne,ne,s,n,ne,s,ne,se,ne,ne,ne,ne,ne,s,sw,ne,s,ne,se,se,ne,nw,ne,se,se,se,ne,nw,sw,ne,ne,ne,ne,ne,ne,ne,ne,ne,s,se,ne,ne,se,s,se,ne,se,ne,nw,s,se,ne,ne,se,se,se,s,ne,se,ne,sw,se,ne,se,se,ne,ne,ne,se,se,ne,se,nw,s,ne,ne,n,ne,ne,se,ne,ne,se,ne,ne,se,ne,ne,ne,se,ne,nw,ne,ne,sw,se,se,sw,se,ne,ne,se,nw,sw,ne,s,ne,ne,se,ne,ne,s,se,ne,ne,ne,n,sw,n,se,ne,ne,ne,se,n,ne,sw,ne,sw,se,se,ne,ne,se,ne,ne,se,se,se,se,nw,nw,se,se,ne,se,sw,ne,s,ne,ne,se,se,se,sw,sw,se,ne,ne,nw,n,ne,se,ne,ne,se,se,se,ne,ne,sw,se,ne,se,ne,se,se,se,se,ne,se,se,se,ne,se,se,sw,se,se,se,se,se,ne,se,se,se,se,se,ne,se,se,se,se,se,ne,ne,sw,se,se,ne,ne,ne,nw,se,se,nw,se,se,se,sw,se,se,se,sw,ne,se,se,sw,se,s,se,se,se,se,se,se,s,se,se,s,s,se,se,se,se,se,se,se,sw,se,se,se,se,se,se,ne,n,se,se,n,se,se,se,sw,s,ne,s,se,se,se,se,se,se,se,se,sw,ne,se,se,s,se,se,se,se,s,n,se,se,nw,se,ne,se,se,nw,se,se,se,se,n,se,se,se,se,se,se,se,se,n,se,se,se,se,n,se,s,se,n,s,se,s,s,sw,se,s,se,n,se,sw,s,se,sw,se,se,se,se,se,se,se,se,se,se,se,se,se,se,se,sw,n,sw,se,se,se,s,se,nw,se,s,s,s,se,s,se,se,sw,sw,se,se,ne,se,s,se,s,se,ne,s,s,se,s,nw,se,se,s,sw,s,se,s,s,se,s,s,sw,nw,se,se,se,sw,s,nw,se,n,se,s,s,s,se,se,se,se,ne,ne,s,s,se,se,sw,s,s,se,se,nw,s,nw,s,se,s,s,s,se,se,s,s,s,nw,n,sw,se,se,s,se,se,se,se,se,s,s,se,se,s,s,s,s,se,sw,se,ne,nw,sw,ne,s,s,s,se,n,nw,se,se,se,s,se,ne,sw,s,s,se,s,s,s,nw,nw,s,s,se,s,s,se,s,s,s,sw,s,se,se,ne,s,se,s,nw,s,se,s,se,se,s,s,nw,n,se,n,se,s,s,se,se,se,s,se,s,s,sw,s,s,nw,se,sw,s,sw,s,s,s,se,se,n,s,se,s,ne,s,s,se,s,se,se,s,nw,s,s,s,n,se,sw,s,s,se,ne,s,s,s,n,s,s,s,s,nw,s,s,s,n,s,se,s,s,s,se,s,s,s,s,s,n,s,s,se,se,s,ne,se,se,s,s,ne,s,s,s,se,se,se,nw,s,s,se,s,se,s,s,s,s,s,s,se,s,s,s,s,s,n,s,s,ne,n,s,s,s,s,n,n,ne,se,s,sw,s,s,s,s,s,s,s,ne,s,s,se,s,se,se,s,s,s,s,s,ne,s,s,sw,s,se,nw,s,s,sw,s,s,s,sw,s,s,s,s,s,se,nw,s,s,s,s,s,sw,s,s,s,s,sw,s,nw,ne,se,s,ne,s,s,s,nw,s,s,s,s,se,s,s,sw,s,s,s,s,s,s,s,se,s,sw,ne,s,s,s,s,sw,sw,sw,s,nw,s,ne,s,s,s,n,sw,sw,s,sw,sw,s,se,s,s,se,s,s,s,s,sw,s,s,sw,s,s,s,s,nw,sw,s,s,sw,s,s,se,nw,s,s,s,s,s,nw,s,sw,s,s,n,s,s,s,n,sw,se,s,se,s,se,s,s,sw,sw,n,sw,s,s,se,s,sw,sw,se,s,nw,s,sw,s,s,s,nw,s,s,s,s,sw,nw,sw,s,s,s,s,s,s,s,s,nw,s,sw,sw,sw,s,sw,n,s,sw,n,sw,s,sw,sw,s,s,s,sw,s,s,n,n,s,sw,s,sw,s,s,sw,nw,s,se,s,s,s,n,s,s,se,sw,s,s,sw,s,s,sw,s,sw,sw,s,s,s,sw,s,s,s,s,s,sw,sw,sw,se,n,s,sw,sw,sw,s,n,se,s,s,sw,s,s,sw,sw,se,se,sw,sw,sw,s,s,s,sw,s,sw,s,s,sw,sw,sw,se,s,sw,s,sw,sw,sw,se,sw,sw,sw,n,sw,sw,s,s,s,sw,s,sw,sw,s,sw,ne,s,sw,s,s,sw,s,s,n,sw,s,s,sw,se,s,s,n,sw,sw,s,s,s,s,sw,nw,se,sw,sw,sw,s,sw,s,sw,s,sw,s,sw,s,nw,s,s,sw,sw,s,s,sw,nw,ne,sw,sw,sw,sw,ne,s,s,sw,s,sw,sw,s,sw,sw,s,sw,sw,sw,sw,s,sw,ne,sw,sw,s,nw,sw,s,s,s,s,sw,sw,se,ne,nw,sw,sw,sw,s,s,se,s,s,sw,s,sw,sw,s,n,ne,sw,sw,s,sw,s,sw,s,sw,s,sw,sw,sw,sw,s,sw,s,sw,sw,s,nw,s,nw,s,sw,sw,sw,sw,s,sw,sw,s,sw,sw,s,se,s,sw,sw,sw,sw,sw,sw,sw,s,sw,sw,sw,se,s,s,sw,sw,s,s,sw,sw,sw,s,sw,s,sw,sw,s,sw,sw,ne,sw,s,sw,s,sw,sw,sw,sw,s,sw,se,sw,sw,sw,sw,sw,sw,sw,sw,sw,sw,nw,sw,sw,s,sw,sw,sw,nw,sw,sw,sw,se,n,sw,sw,s,s,sw,sw,sw,s,sw,sw,sw,nw,sw,sw,nw,sw,sw,sw,sw,s,n,sw,s,sw,sw,sw,s,sw,se,sw,sw,sw,ne,sw,sw,sw,s,sw,sw,sw,n,sw,sw,s,sw,sw,s,sw,sw,s,se,s,sw,sw,sw,ne,sw,sw,sw,n,sw,sw,sw,sw,sw,sw,ne,se,sw,sw,n,sw,sw,sw,sw,se,sw,sw,nw,sw,n,sw,sw,sw,sw,sw,se,sw,sw,sw,sw,sw,nw,sw,se,sw,sw,sw,s,n,se,sw,sw,sw,sw,sw,sw,sw,sw,sw,sw,sw,ne,sw,se,sw,se,sw,sw,sw,sw,sw,s,sw,nw,n,se,sw,ne,sw,sw,sw,n,s,se,sw,se,sw,se,n,s,sw,sw,sw,nw,n,se,sw,sw,nw,sw,sw,ne,sw,sw,s,sw,sw,s,sw,sw,sw,nw,s,sw,s,s,sw,ne,sw,sw,sw,sw,nw,sw,s,sw,nw,sw,nw,s,sw,sw,sw,s,sw,sw,sw,sw,sw,sw,sw,sw,sw,sw,sw,ne,sw,s,sw,sw,sw,sw,nw,sw,sw,nw,sw,sw,nw,sw,sw,nw,sw,sw,sw,sw,sw,sw,sw,sw,sw,nw,sw,sw,sw,s,sw,se,s,sw,sw,nw,sw,sw,n,se,sw,s,sw,sw,sw,nw,sw,sw,sw,sw,sw,nw,nw,nw,sw,sw,sw,sw,sw,n,se,sw,sw,n,nw,sw,sw,n,sw,n,sw,sw,sw,sw,nw,se,nw,sw,sw,sw,ne,sw,nw,nw,sw,sw,sw,sw,sw,nw,sw,nw,nw,nw,sw,sw,sw,ne,sw,sw,sw,se,sw,nw,ne,sw,sw,sw,nw,sw,sw,n,sw,nw,nw,nw,nw,sw,sw,sw,sw,sw,se,sw,sw,ne,sw,s,sw,sw,sw,sw,sw,sw,sw,sw,ne,nw,sw,sw,nw,se,nw,sw,sw,sw,sw,sw,nw,nw,sw,sw,sw,ne,sw,nw,sw,sw,sw,nw,sw,sw,sw,sw,ne,n,nw,sw,sw,nw,sw,nw,n,sw,sw,sw,ne,sw,sw,sw,nw,sw,nw,sw,nw,sw,sw,nw,se,sw,sw,nw,nw,nw,nw,nw,nw,n,sw,sw,s,sw,sw,sw,s,se,sw,n,sw,se,nw,sw,sw,sw,sw,nw,nw,nw,se,sw,ne,sw,n,sw,se,sw,nw,nw,sw,nw,sw,sw,sw,ne,sw,n,nw,sw,nw,se,sw,ne,se,nw,sw,nw,se,sw,nw,sw,se,n,nw,se,sw,n,se,sw,nw,se,s,sw,sw,nw,sw,sw,sw,nw,sw,s,nw,ne,nw,sw,n,nw,nw,ne,ne,nw,ne,sw,nw,sw,nw,nw,nw,nw,sw,sw,se,sw,nw,sw,nw,sw,sw,sw,nw,nw,ne,nw,sw,sw,se,sw,nw,sw,sw,sw,sw,se,sw,ne,nw,sw,sw,nw,nw,nw,sw,se,sw,nw,sw,sw,sw,nw,sw,sw,se,sw,nw,sw,ne,sw,sw,nw,nw,sw,sw,ne,nw,sw,s,sw,sw,sw,nw,nw,n,nw,nw,sw,sw,sw,sw,sw,nw,nw,nw,nw,nw,nw,nw,sw,n,nw,sw,sw,n,nw,nw,sw,s,sw,ne,se,nw,nw,nw,sw,nw,sw,nw,s,nw,nw,n,s,nw,s,nw,sw,sw,nw,nw,nw,nw,nw,nw,se,nw,se,nw,nw,s,sw,nw,nw,nw,se,nw,nw,sw,sw,nw,sw,nw,sw,nw,s,nw,nw,nw,nw,sw,nw,ne,n,nw,nw,nw,sw,nw,nw,nw,sw,ne,nw,sw,nw,sw,nw,nw,nw,nw,nw,nw,s,nw,nw,ne,nw,nw,nw,n,sw,nw,nw,nw,nw,se,nw,sw,nw,sw,nw,nw,se,nw,nw,se,nw,sw,sw,sw,nw,sw,s,nw,nw,nw,s,nw,nw,se,sw,nw,sw,se,nw,ne,nw,nw,n,nw,nw,sw,nw,nw,ne,nw,ne,s,nw,sw,nw,nw,nw,nw,nw,sw,sw,sw,nw,sw,n,nw,nw,n,sw,sw,nw,ne,se,sw,nw,n,nw,nw,ne,nw,sw,se,sw,sw,n,nw,ne,nw,nw,sw,n,nw,sw,nw,ne,n,n,nw,nw,sw,nw,nw,nw,nw,nw,nw,sw,nw,nw,nw,nw,nw,nw,nw,nw,nw,nw,nw,nw,sw,nw,nw,sw,se,nw,nw,s,nw,sw,nw,nw,nw,nw,nw,nw,nw,sw,nw,nw,nw,nw,sw,sw,nw,nw,nw,nw,ne,nw,nw,nw,nw,nw,nw,sw,nw,nw,n,n,nw,nw,ne,nw,nw,nw,n,sw,nw,sw,se,s,nw,nw,nw,s,nw,nw,nw,ne,se,nw,se,sw,sw,nw,nw,nw,nw,nw,se,nw,ne,nw,nw,se,se,se,nw,nw,nw,nw,nw,nw,nw,nw,nw,n,nw,nw,nw,nw,nw,nw,nw,ne,n,nw,nw,ne,se,nw,nw,sw,s,nw,nw,nw,nw,nw,nw,nw,nw,nw,nw,se,n,n,sw,nw,nw,se,s,nw,n,nw,s,nw,nw,nw,nw,nw,nw,nw,nw,s,nw,nw,nw,sw,n,n,nw,ne,ne,n,nw,sw,nw,nw,nw,nw,nw,nw,nw,nw,nw,nw,nw,nw,ne,nw,s,nw,nw,nw,nw,nw,nw,nw,n,nw,ne,n,nw,nw,nw,nw,nw,ne,ne,nw,nw,nw,nw,nw,sw,ne,nw,ne,s,nw,nw,sw,nw,nw,nw,nw,nw,nw,se,nw,nw,nw,nw,nw,nw,nw,se,n,nw,nw,nw,nw,nw,nw,nw,nw,n,nw,nw,s,n,nw,nw,nw,nw,nw,nw,nw,nw,nw,nw,nw,n,sw,nw,nw,nw,nw,se,n,se,n,nw,nw,nw,nw,nw,nw,nw,nw,n,sw,nw,nw,s,s,n,n,nw,sw,nw,n,nw,s,nw,nw,n,nw,nw,nw,nw,nw,nw,nw,nw,nw,nw,nw,nw,nw,ne,nw,nw,nw,nw,nw,nw,nw,nw,n,n,nw,n,nw,se,nw,nw,nw,nw,s,nw,nw,nw,nw,se,n,nw,s,nw,nw,nw,nw,nw,nw,nw,nw,n,nw,sw,n,nw,nw,ne,n,nw,ne,n,s,n,n,ne,n,nw,nw,ne,nw,nw,nw,n,sw,nw,sw,nw,n,s,nw,nw,nw,nw,n,nw,nw,nw,nw,sw,nw,nw,n,sw,nw,sw,nw,n,ne,nw,nw,sw,n,n,nw,nw,nw,sw,nw,n,nw,nw,nw,s,nw,nw,nw,nw,nw,n,nw,nw,nw,sw,nw,se,n,nw,nw,s,nw,n,nw,se,n,sw,n,nw,n,nw,nw,nw,nw,n,n,n,n,nw,sw,s,nw,nw,n,se,nw,n,nw,nw,nw,ne,sw,nw,se,nw,n,s,ne,s,nw,n,n,n,nw,nw,nw,n,nw,nw,nw,nw,n,n,nw,nw,n,sw,n,se,nw,nw,nw,n,nw,nw,ne,n,se,n,ne,n,n,se,n,n,n,nw,n,nw,n,nw,ne,nw,nw,nw,n,n,n,n,nw,se,n,sw,nw,nw,n,s,nw,n,nw,n,n,nw,n,nw,n,ne,nw,sw,nw,sw,nw,nw,nw,nw,ne,nw,nw,n,ne,sw,nw,nw,n,n,se,nw,n,sw,nw,nw,se,n,nw,n,ne,nw,nw,se,nw,ne,n,n,se,n,nw,nw,nw,nw,nw,n,nw,n,nw,nw,nw,n,n,nw,nw,ne,nw,nw,nw,n,n,nw,nw,s,se,nw,n,nw,n,n,ne,nw,nw,n,n,nw,sw,nw,nw,nw,nw,nw,nw,nw,s,n,n,n,n,n,nw,nw,nw,nw,n,n,nw,n,s,n,nw,nw,nw,nw,sw,ne,nw,nw,nw,nw,nw,nw,se,nw,n,n,nw,s,sw,nw,nw,n,n,nw,n,n,nw,n,nw,sw,n,n,nw,n,nw,ne,sw,nw,nw,nw,n,n,nw,s,s,nw,nw,nw,nw,nw,n,nw,n,n,s,nw,nw,n,nw,n,nw,se,n,n,nw,n,n,sw,s,nw,s,nw,nw,n,n,nw,nw,nw,nw,n,nw,sw,n,se,n,nw,nw,n,n,nw,n,n,nw,n,n,se,nw,sw,n,nw,nw,n,s,sw,s,n,n,nw,n,n,n,se,n,nw,nw,se,se,n,n,n,nw,nw,ne,n,n,n,n,n,sw,n,nw,n,s,nw,nw,n,ne,nw,se,nw,nw,n,nw,sw,n,n,n,nw,n,nw,nw,n,nw,n,n,nw,nw,n,n,nw,n,sw,n,n,n,se,ne,nw,nw,sw,nw,n,s,nw,nw,n,nw,n,nw,n,nw,n,nw,nw,nw,n,nw,n,nw,n,n,nw,n,nw,nw,n,nw,n,n,n,nw,n,sw,n,nw,n,nw,n,n,nw,nw,n,n,nw,n,nw,nw,sw,n,n,nw,nw,nw,n,n,n,n,n,nw,n,ne,nw,nw,n,ne,n,nw,nw,sw,se,n,n,n,sw,n,n,ne,n,ne,nw,nw,nw,n,n,n,ne,nw,n,n,nw,n,n,nw,n,n,n,n,nw,n,nw,sw,n,ne,n,nw,nw,n,nw,n,se,n,n,nw,n,n,n,nw,ne,s,nw,nw,nw,n,n,sw,n,sw,sw,n,n,n,n,n,n,sw,nw,n,n,n,nw,n,nw,n,n,se,n,ne,n,nw,n,nw,n,n,n,n,n,n,ne,se,n,nw,n,nw,n,nw,n,nw,nw,n,n,n,sw,se,nw,n,n,nw,ne,nw,n,nw,nw,nw,n,n,s,se,s,n,sw,sw,n,n,nw,ne,s,n,nw,n,nw,n,n,se,n,n,n,sw,n,n,n,n,n,nw,nw,n,nw,nw,n,n,nw,n,n,n,n,n,n,n,n,nw,n,ne,nw,n,nw,nw,n,s,se,nw,n,se,n,s,n,n,n,nw,sw,n,n,nw,n,nw,n,se,n,sw,nw,n,n,n,n,n,nw,s,nw,n,n,n,n,nw,n,n,nw,n,nw,n,n,nw,n,nw,n,n,s,n,s,n,nw,sw,ne,n,n,n,nw,n,n,n,n,n,n,s,n,s,n,nw,n,n,nw,n,n,s,n,n,sw,s,n,n,n,nw,n,sw,n,n,ne,n,n,n,n,n,n,n,sw,n,n,n,nw,n,n,n,n,n,n,n,n,n,n,nw,nw,n,n,ne,n,n,n,se,n,nw,s,sw,nw,n,n,sw,nw,se,n,n,nw,n,n,n,s,sw,n,ne,n,n,nw,n,n,n,s,ne,ne,s,sw,n,ne,n,n,n,n,n,se,n,n,n,n,n,n,n,n,n,n,n,n,sw,n,s,n,n,n,se,nw,nw,n,nw,n,se,sw,n,n,n,nw,sw,ne,nw,se,n,n,n,ne,n,nw,n,n,n,n,nw,n,n,n,n,n,n,sw,n,ne,n,nw,n,n,n,n,n,se,n,n,n,n,n,n,n,n,n,ne,n,n,n,n,nw,se,se,ne,n,n,n,nw,n,n,se,n,n,n,n,ne,n,se,ne,n,n,n,se,s,sw,n,n,n,n,n,s,n,n,s,n,n,n,n,s,n,sw,nw,n,n,s,n,n,n,ne,ne,n,ne,n,sw,n,se,n,n,n,nw,n,n,n,n,sw,nw,n,s,n,n,se,n,nw,n,n,n,n,n,n,se,n,n,n,n,n,se,n,n,n,n,s,n,n,n,n,se,se,n,n,s,n,n,n,nw,n,n,n,n,n,n,n,ne,n,ne,n,n,n,n,ne,n,n,n,n,se,n,n,n,n,n,ne,n,n,n,se,n,s,n,n,s,n,n,se,n,n,n,n,ne,n,s,n,n,ne,n,n,ne,nw,n,ne,n,ne,n,ne,n,n,s,n,sw,ne,s,n,n,n,n,se,n,ne,n,n,n,s,n,n,n,sw,n,n,n,n,n,n,n,n,nw,n,n,n,n,n,n,ne,ne,s,n,n,s,n,n,n,nw,nw,ne,n,sw,n,n,n,ne,se,n,sw,se,n,sw,n,n,nw,n,n,n,ne,n,n,n,n,n,n,s,nw,n,n,n,n,sw,n,n,n,n,n,n,sw,ne,n,n,n,nw,ne,n,n,n,sw,nw,ne,s,nw,n,n,n,n,n,n,ne,n,n,n,n,n,n,n,n,n,n,se,n,s,se,nw,n,n,n,n,s,n,n,n,ne,n,n,ne,n,ne,n,ne,ne,n,n,n,s,ne,n,ne,n,n,n,ne,se,n,n,n,ne,n,n,ne,n,n,n,s,n,ne,n,n,n,n,n,n,n,n,n,n,n,n,ne,n,n,n,n,ne,n,n,n,se,n,ne,n,s,n,n,ne,n,sw,n,se,n,s,n,ne,n,s,ne,s,n,n,se,n,ne,n,ne,n,ne,n,sw,n,n,s,ne,n,ne,ne,n,sw,n,n,s,ne,n,n,s,n,s,n,n,n,ne,n,s,ne,n,ne,n,n,n,s,n,n,ne,s,n,ne,se,ne,nw,n,n,n,nw,n,n,ne,sw,s,n,n,n,n,se,n,n,ne,ne,n,nw,n,ne,n,n,n,n,ne,n,s,n,sw,n,n,n,n,ne,n,n,n,n,s,sw,ne,n,n,n,n,n,ne,n,n,s,se,se,sw,n,n,n,n,ne,ne,n,ne,n,n,se,sw,n,ne,n,n,n,nw,ne,n,ne,n,ne,n,se,ne,ne,n,n,n,n,n,n,se,ne,nw,sw,n,nw,ne,n,n,ne,sw,ne,s,n,se,se,ne,s,n,sw,ne,n,n,n,ne,n,ne,n,ne,n,n,ne,ne,n,ne,ne,n,se,n,ne,ne,n,sw,ne,ne,ne,ne,n,n,n,ne,nw,ne,n,n,n,n,n,n,n,n,ne,ne,n,ne,n,ne,se,ne,n,ne,n,n,sw,sw,n,n,ne,n,n,ne,ne,s,n,ne,ne,ne,n,ne,ne,s,n,sw,s,nw,n,n,n,se,n,ne,n,se,ne,ne,ne,sw,ne,ne,n,ne,n,n,n,ne,nw,n,n,n,ne,n,nw,n,n,se,nw,n,ne,n,ne,n,ne,n,ne,nw,nw,n,ne,ne,sw,n,ne,ne,ne,ne,n,n,n,se,n,n,n,s,ne,ne,n,n,n,ne,n,n,n,nw,ne,ne,n,ne,n,n,ne,n,sw,n,ne,n,n,ne,n,n,ne,n,n,ne,ne,sw,ne,ne,ne,se,n,sw,n,ne,n,n,n,n,ne,s,n,ne,n,ne,n,ne,n,ne,se,ne,ne,n,ne,ne,ne,n,ne,ne,n,n,n,n,n,n,n,n,n,n,ne,se,n,n,n,ne,n,n,ne,ne,n,n,ne,ne,n,se,nw,se,n,sw,ne,ne,ne,ne,ne,ne,ne,n,n,ne,n,ne,n,ne,n,ne,n,s,s,ne,ne,se,n,n,sw,n,n,n,ne,ne,nw,n,n,n,ne,n,n,n,n,n,ne,ne,ne,ne,n,ne,ne,n,ne,ne,sw,n,n,n,nw,se,ne,ne,n,n,n,s,n,n,se,s,nw,ne,n,ne,ne,ne,ne,nw,s,n,se,sw,ne,ne,ne,n,ne,n,ne,sw,n,n,ne,ne,ne,se,s,s,ne,ne,ne,s,n,ne,n,ne,ne,ne,n,s,se,ne,n,n,se,n,ne,ne,n,ne,ne,n,ne,ne,n,n,n,nw,n,ne,n,ne,n,s,se,sw,ne,ne,n,n,ne,s,ne,ne,n,ne,ne,ne,ne,n,ne,ne,ne,ne,n,n,se,ne,s,ne,ne,ne,ne,ne,n,ne,ne,ne,n,n,ne,n,ne,ne,ne,ne,n,n,n,n,n,nw,ne,n,ne,s,n,ne,n,ne,n,ne,ne,nw,ne,sw,nw,ne,n,n,s,se,nw,ne,nw,ne,ne,n,n,ne,n,se,ne,n,ne,n,n,ne,n,s,ne,ne,n,se,ne,nw,ne,ne,sw,ne,ne,n,ne,ne,n,ne,s,ne,sw,n,n,ne,n,n,ne,ne,ne,s,n,n,n,n,nw,n,n,n,n,ne,ne,nw,ne,ne,n,ne,n,ne,n,ne,ne,ne,n,sw,ne,ne,ne,ne,ne,n,sw,ne,n,ne,ne,ne,n,ne,n,ne,n,s,s,n,ne,ne,n,ne,n,ne,n,ne,nw,ne,se,n,n,ne,n,n,ne,ne,n,ne,n,n,n,n,n,ne,ne,ne,n,ne,n,ne,ne,n,ne,ne,ne,ne,ne,n,n,ne,n,n,n,ne,ne,ne,ne,ne,sw,n,n,ne,n,ne,ne,nw,n,ne,n,ne,ne,n,sw,n,n,ne,ne,nw,ne,nw,ne,se,se,se,ne,ne,se,ne,sw,n,n,ne,ne,ne,ne,n,ne,ne,se,ne,ne,ne,ne,n,ne,ne,ne,n,s,ne,se,se,ne,ne,ne,n,ne,n,n,ne,n,nw,ne,ne,n,ne,se,sw,ne,ne,ne,n,ne,ne,n,ne,ne,sw,ne,ne,ne,ne,n,sw,n,ne,ne,ne,ne,ne,ne,ne,n,ne,ne,ne,ne,n,se,n,ne,n,n,ne,ne,n,ne,ne,n,ne,n,ne,ne,n,ne,n,n,ne,ne,n,n,ne,sw,ne,nw,ne,n,ne,se,ne,ne,sw,ne,ne,ne,n,ne,ne,n,n,n,ne,nw,ne,n,ne,ne,ne,n,ne,n,sw,ne,s,se,ne,ne,sw,ne,ne,ne,ne,ne,se,ne,ne,n,ne,ne,ne,ne,ne,ne,n,n,n,ne,n,ne,ne,ne,n,n,ne,ne,nw,s,ne,ne,se,ne,n,ne,ne,ne,ne,ne,n,ne,ne,ne,nw,s,n,ne,ne,ne,n,ne,ne,se,ne,ne,ne,ne,ne,ne,ne,n,ne,ne,s,ne,sw,ne,ne,ne,ne,nw,n,sw,ne,ne,ne,ne,sw,ne,nw,ne,n,n,n,ne,ne,n,ne,se,sw,sw,ne,n,ne,n,ne,ne,nw,ne,ne,se,ne,ne,sw,ne,se,ne,n,ne,ne,ne,sw,ne,ne,ne,ne,nw,ne,n,ne,ne,ne,n,ne,ne,ne,ne,se,ne,ne,n,ne,n,ne,ne,n,ne,n,sw,ne,ne,n,s,ne,ne,ne,ne,s,ne,ne,se,n,ne,ne,ne,ne,ne,ne,ne,n,ne,ne,ne,n,ne,ne,ne,n,n,s,ne,ne,sw,se,n,ne,ne,ne,ne,ne,n,ne,n,ne,ne,ne,ne,n,ne,ne,ne,ne,s,ne,nw,s,ne,se,se,ne,ne,ne,ne,sw,se,ne,ne,sw,se,ne,n,ne,n,ne,ne,n,sw,ne,ne,s,n,ne,ne,s,ne,s,n,ne,ne,ne,ne,n,n,ne,ne,s,se,ne,ne,ne,se,ne,ne,ne,sw,ne,sw,ne,ne,ne,ne,ne,ne,n,ne,ne,ne,ne,ne,s,nw,ne,ne,n,ne,n,ne,ne,ne,ne,ne,ne,ne,ne,ne,ne,nw,ne,ne,ne,n,se,ne,ne,s,n,n,ne,n,ne,nw,ne,nw,ne,ne,ne,ne,ne,ne,ne,ne,ne,n,ne,ne,ne,n,ne,ne,nw,ne,ne,sw,ne,ne,ne,n,ne,ne,ne,n,ne,ne,ne,ne,ne,ne,ne,ne,ne,ne,ne,ne,ne,s,ne,ne,ne,nw,ne,ne,ne,ne,ne,ne,ne,ne,ne,nw,ne,ne,ne,ne,ne,nw,ne,ne,n,n,sw,sw,sw,sw,se,s,sw,s,sw,se,s,sw,s,sw,sw,se,se,s,n,se,se,se,se,se,se,nw,se,se,ne,ne,se,ne,nw,nw,ne,ne,sw,ne,ne,ne,ne,se,se,ne,n,ne,n,n,n,ne,n,n,ne,n,n,n,n,nw,n,n,se,n,n,n,sw,se,n,n,se,se,n,nw,n,n,n,sw,n,nw,se,nw,nw,nw,se,n,n,s,nw,nw,nw,nw,nw,sw,nw,nw,se,nw,se,nw,n,nw,nw,sw,nw,nw,nw,nw,nw,nw,ne,nw,nw,nw,s,nw,nw,sw,sw,nw,sw,nw,nw,sw,nw,sw,nw,nw,nw,s,sw,sw,nw,sw,nw,s,sw,sw,ne,sw,sw,sw,sw,sw,sw,sw,sw,sw,sw,sw,n,sw,sw,sw,s,sw,sw,sw,sw,sw,nw,sw,sw,sw,sw,sw,sw,sw,sw,sw,se,nw,sw,sw,sw,sw,sw,s,s,sw,sw,s,sw,ne,sw,sw,sw,sw,s,nw,s,s,s,sw,sw,sw,nw,s,sw,s,sw,se,s,n,s,s,s,s,s,nw,s,s,s,s,se,se,s,s,s,nw,s,s,s,s,s,s,n,s,s,s,s,s,s,nw,s,s,s,se,s,se,nw,n,nw,se,n,s,n,sw,se,s,s,s,se,se,s,s,nw,se,s,n,s,se,s,s,sw,se,n,s,sw,s,se,s,s,se,se,se,s,s,se,s,se,se,se,se,se,se,se,s,s,s,s,n,s,s,se,n,nw,se,nw,sw,nw,se,nw,se,se,se,se,se,se,se,sw,se,s,se,se,nw,se,ne,se,se,se,s,se,se,se,se,se,sw,se,n,ne,se,ne,s,se,sw,se,se,se,se,nw,sw,se,se,n,ne,se,ne,se,se,ne,se,nw,se,se,se,se,se,se,se,nw,se,se,se,n,se,ne,ne,se,ne,se,se,se,ne,nw,se,se,se,n,sw,ne,s,ne,ne,se,nw,se,ne,nw,ne,se,ne,se,se,se,se,se,sw,ne,nw,se,sw,n,se,se,se,se,se,se,se,se,se,ne,sw,se,ne,ne,s,ne,se,se,se,se,nw,ne,ne,ne,ne,ne,ne,n,ne,s,se,se,ne,ne,ne,se,se,ne,ne,se,ne,ne,s,s,ne,ne,ne,ne,ne,se,se,n,ne,ne,ne,s,nw,sw,n,ne,ne,ne,ne,s,ne,s,ne,ne,ne,ne,ne,n,s,nw,ne,nw,n,sw,nw,se,ne,ne,nw,se,ne,ne,n,ne,ne,ne,ne,sw,se,n,n,ne,ne,ne,ne,n,ne,ne,n,n,ne,ne,sw,n,ne,ne,ne,ne,ne,ne,se,ne,nw,se,ne,sw,ne,ne,ne,ne,ne,n,ne,ne,n,n,ne,n,n,ne,n,se,n,sw,ne,ne,ne,ne,sw,ne,n,ne,ne,ne,ne,se,ne,ne,sw,ne,n,n,ne,ne,ne,n,ne,ne,ne,ne,n,ne,n,n,ne,n,ne,n,ne,sw,n,n,n,nw,ne,n,n,n,n,ne,n,ne,ne,n,sw,sw,n,nw,n,ne,n,se,s,n,ne,sw,n,ne,ne,sw,n,n,sw,nw,n,n,n,s,n,n,n,ne,n,se,ne,n,n,s,n,nw,ne,ne,n,se,n,n,n,n,n,n,n,n,n,n,ne,sw,n,nw,n,n,sw,n,sw,n,n,ne,n,n,n,n,n,n,n,n,ne,n,ne,s,ne,n,n,ne,se,n,n,n,n,n,n,n,n,s,n,n,s,n,sw,se,n,n,n,n,n,ne,n,n,ne,se,n,nw,n,n,ne,nw,n,n,ne,n,n,nw,se,n,n,n,n,n,n,n,n,n,n,nw,n,n,n,n,n,n,ne,n,n,s,n,n,n,nw,n,n,n,n,n,n,n,n,n,se,se,ne,n,se,n,n,n,n,n,n,n,n,n,nw,n,nw,n,nw,n,n,n,n,n,sw,n,nw,n,nw,n,n,se,nw,n,nw,n,s,nw,nw,n,ne,n,se,n,sw,nw,nw,nw,nw,nw,nw,se,n,n,n,nw,n,n,s,nw,s,nw,n,nw,nw,se,sw,n,n,n,n,ne,nw,n,nw,nw,ne,n,nw,sw,nw,nw,n,se,nw,se,nw,nw,n,n,n,nw,nw,n,n,n,nw,nw,n,ne,nw,n,ne,nw,nw,s,se,nw,nw,n,s,nw,n,n,n,n,nw,nw,n,n,se,nw,s,n,nw,nw,nw,nw,nw,nw,nw,sw,nw,nw,nw,sw,n,nw,nw,n,nw,s,nw,nw,se,n,n,n,ne,nw,ne,nw,nw,nw,nw,nw,n,nw,ne,n,nw,n,nw,se,n,n,nw,nw,n,nw,nw,nw,nw,se,n,s,ne,sw,n,s,nw,nw,nw,nw,nw,ne,ne,s,nw,se,nw,nw,n,nw,nw,nw,nw,nw,s,nw,nw,n,nw,nw,nw,nw,nw,ne,sw,nw,nw,nw,ne,nw,nw,nw,nw,nw,se,nw,nw,ne,nw,se,ne,nw,nw,nw,nw,nw,nw,nw,nw,nw,nw,nw,nw,nw,nw,nw,se,nw,nw,nw,nw,nw,sw,ne,nw,nw,nw,nw,nw,nw,ne,nw,n,nw,nw,nw,n,nw,ne,nw,nw,nw,nw,n,nw,se,nw,nw,s,nw,ne,nw,nw,ne,ne,nw,ne,nw,ne,nw,nw,nw,nw,nw,nw,sw,nw,ne,sw,nw,sw,nw,n,nw,se,nw,nw,nw,nw,nw,nw,nw,sw,se,nw,n,sw,sw,n,nw,n,nw,s,nw,nw,nw,nw,nw,nw,nw,nw,sw,sw,nw,sw,nw,nw,se,se,nw,nw,n,s,s,nw,nw,nw,sw,nw,sw,ne,se,s,nw,s,nw,sw,nw,nw,nw,sw,nw,sw,sw,s,nw,nw,nw,nw,nw,sw,nw,ne,nw,nw,nw,se,nw,nw,n,sw,sw,sw,sw,nw,nw,nw,sw,nw,sw,sw,nw,nw,sw,sw,n,se,nw,nw,nw,s,se,nw,sw,s,se,se,se,sw,sw,sw,nw,sw,sw,sw,nw,nw,nw,sw,nw,n,se,sw,sw,s,sw,sw,sw,nw,nw,sw,n,nw,nw,sw,n,s,sw,sw,nw,sw,nw,sw,sw,nw,sw,sw,nw,nw,s,sw,nw,sw,nw,nw,sw,nw,sw,sw,nw,sw,se,sw,n,sw,se,nw,sw,nw,ne,nw,sw,s,nw,sw,sw,sw,n,sw,sw,nw,n,nw,sw,sw,s,sw,sw,nw,sw,nw,nw,sw,sw,nw,nw,nw,sw,sw,sw,sw,nw,sw,sw,ne,sw,sw,se,sw,sw,s,nw,sw,sw,sw,nw,sw,s,sw,sw,s,ne,sw,sw,nw,sw,sw,nw,nw,nw,sw,sw,nw,sw,sw,sw,sw,sw,n,nw,sw,sw,nw,ne,nw,n,sw,sw,sw,n,nw,sw,n,sw,sw,sw,sw,sw,sw,n,ne,nw,nw,nw,sw,sw,n,n,sw,sw,sw,sw,sw,sw,se,sw,sw,nw,sw,ne,sw,sw,ne,nw,sw,nw,sw,sw,sw,sw,s,sw,sw,sw,sw,sw,sw,sw,sw,sw,sw,sw,se,sw,sw,se,se,sw,sw,sw,sw,sw,se,sw,nw,se,nw,sw,n,nw,sw,ne,ne,sw,sw,sw,sw,sw,se,sw,n,sw,sw,n,sw,sw,sw,sw,sw,sw,sw,ne,sw,sw,se,sw,sw,sw,sw,sw,sw,se,s,s,sw,s,ne,sw,se,sw,sw,sw,sw,sw,ne,s,s,nw,sw,sw,sw,sw,sw,sw,s,n,sw,sw,sw,sw,se,sw,sw,sw,sw,sw,sw,se,s,sw,nw,sw,ne,sw,s,s,sw,sw,sw,sw,sw,sw,s,s,sw,sw,nw,sw,sw,sw,sw,sw,sw,nw,sw,sw,sw,n,sw,s,s,s,sw,sw,sw,sw,sw,sw,sw,sw,sw,sw,s,sw,sw,ne,s,nw,s,s,nw,sw,sw,sw,sw,sw,sw,sw,sw,sw,nw,sw,sw,sw,sw,s,s,se,se,s,se,sw,sw,nw,sw,sw,sw,sw,s,ne,sw,s,s,s,sw,sw,nw,n,s,s,sw,n,nw,s,s,sw,ne,sw,s,nw,sw,ne,s,s,sw,s,sw,sw,sw,sw,s,s,sw,sw,sw,nw,sw,n,s,sw,sw,sw,sw,s,s,nw,sw,s,nw,ne,sw,se,sw,s,sw,sw,ne,sw,s,sw,n,sw,s,se,se,sw,sw,ne,s,sw,sw,sw,sw,n,sw,sw,s,s,sw,nw,sw,ne,s,s,sw,sw,n,sw,ne,sw,se,sw,sw,s,s,s,sw,s,s,nw,n,sw,sw,ne,sw,s,ne,nw,s,se,s,sw,nw,s,n,s,sw,sw,nw,n,sw,sw,s,n,s,sw,n,s,s,s,s,s,s,sw,s,sw,s,s,s,sw,sw,n,sw,sw,s,sw,sw,sw,sw,sw,sw,s,sw,sw,s,se,s,sw,n,se,nw,sw,s,s,se,se,sw,sw,s,se,s,nw,n,s,sw,s,nw,se,sw,s,s,sw,s,sw,sw,s,sw,sw,s,s,se,n,nw,sw,sw,s,sw,sw,sw,s,s,s,sw,ne,s,s,se,sw,sw,sw,sw,n,s,s,s,sw,se,sw,n,s,sw,sw,nw,sw,s,s,sw,s,s,ne,s,s,s,s,sw,ne,sw,nw,s,sw,ne,sw,sw,ne,s,sw,nw,s,s,sw,s,s,s,s,s,nw,sw,s,se,s,s,s,n,s,sw,s,s,s,sw,s,nw,s,s,s,n,s,s,se,s,s,se,sw,ne,s,s,sw,se,s,s,s,se,s,sw,se,s,s,sw,se,s,s,s,s,nw,s,sw,sw,s,s,nw,s,ne,s,s,s,sw,s,s,sw,s,nw,sw,s,sw,sw,s,s,s,ne,sw,nw,s,s,s,s,s,s,s,sw,s,s,s,s,s,se,s,s,s,s,s,s,sw,s,sw,s,s,s,se,s,s,s,s,s,se,nw,n,se,s,s,s,s,s,s,nw,n,s,s,s,sw,s,s,s,s,n,s,s,nw,n,s,se,s,s,n,s,n,s,s,n,sw,s,s,s,nw,sw,se,ne,ne,s,s,s,ne,n,nw,s,se,sw,s,s,s,s,s,s,se,s,s,s,s,s,se,s,s,s,s,s,nw,s,s,s,s,n,s,nw,s,s,se,s,nw,s,s,s,s,s,nw,s,s,s,s,s,ne,s,nw,s,s,ne,s,ne,s,s,s,s,s,s,ne,s,s,s,s,s,s,s,s,s,s,s,s,s,s,s,s,se,s,s,ne,s,sw,s,nw,s,s,s,s,s,ne,s,se,s,s,s,s,s,s,s,s,ne,s,s,ne,s,s,s,n,s,s,n,s,s,s,s,s,n,n,s,s,s,ne,s,s,ne,s,se,n,s,s,s,n,se,s,s,s,s,s,s,s,s,s,s,se,s,s,s,n,s,s,ne,se,s,s,s,sw,se,n,s,se,s,s,ne,s,se,s,s,nw,nw,se,se,se,se,s,s,s,s,se,se,nw,se,se,sw,s,s,s,ne,s,nw,s,s,sw,se,s,se,se,s,s,n,s,s,ne,s,s,s,s,n,s,s,sw,s,se,nw,sw,s,n,s,s,ne,s,se,s,nw,s,s,nw,s,se,sw,s,se,s,se,ne,se,se,se,s,nw,s,nw,s,nw,se,n,se,se,se,s,s,s,s,se,s,nw,se,nw,s,se,sw,se,se,se,n,s,ne,se,s,s,se,s,s,ne,se,ne,sw,se,s,se,s,s,s,s,se,s,s,s,s,s,se,se,se,s,n,se,se,s,s,se,s,se,s,s,s,se,nw,se,se,s,se,se,s,ne,ne,se,s,ne,n,se,s,s,se,s,s,se,s,s,s,sw,se,s,s,se,sw,se,se,s,se,s,s,s,nw,s,s,s,se,se,se,s,s,s,s,sw,s,se,se,s,s,s,s,s,sw,sw,se,s,se,se,s,s,s,se,s,se,se,s,s,se,s,se,s,ne,ne,s,s,se,s,s,s,s,s,s,se,s,s,se,se,sw,s,ne,s,s,se,s,se,sw,se,n,s,s,s,se,s,s,s,se,s,se,s,ne,se,se,s,s,s,s,se,se,se,se,se,se,se,s,s,ne,nw,s,s,se,s,ne,s,s,se,se,s,n,s,s,se,nw,s,s,se,se,s,se,s,se,s,se,nw,se,ne,n,s,s,se,se,ne,se,nw,se,se,se,se,se,se,se,se,s,s,se,se,n,se,s,se,se,nw,s,sw,se,sw,n,se,s,s,se,s,ne,se,s,ne,se,se,s,s,s,se,nw,se,se,se,se,s,se,se,se,se,se,se,se,s,se,se,se,sw,se,n,se,se,sw,se,se,se,se,se,se,s,se,se,n,se,se,se,se,se,se,se,s,se,se,se,s,se,nw,s,s,se,se,s,se,se,s,se,se,s,n,se,se,se,se,se,se,se,s,s,se,se,se,s,se,s,s,n,nw,se,se,s,se,s,se,s,sw,se,se,nw,se,nw,s,n,s,se,s,s,se,se,se,nw,se,nw,nw,se,se,s,s,s,nw,se,n,ne,se,se,se,se,ne,se,se,se,s,se,sw,s,n,s,s,se,se,s,n,s,se,se,sw,se,se,se,s,se,sw,s,se,se,se,se,se,ne,se,se,se,se,se,se,s,se,se,se,se,se,se,se,n,se,se,ne,s,se,se,se,s,se,ne,se,se,se,se,se,se,se,s,se,se,se,se,se,se,se,se,sw,se,se,se,se,nw,s,se,se,nw,se,s,s,se,se,se,se,se,se,se,se,se,sw,se,se,n,nw,n,se,ne,se,n,se,nw,nw,se,ne,s,se,se,s,se,se,s,se,se,s,se,s,se,n,se,se,se,se,se,n,s,se,se,se,se,se,se,s,se,se,nw,ne,s,se,ne,se,se,se,n,se,se,se,s,se,se,se,se,se,se,n,se,se,s,se,se,s,s,se,se,se,se,se,n,ne,se,se,nw,se,se,se,se,se,se,se,se,se,se,se,se,s,n,se,s,s,s,se,n,ne,se,s,se,se,se,ne,ne,s,se,se,s,se,se,se,se diff --git a/day11/part1.js b/day11/part1.js new file mode 100644 index 0000000..6e5c9ef --- /dev/null +++ b/day11/part1.js @@ -0,0 +1,30 @@ +var input = require("fs").readFileSync("input.txt").toString().replace("\n", ""); +var dirs = input.split(","); + +var replacements = [ + [["n", "s"], ""], + [["ne", "sw"], ""], + [["nw", "se"], ""], + [["ne", "nw"], "n"], + [["se", "sw"], "s"], + [["ne", "s"], "se"], + [["se", "n"], "ne"], + [["sw", "n"], "nw"], + [["nw", "s"], "sw"], +]; + +var oldlength = 0; +while(dirs.length != oldlength){ + oldlength = dirs.length; + for(var replacement of replacements){ + if(dirs.indexOf(replacement[0][0]) > -1 && dirs.indexOf(replacement[0][1]) > -1){ + dirs.splice(dirs.indexOf(replacement[0][0]), 1); + dirs.splice(dirs.indexOf(replacement[0][1]), 1); + if(replacement[1]){ + dirs.push(replacement[1]); + } + } + } +} + +console.log(dirs.length); diff --git a/day11/part2.js b/day11/part2.js new file mode 100644 index 0000000..8dc9bee --- /dev/null +++ b/day11/part2.js @@ -0,0 +1,41 @@ +var input = require("fs").readFileSync("input.txt").toString().replace("\n", ""); +var dirs = input.split(","); +function simplify(dirs){ + var replacements = [ + [["n", "s"], ""], + [["ne", "sw"], ""], + [["nw", "se"], ""], + [["ne", "nw"], "n"], + [["se", "sw"], "s"], + [["ne", "s"], "se"], + [["se", "n"], "ne"], + [["sw", "n"], "nw"], + [["nw", "s"], "sw"], + ]; + var oldlength = 0; + while(dirs.length != oldlength){ + oldlength = dirs.length; + for(var replacement of replacements){ + if(dirs.indexOf(replacement[0][0]) > -1 && dirs.indexOf(replacement[0][1]) > -1){ + dirs.splice(dirs.indexOf(replacement[0][0]), 1); + dirs.splice(dirs.indexOf(replacement[0][1]), 1); + if(replacement[1]){ + dirs.push(replacement[1]); + } + } + } + } + return dirs; +} + +var maxlen = 0; + +for(var i = 0; i < dirs.length; i++){ + var sub = dirs.slice(0, i); + var len = simplify(sub).length; + if(len > maxlen){ + maxlen = len; + } + console.log(i/dirs.length); +} +console.log(maxlen); diff --git a/day12/input.txt b/day12/input.txt new file mode 100644 index 0000000..71dedfa --- /dev/null +++ b/day12/input.txt @@ -0,0 +1,2000 @@ +0 <-> 795 +1 <-> 156 +2 <-> 715 +3 <-> 1361, 1698 +4 <-> 551, 672 +5 <-> 514 +6 <-> 1806 +7 <-> 1700 +8 <-> 599, 1068, 1850 +9 <-> 580, 1517 +10 <-> 521 +11 <-> 461 +12 <-> 896 +13 <-> 464 +14 <-> 526 +15 <-> 15 +16 <-> 627, 997 +17 <-> 725 +18 <-> 1803 +19 <-> 129, 1608, 1712 +20 <-> 1005 +21 <-> 252, 386, 1818 +22 <-> 32, 1168, 1266, 1757 +23 <-> 212, 664 +24 <-> 983 +25 <-> 1271, 1356 +26 <-> 545 +27 <-> 639 +28 <-> 509 +29 <-> 686, 959, 1521 +30 <-> 172 +31 <-> 1721 +32 <-> 22 +33 <-> 436 +34 <-> 96, 116, 661, 1102 +35 <-> 827, 1274, 1533 +36 <-> 483, 586 +37 <-> 556 +38 <-> 709 +39 <-> 551, 1196 +40 <-> 42 +41 <-> 485 +42 <-> 40, 475, 930 +43 <-> 121 +44 <-> 202, 759 +45 <-> 45, 721, 764 +46 <-> 903 +47 <-> 616, 1053 +48 <-> 1933 +49 <-> 334, 476, 516, 1212 +50 <-> 717, 1412 +51 <-> 331 +52 <-> 1953 +53 <-> 53, 853 +54 <-> 430 +55 <-> 1635 +56 <-> 826, 1985 +57 <-> 1375 +58 <-> 868, 1887 +59 <-> 908, 1307 +60 <-> 582 +61 <-> 1298 +62 <-> 1373 +63 <-> 1200, 1644 +64 <-> 547, 771, 1443 +65 <-> 235, 340, 522, 1472, 1597 +66 <-> 1605 +67 <-> 75 +68 <-> 365 +69 <-> 69 +70 <-> 1781 +71 <-> 1519 +72 <-> 1355 +73 <-> 73, 176 +74 <-> 1155 +75 <-> 67, 769, 1080 +76 <-> 470, 474, 1115 +77 <-> 1564 +78 <-> 78, 1128, 1351 +79 <-> 784 +80 <-> 80, 962, 1566 +81 <-> 1784 +82 <-> 1977 +83 <-> 892 +84 <-> 705, 892, 958, 1717 +85 <-> 493, 644, 714, 1624 +86 <-> 1079, 1547 +87 <-> 1186, 1240 +88 <-> 215, 250, 1918 +89 <-> 485 +90 <-> 595, 786, 1419, 1825, 1870 +91 <-> 1366, 1874 +92 <-> 217, 225 +93 <-> 577, 1734 +94 <-> 94 +95 <-> 1476 +96 <-> 34, 560, 1061 +97 <-> 199 +98 <-> 1311 +99 <-> 1040 +100 <-> 1397 +101 <-> 1578 +102 <-> 1719 +103 <-> 1268, 1663 +104 <-> 106, 677, 846 +105 <-> 650 +106 <-> 104, 1315 +107 <-> 1802 +108 <-> 1723, 1885 +109 <-> 658 +110 <-> 646 +111 <-> 124, 710, 1819 +112 <-> 841 +113 <-> 696 +114 <-> 1685, 1923 +115 <-> 1565 +116 <-> 34, 1116 +117 <-> 1532, 1842 +118 <-> 1058, 1225, 1495 +119 <-> 224, 1536 +120 <-> 542, 1229 +121 <-> 43, 986 +122 <-> 921 +123 <-> 345, 1655, 1848, 1974 +124 <-> 111, 1259 +125 <-> 1797 +126 <-> 126 +127 <-> 127, 260, 732, 1117, 1251 +128 <-> 1151 +129 <-> 19, 782 +130 <-> 130 +131 <-> 1582 +132 <-> 505, 592, 1545 +133 <-> 953 +134 <-> 1567 +135 <-> 559, 591, 1791 +136 <-> 868, 1449, 1470, 1954 +137 <-> 374 +138 <-> 303, 1601, 1710 +139 <-> 1011 +140 <-> 140, 1947 +141 <-> 252 +142 <-> 803, 1706 +143 <-> 1622 +144 <-> 832 +145 <-> 145 +146 <-> 904, 921, 1720 +147 <-> 611, 1788 +148 <-> 188 +149 <-> 264 +150 <-> 746, 1850 +151 <-> 151, 347 +152 <-> 393 +153 <-> 182 +154 <-> 154, 349, 673, 1039 +155 <-> 697, 1258 +156 <-> 1, 384, 453, 1232, 1995 +157 <-> 1492 +158 <-> 1245 +159 <-> 1194 +160 <-> 222, 1241 +161 <-> 1377 +162 <-> 162 +163 <-> 1825 +164 <-> 1837 +165 <-> 955, 1811 +166 <-> 825, 1817 +167 <-> 1338 +168 <-> 1037, 1290 +169 <-> 169 +170 <-> 1490 +171 <-> 553 +172 <-> 30, 308 +173 <-> 1573, 1604 +174 <-> 1297 +175 <-> 265, 1070, 1960 +176 <-> 73, 497 +177 <-> 1639, 1697 +178 <-> 494, 1490 +179 <-> 623 +180 <-> 185, 1056 +181 <-> 181 +182 <-> 153, 1678 +183 <-> 504, 601 +184 <-> 635, 1246 +185 <-> 180, 621 +186 <-> 1798 +187 <-> 1375 +188 <-> 148, 405, 950, 1322 +189 <-> 534, 1908 +190 <-> 1582 +191 <-> 361, 1879 +192 <-> 1814 +193 <-> 533, 1307, 1389 +194 <-> 1262 +195 <-> 1450 +196 <-> 335 +197 <-> 750 +198 <-> 285, 297, 671 +199 <-> 97, 199, 280, 1292 +200 <-> 200, 1584 +201 <-> 1519 +202 <-> 44, 1492, 1605, 1857, 1888 +203 <-> 363, 416, 504 +204 <-> 832 +205 <-> 350, 1385 +206 <-> 206 +207 <-> 584 +208 <-> 889, 1254, 1596 +209 <-> 996, 1402 +210 <-> 691, 977 +211 <-> 463 +212 <-> 23, 1318 +213 <-> 600, 933 +214 <-> 1657 +215 <-> 88, 274, 1264 +216 <-> 216, 301 +217 <-> 92, 217, 766 +218 <-> 986, 1439 +219 <-> 1217, 1294 +220 <-> 368, 736, 1543, 1704 +221 <-> 367, 806, 1273, 1804 +222 <-> 160, 682, 1257, 1660 +223 <-> 223 +224 <-> 119, 259 +225 <-> 92 +226 <-> 482, 1472 +227 <-> 1325 +228 <-> 379, 1914 +229 <-> 529, 765 +230 <-> 534 +231 <-> 1456 +232 <-> 924, 952 +233 <-> 1423, 1661, 1715 +234 <-> 429 +235 <-> 65 +236 <-> 1134, 1613 +237 <-> 237 +238 <-> 1728 +239 <-> 1543 +240 <-> 698, 832, 1022 +241 <-> 948, 1066, 1172, 1552 +242 <-> 594, 888 +243 <-> 965 +244 <-> 739, 1428 +245 <-> 1039 +246 <-> 471 +247 <-> 1414, 1650 +248 <-> 254, 1152 +249 <-> 383, 976 +250 <-> 88 +251 <-> 941, 1484 +252 <-> 21, 141, 803 +253 <-> 253 +254 <-> 248, 395 +255 <-> 909, 1334 +256 <-> 1001 +257 <-> 558, 1050, 1946 +258 <-> 516, 961 +259 <-> 224, 564, 630 +260 <-> 127, 1041, 1938 +261 <-> 697, 761 +262 <-> 262, 1928 +263 <-> 1068 +264 <-> 149, 818 +265 <-> 175 +266 <-> 1767, 1955 +267 <-> 326 +268 <-> 553 +269 <-> 1557, 1907 +270 <-> 971 +271 <-> 1039 +272 <-> 1053, 1176 +273 <-> 1248 +274 <-> 215 +275 <-> 590, 1539 +276 <-> 479, 749 +277 <-> 434, 827, 1014 +278 <-> 1219 +279 <-> 931, 1971 +280 <-> 199, 559 +281 <-> 1079 +282 <-> 996, 1746 +283 <-> 1970 +284 <-> 1376, 1692 +285 <-> 198, 1521, 1977 +286 <-> 623, 857, 1446 +287 <-> 1781, 1920 +288 <-> 417 +289 <-> 1073 +290 <-> 1411 +291 <-> 759, 1267, 1931 +292 <-> 448 +293 <-> 1426, 1675 +294 <-> 947, 1749 +295 <-> 1489, 1702 +296 <-> 791 +297 <-> 198 +298 <-> 372, 539, 566, 1183 +299 <-> 306, 1799 +300 <-> 300, 1762 +301 <-> 216 +302 <-> 1671 +303 <-> 138, 867 +304 <-> 671, 1553 +305 <-> 1018, 1186 +306 <-> 299, 321 +307 <-> 1125, 1976 +308 <-> 172, 383 +309 <-> 1037, 1766 +310 <-> 1345 +311 <-> 849, 1989 +312 <-> 312 +313 <-> 1052, 1595 +314 <-> 1405, 1923 +315 <-> 426, 543 +316 <-> 536, 968, 1363, 1529, 1572, 1906 +317 <-> 317, 747 +318 <-> 495, 1658 +319 <-> 556, 910 +320 <-> 845, 1225 +321 <-> 306, 321, 399, 1248, 1951 +322 <-> 1409 +323 <-> 323, 1046, 1287 +324 <-> 1103 +325 <-> 1681 +326 <-> 267, 758, 901 +327 <-> 411, 1475 +328 <-> 1789 +329 <-> 473, 1361 +330 <-> 639, 1763 +331 <-> 51, 331 +332 <-> 492, 1526, 1552 +333 <-> 888, 1362 +334 <-> 49 +335 <-> 196, 335, 1914 +336 <-> 457 +337 <-> 1452 +338 <-> 426 +339 <-> 339, 689, 928, 1037 +340 <-> 65, 1403, 1516, 1559 +341 <-> 1393 +342 <-> 380, 452 +343 <-> 1126, 1267, 1823 +344 <-> 1429 +345 <-> 123 +346 <-> 364, 1898 +347 <-> 151, 515, 1114 +348 <-> 621, 1263, 1501, 1907 +349 <-> 154 +350 <-> 205, 596, 775, 1627 +351 <-> 755, 1186 +352 <-> 644 +353 <-> 943, 1117 +354 <-> 917, 1980 +355 <-> 1036, 1858 +356 <-> 900, 1210, 1940 +357 <-> 489 +358 <-> 1611 +359 <-> 359 +360 <-> 360, 1838 +361 <-> 191, 1729 +362 <-> 1090, 1692 +363 <-> 203, 363 +364 <-> 346, 1373 +365 <-> 68, 365 +366 <-> 469, 873 +367 <-> 221 +368 <-> 220 +369 <-> 1594, 1712 +370 <-> 1150 +371 <-> 1705 +372 <-> 298, 974, 1206, 1882 +373 <-> 1044, 1753 +374 <-> 137, 697, 1902 +375 <-> 510, 722 +376 <-> 1431, 1502 +377 <-> 377, 1098 +378 <-> 552, 971, 1054 +379 <-> 228, 684, 1256 +380 <-> 342 +381 <-> 1896 +382 <-> 967, 1146, 1224, 1816 +383 <-> 249, 308 +384 <-> 156, 807 +385 <-> 510 +386 <-> 21, 1184, 1756 +387 <-> 440, 1016, 1505 +388 <-> 938, 1418, 1810 +389 <-> 1300 +390 <-> 1305, 1863 +391 <-> 458, 1911 +392 <-> 506, 808, 924 +393 <-> 152, 1258 +394 <-> 394 +395 <-> 254 +396 <-> 656 +397 <-> 1872 +398 <-> 1679 +399 <-> 321 +400 <-> 528, 1560 +401 <-> 1527 +402 <-> 464, 1145, 1496 +403 <-> 477 +404 <-> 627 +405 <-> 188, 1866 +406 <-> 720, 1174, 1272 +407 <-> 1048 +408 <-> 674 +409 <-> 1869 +410 <-> 1548 +411 <-> 327, 836, 1622, 1967 +412 <-> 1803, 1978 +413 <-> 523, 1511 +414 <-> 414, 694 +415 <-> 1022, 1988 +416 <-> 203 +417 <-> 288, 449, 1758 +418 <-> 418, 778, 900, 1062, 1639, 1789 +419 <-> 419, 1764 +420 <-> 991 +421 <-> 690 +422 <-> 567, 883, 1182, 1921 +423 <-> 870 +424 <-> 503 +425 <-> 1014 +426 <-> 315, 338, 901, 1336 +427 <-> 1966 +428 <-> 1606 +429 <-> 234, 1567, 1682 +430 <-> 54, 1157, 1177, 1894 +431 <-> 798, 926 +432 <-> 1683 +433 <-> 523, 854 +434 <-> 277 +435 <-> 471, 1002 +436 <-> 33, 810, 873, 1011 +437 <-> 1327, 1534 +438 <-> 1470, 1825 +439 <-> 1293, 1566 +440 <-> 387, 1006 +441 <-> 560, 1690 +442 <-> 442, 587 +443 <-> 1324, 1450 +444 <-> 1655 +445 <-> 1387, 1499 +446 <-> 1637, 1663 +447 <-> 447 +448 <-> 292, 1407, 1533, 1874 +449 <-> 417 +450 <-> 878, 1780 +451 <-> 451 +452 <-> 342, 960, 1981 +453 <-> 156 +454 <-> 1215 +455 <-> 647, 1336 +456 <-> 675, 1080, 1792 +457 <-> 336, 626, 1002 +458 <-> 391 +459 <-> 619 +460 <-> 695, 997, 1181 +461 <-> 11, 795, 1020 +462 <-> 1433 +463 <-> 211, 1038, 1361 +464 <-> 13, 402 +465 <-> 1159, 1674 +466 <-> 1386, 1405, 1493 +467 <-> 581, 1677 +468 <-> 911 +469 <-> 366 +470 <-> 76, 676 +471 <-> 246, 435, 1331, 1685 +472 <-> 938, 1136, 1755 +473 <-> 329 +474 <-> 76, 856, 1645 +475 <-> 42, 804, 1546 +476 <-> 49 +477 <-> 403, 854, 1165, 1962 +478 <-> 1254 +479 <-> 276 +480 <-> 1364 +481 <-> 623 +482 <-> 226, 949 +483 <-> 36, 993 +484 <-> 484 +485 <-> 41, 89, 880, 1008, 1994 +486 <-> 1523, 1588 +487 <-> 1122 +488 <-> 728 +489 <-> 357, 573 +490 <-> 717, 841, 1020, 1280 +491 <-> 1920 +492 <-> 332 +493 <-> 85, 1585 +494 <-> 178, 1800 +495 <-> 318, 631, 897, 1482 +496 <-> 1649 +497 <-> 176 +498 <-> 1828 +499 <-> 499, 1134 +500 <-> 657, 1331 +501 <-> 809 +502 <-> 628, 787, 1358 +503 <-> 424, 503 +504 <-> 183, 203 +505 <-> 132, 1402 +506 <-> 392, 990 +507 <-> 1027, 1638, 1684 +508 <-> 710, 716 +509 <-> 28, 509 +510 <-> 375, 385, 629, 1814 +511 <-> 892 +512 <-> 1175 +513 <-> 513, 1737 +514 <-> 5, 699, 1610, 1935 +515 <-> 347, 1471 +516 <-> 49, 258, 1514 +517 <-> 1361 +518 <-> 1174 +519 <-> 927 +520 <-> 520, 1456 +521 <-> 10, 1581 +522 <-> 65, 1448 +523 <-> 413, 433, 1215 +524 <-> 524 +525 <-> 1540 +526 <-> 14, 798 +527 <-> 527, 753 +528 <-> 400 +529 <-> 229 +530 <-> 1475, 1620 +531 <-> 531 +532 <-> 1286 +533 <-> 193, 1727 +534 <-> 189, 230 +535 <-> 991, 1366 +536 <-> 316 +537 <-> 1833 +538 <-> 970, 1270 +539 <-> 298, 704, 723 +540 <-> 623 +541 <-> 1160, 1498, 1909 +542 <-> 120 +543 <-> 315 +544 <-> 842, 1289, 1365 +545 <-> 26, 1550 +546 <-> 1722, 1886 +547 <-> 64, 796, 1612 +548 <-> 1582, 1945 +549 <-> 549, 1084 +550 <-> 1041 +551 <-> 4, 39 +552 <-> 378, 1257 +553 <-> 171, 268, 1160, 1493 +554 <-> 1190 +555 <-> 1050 +556 <-> 37, 319, 1551 +557 <-> 557 +558 <-> 257, 1779 +559 <-> 135, 280 +560 <-> 96, 441 +561 <-> 1244, 1986 +562 <-> 1209, 1820 +563 <-> 1215 +564 <-> 259, 1817 +565 <-> 565 +566 <-> 298, 1203 +567 <-> 422, 884, 1113 +568 <-> 760, 1768 +569 <-> 1449 +570 <-> 598, 759, 1728 +571 <-> 571 +572 <-> 1821 +573 <-> 489, 930, 942, 1459 +574 <-> 1872 +575 <-> 813, 1073, 1335 +576 <-> 653, 1111, 1616 +577 <-> 93, 1316 +578 <-> 837, 1645, 1683 +579 <-> 906, 1113 +580 <-> 9, 1318, 1657 +581 <-> 467, 1286, 1720 +582 <-> 60, 582 +583 <-> 1678 +584 <-> 207, 891, 1115 +585 <-> 624 +586 <-> 36, 586, 1501, 1512 +587 <-> 442, 823, 1620, 1853 +588 <-> 1147 +589 <-> 1096, 1641, 1730 +590 <-> 275, 654, 726, 1981 +591 <-> 135 +592 <-> 132 +593 <-> 820 +594 <-> 242, 611, 1743 +595 <-> 90, 630, 719, 1977 +596 <-> 350, 878, 1401 +597 <-> 781, 848, 1854 +598 <-> 570 +599 <-> 8, 1070 +600 <-> 213, 779, 1118, 1483, 1886, 1957 +601 <-> 183 +602 <-> 1265 +603 <-> 1860 +604 <-> 641, 1512 +605 <-> 1001 +606 <-> 900 +607 <-> 1302 +608 <-> 885 +609 <-> 837 +610 <-> 610, 1659 +611 <-> 147, 594 +612 <-> 922, 1560 +613 <-> 1381 +614 <-> 1071, 1893 +615 <-> 629, 741, 1865 +616 <-> 47 +617 <-> 896 +618 <-> 1721, 1754, 1902 +619 <-> 459, 619, 1032 +620 <-> 679, 1449 +621 <-> 185, 348, 1301 +622 <-> 1244 +623 <-> 179, 286, 481, 540 +624 <-> 585, 1009, 1134 +625 <-> 1181, 1433 +626 <-> 457, 626, 1500, 1932 +627 <-> 16, 404 +628 <-> 502 +629 <-> 510, 615, 927 +630 <-> 259, 595 +631 <-> 495, 976, 1228 +632 <-> 1912 +633 <-> 694, 894 +634 <-> 1657 +635 <-> 184 +636 <-> 911, 1730, 1945 +637 <-> 981, 1909 +638 <-> 907 +639 <-> 27, 330, 639, 1663 +640 <-> 1229, 1939 +641 <-> 604 +642 <-> 896 +643 <-> 850 +644 <-> 85, 352, 735, 1025 +645 <-> 783 +646 <-> 110, 1825 +647 <-> 455 +648 <-> 1043 +649 <-> 1532 +650 <-> 105, 833, 1060, 1371 +651 <-> 1437, 1751 +652 <-> 1019 +653 <-> 576, 1314, 1393 +654 <-> 590 +655 <-> 716, 779 +656 <-> 396, 773, 1603 +657 <-> 500 +658 <-> 109, 738 +659 <-> 1527, 1951 +660 <-> 1685 +661 <-> 34 +662 <-> 1196, 1252 +663 <-> 1729 +664 <-> 23 +665 <-> 1224 +666 <-> 1213 +667 <-> 1786, 1919 +668 <-> 1369 +669 <-> 669, 785 +670 <-> 926, 1642 +671 <-> 198, 304 +672 <-> 4 +673 <-> 154 +674 <-> 408, 1062 +675 <-> 456 +676 <-> 470, 1194 +677 <-> 104 +678 <-> 821 +679 <-> 620 +680 <-> 687, 931 +681 <-> 959, 1711 +682 <-> 222, 1941 +683 <-> 1594 +684 <-> 379 +685 <-> 1200, 1897 +686 <-> 29, 1399 +687 <-> 680 +688 <-> 722 +689 <-> 339, 1391 +690 <-> 421, 1666 +691 <-> 210 +692 <-> 1165 +693 <-> 923, 1761 +694 <-> 414, 633, 757 +695 <-> 460, 726, 1880 +696 <-> 113, 1228, 1240 +697 <-> 155, 261, 374, 1477 +698 <-> 240 +699 <-> 514, 706 +700 <-> 746 +701 <-> 905, 1064 +702 <-> 952, 1097 +703 <-> 703, 1875 +704 <-> 539, 1328 +705 <-> 84, 1621 +706 <-> 699, 1604 +707 <-> 707 +708 <-> 708 +709 <-> 38, 1064 +710 <-> 111, 508, 1362 +711 <-> 1545 +712 <-> 899, 1139 +713 <-> 1228 +714 <-> 85, 1297 +715 <-> 2, 754, 1808 +716 <-> 508, 655 +717 <-> 50, 490 +718 <-> 1382, 1648 +719 <-> 595, 1024 +720 <-> 406, 1096, 1261 +721 <-> 45, 1213 +722 <-> 375, 688, 1632 +723 <-> 539 +724 <-> 891 +725 <-> 17, 1045 +726 <-> 590, 695, 1958 +727 <-> 747 +728 <-> 488, 728 +729 <-> 729, 1150 +730 <-> 730 +731 <-> 1181, 1273 +732 <-> 127, 1269 +733 <-> 1803 +734 <-> 1005, 1496 +735 <-> 644 +736 <-> 220 +737 <-> 1383 +738 <-> 658, 1259, 1687 +739 <-> 244 +740 <-> 946, 1163, 1279 +741 <-> 615, 1690 +742 <-> 800, 878, 1609 +743 <-> 1647 +744 <-> 744, 1778 +745 <-> 1181 +746 <-> 150, 700, 1082, 1727 +747 <-> 317, 727 +748 <-> 877 +749 <-> 276, 1040 +750 <-> 197, 750, 1201 +751 <-> 1159, 1479 +752 <-> 1642 +753 <-> 527 +754 <-> 715, 1809 +755 <-> 351, 1088, 1560 +756 <-> 756 +757 <-> 694 +758 <-> 326, 954, 1988 +759 <-> 44, 291, 570, 1038 +760 <-> 568, 1304, 1620 +761 <-> 261, 1537 +762 <-> 1943 +763 <-> 948, 1232, 1375 +764 <-> 45, 1839 +765 <-> 229, 1066 +766 <-> 217 +767 <-> 1501, 1587, 1640 +768 <-> 868, 1911 +769 <-> 75 +770 <-> 1724 +771 <-> 64, 1124, 1606 +772 <-> 1721 +773 <-> 656, 1197, 1756 +774 <-> 1422, 1835 +775 <-> 350, 844 +776 <-> 1204 +777 <-> 1073, 1448 +778 <-> 418 +779 <-> 600, 655 +780 <-> 1111, 1274 +781 <-> 597 +782 <-> 129, 1600 +783 <-> 645, 1627 +784 <-> 79, 947 +785 <-> 669 +786 <-> 90 +787 <-> 502, 816, 1625, 1821 +788 <-> 943 +789 <-> 1835 +790 <-> 1625 +791 <-> 296, 1092, 1930 +792 <-> 830 +793 <-> 1876 +794 <-> 1156, 1626, 1813 +795 <-> 0, 461 +796 <-> 547 +797 <-> 1565, 1589, 1669 +798 <-> 431, 526, 1278 +799 <-> 1643 +800 <-> 742, 1761 +801 <-> 858 +802 <-> 1367 +803 <-> 142, 252 +804 <-> 475, 1268, 1758, 1991 +805 <-> 1218, 1832 +806 <-> 221 +807 <-> 384, 1140, 1460, 1872, 1999 +808 <-> 392, 1417 +809 <-> 501, 884 +810 <-> 436 +811 <-> 1813 +812 <-> 819 +813 <-> 575 +814 <-> 1282, 1966 +815 <-> 815, 1579 +816 <-> 787, 1676 +817 <-> 1051, 1671 +818 <-> 264, 928, 1065 +819 <-> 812, 819 +820 <-> 593, 868, 1107, 1919 +821 <-> 678, 879, 1551, 1681, 1774 +822 <-> 822 +823 <-> 587 +824 <-> 1092, 1412, 1992 +825 <-> 166 +826 <-> 56, 1073 +827 <-> 35, 277 +828 <-> 1847 +829 <-> 1028 +830 <-> 792, 1007 +831 <-> 1799 +832 <-> 144, 204, 240, 1329 +833 <-> 650, 1685 +834 <-> 1379 +835 <-> 1355, 1844 +836 <-> 411 +837 <-> 578, 609, 1489 +838 <-> 1144, 1441 +839 <-> 1593 +840 <-> 1045 +841 <-> 112, 490, 1436 +842 <-> 544 +843 <-> 1371 +844 <-> 775 +845 <-> 320, 1556, 1591 +846 <-> 104, 1094 +847 <-> 847, 1654 +848 <-> 597, 1090 +849 <-> 311, 1773 +850 <-> 643, 1875 +851 <-> 858, 1524 +852 <-> 1504, 1541, 1990 +853 <-> 53 +854 <-> 433, 477 +855 <-> 1502, 1860 +856 <-> 474 +857 <-> 286, 857 +858 <-> 801, 851, 858, 1547, 1652 +859 <-> 1969 +860 <-> 1181 +861 <-> 955 +862 <-> 1350, 1624 +863 <-> 863 +864 <-> 1457 +865 <-> 1355, 1491 +866 <-> 1373 +867 <-> 303, 987 +868 <-> 58, 136, 768, 820 +869 <-> 1426, 1744 +870 <-> 423, 1608 +871 <-> 1312 +872 <-> 872, 1226 +873 <-> 366, 436 +874 <-> 1983 +875 <-> 1138, 1232 +876 <-> 1324 +877 <-> 748, 1464, 1846 +878 <-> 450, 596, 742 +879 <-> 821 +880 <-> 485 +881 <-> 1246, 1286 +882 <-> 946, 1221 +883 <-> 422, 886, 1830 +884 <-> 567, 809 +885 <-> 608, 1856 +886 <-> 883, 1787 +887 <-> 1035, 1331, 1438, 1604 +888 <-> 242, 333 +889 <-> 208, 935 +890 <-> 1211, 1847 +891 <-> 584, 724 +892 <-> 83, 84, 511, 1478, 1530, 1983 +893 <-> 1494 +894 <-> 633 +895 <-> 1045, 1124, 1745 +896 <-> 12, 617, 642, 896 +897 <-> 495 +898 <-> 898, 1586 +899 <-> 712 +900 <-> 356, 418, 606, 1026, 1074 +901 <-> 326, 426 +902 <-> 1790 +903 <-> 46, 969, 1715 +904 <-> 146, 1964 +905 <-> 701, 1273, 1410 +906 <-> 579, 1713, 1878 +907 <-> 638, 907 +908 <-> 59, 1195 +909 <-> 255, 1669 +910 <-> 319 +911 <-> 468, 636 +912 <-> 1076 +913 <-> 1067, 1101, 1397, 1790 +914 <-> 1383, 1825 +915 <-> 1827 +916 <-> 1938 +917 <-> 354, 991 +918 <-> 1013 +919 <-> 1086 +920 <-> 995 +921 <-> 122, 146 +922 <-> 612 +923 <-> 693, 1916 +924 <-> 232, 392, 1782 +925 <-> 1553 +926 <-> 431, 670 +927 <-> 519, 629 +928 <-> 339, 818 +929 <-> 1220 +930 <-> 42, 573 +931 <-> 279, 680, 1593 +932 <-> 1470, 1534 +933 <-> 213 +934 <-> 1205, 1387 +935 <-> 889 +936 <-> 1984 +937 <-> 937, 1817 +938 <-> 388, 472, 1133, 1808 +939 <-> 1147, 1750, 1884 +940 <-> 1097 +941 <-> 251 +942 <-> 573, 1994 +943 <-> 353, 788 +944 <-> 1103, 1979 +945 <-> 1824 +946 <-> 740, 882, 1716 +947 <-> 294, 784, 1381, 1960 +948 <-> 241, 763, 1368 +949 <-> 482 +950 <-> 188 +951 <-> 1711 +952 <-> 232, 702 +953 <-> 133, 1028, 1375, 1519 +954 <-> 758, 1733 +955 <-> 165, 861, 1442, 1664 +956 <-> 956, 1590 +957 <-> 957 +958 <-> 84 +959 <-> 29, 681 +960 <-> 452 +961 <-> 258 +962 <-> 80 +963 <-> 963 +964 <-> 1742 +965 <-> 243, 965 +966 <-> 1515, 1745 +967 <-> 382, 1712, 1754 +968 <-> 316 +969 <-> 903, 1777 +970 <-> 538, 1278, 1463 +971 <-> 270, 378 +972 <-> 1985 +973 <-> 1565 +974 <-> 372, 1738 +975 <-> 1734 +976 <-> 249, 631 +977 <-> 210, 1846 +978 <-> 1171 +979 <-> 1786 +980 <-> 1871 +981 <-> 637 +982 <-> 1449 +983 <-> 24, 1567 +984 <-> 1372 +985 <-> 985, 1285 +986 <-> 121, 218, 988, 1836 +987 <-> 867 +988 <-> 986, 1276, 1526 +989 <-> 1268, 1709 +990 <-> 506, 990 +991 <-> 420, 535, 917, 1390 +992 <-> 1628 +993 <-> 483, 1765 +994 <-> 1068 +995 <-> 920, 995 +996 <-> 209, 282 +997 <-> 16, 460, 1122, 1769 +998 <-> 1076, 1602 +999 <-> 1001, 1697 +1000 <-> 1648, 1915 +1001 <-> 256, 605, 999, 1091 +1002 <-> 435, 457 +1003 <-> 1382 +1004 <-> 1254 +1005 <-> 20, 734, 1651 +1006 <-> 440 +1007 <-> 830, 1007 +1008 <-> 485 +1009 <-> 624 +1010 <-> 1353 +1011 <-> 139, 436, 1675 +1012 <-> 1836 +1013 <-> 918, 1891 +1014 <-> 277, 425 +1015 <-> 1191 +1016 <-> 387 +1017 <-> 1483 +1018 <-> 305 +1019 <-> 652, 1798 +1020 <-> 461, 490, 1843 +1021 <-> 1021 +1022 <-> 240, 415, 1507 +1023 <-> 1919 +1024 <-> 719, 1925 +1025 <-> 644, 1735 +1026 <-> 900 +1027 <-> 507, 1432 +1028 <-> 829, 953, 1927 +1029 <-> 1029 +1030 <-> 1923 +1031 <-> 1505 +1032 <-> 619, 1151 +1033 <-> 1949 +1034 <-> 1115 +1035 <-> 887 +1036 <-> 355 +1037 <-> 168, 309, 339, 1835 +1038 <-> 463, 759 +1039 <-> 154, 245, 271 +1040 <-> 99, 749, 1153, 1477 +1041 <-> 260, 550 +1042 <-> 1814 +1043 <-> 648, 1091 +1044 <-> 373, 1614 +1045 <-> 725, 840, 895, 1309 +1046 <-> 323 +1047 <-> 1238, 1499, 1569 +1048 <-> 407, 1533 +1049 <-> 1856 +1050 <-> 257, 555 +1051 <-> 817, 1051 +1052 <-> 313 +1053 <-> 47, 272 +1054 <-> 378, 1648 +1055 <-> 1055 +1056 <-> 180, 1387 +1057 <-> 1057, 1793, 1924 +1058 <-> 118, 1474 +1059 <-> 1566, 1851 +1060 <-> 650 +1061 <-> 96, 1063 +1062 <-> 418, 674 +1063 <-> 1061 +1064 <-> 701, 709, 1867, 1963 +1065 <-> 818 +1066 <-> 241, 765 +1067 <-> 913 +1068 <-> 8, 263, 994 +1069 <-> 1555 +1070 <-> 175, 599, 1070 +1071 <-> 614, 1245 +1072 <-> 1086, 1685 +1073 <-> 289, 575, 777, 826 +1074 <-> 900, 1434 +1075 <-> 1492 +1076 <-> 912, 998, 1119 +1077 <-> 1183 +1078 <-> 1771, 1792 +1079 <-> 86, 281, 1167 +1080 <-> 75, 456, 1168, 1337 +1081 <-> 1741 +1082 <-> 746 +1083 <-> 1378 +1084 <-> 549, 1199 +1085 <-> 1085 +1086 <-> 919, 1072 +1087 <-> 1087, 1726 +1088 <-> 755 +1089 <-> 1089 +1090 <-> 362, 848, 1474 +1091 <-> 1001, 1043 +1092 <-> 791, 824, 1933 +1093 <-> 1190 +1094 <-> 846 +1095 <-> 1095 +1096 <-> 589, 720, 1096 +1097 <-> 702, 940 +1098 <-> 377 +1099 <-> 1099 +1100 <-> 1212 +1101 <-> 913, 1543 +1102 <-> 34, 1392, 1626, 1985 +1103 <-> 324, 944, 1348, 1494, 1981 +1104 <-> 1104 +1105 <-> 1400 +1106 <-> 1678, 1842, 1974 +1107 <-> 820 +1108 <-> 1202 +1109 <-> 1219, 1539 +1110 <-> 1144, 1179 +1111 <-> 576, 780 +1112 <-> 1357 +1113 <-> 567, 579 +1114 <-> 347, 1696 +1115 <-> 76, 584, 1034, 1981 +1116 <-> 116 +1117 <-> 127, 353, 1635 +1118 <-> 600 +1119 <-> 1076, 1445 +1120 <-> 1735, 1946 +1121 <-> 1778 +1122 <-> 487, 997, 1253 +1123 <-> 1792 +1124 <-> 771, 895, 1266 +1125 <-> 307 +1126 <-> 343 +1127 <-> 1127, 1164 +1128 <-> 78, 1700 +1129 <-> 1149, 1625 +1130 <-> 1871 +1131 <-> 1131 +1132 <-> 1207, 1208, 1861 +1133 <-> 938 +1134 <-> 236, 499, 624 +1135 <-> 1489, 1607 +1136 <-> 472 +1137 <-> 1298 +1138 <-> 875 +1139 <-> 712, 1139 +1140 <-> 807 +1141 <-> 1329 +1142 <-> 1170, 1559 +1143 <-> 1143 +1144 <-> 838, 1110, 1223 +1145 <-> 402, 1145 +1146 <-> 382, 1364 +1147 <-> 588, 939 +1148 <-> 1421, 1831 +1149 <-> 1129, 1905, 1959 +1150 <-> 370, 729 +1151 <-> 128, 1032, 1233 +1152 <-> 248, 1152, 1708, 1803 +1153 <-> 1040, 1377 +1154 <-> 1209 +1155 <-> 74, 1787 +1156 <-> 794 +1157 <-> 430, 1975 +1158 <-> 1158, 1592 +1159 <-> 465, 751, 1454 +1160 <-> 541, 553, 1175 +1161 <-> 1786, 1824 +1162 <-> 1262, 1321, 1876 +1163 <-> 740, 1283, 1903 +1164 <-> 1127 +1165 <-> 477, 692 +1166 <-> 1344, 1967 +1167 <-> 1079 +1168 <-> 22, 1080 +1169 <-> 1172, 1647 +1170 <-> 1142 +1171 <-> 978, 1171 +1172 <-> 241, 1169, 1723 +1173 <-> 1375 +1174 <-> 406, 518, 1323 +1175 <-> 512, 1160, 1343, 1982 +1176 <-> 272, 1176 +1177 <-> 430 +1178 <-> 1910 +1179 <-> 1110 +1180 <-> 1596 +1181 <-> 460, 625, 731, 745, 860, 1647 +1182 <-> 422 +1183 <-> 298, 1077 +1184 <-> 386 +1185 <-> 1729, 1972 +1186 <-> 87, 305, 351 +1187 <-> 1454, 1670 +1188 <-> 1779, 1976 +1189 <-> 1731, 1794, 1980 +1190 <-> 554, 1093, 1326, 1332, 1999 +1191 <-> 1015, 1784, 1920, 1998 +1192 <-> 1923, 1937 +1193 <-> 1333 +1194 <-> 159, 676 +1195 <-> 908, 1311, 1805 +1196 <-> 39, 662 +1197 <-> 773 +1198 <-> 1468 +1199 <-> 1084, 1826 +1200 <-> 63, 685, 1490 +1201 <-> 750 +1202 <-> 1108, 1618 +1203 <-> 566 +1204 <-> 776, 1204 +1205 <-> 934 +1206 <-> 372 +1207 <-> 1132, 1207, 1342 +1208 <-> 1132 +1209 <-> 562, 1154, 1840 +1210 <-> 356 +1211 <-> 890, 1259 +1212 <-> 49, 1100, 1385 +1213 <-> 666, 721, 1469, 1583, 1984 +1214 <-> 1734 +1215 <-> 454, 523, 563 +1216 <-> 1583 +1217 <-> 219, 1749 +1218 <-> 805, 1611 +1219 <-> 278, 1109 +1220 <-> 929, 1904, 1919 +1221 <-> 882 +1222 <-> 1462 +1223 <-> 1144, 1223, 1384 +1224 <-> 382, 665 +1225 <-> 118, 320 +1226 <-> 872, 1744, 1895 +1227 <-> 1601 +1228 <-> 631, 696, 713 +1229 <-> 120, 640, 1642, 1993 +1230 <-> 1400, 1494 +1231 <-> 1942 +1232 <-> 156, 763, 875 +1233 <-> 1151 +1234 <-> 1234 +1235 <-> 1510, 1888 +1236 <-> 1591 +1237 <-> 1912 +1238 <-> 1047 +1239 <-> 1371 +1240 <-> 87, 696, 1799 +1241 <-> 160, 1915 +1242 <-> 1242, 1900 +1243 <-> 1303 +1244 <-> 561, 622, 1942 +1245 <-> 158, 1071 +1246 <-> 184, 881, 1899 +1247 <-> 1539 +1248 <-> 273, 321 +1249 <-> 1324 +1250 <-> 1354 +1251 <-> 127 +1252 <-> 662, 1304, 1374 +1253 <-> 1122 +1254 <-> 208, 478, 1004, 1378 +1255 <-> 1995 +1256 <-> 379, 1349 +1257 <-> 222, 552 +1258 <-> 155, 393, 1574, 1647 +1259 <-> 124, 738, 1211, 1409 +1260 <-> 1862 +1261 <-> 720 +1262 <-> 194, 1162, 1349, 1458 +1263 <-> 348 +1264 <-> 215 +1265 <-> 602, 1265, 1970 +1266 <-> 22, 1124 +1267 <-> 291, 343, 1729, 1918 +1268 <-> 103, 804, 989 +1269 <-> 732 +1270 <-> 538 +1271 <-> 25, 1285 +1272 <-> 406, 1629 +1273 <-> 221, 731, 905 +1274 <-> 35, 780 +1275 <-> 1752 +1276 <-> 988 +1277 <-> 1788 +1278 <-> 798, 970 +1279 <-> 740 +1280 <-> 490, 1763 +1281 <-> 1281 +1282 <-> 814, 1341 +1283 <-> 1163 +1284 <-> 1447, 1494 +1285 <-> 985, 1271 +1286 <-> 532, 581, 881 +1287 <-> 323 +1288 <-> 1681 +1289 <-> 544, 1665, 1928 +1290 <-> 168 +1291 <-> 1435 +1292 <-> 199 +1293 <-> 439 +1294 <-> 219 +1295 <-> 1526 +1296 <-> 1296, 1411 +1297 <-> 174, 714 +1298 <-> 61, 1137, 1416, 1724, 1979 +1299 <-> 1673 +1300 <-> 389, 1464 +1301 <-> 621 +1302 <-> 607, 1788 +1303 <-> 1243, 1303 +1304 <-> 760, 1252 +1305 <-> 390, 1452 +1306 <-> 1728 +1307 <-> 59, 193 +1308 <-> 1943 +1309 <-> 1045, 1403 +1310 <-> 1938 +1311 <-> 98, 1195 +1312 <-> 871, 1478, 1834 +1313 <-> 1379 +1314 <-> 653 +1315 <-> 106, 1955, 1968 +1316 <-> 577, 1523 +1317 <-> 1826 +1318 <-> 212, 580 +1319 <-> 1371 +1320 <-> 1406 +1321 <-> 1162 +1322 <-> 188 +1323 <-> 1174, 1633 +1324 <-> 443, 876, 1249, 1832 +1325 <-> 227, 1569 +1326 <-> 1190 +1327 <-> 437 +1328 <-> 704, 1689 +1329 <-> 832, 1141, 1330 +1330 <-> 1329, 1330 +1331 <-> 471, 500, 887 +1332 <-> 1190, 1429 +1333 <-> 1193, 1792 +1334 <-> 255, 1345 +1335 <-> 575 +1336 <-> 426, 455, 1913 +1337 <-> 1080 +1338 <-> 167, 1338 +1339 <-> 1517 +1340 <-> 1866 +1341 <-> 1282 +1342 <-> 1207 +1343 <-> 1175 +1344 <-> 1166 +1345 <-> 310, 1334 +1346 <-> 1346, 1719 +1347 <-> 1375 +1348 <-> 1103 +1349 <-> 1256, 1262 +1350 <-> 862, 1350 +1351 <-> 78, 1444 +1352 <-> 1845 +1353 <-> 1010, 1922 +1354 <-> 1250, 1363 +1355 <-> 72, 835, 865, 1936 +1356 <-> 25 +1357 <-> 1112, 1357 +1358 <-> 502 +1359 <-> 1814 +1360 <-> 1468 +1361 <-> 3, 329, 463, 517 +1362 <-> 333, 710 +1363 <-> 316, 1354, 1759 +1364 <-> 480, 1146 +1365 <-> 544 +1366 <-> 91, 535 +1367 <-> 802, 1543, 1609 +1368 <-> 948, 1631, 1864 +1369 <-> 668, 1964 +1370 <-> 1370 +1371 <-> 650, 843, 1239, 1319, 1528 +1372 <-> 984, 1447 +1373 <-> 62, 364, 866, 1884 +1374 <-> 1252 +1375 <-> 57, 187, 763, 953, 1173, 1347 +1376 <-> 284, 1878 +1377 <-> 161, 1153 +1378 <-> 1083, 1254, 1378, 1856 +1379 <-> 834, 1313, 1792 +1380 <-> 1967 +1381 <-> 613, 947, 1523 +1382 <-> 718, 1003, 1796 +1383 <-> 737, 914 +1384 <-> 1223 +1385 <-> 205, 1212 +1386 <-> 466, 1623 +1387 <-> 445, 934, 1056 +1388 <-> 1456 +1389 <-> 193, 1427, 1701 +1390 <-> 991 +1391 <-> 689 +1392 <-> 1102 +1393 <-> 341, 653, 1513 +1394 <-> 1509 +1395 <-> 1409 +1396 <-> 1593, 1982 +1397 <-> 100, 913 +1398 <-> 1668 +1399 <-> 686 +1400 <-> 1105, 1230 +1401 <-> 596, 1506 +1402 <-> 209, 505, 1628 +1403 <-> 340, 1309 +1404 <-> 1754 +1405 <-> 314, 466 +1406 <-> 1320, 1796, 1883 +1407 <-> 448, 1542 +1408 <-> 1616 +1409 <-> 322, 1259, 1395, 1462 +1410 <-> 905 +1411 <-> 290, 1296 +1412 <-> 50, 824 +1413 <-> 1943, 1955, 1997 +1414 <-> 247 +1415 <-> 1415 +1416 <-> 1298 +1417 <-> 808 +1418 <-> 388, 1487, 1666 +1419 <-> 90 +1420 <-> 1435, 1486, 1947 +1421 <-> 1148, 1679 +1422 <-> 774 +1423 <-> 233 +1424 <-> 1670 +1425 <-> 1910 +1426 <-> 293, 869 +1427 <-> 1389, 1634, 1740 +1428 <-> 244, 1428, 1831 +1429 <-> 344, 1332 +1430 <-> 1985 +1431 <-> 376 +1432 <-> 1027 +1433 <-> 462, 625 +1434 <-> 1074 +1435 <-> 1291, 1420 +1436 <-> 841 +1437 <-> 651, 1616 +1438 <-> 887 +1439 <-> 218 +1440 <-> 1770, 1809 +1441 <-> 838 +1442 <-> 955, 1714 +1443 <-> 64 +1444 <-> 1351 +1445 <-> 1119, 1445 +1446 <-> 286 +1447 <-> 1284, 1372 +1448 <-> 522, 777, 1969 +1449 <-> 136, 569, 620, 982 +1450 <-> 195, 443, 1516 +1451 <-> 1451 +1452 <-> 337, 1305, 1552 +1453 <-> 1801, 1906 +1454 <-> 1159, 1187 +1455 <-> 1562 +1456 <-> 231, 520, 1388, 1775, 1833 +1457 <-> 864, 1905 +1458 <-> 1262 +1459 <-> 573 +1460 <-> 807 +1461 <-> 1599, 1706 +1462 <-> 1222, 1409 +1463 <-> 970, 1937 +1464 <-> 877, 1300, 1677 +1465 <-> 1602 +1466 <-> 1919 +1467 <-> 1467 +1468 <-> 1198, 1360, 1987 +1469 <-> 1213, 1896 +1470 <-> 136, 438, 932 +1471 <-> 515, 1952 +1472 <-> 65, 226 +1473 <-> 1585 +1474 <-> 1058, 1090 +1475 <-> 327, 530 +1476 <-> 95, 1627, 1866 +1477 <-> 697, 1040, 1827 +1478 <-> 892, 1312, 1478 +1479 <-> 751 +1480 <-> 1480 +1481 <-> 1481 +1482 <-> 495 +1483 <-> 600, 1017 +1484 <-> 251, 1717, 1920 +1485 <-> 1618, 1797 +1486 <-> 1420 +1487 <-> 1418, 1828 +1488 <-> 1545 +1489 <-> 295, 837, 1135, 1859 +1490 <-> 170, 178, 1200 +1491 <-> 865, 1500, 1858 +1492 <-> 157, 202, 1075 +1493 <-> 466, 553 +1494 <-> 893, 1103, 1230, 1284 +1495 <-> 118 +1496 <-> 402, 734 +1497 <-> 1953 +1498 <-> 541, 1662 +1499 <-> 445, 1047 +1500 <-> 626, 1491, 1922 +1501 <-> 348, 586, 767 +1502 <-> 376, 855, 1960, 1965 +1503 <-> 1755 +1504 <-> 852 +1505 <-> 387, 1031, 1854 +1506 <-> 1401 +1507 <-> 1022 +1508 <-> 1853 +1509 <-> 1394, 1509, 1732 +1510 <-> 1235 +1511 <-> 413, 1990 +1512 <-> 586, 604, 1862 +1513 <-> 1393 +1514 <-> 516 +1515 <-> 966, 1716 +1516 <-> 340, 1450 +1517 <-> 9, 1339, 1587 +1518 <-> 1518, 1912, 1956 +1519 <-> 71, 201, 953 +1520 <-> 1520 +1521 <-> 29, 285, 1906 +1522 <-> 1538, 1994 +1523 <-> 486, 1316, 1381 +1524 <-> 851 +1525 <-> 1737 +1526 <-> 332, 988, 1295 +1527 <-> 401, 659 +1528 <-> 1371 +1529 <-> 316 +1530 <-> 892 +1531 <-> 1531 +1532 <-> 117, 649 +1533 <-> 35, 448, 1048 +1534 <-> 437, 932 +1535 <-> 1630 +1536 <-> 119 +1537 <-> 761, 1869 +1538 <-> 1522 +1539 <-> 275, 1109, 1247 +1540 <-> 525, 1540 +1541 <-> 852, 1541 +1542 <-> 1407, 1694 +1543 <-> 220, 239, 1101, 1367 +1544 <-> 1972 +1545 <-> 132, 711, 1488 +1546 <-> 475 +1547 <-> 86, 858 +1548 <-> 410, 1616 +1549 <-> 1852 +1550 <-> 545, 1711 +1551 <-> 556, 821 +1552 <-> 241, 332, 1452, 1987 +1553 <-> 304, 925 +1554 <-> 1554 +1555 <-> 1069, 1727 +1556 <-> 845, 1561 +1557 <-> 269 +1558 <-> 1558 +1559 <-> 340, 1142 +1560 <-> 400, 612, 755 +1561 <-> 1556 +1562 <-> 1455, 1697 +1563 <-> 1563, 1736 +1564 <-> 77, 1564 +1565 <-> 115, 797, 973 +1566 <-> 80, 439, 1059 +1567 <-> 134, 429, 983 +1568 <-> 1570 +1569 <-> 1047, 1325 +1570 <-> 1568, 1932 +1571 <-> 1628, 1755 +1572 <-> 316 +1573 <-> 173 +1574 <-> 1258 +1575 <-> 1856 +1576 <-> 1708 +1577 <-> 1577 +1578 <-> 101, 1660 +1579 <-> 815 +1580 <-> 1580 +1581 <-> 521, 1689 +1582 <-> 131, 190, 548 +1583 <-> 1213, 1216 +1584 <-> 200 +1585 <-> 493, 1473 +1586 <-> 898 +1587 <-> 767, 1517 +1588 <-> 486 +1589 <-> 797, 1822 +1590 <-> 956 +1591 <-> 845, 1236, 1688 +1592 <-> 1158 +1593 <-> 839, 931, 1396 +1594 <-> 369, 683 +1595 <-> 313, 1731 +1596 <-> 208, 1180 +1597 <-> 65 +1598 <-> 1598 +1599 <-> 1461 +1600 <-> 782 +1601 <-> 138, 1227, 1837, 1932 +1602 <-> 998, 1465 +1603 <-> 656 +1604 <-> 173, 706, 887 +1605 <-> 66, 202 +1606 <-> 428, 771 +1607 <-> 1135 +1608 <-> 19, 870, 1608 +1609 <-> 742, 1367 +1610 <-> 514, 1703 +1611 <-> 358, 1218 +1612 <-> 547 +1613 <-> 236 +1614 <-> 1044 +1615 <-> 1697 +1616 <-> 576, 1408, 1437, 1548 +1617 <-> 1617 +1618 <-> 1202, 1485 +1619 <-> 1910 +1620 <-> 530, 587, 760 +1621 <-> 705 +1622 <-> 143, 411 +1623 <-> 1386 +1624 <-> 85, 862, 1691 +1625 <-> 787, 790, 1129 +1626 <-> 794, 1102 +1627 <-> 350, 783, 1476, 1822 +1628 <-> 992, 1402, 1571 +1629 <-> 1272, 1783 +1630 <-> 1535, 1630 +1631 <-> 1368, 1973 +1632 <-> 722 +1633 <-> 1323 +1634 <-> 1427 +1635 <-> 55, 1117 +1636 <-> 1636 +1637 <-> 446 +1638 <-> 507 +1639 <-> 177, 418 +1640 <-> 767, 1989 +1641 <-> 589 +1642 <-> 670, 752, 1229 +1643 <-> 799, 1977 +1644 <-> 63 +1645 <-> 474, 578 +1646 <-> 1829 +1647 <-> 743, 1169, 1181, 1258 +1648 <-> 718, 1000, 1054 +1649 <-> 496, 1649 +1650 <-> 247, 1806 +1651 <-> 1005 +1652 <-> 858 +1653 <-> 1684, 1747, 1949 +1654 <-> 847 +1655 <-> 123, 444, 1771 +1656 <-> 1705 +1657 <-> 214, 580, 634 +1658 <-> 318 +1659 <-> 610 +1660 <-> 222, 1578 +1661 <-> 233, 1661 +1662 <-> 1498 +1663 <-> 103, 446, 639 +1664 <-> 955, 1874 +1665 <-> 1289 +1666 <-> 690, 1418 +1667 <-> 1792 +1668 <-> 1398, 1668 +1669 <-> 797, 909, 1709 +1670 <-> 1187, 1424 +1671 <-> 302, 817 +1672 <-> 1851 +1673 <-> 1299, 1673 +1674 <-> 465, 1730 +1675 <-> 293, 1011 +1676 <-> 816, 1891 +1677 <-> 467, 1464, 1787 +1678 <-> 182, 583, 1106, 1852 +1679 <-> 398, 1421 +1680 <-> 1680 +1681 <-> 325, 821, 1288 +1682 <-> 429, 1682 +1683 <-> 432, 578 +1684 <-> 507, 1653, 1806, 1841 +1685 <-> 114, 471, 660, 833, 1072 +1686 <-> 1691 +1687 <-> 738 +1688 <-> 1591 +1689 <-> 1328, 1581, 1795 +1690 <-> 441, 741, 1854 +1691 <-> 1624, 1686 +1692 <-> 284, 362 +1693 <-> 1781 +1694 <-> 1542 +1695 <-> 1775 +1696 <-> 1114 +1697 <-> 177, 999, 1562, 1615, 1996 +1698 <-> 3, 1809 +1699 <-> 1761 +1700 <-> 7, 1128 +1701 <-> 1389, 1802 +1702 <-> 295 +1703 <-> 1610 +1704 <-> 220 +1705 <-> 371, 1656, 1867 +1706 <-> 142, 1461 +1707 <-> 1960 +1708 <-> 1152, 1576, 1961 +1709 <-> 989, 1669 +1710 <-> 138 +1711 <-> 681, 951, 1550 +1712 <-> 19, 369, 967 +1713 <-> 906, 1812 +1714 <-> 1442, 1785 +1715 <-> 233, 903 +1716 <-> 946, 1515 +1717 <-> 84, 1484 +1718 <-> 1718 +1719 <-> 102, 1346 +1720 <-> 146, 581 +1721 <-> 31, 618, 772 +1722 <-> 546 +1723 <-> 108, 1172 +1724 <-> 770, 1298 +1725 <-> 1896 +1726 <-> 1087 +1727 <-> 533, 746, 1555 +1728 <-> 238, 570, 1306 +1729 <-> 361, 663, 1185, 1267 +1730 <-> 589, 636, 1674 +1731 <-> 1189, 1595 +1732 <-> 1509 +1733 <-> 954 +1734 <-> 93, 975, 1214 +1735 <-> 1025, 1120 +1736 <-> 1563 +1737 <-> 513, 1525 +1738 <-> 974 +1739 <-> 1742 +1740 <-> 1427 +1741 <-> 1081, 1950 +1742 <-> 964, 1739, 1923 +1743 <-> 594, 1921 +1744 <-> 869, 1226 +1745 <-> 895, 966, 1829 +1746 <-> 282 +1747 <-> 1653, 1747, 1910 +1748 <-> 1982 +1749 <-> 294, 1217 +1750 <-> 939 +1751 <-> 651 +1752 <-> 1275, 1752 +1753 <-> 373, 1969 +1754 <-> 618, 967, 1404 +1755 <-> 472, 1503, 1571 +1756 <-> 386, 773, 1777 +1757 <-> 22 +1758 <-> 417, 804 +1759 <-> 1363 +1760 <-> 1935 +1761 <-> 693, 800, 1699 +1762 <-> 300 +1763 <-> 330, 1280 +1764 <-> 419 +1765 <-> 993 +1766 <-> 309 +1767 <-> 266, 1821 +1768 <-> 568 +1769 <-> 997 +1770 <-> 1440 +1771 <-> 1078, 1655, 1873 +1772 <-> 1772 +1773 <-> 849 +1774 <-> 821, 1783 +1775 <-> 1456, 1695 +1776 <-> 1889, 1943 +1777 <-> 969, 1756 +1778 <-> 744, 1121 +1779 <-> 558, 1188 +1780 <-> 450 +1781 <-> 70, 287, 1693 +1782 <-> 924 +1783 <-> 1629, 1774 +1784 <-> 81, 1191 +1785 <-> 1714 +1786 <-> 667, 979, 1161 +1787 <-> 886, 1155, 1677 +1788 <-> 147, 1277, 1302, 1950 +1789 <-> 328, 418 +1790 <-> 902, 913 +1791 <-> 135 +1792 <-> 456, 1078, 1123, 1333, 1379, 1667 +1793 <-> 1057 +1794 <-> 1189, 1794 +1795 <-> 1689 +1796 <-> 1382, 1406, 1953 +1797 <-> 125, 1485, 1797 +1798 <-> 186, 1019, 1798 +1799 <-> 299, 831, 1240 +1800 <-> 494 +1801 <-> 1453 +1802 <-> 107, 1701 +1803 <-> 18, 412, 733, 1152 +1804 <-> 221 +1805 <-> 1195 +1806 <-> 6, 1650, 1684 +1807 <-> 1807 +1808 <-> 715, 938, 1985 +1809 <-> 754, 1440, 1698 +1810 <-> 388 +1811 <-> 165 +1812 <-> 1713 +1813 <-> 794, 811 +1814 <-> 192, 510, 1042, 1359 +1815 <-> 1941 +1816 <-> 382 +1817 <-> 166, 564, 937 +1818 <-> 21 +1819 <-> 111 +1820 <-> 562 +1821 <-> 572, 787, 1767 +1822 <-> 1589, 1627 +1823 <-> 343 +1824 <-> 945, 1161 +1825 <-> 90, 163, 438, 646, 914 +1826 <-> 1199, 1317, 1881 +1827 <-> 915, 1477 +1828 <-> 498, 1487 +1829 <-> 1646, 1745 +1830 <-> 883 +1831 <-> 1148, 1428, 1882 +1832 <-> 805, 1324 +1833 <-> 537, 1456 +1834 <-> 1312 +1835 <-> 774, 789, 1037 +1836 <-> 986, 1012 +1837 <-> 164, 1601 +1838 <-> 360 +1839 <-> 764 +1840 <-> 1209, 1888 +1841 <-> 1684 +1842 <-> 117, 1106, 1948 +1843 <-> 1020 +1844 <-> 835, 1890 +1845 <-> 1352, 1845 +1846 <-> 877, 977, 1878 +1847 <-> 828, 890 +1848 <-> 123, 1926 +1849 <-> 1849 +1850 <-> 8, 150 +1851 <-> 1059, 1672 +1852 <-> 1549, 1678 +1853 <-> 587, 1508 +1854 <-> 597, 1505, 1690 +1855 <-> 1855 +1856 <-> 885, 1049, 1378, 1575 +1857 <-> 202 +1858 <-> 355, 1491 +1859 <-> 1489 +1860 <-> 603, 855 +1861 <-> 1132 +1862 <-> 1260, 1512 +1863 <-> 390 +1864 <-> 1368 +1865 <-> 615 +1866 <-> 405, 1340, 1476 +1867 <-> 1064, 1705 +1868 <-> 1868 +1869 <-> 409, 1537 +1870 <-> 90 +1871 <-> 980, 1130, 1958 +1872 <-> 397, 574, 807 +1873 <-> 1771 +1874 <-> 91, 448, 1664 +1875 <-> 703, 850 +1876 <-> 793, 1162 +1877 <-> 1877 +1878 <-> 906, 1376, 1846, 1884 +1879 <-> 191 +1880 <-> 695 +1881 <-> 1826 +1882 <-> 372, 1831 +1883 <-> 1406 +1884 <-> 939, 1373, 1878 +1885 <-> 108 +1886 <-> 546, 600 +1887 <-> 58 +1888 <-> 202, 1235, 1840 +1889 <-> 1776 +1890 <-> 1844 +1891 <-> 1013, 1676 +1892 <-> 1892 +1893 <-> 614, 1893 +1894 <-> 430 +1895 <-> 1226 +1896 <-> 381, 1469, 1725 +1897 <-> 685, 1956 +1898 <-> 346 +1899 <-> 1246 +1900 <-> 1242 +1901 <-> 1901 +1902 <-> 374, 618 +1903 <-> 1163 +1904 <-> 1220 +1905 <-> 1149, 1457 +1906 <-> 316, 1453, 1521 +1907 <-> 269, 348 +1908 <-> 189, 1908 +1909 <-> 541, 637 +1910 <-> 1178, 1425, 1619, 1747 +1911 <-> 391, 768 +1912 <-> 632, 1237, 1518 +1913 <-> 1336 +1914 <-> 228, 335 +1915 <-> 1000, 1241 +1916 <-> 923 +1917 <-> 1974 +1918 <-> 88, 1267 +1919 <-> 667, 820, 1023, 1220, 1466 +1920 <-> 287, 491, 1191, 1484 +1921 <-> 422, 1743 +1922 <-> 1353, 1500 +1923 <-> 114, 314, 1030, 1192, 1742 +1924 <-> 1057 +1925 <-> 1024 +1926 <-> 1848 +1927 <-> 1028 +1928 <-> 262, 1289 +1929 <-> 1929 +1930 <-> 791, 1986 +1931 <-> 291, 1975 +1932 <-> 626, 1570, 1601 +1933 <-> 48, 1092 +1934 <-> 1934 +1935 <-> 514, 1760 +1936 <-> 1355 +1937 <-> 1192, 1463 +1938 <-> 260, 916, 1310 +1939 <-> 640 +1940 <-> 356 +1941 <-> 682, 1815 +1942 <-> 1231, 1244 +1943 <-> 762, 1308, 1413, 1776 +1944 <-> 1944 +1945 <-> 548, 636 +1946 <-> 257, 1120 +1947 <-> 140, 1420 +1948 <-> 1842 +1949 <-> 1033, 1653 +1950 <-> 1741, 1788 +1951 <-> 321, 659 +1952 <-> 1471 +1953 <-> 52, 1497, 1796 +1954 <-> 136 +1955 <-> 266, 1315, 1413, 1955 +1956 <-> 1518, 1897 +1957 <-> 600 +1958 <-> 726, 1871 +1959 <-> 1149 +1960 <-> 175, 947, 1502, 1707 +1961 <-> 1708 +1962 <-> 477 +1963 <-> 1064 +1964 <-> 904, 1369 +1965 <-> 1502 +1966 <-> 427, 814, 1966 +1967 <-> 411, 1166, 1380 +1968 <-> 1315 +1969 <-> 859, 1448, 1753 +1970 <-> 283, 1265 +1971 <-> 279 +1972 <-> 1185, 1544 +1973 <-> 1631 +1974 <-> 123, 1106, 1917 +1975 <-> 1157, 1931 +1976 <-> 307, 1188 +1977 <-> 82, 285, 595, 1643 +1978 <-> 412 +1979 <-> 944, 1298 +1980 <-> 354, 1189 +1981 <-> 452, 590, 1103, 1115 +1982 <-> 1175, 1396, 1748 +1983 <-> 874, 892 +1984 <-> 936, 1213 +1985 <-> 56, 972, 1102, 1430, 1808 +1986 <-> 561, 1930 +1987 <-> 1468, 1552 +1988 <-> 415, 758 +1989 <-> 311, 1640 +1990 <-> 852, 1511 +1991 <-> 804 +1992 <-> 824 +1993 <-> 1229 +1994 <-> 485, 942, 1522 +1995 <-> 156, 1255 +1996 <-> 1697 +1997 <-> 1413 +1998 <-> 1191 +1999 <-> 807, 1190 diff --git a/day12/part1.js b/day12/part1.js new file mode 100644 index 0000000..24e6e50 --- /dev/null +++ b/day12/part1.js @@ -0,0 +1,11 @@ +var input = require("fs").readFileSync("input.txt").toString(); +var links = input.split("\n").filter((a)=>(a)).map((a)=>(a.split(" <-> ")[1].split(", ").map((b)=>(parseInt(b))))); +var attached = []; +function add(x){ + if(attached.indexOf(x) == -1){ + attached.push(x); + links[x].forEach((a)=>(add(a))); + } +} +add(0); +console.log(attached.length); diff --git a/day12/part2.js b/day12/part2.js new file mode 100644 index 0000000..ecc45c0 --- /dev/null +++ b/day12/part2.js @@ -0,0 +1,19 @@ +var input = require("fs").readFileSync("input.txt").toString(); +var links = input.split("\n").filter((a)=>(a)).map((a)=>(a.split(" <-> ")[1].split(", ").map((b)=>(parseInt(b))))); +var allvisited = []; +function getconnected(x, items){ + if(items.indexOf(x) == -1){ + items.push(x); + links[x].forEach((a)=>(getconnected(a, items))); + } + return items; +} +var i = 0; +while(allvisited.length != Object.keys(links).length){ + var start = Object.keys(links).map((a)=>(parseInt(a))).filter((a)=>(allvisited.indexOf(a) == -1))[0]; + console.log(i, start); + var newgroup = getconnected(start, []); + allvisited = allvisited.concat(newgroup); + i++ +} +console.log(i); diff --git a/day13/input.txt b/day13/input.txt new file mode 100644 index 0000000..8452502 --- /dev/null +++ b/day13/input.txt @@ -0,0 +1,43 @@ +0: 4 +1: 2 +2: 3 +4: 5 +6: 6 +8: 4 +10: 8 +12: 6 +14: 6 +16: 8 +18: 8 +20: 6 +22: 8 +24: 9 +26: 8 +28: 8 +30: 12 +32: 12 +34: 10 +36: 12 +38: 12 +40: 10 +42: 12 +44: 12 +46: 12 +48: 12 +50: 12 +52: 14 +54: 14 +56: 12 +58: 14 +60: 14 +62: 14 +64: 17 +66: 14 +70: 14 +72: 14 +74: 14 +76: 14 +78: 18 +82: 14 +88: 18 +90: 14 diff --git a/day13/part1.js b/day13/part1.js new file mode 100644 index 0000000..92af266 --- /dev/null +++ b/day13/part1.js @@ -0,0 +1,4 @@ +var input = require("fs").readFileSync("input.txt").toString(); +var depths = input.split("\n").filter((a)=>(a)).map((a)=>(a.split(": ").map((b)=>(parseInt(b))))).reduce((dep, a)=>{dep[a[0]] = a[1]; return dep;}, []); +var severity = depths.map((a, i)=>(a*i)).filter((a, i)=>((i % (a/i*2 - 2)) == 0)).reduce((a, b)=>(a+b)); +console.log(severity); diff --git a/day13/part2.js b/day13/part2.js new file mode 100644 index 0000000..6ffc1e0 --- /dev/null +++ b/day13/part2.js @@ -0,0 +1,8 @@ +var input = require("fs").readFileSync("input.txt").toString(); +var depths = input.split("\n").filter((a)=>(a)).map((a)=>(a.split(": ").map((b)=>(parseInt(b))))).reduce((dep, a)=>{dep[a[0]] = a[1]; return dep;}, []); +var caught = (del)=>(depths.filter((a, i)=>(((i+del) % (a*2 - 2)) == 0)).length > 0); +for(var i = 0; i < 10000000; i++){ + if(caught(i) == false){ + console.log(i); + } +} diff --git a/day14/part1.js b/day14/part1.js new file mode 100644 index 0000000..bf2254d --- /dev/null +++ b/day14/part1.js @@ -0,0 +1,32 @@ +function hash(input){ + var list = []; + for(var i = 0; i < 256; i++){ + list.push(i); + } + var pos = 0; + var lengths = input.split("").filter((a)=>(a)).map((a)=>(a.charCodeAt(0))).concat([17, 31, 73, 47, 23]); + var skip = 0; + for(var x = 0; x < 64; x++){ + for(var length of lengths){ + for(var i = 0; i < (length/2); i++){ + var a = list[(pos+i)%list.length]; + var b = list[(pos+length-1-i)%list.length]; + list[(pos+i)%list.length] = b; + list[(pos+length-1-i)%list.length] = a; + } + pos += length + skip; + pos = pos % list.length; + skip += 1; + } + } + + var hash = list.reduce((arr, a, i)=>{arr[Math.floor(i/16)] = arr[Math.floor(i/16)] ^ a; return arr;}, []); + return hash.map((a)=>(a.toString(2).split("").map((b)=>(parseInt(b))).reduce((a,b)=>(a+b)))).reduce((a, b)=>(a+b)); +} + +var total = 0; +for(var i = 0; i < 128; i++){ + total += hash("xlqgujun-" + i); +} + +console.log(total); diff --git a/day14/part2.js b/day14/part2.js new file mode 100644 index 0000000..cb3cd75 --- /dev/null +++ b/day14/part2.js @@ -0,0 +1,61 @@ +function hash(input){ + var list = []; + for(var i = 0; i < 256; i++){ + list.push(i); + } + var pos = 0; + var lengths = input.split("").filter((a)=>(a)).map((a)=>(a.charCodeAt(0))).concat([17, 31, 73, 47, 23]); + var skip = 0; + for(var x = 0; x < 64; x++){ + for(var length of lengths){ + for(var i = 0; i < (length/2); i++){ + var a = list[(pos+i)%list.length]; + var b = list[(pos+length-1-i)%list.length]; + list[(pos+i)%list.length] = b; + list[(pos+length-1-i)%list.length] = a; + } + pos += length + skip; + pos = pos % list.length; + skip += 1; + } + } + + var hash = list.reduce((arr, a, i)=>{arr[Math.floor(i/16)] = arr[Math.floor(i/16)] ^ a; return arr;}, []); + return hash.map((a)=>(("00000000" + a.toString(2)).slice(-8).split("").map((b)=>(parseInt(b))))).reduce((a, b)=>(a.concat(b))); +} + +var grid = []; +for(var i = 0; i < 128; i++){ + grid.push(hash("xlqgujun-" + i)); +} + +var seen = []; +function calc(x, y){ + return (x + (128 * y)); +} +function scanNeighbours(x, y){ + if(grid[x]){ + if(grid[x][y]){ + if(seen.indexOf(calc(x,y)) == -1){ + seen.push(calc(x,y)); + scanNeighbours(x+1,y); + scanNeighbours(x-1,y); + scanNeighbours(x,y+1); + scanNeighbours(x,y-1); + } + } + } +} + +var total = 0; +for(var x = 0; x < 128; x++){ + for(var y = 0; y < 128; y++){ + if(grid[x][y]){ + if(seen.indexOf(calc(x,y)) == -1){ + total++; + scanNeighbours(x,y); + } + } + } +} +console.log(total); diff --git a/day15/part1.js b/day15/part1.js new file mode 100644 index 0000000..1d1967d --- /dev/null +++ b/day15/part1.js @@ -0,0 +1,13 @@ +var a = 591; +var b = 393; +var total = 0; +for(var i = 0; i <= 40000000; i++){ + a = (a*16807)%2147483647; + b = (b*48271)%2147483647; + if(a.toString(2).slice(-16) == b.toString(2).slice(-16)){ + total++; + console.log(i); + console.log(a, b); + } +} +console.log(total); diff --git a/day15/part2.js b/day15/part2.js new file mode 100644 index 0000000..ebd1d28 --- /dev/null +++ b/day15/part2.js @@ -0,0 +1,19 @@ +var a = 591; +var b = 393; +var total = 0; +for(var i = 0; i <= 5000000; i++){ + do{ + a = (a*16807)%2147483647; + } + while(a%4 != 0) + do{ + b = (b*48271)%2147483647; + } + while(b%8 != 0) + if(a.toString(2).slice(-16) == b.toString(2).slice(-16)){ + total++; + console.log(i); + console.log(a, b); + } +} +console.log(total); diff --git a/day16/input.txt b/day16/input.txt new file mode 100644 index 0000000..c715a6b --- /dev/null +++ b/day16/input.txt @@ -0,0 +1 @@ +x3/11,s10,x0/10,s10,x9/2,pi/m,x6/0,pa/l,x11/5,pe/g,x2/4,s10,x6/9,s6,pc/o,x15/7,s7,x12/0,pb/l,x8/2,s8,x13/1,s14,x7/10,s5,x8/3,s3,x10/11,pi/m,x14/3,pj/k,x11/2,s6,pc/e,s9,x4/6,pd/h,x9/11,s3,pa/e,x6/7,pi/o,s12,x14/3,s5,x15/11,s7,pb/m,x12/5,s1,x15/10,s14,x14/1,pn/o,x10/4,s2,x8/1,ph/e,x4/14,pb/g,x13/6,pc/p,x8/12,pi/m,x11/7,s5,x6/13,po/l,x0/7,pg/a,s10,x15/10,s14,x6/11,s14,x14/0,s10,x4/1,pe/m,x11/10,pc/f,x8/13,s2,x1/10,s1,x13/15,pg/o,x9/1,pn/b,s10,x3/12,s10,x15/9,s15,x3/6,pp/k,x10/1,ph/o,x5/0,s6,x12/14,pn/d,x6/4,s7,x2/3,s8,x12/15,s9,x10/9,s1,x1/5,s7,x9/4,s7,x2/1,pm/o,x10/5,s2,x9/4,s12,x3/8,s3,x6/12,s2,x1/10,s4,x15/7,s3,x12/5,pf/l,x2/13,s5,po/g,x9/8,s3,x1/7,pk/i,x2/11,s7,x1/15,s1,x9/6,s14,x12/14,s14,x0/1,po/l,s14,x3/9,s1,x6/5,s12,x15/10,ph/k,x11/5,s1,x1/2,pn/f,s4,x11/14,pe/k,x10/13,pb/h,x2/11,pm/l,x15/0,s1,x8/2,pa/h,x4/3,pm/o,s11,x10/1,pj/g,x13/12,s4,x0/2,s10,x4/11,s9,x1/15,s1,x8/13,s7,x3/14,pp/k,x10/11,pi/e,x5/15,s2,x13/14,s5,x1/10,s13,x2/5,s5,x3/7,s14,ph/l,s5,x14/2,s4,x11/5,s7,x14/2,s10,x9/13,pm/i,x4/6,s2,x5/1,s4,x15/11,s1,x12/2,pf/g,x1/7,s15,x4/3,s4,x8/11,s1,x3/12,s1,x2/4,s4,x15/14,s12,x3/12,s10,x0/5,s11,pi/j,x4/11,pa/k,x0/5,s11,x15/2,ph/g,x7/4,s8,x0/15,pl/a,s15,x3/6,pk/j,x13/2,s1,pd/h,x8/3,s10,x10/15,s14,x6/14,s2,x2/3,pi/k,x1/14,s9,x11/10,s6,x5/4,s2,x1/13,pp/b,x4/5,pm/n,x14/9,ph/p,x5/10,s12,x14/3,pj/b,x9/6,s14,x4/5,pm/o,x14/13,pi/f,x7/8,s9,x6/4,pm/n,x0/1,s14,po/c,x15/8,pe/a,x4/6,s9,x1/13,s7,x4/5,s9,x11/8,s3,x3/14,s14,x6/2,pj/g,x15/13,s9,x6/1,s2,x0/13,s9,x8/1,s13,x5/15,pn/h,x0/10,pg/b,x13/9,s4,x8/14,pf/n,s1,x11/3,s6,x0/2,s7,x6/11,ph/l,x4/7,s6,x2/3,s12,x9/11,s4,x6/12,pi/g,s10,x1/14,s15,x7/10,s1,x13/12,po/c,x0/10,pk/g,x3/15,s15,x9/1,pe/d,x5/2,s10,x10/1,s5,x13/0,s2,x5/11,s8,x10/2,s6,x3/4,s8,x6/11,ph/f,x0/10,s8,x1/5,s3,pk/m,s12,x6/11,po/c,s11,x9/4,s14,pe/i,x15/10,s6,x7/3,po/j,x5/11,s2,x7/14,pe/a,x6/3,s13,x1/13,pc/n,x7/0,s2,x1/12,s12,x13/11,s11,x9/15,s6,x6/7,pe/o,x14/10,s5,x13/3,s12,x8/4,pa/k,x13/0,pc/f,x11/12,pp/o,x6/1,ph/d,x12/2,s1,x0/6,pp/n,x12/13,s2,x6/9,s5,pi/l,x14/8,s12,x9/13,s5,x3/5,s4,x6/10,s8,x0/13,pe/d,x15/5,s5,x0/11,pg/i,x15/2,s11,x1/13,s4,x12/14,s6,pm/k,s15,x4/1,ph/f,x14/11,s4,x10/1,po/a,x9/13,s15,x10/8,s9,x0/3,s10,x14/15,s2,x11/1,pg/e,x4/5,pa/h,x2/6,pj/c,x9/0,pi/e,x8/5,s8,pa/o,x4/12,s14,x15/10,s12,pm/h,s8,x2/0,s1,x11/12,s14,x2/13,pg/a,x4/15,s12,x6/12,pl/c,x4/2,s5,x6/15,s11,x9/14,s9,pe/o,x2/10,s4,x13/12,s5,ph/d,x9/15,pf/p,x1/10,pi/l,s4,x13/5,pa/e,s9,x12/6,s5,x7/3,pn/g,x11/6,pd/e,x0/1,pn/k,x3/8,s9,x15/12,s14,x7/4,s12,x13/10,pb/a,x12/11,s6,x7/5,pe/p,x10/13,s8,x14/7,s10,x1/9,s15,x6/3,s9,pg/b,x15/7,s11,x9/14,s5,x13/8,po/c,x6/14,pl/k,s5,x9/7,pi/b,x10/4,pf/j,x0/12,s5,x5/4,s7,x9/6,pc/i,x12/2,po/b,x14/0,s9,x13/4,s3,x7/10,pg/i,x6/4,s5,x14/1,s5,x11/15,pc/f,x2/5,s3,x13/0,s11,x15/5,s2,x14/3,s7,x0/9,s9,po/m,x12/15,s5,x8/11,s3,x10/9,s11,x13/0,pi/l,x3/7,pm/k,x6/8,s3,x11/15,pg/c,x7/1,s10,x5/10,pb/l,x7/15,s4,x14/13,s3,x7/5,s15,x0/13,pp/k,x15/1,po/d,s7,x4/0,pb/n,x12/10,pi/a,x3/0,s11,x6/5,pk/o,x9/2,s3,x15/11,pj/b,x13/1,pa/d,x5/4,pn/h,x0/13,pj/d,x5/3,pg/i,s3,x6/9,s1,x1/8,pm/n,x4/3,s1,x7/10,pa/g,x6/12,pb/m,x13/2,s13,x14/7,s14,x2/12,s6,x11/13,s9,x12/0,s11,x13/14,pd/n,s13,x4/15,s9,x8/0,s10,x15/3,s12,pm/h,x6/10,pp/b,x3/9,s5,x14/2,pn/k,x13/3,s5,x0/5,s9,x9/4,s11,x11/3,s13,x8/12,s13,x2/11,pb/o,x8/1,pp/f,x0/7,s6,pl/j,x6/2,pa/b,x8/5,s14,x0/7,pl/j,x11/2,s11,x15/14,s7,x7/6,pe/c,s10,x12/10,pa/h,x2/6,s5,x1/3,s11,x0/13,s15,x1/2,pb/o,x6/3,pk/d,x13/10,s1,x4/1,pe/o,x14/9,ph/l,x15/13,s3,x11/4,s9,x10/8,pn/g,x11/13,s10,x4/1,pk/b,x2/8,pj/n,x7/6,s5,x13/11,s15,x9/14,s1,x3/11,ph/i,x14/13,po/a,x12/8,ph/m,x11/2,s13,x7/10,pe/k,x12/15,s11,x5/8,pc/d,x9/2,s11,x11/12,po/b,x9/0,s2,x2/11,s13,x1/5,s13,x15/3,s7,x11/7,ph/a,x8/5,pg/b,s4,x3/4,s11,x0/13,s8,x15/1,s15,x7/9,s3,x11/12,pi/m,x15/13,pc/p,s12,x8/3,s2,x15/0,pb/n,x5/1,s14,x9/2,s2,x14/11,pi/o,x2/9,s4,x5/3,pj/l,x4/15,s13,x11/7,s12,x5/6,s7,x1/7,s15,x3/14,po/k,x2/6,s12,pa/p,x3/10,s8,x13/6,pn/c,x14/15,s14,x6/12,s10,pk/h,x5/9,s15,x15/11,s6,x12/0,s6,pp/a,x5/14,s1,x13/8,s2,x2/11,pd/j,x7/10,s7,pc/f,x8/4,pn/b,x1/11,pi/p,x0/14,s5,x3/12,s5,x10/2,s10,x4/1,s6,x6/10,s14,x0/11,s13,x14/7,pj/h,x11/0,s7,x2/7,pp/a,x15/9,s10,x0/2,pf/c,x4/7,ph/a,s9,x0/6,s8,x1/5,pl/e,x14/3,s3,x11/15,s6,x2/1,pm/n,x0/3,pd/k,x13/6,pa/j,s5,x2/10,pk/c,x3/14,pb/d,s13,x8/4,pf/e,x9/1,pb/k,x5/11,s11,x3/4,s14,x2/15,pl/e,x10/4,pp/i,x15/12,s4,x10/11,s8,x6/2,s3,x15/3,pe/f,x14/12,s15,x11/0,s6,x14/8,pk/i,x4/9,s6,x8/12,s15,pj/d,x2/11,s11,x9/1,s8,x12/6,s2,x9/2,s1,x3/13,s2,x1/4,s4,pk/c,s4,x3/10,s13,x14/12,pb/p,x10/2,pn/e,x15/12,pl/j,x14/13,s1,x4/7,s4,x6/2,pd/i,x9/14,pk/a,x12/5,pb/p,x3/14,s10,x4/5,pc/n,x14/12,s12,x9/0,pb/e,x15/4,pm/h,s10,x2/7,pl/k,x0/14,pj/h,x4/15,s14,x0/14,s14,x6/4,pf/o,x9/14,s2,x6/8,s13,pg/p,x10/14,s5,x7/11,pl/i,x4/3,pa/o,x12/8,pc/e,s15,x1/10,s7,x11/3,s6,x12/13,pa/g,s6,x6/1,s4,x0/15,s3,x4/7,pd/f,x10/2,pp/o,x14/12,s3,x10/2,s8,x5/8,pg/e,x11/9,s12,x6/0,s2,x12/2,s13,x14/3,s2,x9/0,s11,x4/5,pl/a,x13/9,s15,x3/5,pp/m,x11/10,s8,x9/0,pe/k,x13/2,s6,x15/3,pp/f,x10/1,s13,x7/9,po/h,x4/1,s2,x8/13,pf/e,x4/1,s15,x5/3,s7,x13/14,s12,x1/15,s11,x13/7,s8,x11/4,s3,pn/p,x5/15,s13,x1/8,s6,x6/15,s14,x2/0,s7,x9/12,pf/a,x7/3,pm/n,x2/5,s9,x9/13,s5,x10/15,pi/d,x4/5,pp/k,x2/3,s12,x7/10,pj/c,x5/0,s7,pm/a,x9/8,pl/e,x0/4,s5,x11/12,pj/g,x3/7,s4,x13/5,pb/c,x10/15,pm/j,x8/3,s3,x6/13,s14,x7/12,s11,x1/15,s5,x3/5,pp/k,x12/14,s11,x10/5,pg/i,x3/6,s10,x2/7,s13,x15/0,s4,x5/14,s9,x15/0,pf/n,x4/11,pa/p,x8/14,s9,x7/2,pi/e,x9/11,pa/d,x3/14,s12,ph/e,s2,x0/2,pd/j,x14/13,pk/n,s1,ph/b,x3/0,s12,x8/15,pp/g,x6/3,s14,x0/12,s14,x4/13,s15,x6/9,s13,x12/3,s4,x9/4,s5,x8/6,s14,x11/1,s10,x3/0,s4,x9/13,s8,pi/a,x1/3,s13,x7/6,s6,x0/14,pl/o,x15/6,pe/i,x0/3,s5,x15/13,s1,x12/1,s3,pg/m,x3/14,s12,x2/4,s3,x1/8,pi/k,s1,x9/2,s1,x8/6,pj/h,x3/12,pc/i,x9/10,s9,pn/m,x12/0,pd/g,x8/9,ph/f,x12/6,pd/a,x11/15,pe/o,s9,x12/5,pa/d,x9/7,s9,x1/12,s8,x9/15,s11,x8/2,po/e,x14/13,pn/l,x1/9,pa/c,x5/6,s6,x13/9,s7,x15/14,pd/m,x5/9,s7,x14/1,s14,x12/8,s13,x4/11,s9,x13/12,pb/p,x6/0,s3,x3/5,s7,x14/4,pf/n,x9/11,pi/b,x0/3,po/c,s5,x11/6,s15,x12/14,s13,x11/10,pn/d,x1/13,pe/f,s2,x11/3,s8,x5/2,pd/m,x9/12,pk/c,x10/15,s8,pb/m,x13/7,pe/h,x11/9,pc/g,s15,x3/2,s4,x1/12,pi/p,x8/3,s8,x13/0,s14,x15/12,pl/d,x10/14,s15,pk/b,x4/5,pi/p,x0/10,s2,x15/1,s11,x12/0,s6,ph/d,s14,x4/9,pc/l,s11,x10/3,pa/i,x11/15,pm/h,x7/10,pl/i,x9/12,s7,x0/8,s4,pn/c,x5/9,s1,x10/2,s6,x8/9,pg/i,x6/14,pc/j,x0/8,ph/b,x12/9,po/n,x11/0,pj/d,x13/12,s1,x0/7,pm/e,x15/6,s14,x8/11,pn/a,x1/12,pj/e,x10/15,pi/c,x6/3,pn/a,x9/2,pk/l,x15/1,pm/c,x5/10,s2,x8/0,s11,x10/14,pn/a,x1/11,s1,x8/7,pj/o,x0/5,s12,pc/f,x3/10,ph/o,x7/11,s14,x3/5,pm/l,x2/15,s13,x4/7,po/p,x12/10,s3,x15/1,pb/f,x2/9,pa/c,x3/15,s13,ph/m,x10/5,s11,x3/6,s9,x9/7,s2,x4/13,s5,pj/e,x10/7,ph/m,x14/12,po/n,x9/15,pg/m,x13/11,po/c,x7/9,s3,x15/3,s5,x10/0,s11,x12/5,s4,x9/6,s4,x8/14,s5,pl/d,x13/12,pk/a,x7/9,s10,x8/0,s13,x3/1,pc/e,s15,x7/11,s10,x0/9,pa/o,x13/12,s1,x10/14,pb/n,x2/12,s7,x5/9,s3,x1/4,s6,x11/14,s13,x12/7,s10,x0/9,po/p,x13/5,s9,x1/3,s8,pb/l,x13/6,s12,x3/7,s11,x5/9,s15,x6/12,pn/g,x15/11,po/h,x1/2,s6,x11/3,pg/j,x8/6,po/d,x4/5,s9,x8/0,s2,x6/1,s4,pb/j,x14/11,s12,x6/7,s7,x8/15,s4,x14/5,s11,x9/6,s12,x3/5,s8,x11/13,s11,x14/7,s5,x4/1,s14,x5/9,s9,x2/8,pk/p,x9/14,pa/e,x7/6,s2,x4/3,s1,x1/2,pj/b,x11/4,s15,x1/12,s10,x0/13,s4,x6/10,pg/l,x3/15,ph/a,x8/10,s8,x9/7,pm/i,s1,x11/4,s14,x7/10,s7,x4/9,ph/j,s11,x2/5,pp/e,x0/4,pc/i,s1,x15/13,s15,pa/n,s10,x12/10,pm/j,x11/2,s1,x9/13,s8,x1/12,s13,x10/7,pe/g,x3/4,s14,x7/11,s7,x4/6,pn/p,x14/8,s9,x3/4,s13,x0/14,s13,x4/9,pc/o,x6/2,s9,x5/11,pn/f,x0/12,s2,x2/9,ph/g,s6,x7/11,s11,x0/15,s9,x9/5,s1,x14/12,s3,x0/1,s1,pa/f,x6/13,pi/o,x0/11,pb/a,x13/14,s15,x1/4,s11,x0/13,s15,x2/9,s7,x5/14,s1,x9/15,pm/o,x12/7,s12,x0/14,pf/l,x2/8,pn/e,x7/15,pm/p,s11,x2/13,s3,x4/7,s11,x15/1,pf/o,x13/7,s1,x10/12,s12,x5/7,s5,x11/3,s7,x5/6,s9,x4/11,s14,x9/13,pj/d,s4,x12/11,s15,x4/8,pg/i,x12/11,s3,x2/13,pd/c,x0/9,s3,x10/8,s13,x14/1,s7,x12/0,s13,x1/14,s3,x6/4,pl/f,x1/9,po/d,x11/14,s5,x6/5,s5,x9/1,s9,pk/f,x14/13,s1,pe/n,x5/3,pg/l,x4/9,s6,x13/8,s15,pp/n,x14/9,s12,x10/0,pa/m,x1/9,s14,x0/3,pj/o,x4/11,pl/h,x14/2,pd/m,x8/5,pb/e,x14/4,s8,x7/6,s8,x15/0,s4,x13/1,pk/l,x14/6,s15,x5/0,pg/n,x2/10,pp/l,x1/0,s13,x3/7,pf/b,x9/14,s5,x5/6,pl/n,x3/4,s6,x10/15,po/a,x5/11,s5,x4/6,s13,x9/7,pn/e,x15/12,s13,x8/2,s9,pa/d,s8,x1/14,pf/k,x2/5,pg/p,x10/9,pe/i,x15/8,pk/o,x11/3,s3,x7/6,pb/l,x14/0,s1,x2/15,s6,x9/8,s2,x0/6,s12,x11/4,s7,pj/n,x14/7,s2,x12/13,s2,x14/7,s2,x8/3,s2,x10/14,pb/f,x1/12,pp/n,x4/13,s8,x0/6,pi/a,s5,x11/8,s4,po/d,x6/15,pk/i,x2/13,pd/b,x8/9,s7,x13/1,pa/p,x7/5,s5,x9/4,s5,x10/12,s6,x3/6,pi/o,s1,x14/7,s2,x2/3,ph/j,x13/4,s3,x14/5,pn/i,x2/10,pc/p,x3/15,s9,x9/8,s8,x12/10,s10,x0/2,pm/e,x11/6,pd/p,x14/12,s15,x4/9,s9,x8/12,ph/b,x10/14,pa/c,x12/1,s15,x8/5,ph/l,x11/12,s12,x4/1,s2,x6/15,pf/c,x9/0,s7,x8/10,s3,x14/13,s11,x9/0,s12,x15/5,s8,x14/4,pb/k,x6/15,pj/e,x0/8,s8,x9/15,pp/f,x2/14,pi/g,s4,pl/m,x0/15,s12,x7/13,s11,x12/14,s8,x9/4,pn/b,x2/13,pg/p,x9/10,s6,pk/i,x7/8,s2,x2/15,s9,x10/0,pg/n,x4/11,s1,x10/5,s13,pf/j,x15/8,pc/e,x5/4,s3,x13/15,s3,x3/4,s1,x0/10,pm/i,x5/11,pd/f,x14/1,s2,ph/a,x13/8,s9,x1/0,s4,x5/11,s8,x2/1,s15,x5/7,pl/k,x13/10,pe/n,x14/15,s1,x4/7,po/c,x2/6,pp/h,x0/4,s6,x1/2,s8,x15/13,s9,x9/11,s4,x2/10,s3,x6/3,s5,x2/11,pe/o,x4/15,s14,x14/3,s10,x11/0,s8,x13/15,s5,x0/3,pm/i,s15,x8/4,s13,x5/10,pc/o,x2/4,pj/f,x8/13,s7,x3/5,pi/l,s5,x10/4,po/g,x14/12,pp/i,x7/0,s15,x1/12,pg/j,x15/6,s4,x13/2,s4,x6/5,s5,x10/14,s7,x9/5,pe/p,x0/6,s7,x13/5,pf/k,s2,x6/1,pl/g,x11/13,s1,x15/3,pe/d,x4/9,s12,x2/15,pa/m,x10/0,s14,x2/6,s15,x1/5,s2,pi/p,x11/15,pm/b,x2/9,s3,x12/3,pj/e,x13/5,po/b,x14/3,s6,x12/4,s13,x8/11,s5,x3/9,s15,x2/10,s10,x6/13,s4,x9/8,pi/k,x15/3,s9,x2/13,s7,x6/14,pf/n,x3/10,pd/l,x13/0,s2,x12/10,pk/n,x5/11,s11,x9/10,s10,x7/0,s4,x2/5,pc/i,x7/11,s9,x5/1,s14,x9/2,s12,x6/14,pe/o,x9/5,s4,x12/2,pj/g,s6,x13/15,pd/i,x1/9,pg/n,x15/12,s9,x10/6,s7,x7/1,s1,x15/14,pl/o,x1/4,s2,x6/13,pa/j,x2/10,pb/e,x4/13,s15,pn/p,x3/12,s12,x13/2,pl/e,x9/0,pc/a,s12,x13/5,s4,x3/9,s6,x8/15,pd/b,s15,x9/0,pm/k,x3/4,pd/j,x9/10,s3,x8/13,s3,pc/g,x6/12,s7,x0/5,s3,x8/11,pk/p,x4/1,s11,x12/5,s10,pi/o,x0/7,pl/f,x14/5,s15,x2/15,s3,x7/6,pa/p,x4/15,pi/m,x6/10,s3,x12/14,s14,x10/13,s11,pb/a,x4/6,pk/h,x13/15,s3,x1/11,pe/p,x13/4,pf/h,x1/3,pn/c,x13/11,s11,x10/12,pm/g,x7/11,s9,x14/3,s3,x4/1,s13,x8/0,s7,x9/7,s7,x8/0,pi/o,x13/6,s9,x8/2,s8,x5/14,s15,x3/10,s5,x15/9,s3,x10/14,pn/b,x11/1,s3,x5/8,pa/i,s4,x6/2,pe/m,x0/13,s8,x2/12,s14,x9/13,pg/c,x1/11,s11,x13/4,s11,x7/9,s12,x1/5,s13,x15/8,pe/b,x12/3,pa/n,x7/4,pg/f,x15/11,pk/p,x2/14,po/f,x10/1,s10,x2/11,s8,pi/m,x5/7,ph/d,s11,x11/9,s6,pn/m,x10/14,s10,x5/4,s13,x14/0,pb/l,x10/6,s4,x14/3,pn/k,x0/2,s2,x11/7,ph/j,x12/4,pp/a,x14/8,s9,x6/9,s3,x4/11,s4,x3/5,s4,x8/9,s7,x4/10,s1,ph/i,x6/3,po/e,x8/0,pj/h,x14/9,pi/k,x13/4,po/b,x0/12,pi/j,x8/2,s7,x0/3,pg/m,x5/13,pj/n,x1/9,pc/k,x4/6,pe/g,x0/10,s15,x2/1,s13,pp/k,s4,x7/8,s10,x15/13,s1,x11/4,s9,pe/a,x8/6,s9,x4/10,s12,x7/9,s1,x10/1,ph/p,x13/3,pa/b,x6/8,s10,x1/2,pd/l,x3/6,s14,x2/8,s10,x12/5,pi/f,x15/4,s14,x14/5,s1,x7/10,s4,x9/14,s12,x13/7,pc/a,x5/9,s6,x7/10,pn/g,x8/14,pi/m,x7/2,s3,x12/0,s2,x14/3,s6,x4/11,pn/b,x7/5,pl/i,s3,x0/12,s15,x10/4,pe/d,x14/1,pl/i,x0/3,s12,pm/k,x5/12,pf/p,x6/0,pc/e,x10/8,pl/j,x11/0,s9,x9/4,ph/i,x0/10,pl/b,x5/15,pj/e,x3/8,pf/p,x2/5,s4,x3/7,s13,x5/6,pd/b,x3/4,s12,x8/5,s1,x14/0,s14,x7/4,s4,po/g,x11/5,pa/b,x0/7,s1,x11/4,s10,x5/12,s12,pl/j,x1/11,s1,pi/m,x8/0,pn/l,x13/14,pf/e,x7/5,pd/h,x9/11,s3,x1/7,pf/m,x6/14,s14,x9/5,pb/c,s6,x12/1,s15,pp/j,s14,x13/3,pn/i,x9/8,s11,x3/6,s15,x12/11,pd/f,x8/6,s10,x14/0,s8,x1/5,pc/k,x12/7,s14,x14/5,pe/f,x1/11,s3,x14/13,pa/n,s2,pl/m,x3/9,s8,x10/0,s5,x15/7,pe/p,x4/9,pb/l,x10/8,s10,x0/5,s1,x12/10,s2,x7/15,s6,x11/14,s15,pf/c,x15/3,pk/o,x11/10,pj/b,x15/7,s15,x9/0,s14,x3/6,pe/n,x15/4,pm/f,s14,x10/13,s14,x8/7,s1,x0/6,s7,x2/14,s11,x12/6,pi/n,x2/9,s13,x13/10,pj/p,x3/8,s2,x11/10,s9,pm/b,x5/3,pe/n,x4/14,s4,x12/13,s8,x4/3,s11,x0/11,s2,pb/o,x14/15,pj/l,x12/11,s11,x2/5,s11,x4/6,s4,x13/14,pi/a,x12/7,pc/p,s1,x6/11,s14,x9/10,pd/g,x0/1,s3,x11/2,s5,x8/0,s4,x13/9,s4,x10/5,s15,x3/12,s8,x4/8,pc/p,x0/9,s5,x5/6,pa/n,x12/14,pf/p,s3,x7/3,pd/a,x15/8,ph/o,x0/10,s15,x5/6,pp/d,x11/3,s12,x14/9,s13,x1/0,po/m,x10/12,s4,x2/11,s4,x6/14,pa/k,x10/12,s15,x9/15,po/i,x13/11,s13,x3/14,s1,x0/15,s7,x6/10,s3,x5/2,s10,x8/6,pm/c,x12/4,s11,x6/11,pf/h,x8/0,s8,x4/3,s5,x1/6,s3,x10/8,s2,x6/3,s11,x5/1,s6,pn/a,x4/15,ph/i,x0/3,s2,x2/7,s2,pk/m,x0/10,s8,x14/11,s14,x8/2,s9,x1/12,s14,x8/11,s10,x15/13,s15,x14/2,pj/a,x9/5,s13,x11/1,pg/n,x7/12,s5,x14/11,pe/o,x12/5,pg/n,x15/10,s9,x7/13,s13,x3/10,s14,x4/5,pk/a,x10/8,pe/p,x12/6,s4,x2/11,s15,x7/0,s7,x4/13,pn/f,x11/12,pe/m,x7/9,s1,x6/4,s3,x1/9,pb/a,x2/0,s6,x6/7,s6,x15/4,pg/i,x5/3,s9,x4/12,pm/d,x6/1,s15,x8/10,s7,x5/6,pf/o,x3/2,s2,x12/7,s2,x15/0,pi/k,x12/6,s10,x7/8,s9,x4/0,pm/l,s13,x8/13,s9,x9/0,s3,x8/3,s12,x5/10,pf/k,s1,x4/1,s13,x8/6,s11,x11/13,pa/g,s15,x12/5,s4,x6/15,s13,x9/14,s15,x6/8,s2,x0/5,s13,pd/f,x11/10,s9,pn/j,x7/15,s15,pd/k,x4/12,s12,x5/2,po/j,x15/14,pl/n,s12,x3/4,s4,x12/8,po/d,x10/3,s6,pj/a,x4/15,pn/l,x3/6,pj/d,x10/14,s10,pi/c,x6/8,pb/j,x0/3,s8,x4/14,s6,x7/11,s8,x6/4,s2,x11/13,s10,x14/5,s7,x7/2,s2,x1/5,pk/l,x14/8,po/i,x6/7,ph/j,x5/13,s14,x6/10,pm/c,x4/3,s1,x7/5,pe/i,x8/15,s1,x12/14,s13,x3/6,s3,pf/h,x5/14,s5,x3/7,pl/p,s10,pm/a,x15/14,s11,x0/3,s9,x6/15,s15,x11/5,pf/l,x13/4,pj/i,x8/11,s2,x7/6,pn/o,x15/9,s11,pp/d,x0/7,s8,x3/8,pi/f,x11/10,s7,pg/a,s10,x6/13,s3,x5/14,pk/f,x1/9,po/i,x8/0,pc/p,x7/11,s2,pf/h,x0/15,s13,x3/2,pi/k,x7/5,pe/d,x4/8,pp/h,x15/1,pg/j,s9,pe/m,x6/0,pa/h,x2/3,pl/m,x8/12,s12,x11/1,ph/c,x14/13,s15,x4/15,pm/n,x3/10,s13,x9/6,s10,x1/12,s3,x5/7,s8,pl/k,x12/10,pc/a,x0/4,s3,x8/10,s9,x12/1,pb/g,x13/5,pn/f,x4/7,s7,x6/1,s11,pl/p,x2/8,s9,x10/5,pc/k,x6/12,pf/b,x2/15,pd/n,x9/12,s9,x14/3,s2,x9/0,pf/l,x5/1,s2,x10/8,pd/m,x0/9,pg/p,x8/4,s14,x2/9,pi/c,x6/11,pe/p,x14/8,pb/a,x1/12,ph/g,s1,x6/7,s12,pb/c,x5/2,s10,x10/12,s11,x13/14,pd/n,x12/5,s8,pj/k,x13/2,pd/p,x5/9,pc/i,x2/15,s6,x14/1,ph/o,x2/7,s15,x12/0,pd/p,x3/9,pc/a,s7,x2/5,pg/o,s14,x1/10,pa/d,x12/9,s1,x1/4,s5,x10/14,s11,x9/15,ph/g,x2/1,s11,x13/10,s14,x15/7,s5,pf/d,x2/8,ph/c,x11/13,s4,x10/0,s8,x11/13,s5,x5/6,pe/j,x13/9,s2,x3/0,s8,x15/4,s2,x9/14,pn/l,x1/5,s10,x11/15,s2,x5/6,pp/h,x10/9,pi/j,x1/4,s1,x9/11,s4,pa/g,x12/1,pf/k,x4/14,ph/c,x6/10,s7,x15/7,po/p,x5/4,s15,x9/1,s15,x6/13,s1,x2/11,pn/e,x5/8,s3,x12/11,pp/o,s6,x5/8,pa/n,x10/14,s5,x15/2,s14,x12/1,s5,x2/0,po/l,x1/9,pf/a,x14/6,s13,x7/12,s3,x9/10,s15,pj/h,x1/0,pe/l,s6,x6/4,s7,x12/9,pn/a,x0/1,s3,x8/14,s2,x5/15,po/k,x10/0,s3,x9/5,s15,x13/2,s3,x5/1,s9,pi/c,x9/12,s7,pb/e,x10/15,s6,x1/11,s2,x7/14,pp/i,x0/11,pj/o,x14/2,pm/h,x12/8,pe/l,x11/14,s13,x5/10,s11,pd/h,s3,x0/15,pk/g,x10/6,pb/n,x0/7,s6,x4/6,s10,x0/3,pk/a,x13/5,s8,x9/2,pn/i,s10,x13/10,pk/m,x11/12,s4,x6/10,pd/o,s3,x15/5,s4,x10/8,s8,x13/3,s5,x11/4,s11,x15/14,s12,x7/13,s7,x14/9,pj/n,s10,x4/3,pi/d,x14/5,pa/n,s6,x4/8,pk/j,x1/15,pf/b,x8/3,s12,x9/15,s8,x4/14,s8,x10/7,s15,pg/c,x12/0,s11,x7/8,s14,x5/13,s6,x6/2,pj/h,x3/15,s1,x2/11,pm/p,x5/7,s13,ph/c,s5,x6/13,pf/e,x3/9,pj/p,s2,x6/2,s9,x3/1,s3,x14/10,s1,x13/2,pg/a,x4/15,pp/h,x0/3,s9,x5/2,pa/f,x10/6,s7,x0/12,pm/o,x6/14,s4,x5/10,pj/d,x8/1,pc/k,x4/13,s6,x11/0,s5,x13/4,s12,x11/7,s10,x4/8,s14,x3/12,pm/n,x10/14,pd/b,x7/9,s6,x4/8,s14,x9/11,s5,x10/8,s11,x11/13,pn/k,x14/4,s8,x2/0,s10,x15/12,s9,x0/3,po/d,x6/1,s8,x11/10,s9,x2/3,s15,x14/6,s14,x15/8,s7,x11/2,pb/c,x10/9,s5,x1/3,ph/f,x9/11,s8,x3/13,s9,x0/1,s9,x2/7,pm/k,x4/10,s6,x6/11,pn/p,s11,x13/8,s2,x11/0,pm/j,s13,x3/9,s14,x13/11,s6,x0/14,s10,x2/4,po/a,x3/15,s10,pg/n,x1/9,s8,x13/14,s8,x8/5,ph/m,x7/3,s2,x13/14,s7,x5/7,s1,x1/0,s13,x8/7,s5,x3/6,pa/j,x13/12,pp/i,x3/4,s10,x8/9,pa/j,x3/10,pc/b,x6/11,s1,x8/4,pd/e,x7/6,s14,x12/4,s6,pm/h,x9/0,pj/o,x10/15,s4,x9/13,s4,pb/e,x4/6,s1,x8/1,s2,x15/11,s8,po/f,x10/1,s10,x6/8,pk/n,x4/3,s10,x8/1,pi/b,x10/5,pg/p,x6/4,pc/i,x3/7,s10,pn/l,s9,x4/5,s14,x0/13,pi/h,x3/8,pm/a,x2/6,pb/f,x10/4,s3,pd/a,x11/15,s15,pk/l,x8/5,s5,x12/2,s14,x8/11,pi/c,x9/5,s8,x4/2,s9,x12/3,pa/o,x0/1,ph/m,x14/10,s14,x2/1,pa/c,x13/10,s12,x12/4,s5,x3/14,ph/e,x1/15,po/b,x3/6,s14,x2/14,s10,x0/9,pe/k,s4,x15/13,s5,x2/3,pg/c,x0/11,s5,x10/7,po/k,x14/4,s9,x3/11,ph/c,x5/15,pg/n,x11/6,s11,x1/0,s15,x3/11,pd/j,x4/7,s9,pk/c,x15/9,pg/l,x5/8,pk/o,x9/15,pn/c,x5/6,pi/g,x11/4,s9,x1/12,s3,x14/7,pm/a,x15/11,s8,x3/10,s6,x0/7,s5,x11/8,pp/j,x5/4,s13,x11/0,s6,x10/3,s6,x11/5,s2,x0/10,pi/k,s7,x14/12,pj/p,s9,x1/6,s6,x11/10,s15,x0/2,s14,x13/6,s13,x4/11,s4,x10/1,s3,x2/3,pi/e,x0/14,s2,x9/10,pb/k,x15/2,s1,pi/o,x1/4,s5,x2/0,s2,x11/9,ph/m,x6/12,pa/l,x10/5,s4,x1/7,pd/b,x10/9,po/e,x15/12,pi/c,x1/3,po/a,x5/11,s15,pd/c,x2/1,pm/p,s1,x9/12,s8,pk/b,s2,pc/g,x7/2,s1,x1/8,s14,x7/2,s14,x8/4,s4,x10/5,pi/h,x0/6,pe/o,s1,x5/10,s5,x9/4,pd/f,x12/8,s12,x14/10,s15,x12/8,s9,x2/7,s5,x13/6,s2,x4/15,s1,x10/3,pi/o,x13/0,s12,x4/11,s1,pg/l,x1/8,pj/d,x4/0,s1,x11/5,pg/n,x9/12,s8,x6/10,pc/j,x1/7,s8,x11/6,pd/k,x7/2,po/m,x9/15,pi/c,x14/11,s6,x0/12,pj/f,x10/14,pb/a,s7,x2/3,po/p,x11/7,s5,ph/k,s10,x13/8,s10,x4/3,s3,x11/5,po/f,x7/9,pn/i,x2/5,s14,x12/11,s7,x13/8,s8,x12/1,ph/k,x9/13,s11,x14/3,s5,pj/f,s12,x0/9,s7,x2/11,s1,x5/3,s3,x0/11,pe/g,x8/1,s10,x0/12,s11,x1/11,s2,x0/13,pi/a,x3/4,pl/j,x14/11,s4,x13/7,s1,x1/2,pm/n,s9,x4/14,s4,x6/11,s1,x8/14,s14,x4/15,pc/b,x0/1,s15,x5/13,s7,x6/15,s7,x9/8,s4,x6/13,s12,x9/0,po/h,s12,x14/5,s1,x13/3,s15,x12/11,s4,x3/6,pf/l,x9/8,pp/g,x11/14,ph/m,x5/12,s11,x14/1,s2,x13/3,s9,x9/8,pc/j,x11/3,s4,x12/15,ph/l,x7/6,s14,x3/9,pf/i,s8,x0/8,s1,x14/3,s1,pe/l,s4,x15/10,s7,x14/9,ph/d,x0/12,s3,x8/2,po/m,x3/13,s11,x0/15,s12,x11/10,pd/c,x7/5,pb/l,x15/6,s7,pm/j,x10/1,pn/a,x15/14,s14,x5/8,s13,x6/9,pf/i,s13,x3/15,s3,x12/11,pj/n,x9/4,s7,x0/12,s13,x15/6,pm/b,s10,x13/4,s11,x6/1,pc/l,x9/15,pe/g,x7/14,po/p,x11/3,pj/b,x9/8,pi/m,x12/2,s9,x11/15,s7,x12/14,s11,x6/8,s4,x7/15,s5,x4/13,pg/k,s2,x14/1,pc/f,x12/15,po/b,s1,x5/14,pg/a,x10/15,pm/e,x6/12,pi/d,x4/11,pm/c,x5/0,s8,x4/14,s4,x7/13,s13,x12/3,s2,x11/6,pe/a,x3/10,s13,x13/4,s1,x14/6,s15,x15/7,s15,x9/13,pm/f,x12/2,pl/b,x3/15,s11,pp/i,x13/5,pn/b,x8/9,ph/d,x4/15,s2,x3/6,s5,x9/7,s7,x14/5,s1,x3/0,pc/k,x14/8,s5,x0/4,s2,x15/9,pn/e,s9,x10/0,ph/o,x7/4,s4,x11/3,pn/a,x1/8,pl/h,x3/11,s15,x9/1,s9,x4/11,s15,x8/6,s3,x13/12,pj/n,x10/11,s2,x15/7,pe/o,x0/10,pc/i,x11/12,s6,x10/1,s1,x13/5,s5,x10/2,s3,x11/12,s15,x4/8,s2,x0/10,s13,x2/9,s1,x6/11,po/n,x0/9,s4,x2/10,s11,x4/8,pf/k,x13/2,s12,x8/1,pn/d,x15/14,pk/h,x12/0,pl/i,x5/6,s13,x9/3,s10,pf/e,x5/8,s9,x4/11,s7,x14/10,s10,x2/13,s11,x0/1,pm/j,x9/10,s1,x8/14,s9,x15/9,pa/c,x6/1,pe/n,x8/0,s2,x12/3,pf/h,x9/1,s9,x11/4,pa/e,x0/12,s7,x10/11,s3,x5/6,s12,x4/10,pd/b,x8/14,pp/f,x0/13,pc/o,x7/14,s7,x2/10,s3,x11/6,s2,x7/15,s15,x2/13,pj/b,x8/5,s8,x0/10,s12,x2/3,s9,x12/15,pn/i,x1/4,pk/o,x6/7,s12,x12/8,pg/d,x5/6,s15,x4/1,pj/b,s15,x8/14,s3,x1/13,s6,x5/11,s15,x13/12,pd/l,x4/14,ph/f,x3/9,s10,x12/14,pb/c,x10/4,s12,x0/2,s12,x4/5,s7,x10/15,s2,x12/0,s8,x3/2,s3,x4/8,s1,x12/5,pj/n,x10/15,s1,ph/l,x9/8,s1,x5/4,pn/d,x3/8,s7,x1/6,s8,x12/10,s13,x3/2,s11,x13/15,s11,x6/11,s10,x3/4,pa/o,x7/8,s2,x15/13,s3,x14/4,s6,x8/9,pl/n,x11/0,s8,x14/2,s9,x9/4,pj/m,x6/11,s6,x1/9,s12,x0/8,s11,x3/7,s2,x12/9,s6,x1/4,s2,x6/5,pf/a,x2/3,s13,x11/4,s8,x5/13,s9,x6/3,pp/k,x5/13,s3,x10/15,s8,pg/j,x6/0,s1,x2/14,s15,x10/15,pi/d,x3/6,s13,x5/2,s14,x14/6,s2,x0/11,pb/k,x1/12,po/e,x4/7,s3,x1/12,s10,x4/6,ph/l,x3/11,pf/i,x12/2,s6,x6/10,s8,x5/1,s1,x13/7,pk/b,x3/2,s9,x8/11,pg/l,x12/5,s10,x3/7,pm/j,x2/5,s10,pb/l,s4,pm/j,x3/15,ph/a,x12/6,s6,x2/9,pp/c,s6,x11/5,s2,x6/15,s8,x2/8,pg/e,s6,pk/l,x9/0,s4,x4/13,s14,x1/6,s14,x5/9,s7,x0/13,pb/f,s13,x2/11,s2,x1/15,pn/g,x3/8,s15,x11/0,pl/p,x15/3,s5,x1/11,s10,x2/3,s15,x7/15,s6,x8/5,pi/b,x9/1,s11,x10/2,s9,x13/1,s3,x2/8,s2,x13/6,s6,x2/15,s3,x4/0,pd/e,x11/1,s15,x10/0,s3,pc/a,x4/2,pd/b,x10/1,pc/g,x12/15,s13,x0/8,s5,x3/6,s7,x14/11,pm/o,x7/9,s6,x11/0,s2,x12/9,s10,x5/11,s1,x7/14,s14,x1/8,pi/n,x5/3,s3,x7/15,s6,x11/10,pa/l,x3/5,s5,x15/0,s3,x7/8,s12,x15/14,s1,x8/11,s11,po/i,x10/5,s15,x15/14,pk/p,x11/6,pc/j,x3/4,s9,x1/2,s9,pl/h,x6/9,pm/j,x14/3,pb/n,x6/1,s2,ph/i,x13/11,s9,x7/15,pp/j,x1/5,pg/i,s10,x6/0,s2,x7/2,s10,x8/10,s1,x13/7,pe/m,x8/0,s4,x12/5,pb/o,x0/15,s12,x8/3,s12,x13/0,pc/n,x5/12,s7,x11/3,s1,pp/h,x8/13,pm/o,x12/4,s4,x15/0,s2,x7/5,pf/k,x6/13,pi/c,x0/1,s6,x8/2,pd/a,x7/12,pf/h,x9/2,s12,x12/7,pc/n,x5/3,s2,x13/7,pl/d,x3/4,s9,pe/j,x0/10,pd/m,x9/11,pi/p,x6/13,pe/o,x14/11,s2,x3/8,ph/a,x15/14,pb/m,x8/7,s15,x11/12,pg/e,x7/15,s15,x2/0,ph/o,x6/5,s7,x10/1,pk/m,x5/6,s13,x0/2,s6,x15/13,s11,x5/1,pc/n,x2/0,pm/e,s8,x15/10,pf/c,x1/4,s1,x3/0,s2,x4/1,s6,x12/3,pj/h,x6/5,pf/a,x15/7,s7,pd/i,x14/4,s1,x12/0,pe/b,s3,x11/7,pd/l,x1/5,pj/e,x3/6,s15,x9/7,ph/p,x14/11,s6,x3/15,s1,x9/0,s12,x5/1,pm/n,x13/14,ph/e,x4/10,pd/m,s7,x7/8,pc/g,x11/10,s9,x8/1,pk/l,x7/14,s9,pm/p,x3/13,pk/l,s6,x1/11,ph/j,s9,x7/13,s11,x5/3,pe/p,x15/9,pm/k,s13,x4/8,s7,x13/12,s14,x11/4,pe/a,x6/9,pm/j,x12/15,ph/k,x5/3,s5,x10/9,s8,x3/5,s9,x10/1,pe/l,x7/5,pg/b,x9/1,pm/c,s9,x6/0,s2,pd/f,x1/7,s14,x15/9,pj/e,s8,x8/13,pi/k,x4/0,pj/g,x15/13,pd/b,s14,x14/2,pm/f,x1/11,s14,x4/7,s3,x3/12,pl/p,x4/9,pf/n,x2/1,s3,x15/4,pa/m,x10/5,s8,x13/8,s15,x2/6,pl/f,x13/11,pn/e,x9/4,s12,x13/0,s9,x5/9,pj/g,x3/10,pm/b,s4,x2/12,pk/d,x11/0,pi/n,x3/7,pk/f,x0/2,s1,x11/6,s6,x15/4,s15,x6/9,pa/d,s1,ph/o,x0/1,pm/j,x14/10,s14,x7/8,pi/a,x6/14,s1,x12/0,s8,pp/m,x14/8,s1,x4/6,pe/d,x0/8,pk/f,x5/11,pe/a,x3/14,pp/m,s4,x1/5,s6,x13/0,s12,x12/15,ph/l,x7/13,s15,x8/15,pm/j,x4/11,pl/a,x14/10,s1,x7/5,s3,x15/8,pk/m,x13/0,pp/i,s9,pn/m,x4/1,pj/c,s3,x5/12,s11,x10/15,s6,x14/11,pd/f,x10/5,pk/p,x6/14,s5,x7/10,pg/h,x8/4,pa/l,x7/10,s14,x13/1,s14,x9/3,s7,x15/13,s12,x5/4,pm/f,x8/6,s1,x14/7,po/l,s6,x8/2,s8,x1/14,pk/m,x8/3,po/e,x15/11,s3,x12/1,s1,x2/3,s12,x10/12,s2,x5/9,s8,pa/m,s6,x13/8,s4,x7/14,s13,x8/12,pb/n,s7,x15/5,s8,x2/9,ph/f,x10/3,pk/e,x0/12,s7,x7/10,pd/o,x13/0,pn/c,x6/15,s7,x9/2,s9,x15/10,pe/d,s7,x1/3,s15,x11/8,s8,x14/10,pg/l,x8/3,s10,x5/13,pa/k,x0/8,ph/m,x13/12,s12,x7/10,s15,x13/2,pj/k,x0/12,ph/p,x13/14,s1,pk/c,x8/1,s8,pd/l,x2/15,pn/g,x3/10,s8,pl/o,x1/2,pf/d,x6/8,s3,x7/12,s15,x13/3,s2,pm/e,x5/14,pd/k,x11/2,pa/b,x9/5,pe/m,x13/3,pi/d,s6,x11/5,pm/c,x12/8,s12,x10/11,pk/l,x4/0,pj/n,x5/12,s8,x4/1,po/l,x9/6,pj/m,x2/14,s9,x9/5,s14,x1/12,pi/b,s15,x9/5,ph/m,x0/6,pp/i,x5/11,s7,x7/8,s3,x13/4,s2,x5/7,s11,x13/9,s7,x11/4,pa/f,x13/5,pc/j,s9,x4/12,s15,x10/9,pb/h,x14/13,s11,x9/2,s3,x3/8,s6,pm/k,x5/6,pd/l,x12/3,s1,x4/15,pb/o,x13/8,s10,pj/d,s5,x7/14,s1,pi/b,x6/10,pp/m,x7/12,s14,x0/15,pd/k,x1/6,s4,x14/11,pn/g,x0/6,s11,x11/15,s6,x6/4,s4,x5/8,s11,x15/12,s6,x10/11,s5,x8/13,s11,x11/9,pa/o,x1/7,ph/k,x3/8,s3,x7/13,s6,x4/1,pl/d,x15/11,s3,x5/8,s7,x15/14,s4,x2/13,s12,x7/3,s1,x8/5,pi/a,x4/1,pm/j,s14,pb/f,x7/5,s14,x11/4,pa/n,x8/5,ph/f,x1/6,s10,x5/14,s14,x4/0,s15,x15/10,pb/o,x12/5,s4,x3/0,s3,x9/11,pd/n,s7,x1/3,s4,x12/11,s13,x9/7,pp/o,x6/4,s12,x10/14,pf/h,x5/9,s9,x13/4,s8,x9/1,s15,x4/0,pc/d,x5/10,pm/i,x12/6,pp/a,x7/0,pk/h,s10,x5/9,s11,x8/11,s9,x7/2,s9,x3/9,s6,x15/2,s2,x9/1,s8,pg/j,x8/12,pp/o,x6/1,s1,x12/10,s10,x7/15,ph/n,x10/8,s10,x3/14,s7,x11/5,pp/f,x15/8,pc/o,s15,x0/10,pa/e,x2/3,pm/l,x10/13,s11,x12/0,pf/e,x3/9,ph/o,x4/0,pm/k,x1/10,pn/d,x7/13,s10,x8/1,s2,x7/14,pl/i,x0/5,s13,x1/10,pd/o,x12/11,s3,x10/0,pk/i,s4,x7/8,s10,x1/15,pj/g,x3/0,s12,x1/12,pb/a,x7/15,s9,x3/12,pp/e,s12,x13/6,s7,x4/0,s14,x6/15,s8,x13/9,pa/d,x12/2,s15,x13/14,s8,x2/12,pc/p,x13/11,pg/b,x3/14,s5,x1/13,s7,x15/10,s15,x11/12,s2,pk/h,s12,x10/3,s1,x11/8,s12,x13/15,s10,x14/3,s14,x11/13,s12,x6/15,s5,pd/l,x0/3,s13,x12/13,ph/j,x1/15,s5,x0/6,s10,x12/2,s14,x0/14,s13,x9/2,s15,x0/3,pm/d,x13/5,pg/p,x9/15,pf/e,x4/7,po/p,x5/13,pi/c,s13,x10/15,s2,x14/3,pb/m,x12/0,pi/c,x13/8,s9,x11/0,pm/h,x14/2,pi/e,x3/9,pd/j,x15/11,s12,x10/5,pl/b,x1/6,s11,x7/15,s14,x14/12,s3,x9/3,pk/d,x2/12,pi/c,x3/4,s11,x8/2,s14,x6/14,s11,x3/7,s3,x6/5,pb/o,x9/11,pg/j,x6/1,s9,x5/9,pi/o,x1/3,s15,pl/e,x13/11,s9,x4/12,s7,x10/11,pd/k,x7/4,ph/b,x5/10,pc/l,s15,x4/9,pi/a,x7/0,s11,pn/k,x11/15,s5,x0/2,s3,x9/7,s8,x15/6,pa/e,x1/0,s15,x15/10,ph/g,x14/8,s1,x13/11,pj/e,s1,x6/9,s2,x11/2,s1,x1/7,s15,pn/a,x6/5,po/b,x11/14,pd/h,s15,x6/7,s8,x4/2,s11,x14/9,s1,pb/f,x11/2,s12,x7/3,s7,x14/5,pm/g,x3/2,s7,x11/5,po/d,x6/9,s10,x15/8,s9,x9/1,s3,x14/6,s4,x5/12,pn/h,x4/14,s8,x1/15,pk/m,x0/6,s5,x1/8,pf/e,s5,x6/11,s1,x13/8,pg/d,x7/2,po/l,s3,x6/15,s5,x7/13,pb/h,x4/8,pk/l,s6,x0/2,s15,x14/9,s4,x4/12,pe/d,x0/7,pg/i,x12/4,s3,x9/0,s8,x13/14,s11,x7/6,s4,pn/d,x11/15,s7,x4/13,po/e,x14/1,ph/n,s6,x5/11,s6,x9/10,pk/a,x4/3,pm/e,x11/6,s8,x7/12,s5,x15/3,pk/a,x12/6,s13,x15/10,ph/j,s4,x2/4,pa/c,s7,x12/13,s12,x3/2,s8,x5/4,s12,x2/9,s10,x7/5,pg/h,x3/8,s3,x4/9,s3,x8/3,s14,pe/j,x9/10,s12,x11/3,pd/h,x15/2,s9,x1/10,s4,x14/13,s6,x4/8,s13,x5/10,pn/g,s3,x4/15,ph/b,x11/1,pl/e,x4/10,s2,x15/12,pk/h,s14,x9/4,s6,x13/7,pc/g,s9,x6/12,s3,x8/0,s11,x1/6,pm/i,x4/12,s3,x8/6,s4,x7/4,s5,x3/8,s11,x14/4,pl/j,x9/3,pm/k,s3,x10/12,pe/f,s5,x9/8,pg/n,x6/13,pf/k,x7/8,pm/p,x3/5,pe/h,x14/13,pn/g,x11/5,pf/c,x3/14,s11,x15/7,pd/k,x10/3,s4,x6/14,s10,x12/4,s1,x9/1,s4,x14/8,s9,x15/11,pn/c,x9/10,pp/k,x15/3,pc/m,x1/12,pg/b,x6/3,s4,x2/4,s8,x8/0,s5,x1/7,s12,x11/2,s8,x7/1,pc/p,x3/15,s10,x14/2,pk/m,x15/1,pl/f,x11/3,pb/j,x5/14,s2,x2/15,s13,x8/5,pf/c,x6/12,pj/k,s13,x14/10,s1,x9/11,pi/o,x15/8,s6,x13/6,pn/b,x7/4,ph/j,s10,x3/11,s3,x4/10,s7,x3/0,s13,x12/5,s13,x14/9,s10,pc/l,x1/3,pe/n,x12/15,s13,x13/8,s15,pf/h,x0/10,s14,x14/11,pk/j,x9/7,s11,x11/4,s8,x3/1,pm/l,x11/5,pc/e,x13/4,s7,x9/5,s5,pi/f,x1/12,s5,x6/14,s14,x0/2,pp/l,s14,x14/9,pb/f,x12/3,s4,x0/10,ph/m,x9/1,s5,x3/6,s10,x2/15,s10,x1/8,s1,x9/15,pe/g,s4,x7/0,s10,po/a,x15/1,pc/p,x2/8,s3,x5/12,s9,x8/2,po/i,x14/0,s11,x10/15,s5,x3/1,pp/h,x9/10,pd/a,x1/0,s11,x9/12,s7,x4/14,s14,x7/0,pn/e,s14,pb/j,s15,x10/8,s15,x12/5,pm/l,x7/1,pf/o,x14/8,pb/n,s1,x5/7,s10,x10/9,s4,x3/6,s14,x15/5,pm/f,x13/0,pp/g,x10/6,s2,pe/n,x14/4,pd/g,x9/7,s6,pj/a,x0/10,s9,x4/5,s6,pb/e,x9/3,s9,x6/2,pn/h,s6,x4/7,s3,x5/9,pc/m,x1/12,s14,x5/0,pi/o,x9/3,pk/b,x10/0,s9,x9/5,s7,x3/0,pe/j,x15/12,s1,x1/8,s4,x5/13,pb/m,x14/12,pa/e,x6/0,pd/l,x7/13,s14,x14/8,s3,x13/9,s2,x6/0,s15,x8/9,s15,x6/13,s7,x4/1,s12,x12/9,s10,x8/2,pn/o,x10/1,pg/b,x11/13,s2,x3/9,s13,x4/15,pl/k,s11,x0/9,pi/a,x12/13,s9,x7/3,pj/k,x9/15,s13,x12/1,pe/m,x3/13,s10,x4/11,s12,po/j,x2/6,s4,x9/8,s10,x11/2,s13,x3/14,pk/l,x13/1,s8,x15/9,pa/o,s8,x2/14,pg/h,x7/3,s10,x5/9,s15,x8/0,pc/p,x7/9,pn/b,x3/5,pd/f,x13/14,s2,x2/8,s3,x11/1,s10,x0/3,s2,pg/c,x4/5,pb/p,x7/8,s8,x0/14,pg/n,x8/15,s4,x12/7,s4,pp/f,s14,pk/h,x11/9,s1,x12/3,pe/l,s5,x15/10,pb/n,s15,x0/5,pg/d,x9/15,s14,x12/14,s5,x13/5,s3,x1/2,pp/f,x5/11,s15,pl/a,x3/0,s9,x10/8,pk/c,x6/1,s10,x9/15,pi/n,x2/4,s2,x6/14,s13,x2/10,pb/e,x15/8,pg/k,x11/13,s8,x4/6,pb/j,x3/12,s5,x9/7,s11,x2/12,s14,x7/5,s11,x10/1,s2,x14/3,pm/e,x12/2,s12,pc/g,x11/5,pp/h,x15/7,s9,pb/n,x12/13,pk/o,x6/9,s7,x0/5,s2,x3/13,pn/c,s9,x0/7,s1,x1/10,pk/l,x5/7,s1,x10/3,pa/d,s9,x15/2,s15,x8/14,s4,x13/0,s14,x15/10,s5,x12/5,s7,x4/7,s1,x12/2,s8,x14/4,s8,x9/7,s10,x1/5,s9,x11/4,s5,x5/1,pj/e,x15/13,pi/b,x7/3,s2,pl/h,x8/6,pe/n,s15,x1/11,ph/k,x15/6,s6,x4/10,s7,x13/1,s11,x10/2,s4,x11/6,pf/o,x1/4,s5,x6/7,pb/i,x14/4,pp/e,x7/13,s10,x15/2,s1,x11/13,s5,x12/7,s8,x10/2,s3,x15/12,s11,x5/4,po/h,x8/12,pi/k,x11/4,pn/j,x5/2,s9,pe/o,x12/13,ph/g,s11,x15/10,s12,pe/i,x8/2,pk/a,x15/9,pn/o,x4/6,s10,x2/12,s3,x14/13,s15,pp/c,x1/9,pn/e,x6/13,s8,x11/9,s8,x5/12,pb/d,x7/15,s8,x2/13,s14,x8/15,s13,x9/1,s6,x8/15,ph/o,x0/1,pf/c,x2/7,pa/e,x3/8,s13,pl/k,x2/13,pd/i,x4/5,s9,x7/0,s12,x4/6,pg/m,x7/3,s15,x12/14,pp/o,s7,x5/8,s14,pm/b,x6/10,s2,x1/5,pa/n,x8/12,pb/j,x9/1,pl/m,x8/2,s4,x9/3,pa/e,x8/6,pj/b,x11/13,s6,x2/14,s9,x0/9,s11,po/d,x10/15,s5,x3/11,pg/j,x15/7,pp/i,x6/1,pa/e,x14/3,s5,x11/1,s15,x3/9,po/f,x0/15,s8,x10/2,pj/m,x9/6,pn/o,x7/10,s15,x4/6,s8,x11/3,s6,x6/8,pj/p,x10/9,s15,x1/14,s7,x7/5,s11,ph/a,x2/8,s4,x13/0,s4,x6/9,s13,pd/e,s8,x8/11,s8,x6/1,pf/g,x5/10,s7,x11/1,pb/h,s12,x5/8,s6,x2/9,s8,x10/13,s2,x11/1,s6,x3/0,pf/l,x2/9,s9,x13/0,s8,x15/6,pn/d,x1/8,s10,x5/7,s1,x11/6,s6,x14/0,pg/a,x4/3,s6,x6/0,pn/d,x3/14,pa/k,x9/5,pe/n,x13/2,pd/o,s7,x8/11,s11,x6/15,pb/l,x1/7,pc/j,x15/5,po/f,x0/6,s5,x2/5,s4,x9/14,pd/m,s14,x10/12,pi/k,x8/15,s8,x11/5,s9,x9/12,s2,x15/10,s3,x1/13,s7,x9/10,s5,pb/m,x1/0,pl/a,x12/10,s10,x8/5,s13,ph/j,x6/13,s12,x7/8,s4,x11/10,s9,x1/3,s8,x9/15,pk/l,x3/0,s9,x5/6,s10,po/c,x15/14,s4,x10/3,pe/k,x0/14,s14,x5/3,s15,x12/14,pf/a,x2/15,s14,x7/1,pi/n,x11/3,s8,x6/9,s1,x7/14,s1,x3/10,s6,x15/6,s14,x14/9,pd/b,x2/8,s11,x0/4,s9,x8/11,s6,x0/4,pp/m,s12,x12/10,pi/f,x11/14,pp/d,x15/7,s14,x0/10,s9,x6/15,s12,x5/12,s1,pg/a,x11/8,s6,x5/9,s8,x11/12,s7,x5/9,s13,x7/6,pi/k,x2/8,s15,x15/6,pf/p,x4/13,pk/i,s12,x12/8,s8,pm/a,s11,x9/14,s4,x3/0,s4,x11/7,s15,x15/13,pe/d,s1,x10/1,pc/a,s8,x13/12,s14,x15/1,s5,x2/5,s9,x9/6,s5,x11/3,s9,x12/9,s6,x2/13,s6,x9/3,s4,x2/1,s5,x14/8,s13,x7/1,pl/n,s2,x5/14,s12,x0/7,s11,x1/8,pj/o,x0/12,s8,x8/13,pe/i,x11/0,s12,x7/10,ph/f,s2,x12/9,s14,x6/13,s7,x8/2,pn/k,x4/13,pf/b,x11/3,s4,x9/8,s9,x7/0,s4,x8/15,s12,po/l,s5,pj/b,x9/12,s10,x15/7,s13,x10/5,s14,x13/15,s9,x0/3,s12,x8/1,ph/a,x6/9,s12,x3/8,s11,x4/1,s9,x0/3,s1,x13/10,s1,x5/4,s5,x1/0,pi/o,x4/5,pd/h,x11/12,pa/f,x0/1,s7,pk/m,x8/3,s8,x4/0,s10,x11/8,s9,x4/2,s3,x9/6,s5,x5/3,s13,x1/0,pf/a,x9/14,s12,x5/4,po/c,x15/6,pn/i,x7/8,s8,po/j,x14/2,pe/k,x3/8,s11,x15/0,pp/j,x14/8,s2,x7/15,pc/i,s13,x3/8,pk/j,s5,x14/9,s14,x2/1,s10,x8/11,s15,x10/3,s8,pl/f,x13/5,s11,x10/3,pe/a,x0/8,pm/b,x3/10,pk/g,x7/2,ph/f,x8/1,pc/g,x13/14,s4,x6/3,s1,x1/11,s9,x10/15,pa/k,x5/9,s4,x11/1,s15,x9/5,po/e,x0/10,s5,x1/8,pa/h,x11/13,s10,x14/3,s6,x6/7,s5,x2/5,s10,x7/1,s12,po/c,s14,x14/5,pj/g,x1/6,s14,x11/10,s11,x0/9,pi/k,x11/7,s14,x1/9,s4,x12/8,s5,x7/4,s12,x11/13,s3,x6/5,s10,x13/7,pe/n,x14/2,pp/k,x4/5,s13,x1/7,s10,x13/9,s10,x10/6,pj/g,x0/8,pb/o,x7/3,s2,x6/12,pd/p,x5/0,po/g,x6/2,s13,x0/12,s1,x13/5,s2,x7/12,s6,x9/8,s12,x7/11,pn/l,x0/14,pc/i,x3/6,pa/n,x15/9,s12,x4/13,s2,pk/p,s9,x10/14,s14,x12/2,s8,x5/0,pb/l,x3/8,s9,x9/6,pa/p,x0/2,pj/c,x1/9,s15,x8/13,pe/n,s8,x11/1,pk/d,x15/0,pa/e,x7/2,s13,pf/k,x15/13,s1,x14/4,pg/b,x7/8,pd/i,x6/14,pl/h,x4/2,pe/c,x3/5,s15,x14/6,pb/h,x1/3,s11,x8/5,s3,x0/11,s14,x15/1,pi/c,x14/12,s14,x7/2,s7,x15/8,pf/e,x9/2,s4,x13/3,s15,x10/6,pp/b,s2,x3/14,s6,x5/2,s13,x8/14,pd/k,x10/5,s7,x13/9,s3,pi/a,x7/15,pe/b,x5/2,s5,x6/4,s4,x2/10,s4,pa/c,x13/1,s11,x5/10,s7,x0/11,pm/f,x6/13,ph/j,x15/9,s5,x10/4,po/p,x12/9,s7,pc/b,x0/14,s5,pm/f,x8/1,s11,x4/9,s11,x15/2,s8,x4/7,s7,x8/5,s1,x9/3,ph/e,x15/14,pp/j,x13/6,s3,x14/11,s3,x6/3,ph/m,x2/9,pd/l,s10,ph/b,x13/3,pj/g,x11/6,pn/f,x1/8,s14,x13/14,s10,x8/7,s15,x6/0,s14,x10/3,s10,x9/2,pj/c,s9,x4/15,s11,x8/14,s15,x10/12,pe/a,s5,x11/0,pg/o,x6/7,pl/e,x10/9,s1,x0/15,po/b,x3/2,s2,x12/15,s6,x10/9,s2,x1/4,s1,x12/6,s11,x15/4,s2,x0/8,s9,pj/h,x4/3,s6,x7/11,s15,x1/9,s13,x12/3,pi/d,s13,x6/9,s11,x4/2,s2,x9/0,s7,x6/8,pg/l,x7/5,pi/h,x3/12,s3,x13/6,pb/o,x10/7,s2,x2/8,s8,x13/14,s5,x8/7,s3,x2/6,s4,x3/10,s9,x7/6,s10,x13/0,s8,x4/11,s4,x14/12,pk/m,x1/11,s11,x2/14,s5,x9/6,s14,x0/12,s5,x15/14,pb/o,x4/1,pg/n,x5/10,s11,x15/0,s9,x8/10,s7,x11/13,ph/i,x9/4,pk/p,x1/7,pd/f,x8/4,pc/l,x3/2,s10,x12/13,pe/b,x15/11,s8,x3/13,pc/l,s13,x9/5,s12,x0/2,s15,x14/6,s10,pb/o,x7/8,s14,x4/0,s5,pi/c,x15/11,s3,pj/e,x5/7,s13,x12/10,s5,x3/8,s9,x0/15,s5,x6/3,pn/i,x8/14,s7,pc/o,x2/4,pg/l,x3/15,s9,x6/4,ph/a,x9/0,s6,x13/10,s2,x0/1,po/p,x4/14,s8,x7/12,pi/f,x8/0,s11,x10/7,s6,x15/2,pj/b,x12/13,s8,x1/5,s3,x11/6,pk/e,s2,x3/5,s13,x14/1,s1,x15/5,ph/j,x12/13,pk/o,x5/0,pl/d,x14/9,s14,x1/10,s9,pi/g,s2,x12/3,s7,x9/1,s3,x12/0,ph/n,x1/8,pg/b,x15/6,pf/i,x14/1,s5,x8/5,s7,x6/2,s11,x7/3,pj/g,x12/9,pa/b,x11/3,s2,x4/0,s15,x14/12,s10,x4/13,pd/j,x7/6,s13,x9/12,s14,x14/15,s6,x7/11,s13,x5/13,s8,x7/1,po/e,x3/8,s3,x11/4,pd/n,x7/2,s12,x15/14,s15,x11/2,s9,x13/14,s4,x9/12,s14,x14/7,s6,x2/5,s13,ph/g,x9/4,pj/n,x7/12,s8,x13/4,pi/e,x0/3,s14,x14/8,pm/a,x12/10,pg/l,x3/13,s10,x5/15,s7,pj/h,x8/4,pm/d,x7/11,s3,x9/0,s9,x7/14,pc/l,x15/4,s10,x2/14,s6,x5/1,pj/a,x6/3,pi/l,s3,x13/15,s15,x14/2,s15,x0/1,s4,x10/2,s15,x4/9,s10,x7/8,s7,x12/3,s6,x13/5,s3,x12/1,pb/c,x15/8,pj/f,x10/0,s6,x9/13,pi/l,x1/6,pa/b,x13/15,po/h,x6/4,s9,x7/0,pb/p,x1/8,s8,x15/0,pm/n,s10,x1/14,s1,x11/7,pi/b,x8/1,s2,x0/13,pg/l,s12,x3/15,s12,x1/11,pm/p,x14/6,s15,x13/8,pl/o,x3/1,pc/d,x9/15,s14,x2/6,s1,x12/7,s15,x1/2,s14,x0/9,pa/n,x12/5,pf/b,s6,x4/6,pc/h,x5/15,pd/o,x12/13,pc/i,s1,x8/4,s11,pn/f,x14/6,s7,x8/15,s12,po/p,x13/14,s6,x3/1,pi/a,x0/8,pg/h,x12/11,s10,x0/1,pc/l,x6/11,s10,x10/0,s15,x5/6,pj/i,x2/0,s8,x4/3,s9,x0/15,s4,x7/5,s8,x12/13,s2,x0/8,s9,x15/1,s6,x2/5,s3,x11/10,s8,x9/3,s8,x5/10,po/f,x6/3,s10,x7/0,ph/j,x1/12,s1,x10/0,pa/d,x13/1,s8,x6/9,s3,x3/0,pk/n,x9/10,po/h,x8/7,pb/c,x6/9,s11,x14/1,pf/e,x6/15,s1,x11/14,pp/o,s3,x13/3,pa/h,s10,x0/15,s11,x6/11,s14,x9/10,pj/e,x3/14,pn/m,x8/2,s2,x11/14,pi/c,x13/2,s12,x10/15,s13,x14/5,s6,x11/7,pe/m,x13/12,s13,x14/2,s14,x8/0,s14,x10/6,s6,x5/9,s7,x13/6,s4,x9/5,s11,x15/3,s4,x1/12,s7,x2/10,pf/p,x8/12,s7,pd/i,x5/6,s1,x7/12,s12,x5/4,s15,x12/14,po/j,x11/6,s1,x4/7,s13,x10/6,pa/e,x9/3,s7,x10/5,s15,x8/9,s8,pg/h,x6/12,s11,x15/9,po/j,x6/4,s4,x15/11,s1,x1/10,s13,x15/9,ph/a,x13/1,s7,pp/k,x9/8,pg/m,x3/10,po/l,x6/15,s5,x1/5,pj/i,x3/4,pc/o,x10/2,pp/k,x4/15,pj/a,x7/2,s8,x4/10,s7,x1/15,po/b,x5/6,s6,x0/2,pd/c,x11/5,pk/g,x1/12,pa/f,x7/13,pm/n,x6/4,s7,x9/14,s6,x3/13,s2,x0/15,s4,x7/8,pe/c,x5/9,pn/o,x3/11,s5,x15/0,s10,x5/11,pg/k,x14/9,pm/o,x11/0,s3,x12/14,s11,x15/5,pb/k,x3/6,s4,pa/e,x14/7,s2,pd/g,x1/9,s14,pj/h,s1,x7/3,s14,x4/15,pe/k,x6/7,s1,x0/10,ph/j,x5/15,pp/i,x12/1,pa/o,x9/4,s7,x15/8,pi/c,x0/10,pe/l,x3/12,s8,x1/8,pf/j,x9/6,pc/d,x12/13,s9,x6/5,pe/o,x0/8,s13,x7/9,s5,x13/1,s5,x15/11,pb/h,x3/13,pi/k,x11/12,s14,x14/7,s11,x10/3,pp/d,x12/2,s7,x11/10,pi/n,x0/15,pj/l,x12/3,s12,x5/7,s11,pe/c,x10/3,s2,x5/15,s8,x3/13,s14,x1/5,s1,x7/4,pa/g,x3/0,pm/j,x15/4,pn/e,x2/14,pi/h,s11,x4/1,s13,x0/12,po/b,x6/8,pf/h,x5/10,s5,x6/3,s11,x4/0,s5,x5/10,pc/m,x0/14,s7,x6/3,pe/a,x13/15,s10,x14/0,s8,x3/13,s1,x1/4,pn/h,x2/11,s1,x13/6,pe/o,x12/3,s10,x6/11,s3,x2/1,s12,x9/12,s6,x7/2,pk/i,x3/11,s15,x10/0,s14,x14/3,pn/o,x2/7,s9,x8/0,s4,x1/3,s3,x9/10,s1,x5/2,pm/g,x1/0,s15,x14/10,s9,x12/3,s7,x7/0,s3,x9/5,pi/a,x10/6,s5,x9/8,s7,x5/6,pn/g,x11/1,s9,x4/8,s12,x10/14,pi/c,x12/3,s7,x0/2,s14,x5/11,s5,x15/1,pa/h,x9/4,s4,x6/5,s4,x1/15,s9,x0/9,pk/n,x14/13,pi/j,x10/11,s2,x6/9,s1,ph/m,x0/3,s4,x9/5,s5,x8/1,po/p,x12/3,s4,x0/13,s4,x3/11,pf/i,x7/14,s1,x11/4,pc/a,x7/1,pd/f,x6/10,s6,x12/15,s12,x5/14,pg/p,x7/15,pb/o,x3/13,s4,pl/f,x0/5,s6,po/i,x15/14,s13,x4/9,pg/m,x8/12,s8,x11/9,s12,x8/10,pp/c,x15/3,pa/n,x10/11,s9,pk/d,x4/3,pa/j,x1/9,pd/k,s11,x12/10,s7,x15/9,s2,x7/13,s3,x9/10,pp/l,x6/11,ph/j,x9/3,pf/g,x5/11,s10,x4/9,s3,x14/13,s14,x11/7,pi/l,x5/9,s1,x10/1,pj/o,x9/14,s7,x1/13,s13,x6/3,pm/h,s7,x8/15,s2,pj/i,x14/10,pk/b,x12/11,s9,x8/1,pn/d,x14/3,pj/i,x6/13,s9,x8/12,s7,x9/4,s2,x7/14,po/d,x1/4,s6,x9/6,s7,x12/0,s7,pl/b,x3/14,s3,x7/8,s3,x11/12,s11,x5/2,po/i,x3/11,pg/k,x13/15,pp/m,x9/6,s8,x2/7,s3,x5/14,pc/a,x8/3,pb/m,s7,x12/2,s13,x14/15,pe/h,x8/12,s11,x11/14,s1,x10/0,pi/o,x3/9,s15,x7/4,pe/m,x15/1,s4,x0/2,ph/p,x5/6,s11,x10/15,s6,x6/3,s15,x2/8,pg/m,x1/9,pn/d,x2/0,po/i,x15/5,s13,x13/10,pm/p,x3/6,s2,x9/2,pn/d,x11/3,s6,x5/6,pf/k,s2,pe/g,s12,x3/10,s9,x7/8,pj/b,x3/5,s9,x12/9,po/i,x14/10,pd/a,x5/7,pj/g,x6/8,pn/b,x5/1,s6,x8/6,pm/p,x12/14,s12,x11/8,s1,x12/9,s10,x11/7,s8,x9/5,pa/k,x12/8,po/i,x5/3,pk/g,x4/10,s11,x6/2,s4,x1/5,s10,pp/b,x6/14,s14,x12/8,s10,pc/h,x10/11,pe/d,x7/1,s8,x6/12,pp/g,x0/9,pi/l,x4/13,po/k,s11,x7/2,ph/c,x9/4,s6,x14/5,s2,x7/4,s14,x14/9,pg/f,x0/3,s4,x8/1,pd/p,x0/14,pm/k,x15/8,s10,x9/1,s2,x11/13,pg/i,x8/5,s4,x10/12,s3,x9/8,s3,x6/4,s11,x8/9,s4,x12/13,po/k,s2,pa/p,x7/1,s11,x6/4,s13,pf/l,x7/3,s9,x12/15,s15,x8/10,s1,x7/5,pk/b,x15/8,s4,x9/14,s5,x11/15,pn/c,x5/1,s5,x2/12,s5,x15/11,s12,x2/13,pe/o,x12/9,s2,x0/4,pg/f,s5,x2/14,pp/c,x7/3,pi/h,x1/14,pp/c,x6/13,po/e,x1/8,s2,x2/11,s8,pj/h,x10/15,s13,x12/9,s15,x15/10,pe/b,x3/1,s14,x2/12,pa/n,x0/10,s3,x11/7,pf/l,x8/13,pb/j,x5/6,s4,x9/13,s13,x12/5,pn/l,x7/14,po/b,x13/1,pk/c,x12/6,po/j,x0/7,ph/k,x6/10,s5,x1/13,s13,x9/2,s13,x10/8,pe/i,x14/3,pk/n,x7/6,pb/p,x2/13,pf/l,x3/5,s4,x13/2,s2,x0/6,s2,x9/12,s9,pn/h,x0/14,pe/g,x3/11,s5,x13/4,pc/b,x3/10,pg/i,x1/14,pl/p,x0/11,pd/m,x10/8,pb/p,x12/13,s8,x11/3,s5,x7/10,s1,pg/o,x12/3,s11,x8/1,s10,x4/14,s14,x15/1,s8,x10/0,s15,x3/5,s8,x0/10,pm/e,s3,x11/7,pa/h,x13/12,pj/o,x6/2,s12,x14/12,s3,x0/8,s9,x5/1,pp/k,x13/8,s11,pl/a,x3/11,s1,pe/m,x4/9,s10,x5/11,pa/f,x0/6,s11,x7/9,s5,x14/3,s9,x15/2,pb/c,x7/13,pn/p,x15/4,s13,pj/c,x10/11,s5,x8/13,s14,x5/4,s7,x15/12,s2,x13/8,s12,x6/9,pp/m,x8/14,s13,x6/10,s14,x4/1,s13,x8/13,s5,x9/10,ph/e,x12/2,s6,x10/15,pd/b,x8/0,ph/e,x6/1,pa/p,x13/12,s15,x2/4,pi/g,x15/1,pl/n,x11/3,s13,x5/6,s9,x13/9,s11,x0/15,s15,x9/2,s11,x15/14,s11,x5/8,s12,x12/2,pp/h,x7/8,pi/g,s8,x0/13,s11,x1/9,s10,x4/8,pd/b,s9,x14/2,po/i,x9/11,s12,x14/8,pl/h,x4/11,pk/m,x1/5,pl/e,x4/8,pp/a,x13/3,pj/k,x5/0,s10,x4/15,s1,x5/11,s3,x8/13,po/l,x14/6,pn/i,x5/12,pj/f,x14/1,pe/o,x15/4,s5,x14/9,s2,pd/h,x12/15,s13,x10/3,pi/a,x4/0,pn/d,x13/15,s9,x6/4,s11,x0/9,pb/p,x4/14,s12,x11/9,pc/f,x2/7,s2,x14/4,pp/l,x9/7,s2,x15/4,s11,x13/5,pd/b,x10/1,s4,x4/3,s6,po/n,x11/2,s5,pf/b,x10/3,s2,x8/12,pd/e,x7/10,s10,x13/2,s6,x5/7,pm/p,x3/13,s4,x14/0,s2,x2/5,pa/o,x10/8,pc/m,x6/11,s3,x13/14,pd/k,x10/2,pg/p,x14/3,pl/c,x9/12,s12,x0/14,pm/h,x8/4,s2,x12/15,pc/a,x0/2,s9,x6/14,s11,x11/2,s9,x15/13,s10,x11/6,s1,x9/7,s2,x4/0,s11,x12/5,s2,x14/8,s7,x9/0,pb/j,x11/6,pi/c,x10/8,s3,x1/5,s3,x3/7,po/n,x14/6,pf/k,x4/15,s7,x5/9,s10,x8/2,s13,x0/6,pb/h,x1/14,s9,x5/3,s9,x1/6,pj/i,x0/11,pa/h,x5/13,s10,x11/9,s8,x4/10,s10,x13/9,pd/o,s9,x10/1,pj/m,x6/7,pe/o,x3/8,pk/h,x7/2,pd/c,x9/8,pj/p,x13/1,s13,x6/5,pe/a,s13,x10/9,s5,x4/8,s3,x5/0,pk/g,x9/15,pc/m,x1/13,pk/h,x3/9,s4,x0/5,s7,x7/3,s12,x9/14,s11,x0/4,s7,x13/6,s13,x9/3,pp/n,s6,x1/11,pc/g,x8/2,s2,x9/4,s8,x10/12,s9,x8/2,pd/l,x11/1,s3,x14/10,s12,x12/4,s2,x13/15,ph/a,x4/0,s7,x10/13,pi/m,x5/11,s1,x3/2,s7,x9/14,s4,x6/12,s13,pn/o,x0/15,pd/m,x12/2,s7,x11/0,s2,x10/5,pp/k,x3/15,s5,x13/10,s1,x15/7,s5,x6/11,pj/d,x0/15,s1,ph/n,x3/2,s4,x13/1,pp/d,x9/3,pl/n,x6/14,pi/e,x13/11,s14,x7/6,s8,x10/5,pc/n,x6/13,s12,pd/i,x7/15,pl/h,x4/14,pg/i,x3/6,s5,x2/10,po/e,x11/13,s11,x15/5,pa/n,x14/1,s10,x13/10,s6,x6/0,s15,x2/1,s5,x3/0,pp/h,x12/15,pe/n,s15,pk/j,x4/3,s10,x6/2,pi/o,x11/1,pf/c,s6,pm/k,s6,x5/8,s2,x0/4,pb/n,s14,x10/14,s10,x13/9,ph/i,s4,x10/7,s15,x6/3,s14,x0/10,s2,x2/1,pa/l,x9/12,s8,x8/13,pp/e,x15/1,s15,pk/n,x13/9,pg/m,x4/0,s1,x5/11,s2,x10/2,pp/j,x5/13,ph/g,x9/7,s1,x14/13,pj/i,x0/10,pk/b,x8/14,s7,x15/4,s4,x1/6,s2,x4/15,s13,x5/1,pm/n,x10/11,pi/h,s11,x2/3,pk/l,s9,pb/i,x12/14,s7,x11/15,s12,x7/8,pe/f,x1/11,s3,x12/13,ph/o,x5/14,pl/i,x6/8,s6,x12/10,s3,x14/5,ph/a,x9/4,s13,x13/3,s1,x14/6,s14,x10/11,pf/n,x12/0,s9,x15/4,pd/i,s3,x7/6,s4,x0/5,pj/m,x13/1,s8,x14/11,pc/h,x8/13,s15,x1/5,s14,x15/8,s14,x2/10,s8,x4/15,pe/i,x3/12,s7,x2/13,pm/n,x1/6,s7,x7/9,s7,x2/13,s8,x6/14,pp/d,s14,x5/11,s5,x12/15,s5,x0/7,s12,x4/6,pb/g,x11/8,s4,x10/9,pf/e,x4/11,pp/k,x13/8,ph/g,x14/12,s12,x2/6,s11,pc/l,s14,x13/3,ph/j,x9/5,s12,x2/10,pe/b,s3,x13/15,s9,x7/0,pk/l,x11/5,s1,x4/2,pc/n,x5/3,s1,x0/7,pi/j,x5/1,s7,pe/d,x0/2,pg/b,x11/13,pm/e,x6/2,s7,x5/0,pl/f,x12/15,pg/m,x10/7,pp/d,s14,x4/2,s7,pc/k,x7/6,pd/j,x5/8,pb/n,x10/13,s6,x1/3,pc/k,x11/0,s5,x13/14,ph/p,s9,x12/1,pi/d,x13/2,pf/j,x8/6,pe/g,x4/5,s14,x8/13,pb/f,x3/7,s2,x2/4,s5,x14/0,pi/n,x5/3,s15,x6/1,pj/m,s2,x0/15,s9,x13/12,pk/b,x9/14,pm/d,x15/13,s15,x4/7,pl/g,x0/2,s12,x3/4,s7,x14/2,s8,x6/1,s8,x9/11,s1,x6/5,s11,x4/14,s14,x9/1,pm/a,x11/12,s3,x1/9,s4,x12/11,pp/o,x1/7,pn/d,x5/2,pc/p,x9/4,pl/j,x14/6,pf/g,x4/8,pj/n,s10,pa/m,s5,x15/1,pc/b,x7/5,s2,x8/2,s1,x14/10,s11,x15/6,pg/i,x2/4,pb/o,x5/10,pa/l,x9/2,pb/j,x12/14,s2,x8/0,s6,x12/9,s13,pa/p,x15/5,s5,x13/8,s1,x9/12,pn/m,x8/14,s8,x10/6,pe/h,s7,x3/12,s15,x14/9,s14,x2/0,s5,x8/10,s9,x9/11,pk/d,x12/4,s14,x5/3,s3,x8/7,s4,pa/e,x13/14,ph/c,x0/7,s11,x9/14,pg/a,x12/0,pf/h,x10/3,s1,x5/6,s6,pm/b,x12/9,s1,x5/2,pa/d,x0/6,s7,x10/12,s12,x0/1,pm/o,x8/5,pk/i,s6,x13/12,pg/c,s13,x10/3,pl/k,x4/13,s4,x3/9,s3,x12/5,pc/i,x13/9,pa/d,x4/14,s1,x12/15,pg/m,x11/3,s5,x0/13,s14,x10/11,s11,x9/3,s2,x15/2,pb/i,s6,x13/8,po/e,x4/6,s12,x3/1,s11,x15/4,pd/n,s12,x8/3,pm/k,x5/1,s1,x7/13,s1,x2/5,pg/j,x12/4,pn/f,s1,x8/7,s10,x14/5,pg/h,x9/12,s3,pa/b,x1/5,s10,x6/3,pl/p,x13/7,s5,x2/1,pi/o,x11/13,s15,x2/15,pj/g,s5,x10/13,s6,x3/15,pk/o,x0/12,pl/i,s11,x9/4,s3,x7/6,pn/p,x12/3,s7,x15/11,s7,x8/9,s6,x7/3,pb/d,x8/5,s3,x1/14,s8,x3/13,s6,pa/h,s6,x5/11,s2,x3/1,s5,pm/i,s6,x9/12,pb/j,x1/7,pf/a,x2/13,s4,x15/0,s7,x9/10,pn/l,x6/4,s7,x1/0,s13,po/m,x13/7,s11,x0/15,pj/l,x8/4,s10,x1/7,pa/d,x8/4,s9,x9/7,s1,x4/15,pn/b,x9/11,s11,x7/15,s8,x10/11,s12,x9/5,pf/m,x10/3,s14,x11/4,pg/a,x12/3,pp/i,x8/13,s3,x5/15,po/j,s1,pm/g,x0/7,s1,x13/5,pn/k,x2/0,pl/p,s4,x9/4,pm/a,s15,x11/5,pd/n,x8/15,pj/e,x12/11,pc/m,s5,x14/5,s7,pk/h,x6/9,s13,x0/8,s10,x1/3,pg/l,x5/0,pm/i,x11/7,s11,x14/3,s1,x7/4,s6,x12/10,s1,x5/1,pe/k,x0/13,s10,x2/3,pc/g,x7/5,s15,x2/4,s11,x15/10,pn/f,x4/1,s1,x14/0,s11,x13/11,s11,pa/c,x2/8,s8,x1/11,pe/l,x4/8,ph/g,x7/12,s5,x2/10,s2,x12/7,pj/o,x4/6,s15,x9/13,pl/i,x10/11,pj/k,x7/12,s9,x11/10,pp/h,x13/15,pb/d,x3/7,pp/o,x12/15,pg/d,x2/13,pn/l,s6,x4/10,po/m,x3/0,pp/f,x14/15,s11,pc/k,x7/13,pd/p,s10,x12/3,pk/a,x8/14,pi/l,x13/6,pb/m,x3/1,s8,x14/6,pf/a,x11/2,s10,x6/3,pi/n,x4/2,pb/l,s14,x5/1,s6,x12/0,s10,x7/1,s2,x6/3,pe/a,x8/1,s4,x4/9,pp/m,s15,x8/6,pb/j,x4/0,pf/n,x10/1,s3,x11/5,s11,x4/7,pa/o,x13/14,s9,x11/3,pj/g,x0/6,pk/m,x2/3,pp/h,x4/12,pe/m,x3/9,s6,x12/8,s10,x13/15,s8,x12/14,s7,pd/c,x11/9,s9,x7/3,pk/h,x9/5,s10,x6/10,s4,x2/14,s3,pb/o,x4/11,s1,x1/5,pk/g,x2/9,s7,x13/10,s15,x6/5,s15,x7/9,po/h,x3/12,pl/k,x11/6,pa/c,x10/13,s3,x15/4,s1,x3/6,pk/j,x8/0,s13,x7/2,s1,x10/14,ph/c,x7/12,pb/k,x11/9,s7,x2/5,pg/i,x9/15,pa/b,x13/8,s10,x12/1,s8,x13/5,s10,x6/14,pk/l,x4/5,s2,x9/7,s10,x6/1,pn/j,x11/2,pg/h,s5,x7/8,s14,x4/2,po/k,x14/1,s15,x2/0,s8,x8/7,pf/l,x10/9,pe/k,x11/5,s8,x4/13,s4,x15/1,s3,x13/0,pf/g,x3/14,s3,x1/2,s1,x15/8,pd/i,s15,x10/14,po/n,x12/11,pj/b,x8/9,pk/i,s8,x0/3,s15,x5/14,s7,x15/4,s13,x7/10,s13,x8/6,pp/d,x13/4,s3,x8/10,pl/o,x0/3,s5,x15/1,ph/d,x10/11,s11,x3/13,pn/g,x7/14,pk/e,x12/4,s4,x8/1,pm/h,x11/14,s7,x1/0,s15,x6/14,s12,x5/3,s1,x9/6,po/j,x13/14,pf/m,s13,x3/12,s8,x7/1,s11,x5/14,pj/g,x9/1,s11,x15/14,s10,pb/o,x7/4,s9,x15/14,s3,x6/8,s2,x1/4,pj/g,x9/6,s11,x7/0,s8,x3/2,s6,x6/1,pp/d,x2/5,pm/a,x0/13,s6,x15/10,s7,x3/12,s2,x14/1,s4,x7/4,s15,x5/13,pj/n,x15/6,s1,x1/10,s1,x12/7,s3,x5/4,s1,x2/6,s14,x10/3,s2,x8/0,s3,x10/4,pe/l,x0/14,s2,x3/15,s15,x12/8,s8,x5/4,s7,pm/b,x7/14,s7,x3/2,s9,x10/5,s15,x3/8,s8,x10/4,s4,x9/6,pl/g,x11/0,s9,x5/3,s4,x10/0,s6,x13/11,s3,pk/h,x12/9,s4,x15/8,po/b,s3,x9/1,s14,x6/10,pc/j,x1/8,pl/m,s14,x5/4,pj/d,x3/13,s13,x7/1,pp/n,s6,x12/4,pi/h,x10/7,s14,x3/15,s9,x10/1,po/d,x7/11,s6,x6/9,pe/f,s10,x2/0,s3,x7/4,s2,x6/12,s9,x8/2,s2,x9/0,s12,x14/15,s5,x7/10,pp/d,x6/12,s13,x13/14,s11,x15/1,s5,x10/13,s10,x7/15,s11,x6/1,s14,x9/13,s3,x11/8,s1,x12/14,s2,x3/10,pc/j,x0/1,s2,x7/15,pb/d,x1/14,s12,x8/15,pl/e,s7,x3/1,s15,x12/8,po/m,x3/1,s8,x14/13,s5,x1/11,s13,x7/10,pk/n,x3/0,s14,x5/12,pc/f,s12,x4/15,pk/h,x11/0,s12,x3/4,s9,x11/1,s12,x0/12,pd/n,x13/11,s14,x14/0,s9,x5/3,pa/e,x10/6,s12,x9/7,s4,x1/0,pi/f,x7/3,s4,x2/10,s6,x0/1,s10,x7/2,s12,pm/h,x5/12,s1,x6/15,s12,x1/14,s3,x0/13,s11,x4/8,s6,x6/15,pb/p,x13/0,pc/g,x4/12,pm/l,x9/1,s6,x12/7,pp/g,s14,x9/10,s4,x1/11,s13,x0/15,s5,x10/4,pb/m,x7/9,s6,x3/15,pc/g,x2/10,pb/p,x7/15,pe/f,x3/5,pa/i,x8/13,s15,x1/11,s13,po/e,s6,x5/0,s6,x1/13,pn/j,x3/12,pe/p,x15/0,s11,pc/d,x13/6,pe/f,x9/2,s13,x4/11,s14,x14/1,pb/g,s10,x2/5,ph/o,x8/4,pp/m,x10/15,s14,x5/7,s10,x8/1,s14,x0/14,s10,po/i,x7/13,pe/l,x0/1,s8,pc/o,x15/12,pg/m,x8/1,s4,x13/14,s11,x8/15,s7,x4/11,s13,x5/10,s11,x8/6,s7,x0/9,pj/p,x2/6,s6,x7/15,s9,x8/13,pm/d,x3/4,s15,x11/10,s6,x15/3,s15,x0/8,s8,x6/11,s8,pn/l,x3/5,pd/c,x14/2,s6,x15/10,s11,ph/b,x9/13,s7,x10/0,po/i,x9/7,pd/h,x15/8,pn/f,x3/4,pp/b,x8/9,pa/m,x3/5,pi/k,x6/8,po/g,s6,x15/2,s4,x3/5,s12,x13/6,s3,x3/0,s6,x10/15,s12,x0/5,pc/b,x12/9,s11,pa/m,x13/1,s1,x8/7,pc/p,x9/4,s6,x7/5,s9,x11/4,s12,x9/5,s14,x2/10,s9,x14/7,po/e,x13/9,s12,x8/1,s9,x11/0,s10,x4/13,pi/c,x10/1,s3,x8/9,s11,x15/0,pl/g,x8/13,s3,x12/7,s6,x14/5,ph/m,x0/10,pn/a,x9/6,s8,x12/3,s13,x11/15,s1,x2/10,s9,x14/15,pb/m,x10/1,pf/o,x14/2,s13,x11/15,pi/h,x1/0,pg/e,x9/12,s11,x11/7,po/p,x10/3,pa/d,x5/13,s2,x14/1,s10,x0/9,s10,x1/7,pl/h,x3/10,po/n,x0/9,s3,x10/3,s10,x15/8,pe/j,s2,x10/1,ph/k,x9/11,s12,x12/15,pc/n,x14/3,pe/k,x6/2,s7,x10/14,ph/n,x9/12,s5,pc/k,x14/0,po/d,x5/12,s4,x14/11,ph/a,x15/4,pf/g,x6/2,pl/a,x3/5,pi/o,x13/7,s12,pk/e,x8/12,pj/g,x4/15,pf/p,s2,x12/10,s12,x4/7,po/i,x6/11,s6,x2/14,s1,x11/12,s5,x7/9,pc/a,x1/10,ph/i,x3/7,pa/b,x12/8,pm/g,x4/13,s1,x10/1,s10,x9/0,s11,x15/4,ph/f,x0/1,s14,x8/2,s2,x4/12,pp/o,x3/2,s2,x8/6,pe/f,x1/11,ph/n,s11,pb/a,x2/4,s6,pi/p,x14/5,pb/e,s12,x9/8,po/n,x11/1,ph/l,x6/2,pg/e,x0/8,ph/b,x4/6,s7,pf/p,x11/9,s9,x15/5,s6,x7/14,pg/c,x4/2,ph/d,x13/11,s10,x5/10,s8,x9/15,pp/c,x5/0,s4,x10/11,pg/l,x2/4,pa/m,x10/15,s7,pj/f,x2/11,s13,x7/13,pd/a,x1/5,s15,x14/8,pj/p,x6/10,s15,x13/5,s13,x15/7,s7,x0/1,s13,x12/7,s12,x13/14,s12,x3/6,pe/c,x4/15,pf/h,s3,x14/6,po/e,s14,x12/7,s2,x2/10,s10,x0/4,s1,x9/12,s9,x0/4,pn/f,s8,x1/8,s13,x9/5,pd/g,x7/10,s10,x0/11,s6,x9/4,pb/m,x8/1,s13,x5/7,s3,x14/3,pp/c,x4/0,pg/j,x15/6,pf/k,x7/0,pl/j,s7,x6/14,s7,x11/9,s13,x5/14,s13,x8/12,pk/a,x0/7,s12,x4/12,s3,x5/3,s14,x1/12,s15,x14/6,s9,x3/4,s7,x12/14,s9,x9/8,pd/p,x15/7,s9,x10/14,s15,x5/1,pj/f,x0/12,s11,x15/7,s3,x13/4,s13,x12/11,s4,x1/15,pe/c,x12/5,s4,x1/11,pk/o,x8/5,pj/n,x10/9,s10,x1/4,pg/l,x0/8,s2,x12/4,s10,x9/14,s14,x13/6,pe/p,x12/8,s8,x6/1,s2,x10/0,po/b,x4/3,s4,x9/2,pf/h,x14/0,s2,x2/11,pe/k,x14/10,s15,x13/1,s3,x0/11,s13,x9/12,pl/a,x4/15,s2,x10/9,pg/o,x8/2,pi/f,x13/12,s10,x4/7,pn/l,x9/12,pj/g,x13/11,pm/p,x1/8,s6,x14/11,s4,x2/15,s13,x7/0,s5,x8/15,pb/j,x12/5,pf/l,x13/0,s10,x1/12,s13,x15/0,ph/d,x4/8,pe/p,x10/3,pn/c,x0/4,pf/d,s9,x3/13,s15,x11/15,s7,pc/g,x10/5,pk/p,s5,x1/0,s10,x5/4,pd/o,x0/6,s5,x14/9,pn/g,x11/13,s5,pe/p,x2/5,s10,x9/10,s6,x12/15,s8,x14/4,pm/d,s13,x15/13,s11,x7/4,s1,x12/14,pg/j,x2/9,s8,x5/13,s2,x6/7,ph/n,s15,x13/11,s11,pm/i,x2/4,pf/o,s9,x5/7,s14,x11/4,pm/n,s1,x7/13,s5,x0/11,s10,x5/10,s4,x12/6,s12,x1/8,s4,x9/10,pe/j,x2/1,s7,x9/6,pa/f,x15/7,s9,x6/4,s8,x0/10,pk/p,x11/5,s14,x2/0,s10,x9/1,po/a,x8/7,s15,x15/11,s2,pk/c,x3/7,pj/n,x1/8,ph/p,x11/4,pc/a,x3/13,s11,x11/1,s10,x2/5,pp/n,x10/11,s8,x13/9,s12,x11/8,s13,x10/9,pk/m,x3/14,pb/g,s13,x1/4,s5,pi/e,x6/9,s13,x10/11,po/h,x2/3,pj/d,x10/11,pp/c,x7/4,s6,x12/6,pa/b,x4/1,s9,x2/8,pj/m,x4/0,pe/a,x14/12,pf/p,x7/13,s3,x4/15,pn/i,x1/0,pe/f,x5/2,pd/h,x7/10,s8,x5/0,s11,x13/7,s15,x11/8,s12,x13/12,s5,x6/14,s3,x10/2,s2,x14/8,s2,x1/0,s7,pb/n,x7/6,s4,x4/12,s15,x3/7,pc/p,s9,x10/15,s5,x5/1,s12,pg/j,x15/8,pm/h,x1/10,s15,x0/13,s3,x9/12,s1,x1/4,s14,x11/12,s11,x10/7,pl/o,x8/2,s10,x13/7,s8,x11/1,pn/c,s4,x7/15,s4,x14/2,pk/b,x1/10,pc/l,x9/4,pg/a,x5/6,pj/n,x0/12,s15,pp/m,x10/2,pc/i,x15/8,s11,x12/9,s9,x15/7,s1,x1/3,pd/b,x13/9,s12,x12/8,s13,x7/1,pp/g,x13/14,s14,x11/15,s11,x10/8,s1,x14/7,pj/i,x2/13,s1,x10/12,pg/p,x11/4,pd/f,x7/10,s2,x12/4,s5,x6/5,pb/n,x4/15,pk/p,x12/6,s2,x14/7,pi/e,x3/4,s6,x1/8,s13,x13/14,s1,x6/12,pk/f,x1/14,pd/j,x2/0,pe/c,s4,x14/15,s7,x7/9,pf/h,x6/10,pe/a,x8/14,s7,x3/12,pp/j,x2/4,s15,x12/6,pl/b,x10/7,s8,x15/6,pi/p,x8/9,pf/m,x2/3,pa/b,x15/13,pn/j,x12/1,s4,x8/9,s8,x6/12,s6,x9/0,pf/d,s2,x12/15,ph/c,x10/4,s9,x5/13,s11,x6/14,pa/k,x7/13,ph/f,x5/11,pd/k,x0/2,s6,x8/15,pj/n,x10/13,s3,x8/1,s15,x13/9,s7,x12/8,s10,x10/11,s3,x0/12,s11,pp/e,x1/9,pc/o,x6/8,s9,x7/14,s12,x9/6,pn/m,x10/0,s15,x2/7,s11,x0/12,pi/c,x5/9,s11,x15/14,s9,x3/10,pl/a,x0/4,pk/i,x11/2,po/j,x10/12,pa/f,x15/5,pm/n,x8/11,s15,x4/13,pe/k,s3,x6/1,s5,x4/14,pg/c,x10/0,s8,x1/6,ph/f,x9/14,s1,x6/7,pe/m,x10/11,pc/f,x14/4,pe/n,x3/10,s15,x8/6,pg/o,x0/13,s7,x9/14,pm/d,x8/15,s2,x1/5,s7,x12/15,s11,x0/13,s7,x5/10,s3,x8/6,s15,x0/11,s7,x4/5,s1,x2/11,s9,x4/1,s8,x7/13,s15,x0/10,s7,x3/7,pb/j,x1/8,pc/a,x10/7,s9,x5/11,s6,x2/0,s13,pi/b,x8/5,s4,x10/4,pe/p,s15,x11/7,pd/f,s10,pn/j,x13/3,s4,x5/14,pe/p,s15,x10/2,pa/h,x1/11,pc/e,x12/10,s12,x7/6,pa/h,x12/8,pk/m,x9/1,s7,x4/13,pg/d,x6/8,s5,x1/3,s13,x5/15,pe/j,x14/8,s6,x10/13,s2,x11/0,pi/g,x7/15,s9,x8/0,s2,x9/13,s12,x10/12,pc/e,x14/13,pn/f,x9/11,pd/m,x6/12,pf/e,x5/7,s5,x13/8,s6,x6/4,s11,x3/2,s12,x15/14,s5,x3/11,s12,pg/i,x4/2,s14,x0/14,po/k,x15/3,s8,x0/8,pn/l,x15/1,s7,x6/12,pj/d,x0/5,s5,x2/9,pn/o,x10/14,s6,x15/6,s4,x14/5,pj/g,x11/7,s2,x9/5,pp/o,x6/8,pi/n,x9/4,s11,x7/15,pm/k,x12/10,s12,x9/15,s4,x1/13,s2,x11/14,pj/b,x4/1,pf/d,s1,x9/0,s1,x3/15,pe/a,x2/1,s14,x4/12,s11,po/p,x0/6,s11,x11/14,s1,x8/13,pf/j,x14/7,s10,x11/5,s11,x6/0,pg/i,x13/4,s4,x12/3,pc/f,x1/10,s7,x0/5,pp/a,x9/6,pn/o,x3/4,s13,x5/1,s2,x7/9,s13,x0/5,s12,x15/9,s6,x1/8,pb/f,x3/15,s7,x0/10,s3,x7/13,pl/j,x8/9,s4,x0/5,s10,x7/10,s3,pn/g,x1/14,s11,x5/13,pc/f,x7/12,pk/i,x0/5,s3,pe/l,x2/6,s15,x0/10,s11,x9/14,ph/f,s7,x1/4,s4,pd/j,x15/9,pl/c,s5,x2/10,s14,x5/14,s9,x12/10,s8,x9/4,s8,x14/8,pd/f,x3/13,pl/a,x1/8,s11,x2/10,pn/d,s9,x8/13,s12,x10/3,pa/k,s6,x0/11,po/e,s4,x13/8,pl/f,x1/11,pa/m,s2,x10/12,pi/b,x6/7,s3,x5/14,pj/d,x0/9,s1,pk/c,x12/5,pa/m,x4/2,po/p,x15/7,pm/n,x5/14,s2,x3/8,s7,x13/15,pp/e,x11/6,s9,x14/2,s7,x4/12,s5,x7/5,s7,x4/6,s5,pc/j,x1/5,pl/e,x8/2,s8,x11/3,s7,x8/4,pm/i,x11/7,s6,x8/15,s11,x11/7,pk/j,x2/9,s1,x7/10,pe/c,x9/1,s13,x15/3,s4,x13/5,s8,x2/8,s9,x13/14,ph/p,x6/9,s7,x2/14,po/g,x9/6,pf/c,x0/11,s5,x1/9,po/p,x10/14,s1,x5/6,s1,x8/10,pd/i,x5/9,s4,x2/3,ph/b,x4/5,s6,x8/9,s15,x12/11,s12,pk/e,x13/0,s10,x14/2,s13,x8/10,s15,x14/12,s11,x2/10,pg/c,x11/15,s1,x2/14,s9,x6/11,pp/i,s14,x9/5,pe/j,x8/0,s12,pn/f,x5/4,pj/h,x10/15,s1,x8/1,s3,x4/12,pp/c,x14/1,s12,x2/6,s1,x13/4,s15,ph/l,x3/6,s15,x11/4,pp/j,x13/12,pb/a,x14/10,pj/i,x0/2,s8,x13/14,s1,x10/4,s5,x5/15,s15,x13/8,s4,x2/15,pa/b,x7/5,pf/m,s6,pa/b,x15/2,s2,x9/7,pm/f,s14,x13/6,s8,x4/9,pp/l,x11/6,s15,x13/15,pk/b,s11,x1/12,pi/m,x0/8,pn/d,x10/15,ph/l,x12/1,pc/p,x0/3,s1,pk/n,x11/6,s4,x10/5,s8,x3/15,s14,x11/14,pg/l,x8/1,s11,x2/3,s12,x7/0,pf/d diff --git a/day16/part1.js b/day16/part1.js new file mode 100644 index 0000000..970d963 --- /dev/null +++ b/day16/part1.js @@ -0,0 +1,11 @@ +var items = "abcdefghijklmnop".split(""); +s = (i) => {items = items.splice(-i).concat(items);} +x = (a,b) => {[items[a], items[b]] = [items[b], items[a]]} +p = (a,b) => {x(items.indexOf(a), items.indexOf(b))} + +var input = require("fs").readFileSync("input.txt").toString().replace("\n", ""); +var input = "," + input + ","; +var expr = input.replace(/,/g, ");").replace(/;([sxp])/g, ";$1(").replace(/([a-z])\/([a-z])/g, "'$1'/'$2'").replace(/\//g, ","); +expr = expr.substring(2); +eval(expr); +console.log(items.join("")); diff --git a/day16/part2.js b/day16/part2.js new file mode 100644 index 0000000..ed7b0c3 --- /dev/null +++ b/day16/part2.js @@ -0,0 +1,19 @@ +var items = "abcdefghijklmnop".split(""); +s = (i) => {items = items.splice(-i).concat(items);} +x = (a,b) => {[items[a], items[b]] = [items[b], items[a]]} +p = (a,b) => {x(items.indexOf(a), items.indexOf(b))} + +var input = require("fs").readFileSync("input.txt").toString().replace("\n", ""); +var input = "," + input + ","; +var expr = input.replace(/,/g, ");").replace(/;([sxp])/g, ";$1(").replace(/([a-z])\/([a-z])/g, "'$1'/'$2'").replace(/\//g, ","); +expr = expr.substring(2); +var state = ""; +var states = []; +while(states.indexOf(state) == -1){ + states.push(state); + eval(expr); + state = items.join(""); +} +states = states.filter((a)=>(a)); +var num = 1000000000; +console.log(states[(num-1)%states.length]);