Skip to content

Instantly share code, notes, and snippets.

@Archenoth
Last active December 25, 2022 17:33
Show Gist options
  • Save Archenoth/19bf137701063d6b0bd42358e92d7125 to your computer and use it in GitHub Desktop.
Save Archenoth/19bf137701063d6b0bd42358e92d7125 to your computer and use it in GitHub Desktop.

Advent Of Code 2022

(require '[clojure.string :as str]
         '[clojure.core.match :refer [match]]
         '[clojure.edn :as edn])

Day 1: Calorie Counting

Santa’s reindeer typically eat regular reindeer food, but they need a lot of magical energy to deliver presents on Christmas. For that, their favorite snack is a special type of star fruit that only grows deep in the jungle. The Elves have brought you on their annual expedition to the grove where the fruit grows.

To supply enough magical energy, the expedition needs to retrieve a minimum of fifty stars by December 25th. Although the Elves assure you that the grove has plenty of fruit, you decide to grab any fruit you see along the way, just in case.

Collect stars by solving puzzles. Two puzzles will be made available on each day in the Advent calendar; the second puzzle is unlocked when you complete the first. Each puzzle grants one star. Good luck!

The jungle must be too overgrown and difficult to navigate in vehicles or access from the air; the Elves’ expedition traditionally goes on foot. As your boats approach land, the Elves begin taking inventory of their supplies. One important consideration is food - in particular, the number of Calories each Elf is carrying (your puzzle input).

The Elves take turns writing down the number of Calories contained by the various meals, snacks, rations, etc. that they’ve brought with them, one item per line. Each Elf separates their own inventory from the previous Elf’s inventory (if any) by a blank line.

For example, suppose the Elves finish writing their items’ Calories and end up with the following list:

1000 2000 3000

4000

5000 6000

7000 8000 9000

10000

This list represents the Calories of the food carried by five Elves:

The first Elf is carrying food with 1000, 2000, and 3000 Calories, a total of 6000 Calories. The second Elf is carrying one food item with 4000 Calories. The third Elf is carrying food with 5000 and 6000 Calories, a total of 11000 Calories. The fourth Elf is carrying food with 7000, 8000, and 9000 Calories, a total of 24000 Calories. The fifth Elf is carrying one food item with 10000 Calories.

In case the Elves get hungry and need extra snacks, they need to know which Elf to ask: they’d like to know how many Calories are being carried by the Elf carrying the most Calories. In the example above, this is 24000 (carried by the fourth Elf).

Find the Elf carrying the most Calories. How many total Calories is that Elf carrying?

(def input
  (for [group (str/split (slurp "input-1.txt") #"\n\n")
        :let [lines (str/split group #"\n")]]
    (reduce + (map #(Integer/parseInt %) lines))))
(apply max input)

Part Two

By the time you calculate the answer to the Elves’ question, they’ve already realized that the Elf carrying the most Calories of food might eventually run out of snacks.

To avoid this unacceptable situation, the Elves would instead like to know the total Calories carried by the top three Elves carrying the most Calories. That way, even if one of those Elves runs out of snacks, they still have two backups.

In the example above, the top three Elves are the fourth Elf (with 24000 Calories), then the third Elf (with 11000 Calories), then the fifth Elf (with 10000 Calories). The sum of the Calories carried by these three elves is 45000.

Find the top three Elves carrying the most Calories. How many Calories are those Elves carrying in total?

(->> (sort > input)
     (take 3)
     (apply +))

Day 2: Rock Paper Scissors

The Elves begin to set up camp on the beach. To decide whose tent gets to be closest to the snack storage, a giant Rock Paper Scissors tournament is already in progress.

Rock Paper Scissors is a game between two players. Each game contains many rounds; in each round, the players each simultaneously choose one of Rock, Paper, or Scissors using a hand shape. Then, a winner for that round is selected: Rock defeats Scissors, Scissors defeats Paper, and Paper defeats Rock. If both players choose the same shape, the round instead ends in a draw.

Appreciative of your help yesterday, one Elf gives you an encrypted strategy guide (your puzzle input) that they say will be sure to help you win. “The first column is what your opponent is going to play: A for Rock, B for Paper, and C for Scissors. The second column–” Suddenly, the Elf is called away to help with someone’s tent.

The second column, you reason, must be what you should play in response: X for Rock, Y for Paper, and Z for Scissors. Winning every time would be suspicious, so the responses must have been carefully chosen.

The winner of the whole tournament is the player with the highest score. Your total score is the sum of your scores for each round. The score for a single round is the score for the shape you selected (1 for Rock, 2 for Paper, and 3 for Scissors) plus the score for the outcome of the round (0 if you lost, 3 if the round was a draw, and 6 if you won).

Since you can’t be sure if the Elf is trying to help you or trick you, you should calculate the score you would get if you were to follow the strategy guide.

For example, suppose you were given the following strategy guide:

A Y B X C Z

This strategy guide predicts and recommends the following:

In the first round, your opponent will choose Rock (A), and you should choose Paper (Y). This ends in a win for you with a score of 8 (2 because you chose Paper + 6 because you won). In the second round, your opponent will choose Paper (B), and you should choose Rock (X). This ends in a loss for you with a score of 1 (1 + 0). The third round is a draw with both players choosing Scissors, giving you a score of 3 + 3 = 6.

In this example, if you were to follow the strategy guide, you would get a total score of 15 (8 + 1 + 6).

What would your total score be if everything goes exactly according to your strategy guide?

(local input
  (icollect [line (io.lines "input-2.txt")]
    [((line:gmatch "(%u) (%u)"))]))
(fn score [[_ ours &as move]]
  (+ (. {:r 1 :p 2 :s 3} ours)
     (match move
       [a a] 3
       (where (or [:r :p] [:p :s] [:s :r])) 6
       _ 0)))
(let [their-move {:A :r :B :p :C :s}
      our-move {:X :r :Y :p :Z :s}]
  (accumulate [acc 0
               _ [theirs ours] (ipairs input)]
    (let [move [(. their-move theirs) (. our-move ours)]]
      (+ acc (score move)))))

Part Two

The Elf finishes helping with the tent and sneaks back over to you. “Anyway, the second column says how the round needs to end: X means you need to lose, Y means you need to end the round in a draw, and Z means you need to win. Good luck!”

The total score is still calculated in the same way, but now you need to figure out what shape to choose so the round ends as indicated. The example above now goes like this:

In the first round, your opponent will choose Rock (A), and you need the round to end in a draw (Y), so you also choose Rock. This gives you a score of 1 + 3 = 4. In the second round, your opponent will choose Paper (B), and you choose Rock so you lose (X) with a score of 1 + 0 = 1. In the third round, you will defeat your opponent’s Scissors with Rock for a score of 1 + 6 = 7.

Now that you’re correctly decrypting the ultra top secret strategy guide, you would get a total score of 12.

Following the Elf’s instructions for the second column, what would your total score be if everything goes exactly according to your strategy guide?

(let [their-move {:A :r :B :p :C :s}
      goals {:AX :s :AY :r :AZ :p
             :BX :r :BY :p :BZ :s
             :CX :p :CY :s :CZ :r}]
  (accumulate [acc 0
               _ [theirs goal] (ipairs input)]
    (let [move [(. their-move theirs) (. goals (.. theirs goal))]]
      (+ acc (score move)))))

Day 3: Rucksack Reorganization

One Elf has the important job of loading all of the rucksacks with supplies for the jungle journey. Unfortunately, that Elf didn’t quite follow the packing instructions, and so a few items now need to be rearranged.

Each rucksack has two large compartments. All items of a given type are meant to go into exactly one of the two compartments. The Elf that did the packing failed to follow this rule for exactly one item type per rucksack.

The Elves have made a list of all of the items currently in each rucksack (your puzzle input), but they need your help finding the errors. Every item type is identified by a single lowercase or uppercase letter (that is, a and A refer to different types of items).

The list of items for each rucksack is given as characters all on a single line. A given rucksack always has the same number of items in each of its two compartments, so the first half of the characters represent items in the first compartment, while the second half of the characters represent items in the second compartment.

For example, suppose you have the following list of contents from six rucksacks:

vJrwpWtwJgWrhcsFMMfFFhFp jqHRNqRjqzjGDLGLrsFMfFZSrLrFZsSL PmmdzqPrVvPwwTWBwg wMqvLMZHhHMvwLHjbvcjnnSBnvTQFn ttgJtRGJQctTZtZT CrZsJsPPZsGzwwsLwLmpwMDw

The first rucksack contains the items vJrwpWtwJgWrhcsFMMfFFhFp, which means its first compartment contains the items vJrwpWtwJgWr, while the second compartment contains the items hcsFMMfFFhFp. The only item type that appears in both compartments is lowercase p. The second rucksack’s compartments contain jqHRNqRjqzjGDLGL and rsFMfFZSrLrFZsSL. The only item type that appears in both compartments is uppercase L. The third rucksack’s compartments contain PmmdzqPrV and vPwwTWBwg; the only common item type is uppercase P. The fourth rucksack’s compartments only share item type v. The fifth rucksack’s compartments only share item type t. The sixth rucksack’s compartments only share item type s.

To help prioritize item rearrangement, every item type can be converted to a priority:

Lowercase item types a through z have priorities 1 through 26. Uppercase item types A through Z have priorities 27 through 52.

In the above example, the priority of the item type that appears in both compartments of each rucksack is 16 (p), 38 (L), 42 (P), 22 (v), 20 (t), and 19 (s); the sum of these is 157.

Find the item type that appears in both compartments of each rucksack. What is the sum of the priorities of those item types?

(def input (str/split (slurp "input-3.txt") #"\n"))

(def rucksacks
  (for [rucksack input]
    (map set (split-at (/ (count rucksack) 2) rucksack))))

(defn char->priority [char]
  (let [code (int char)]
    (cond
      (<= (int \a) code) (+ 1 (- code (int \a)))
      :else (+ 27 (- code (int \A))))))
(->> rucksacks
     (map (fn [[c1 c2]] (filter c1 c2)))
     flatten
     (map char->priority)
     (reduce +))

Part Two

As you finish identifying the misplaced items, the Elves come to you with another issue.

For safety, the Elves are divided into groups of three. Every Elf carries a badge that identifies their group. For efficiency, within each group of three Elves, the badge is the only item type carried by all three Elves. That is, if a group’s badge is item type B, then all three Elves will have item type B somewhere in their rucksack, and at most two of the Elves will be carrying any other item type.

The problem is that someone forgot to put this year’s updated authenticity sticker on the badges. All of the badges need to be pulled out of the rucksacks so the new authenticity stickers can be attached.

Additionally, nobody wrote down which item type corresponds to each group’s badges. The only way to tell which item type is the right one is by finding the one item type that is common between all three Elves in each group.

Every set of three lines in your list corresponds to a single group, but each group can have a different badge item type. So, in the above example, the first group’s rucksacks are the first three lines:

vJrwpWtwJgWrhcsFMMfFFhFp jqHRNqRjqzjGDLGLrsFMfFZSrLrFZsSL PmmdzqPrVvPwwTWBwg

And the second group’s rucksacks are the next three lines:

wMqvLMZHhHMvwLHjbvcjnnSBnvTQFn ttgJtRGJQctTZtZT CrZsJsPPZsGzwwsLwLmpwMDw

In the first group, the only item type that appears in all three rucksacks is lowercase r; this must be their badges. In the second group, their badge item type must be Z.

Priorities for these items must still be found to organize the sticker attachment efforts: here, they are 18 (r) for the first group and 52 (Z) for the second group. The sum of these is 70.

Find the item type that corresponds to the badges of each three-Elf group. What is the sum of the priorities of those item types?

(loop [[first second third & rest] input
       acc 0]
  (if-not third
    acc
    (let [[common] (filter (set third) (filter (set first) (set second)))]
      (recur rest (+ acc (char->priority common))))))

Day 4: Camp Cleanup

Space needs to be cleared before the last supplies can be unloaded from the ships, and so several Elves have been assigned the job of cleaning up sections of the camp. Every section has a unique ID number, and each Elf is assigned a range of section IDs.

However, as some of the Elves compare their section assignments with each other, they’ve noticed that many of the assignments overlap. To try to quickly find overlaps and reduce duplicated effort, the Elves pair up and make a big list of the section assignments for each pair (your puzzle input).

For example, consider the following list of section assignment pairs:

2-4,6-8 2-3,4-5 5-7,7-9 2-8,3-7 6-6,4-6 2-6,4-8

For the first few pairs, this list means:

Within the first pair of Elves, the first Elf was assigned sections 2-4 (sections 2, 3, and 4), while the second Elf was assigned sections 6-8 (sections 6, 7, 8). The Elves in the second pair were each assigned two sections. The Elves in the third pair were each assigned three sections: one got sections 5, 6, and 7, while the other also got 7, plus 8 and 9.

This example list uses single-digit section IDs to make it easier to draw; your actual list might contain larger numbers. Visually, these pairs of section assignments look like this:

.234….. 2-4 …..678. 6-8

.23…… 2-3 …45…. 4-5

….567.. 5-7 ……789 7-9

.2345678. 2-8 ..34567.. 3-7

…..6… 6-6 …456… 4-6

.23456… 2-6 …45678. 4-8

Some of the pairs have noticed that one of their assignments fully contains the other. For example, 2-8 fully contains 3-7, and 6-6 is fully contained by 4-6. In pairs where one assignment fully contains the other, one Elf in the pair would be exclusively cleaning sections their partner will already be cleaning, so these seem like the most in need of reconsideration. In this example, there are 2 such pairs.

In how many assignment pairs does one range fully contain the other?

(def input
  (for [line (str/split-lines (slurp "input-4.txt"))
        :let [[_ & match] (re-find #"(\d+)-(\d+),(\d+)-(\d+)" line)]]
    (map #(Integer/parseInt %) match)))
(defn is-contain? [[s1 e1 s2 e2]]
   (or (and (>= s1 s2) (<= e1 e2))
       (and (>= s2 s1) (<= e2 e1))))

(count (filter is-contain? input))

Part Two

It seems like there is still quite a bit of duplicate work planned. Instead, the Elves would like to know the number of pairs that overlap at all.

In the above example, the first two pairs (2-4,6-8 and 2-3,4-5) don’t overlap, while the remaining four pairs (5-7,7-9, 2-8,3-7, 6-6,4-6, and 2-6,4-8) do overlap:

5-7,7-9 overlaps in a single section, 7. 2-8,3-7 overlaps all of the sections 3 through 7. 6-6,4-6 overlaps in a single section, 6. 2-6,4-8 overlaps in sections 4, 5, and 6.

So, in this example, the number of overlapping assignment pairs is 4.

In how many assignment pairs do the ranges overlap?

(defn is-overlap? [[s1 e1 s2 e2]]
  (or (and (>= e1 s2) (<= s1 s2))
      (and (>= e2 s1) (<= s2 s1))))

(count (filter is-overlap? input))

Day 5: Supply Stacks

The expedition can depart as soon as the final supplies have been unloaded from the ships. Supplies are stored in stacks of marked crates, but because the needed supplies are buried under many other crates, the crates need to be rearranged.

The ship has a giant cargo crane capable of moving crates between stacks. To ensure none of the crates get crushed or fall over, the crane operator will rearrange them in a series of carefully-planned steps. After the crates are rearranged, the desired crates will be at the top of each stack.

The Elves don’t want to interrupt the crane operator during this delicate procedure, but they forgot to ask her which crate will end up where, and they want to be ready to unload them as soon as possible so they can embark.

They do, however, have a drawing of the starting stacks of crates and the rearrangement procedure (your puzzle input). For example:

[D] [N] [C] [Z] [M] [P] 1 2 3

move 1 from 2 to 1 move 3 from 1 to 3 move 2 from 2 to 1 move 1 from 1 to 2

In this example, there are three stacks of crates. Stack 1 contains two crates: crate Z is on the bottom, and crate N is on top. Stack 2 contains three crates; from bottom to top, they are crates M, C, and D. Finally, stack 3 contains a single crate, P.

Then, the rearrangement procedure is given. In each step of the procedure, a quantity of crates is moved from one stack to a different stack. In the first step of the above rearrangement procedure, one crate is moved from stack 2 to stack 1, resulting in this configuration:

[D] [N] [C] [Z] [M] [P] 1 2 3

In the second step, three crates are moved from stack 1 to stack 3. Crates are moved one at a time, so the first crate to be moved (D) ends up below the second and third crates:

[Z] [N] [C] [D] [M] [P] 1 2 3

Then, both crates are moved from stack 2 to stack 1. Again, because crates are moved one at a time, crate C ends up below crate M:

[Z] [N] [M] [D] [C] [P] 1 2 3

Finally, one crate is moved from stack 1 to stack 2:

[Z] [N] [D] [C] [M] [P] 1 2 3

The Elves just need to know which crate will end up on top of each stack; in this example, the top crates are C in stack 1, M in stack 2, and Z in stack 3, so you should combine these together and give the Elves the message CMZ.

After the rearrangement procedure completes, what crate ends up on top of each stack?

(let [[stacks moves] (str/split (slurp "input-5.txt") #"\n\n")
      stack-re (re-pattern (str/join (repeat 9 "[\\[ ](.)[\\] ] ?")))]

  (def moves
    (for [move (str/split moves #"\n")
          :let [[_ num from to] (re-find #"move (\d+) from (\d+) to (\d+)" move)]]
      {:from (Integer/parseInt from) :to (Integer/parseInt to) :num (Integer/parseInt num)}))

  (def stacks
    (loop [[line & rest] (-> stacks str/split-lines reverse vec rest)
           stacks (vec (repeat 8 []))]
      (if-not line
        stacks
        (let [[_ & row] (map #(when-not (= " " %) %) (re-find stack-re line))
              stacks (vec (map-indexed #(concat (get stacks %1) %2) row))]
          (recur rest stacks))))))
(loop [[{:keys [from to num]} & rest] moves
       stacks stacks]
  (if-not to
    (map last stacks)
    (let [from (- from 1) to (- to 1)
          from-stack (stacks from)
          to-stack (concat (stacks to) (reverse (take-last num from-stack)))]
      (recur rest (assoc stacks from (drop-last num from-stack) to to-stack)))))

Part Two

As you watch the crane operator expertly rearrange the crates, you notice the process isn’t following your prediction.

Some mud was covering the writing on the side of the crane, and you quickly wipe it away. The crane isn’t a CrateMover 9000 - it’s a CrateMover 9001.

The CrateMover 9001 is notable for many new and exciting features: air conditioning, leather seats, an extra cup holder, and the ability to pick up and move multiple crates at once.

Again considering the example above, the crates begin in the same configuration:

[D] [N] [C] [Z] [M] [P] 1 2 3

Moving a single crate from stack 2 to stack 1 behaves the same as before:

[D] [N] [C] [Z] [M] [P] 1 2 3

However, the action of moving three crates from stack 1 to stack 3 means that those three moved crates stay in the same order, resulting in this new configuration:

[D] [N] [C] [Z] [M] [P] 1 2 3

Next, as both crates are moved from stack 2 to stack 1, they retain their order as well:

[D] [N] [C] [Z] [M] [P] 1 2 3

Finally, a single crate is still moved from stack 1 to stack 2, but now it’s crate C that gets moved:

[D] [N] [Z] [M] [C] [P] 1 2 3

In this example, the CrateMover 9001 has put the crates in a totally different order: MCD.

Before the rearrangement process finishes, update your simulation so that the Elves know where they should stand to be ready to unload the final supplies. After the rearrangement procedure completes, what crate ends up on top of each stack?

(loop [[{:keys [from to num]} & rest] moves
       stacks stacks]
  (if-not to
    (map last stacks)
    (let [from (- from 1) to (- to 1)
          from-stack (stacks from)
          to-stack (concat (stacks to) (take-last num from-stack))]
      (recur rest (assoc stacks from (drop-last num from-stack) to to-stack)))))

Day 6: Tuning Trouble

The preparations are finally complete; you and the Elves leave camp on foot and begin to make your way toward the star fruit grove.

As you move through the dense undergrowth, one of the Elves gives you a handheld device. He says that it has many fancy features, but the most important one to set up right now is the communication system.

However, because he’s heard you have significant experience dealing with signal-based systems, he convinced the other Elves that it would be okay to give you their one malfunctioning device - surely you’ll have no problem fixing it.

As if inspired by comedic timing, the device emits a few colorful sparks.

To be able to communicate with the Elves, the device needs to lock on to their signal. The signal is a series of seemingly-random characters that the device receives one at a time.

To fix the communication system, you need to add a subroutine to the device that detects a start-of-packet marker in the datastream. In the protocol being used by the Elves, the start of a packet is indicated by a sequence of four characters that are all different.

The device will send your subroutine a datastream buffer (your puzzle input); your subroutine needs to identify the first position where the four most recently received characters were all different. Specifically, it needs to report the number of characters from the beginning of the buffer to the end of the first such four-character marker.

For example, suppose you receive the following datastream buffer:

mjqjpqmgbljsphdztnvjfqwrcgsmlb

After the first three characters (mjq) have been received, there haven’t been enough characters received yet to find the marker. The first time a marker could occur is after the fourth character is received, making the most recent four characters mjqj. Because j is repeated, this isn’t a marker.

The first time a marker appears is after the seventh character arrives. Once it does, the last four characters received are jpqm, which are all different. In this case, your subroutine should report the value 7, because the first start-of-packet marker is complete after 7 characters have been processed.

Here are a few more examples:

bvwbjplbgvbhsrlpgdmjqwftvncz: first marker after character 5 nppdvjthqldpwncqszvftbrmjlhg: first marker after character 6 nznrnfrfntjfmvfwmzdfjlvtqnbhcprsg: first marker after character 10 zcfzfwzzqfrljwzlrfnpqdbhtmscgvjw: first marker after character 11

How many characters need to be processed before the first start-of-packet marker is detected?

(def input (vec (slurp "input-6.txt")))
(loop [[chr & rest] input
       processed []]
  (if (or (not chr) (= (count (set (take-last 4 processed))) 4))
    (count processed)
    (recur rest (conj processed chr))))

Part Two

Your device’s communication system is correctly detecting packets, but still isn’t working. It looks like it also needs to look for messages.

A start-of-message marker is just like a start-of-packet marker, except it consists of 14 distinct characters rather than 4.

Here are the first positions of start-of-message markers for all of the above examples:

mjqjpqmgbljsphdztnvjfqwrcgsmlb: first marker after character 19 bvwbjplbgvbhsrlpgdmjqwftvncz: first marker after character 23 nppdvjthqldpwncqszvftbrmjlhg: first marker after character 23 nznrnfrfntjfmvfwmzdfjlvtqnbhcprsg: first marker after character 29 zcfzfwzzqfrljwzlrfnpqdbhtmscgvjw: first marker after character 26

How many characters need to be processed before the first start-of-message marker is detected?

(loop [[chr & rest] input
       processed []]
  (if (or (not chr) (= (count (set (take-last 14 processed))) 14))
    (count processed)
    (recur rest (conj processed chr))))

Day 7: No Space Left On Device

You can hear birds chirping and raindrops hitting leaves as the expedition proceeds. Occasionally, you can even hear much louder sounds in the distance; how big do the animals get out here, anyway?

The device the Elves gave you has problems with more than just its communication system. You try to run a system update:

$ system-update –please –pretty-please-with-sugar-on-top Error: No space left on device

Perhaps you can delete some files to make space for the update?

You browse around the filesystem to assess the situation and save the resulting terminal output (your puzzle input). For example:

$ cd / $ ls dir a 14848514 b.txt 8504156 c.dat dir d $ cd a $ ls dir e 29116 f 2557 g 62596 h.lst $ cd e $ ls 584 i $ cd .. $ cd .. $ cd d $ ls 4060174 j 8033020 d.log 5626152 d.ext 7214296 k

The filesystem consists of a tree of files (plain data) and directories (which can contain other directories or files). The outermost directory is called /. You can navigate around the filesystem, moving into or out of directories and listing the contents of the directory you’re currently in.

Within the terminal output, lines that begin with $ are commands you executed, very much like some modern computers:

cd means change directory. This changes which directory is the current directory, but the specific result depends on the argument: cd x moves in one level: it looks in the current directory for the directory named x and makes it the current directory. cd .. moves out one level: it finds the directory that contains the current directory, then makes that directory the current directory. cd / switches the current directory to the outermost directory, /. ls means list. It prints out all of the files and directories immediately contained by the current directory: 123 abc means that the current directory contains a file named abc with size 123. dir xyz means that the current directory contains a directory named xyz.

Given the commands and output in the example above, you can determine that the filesystem looks visually like this:

  • / (dir)
    • a (dir)
      • e (dir)
        • i (file, size=584)
      • f (file, size=29116)
      • g (file, size=2557)
      • h.lst (file, size=62596)
    • b.txt (file, size=14848514)
    • c.dat (file, size=8504156)
    • d (dir)
      • j (file, size=4060174)
      • d.log (file, size=8033020)
      • d.ext (file, size=5626152)
      • k (file, size=7214296)

Here, there are four directories: / (the outermost directory), a and d (which are in /), and e (which is in a). These directories also contain files of various sizes.

Since the disk is full, your first step should probably be to find directories that are good candidates for deletion. To do this, you need to determine the total size of each directory. The total size of a directory is the sum of the sizes of the files it contains, directly or indirectly. (Directories themselves do not count as having any intrinsic size.)

The total sizes of the directories above can be found as follows:

The total size of directory e is 584 because it contains a single file i of size 584 and no other directories. The directory a has total size 94853 because it contains files f (size 29116), g (size 2557), and h.lst (size 62596), plus file i indirectly (a contains e which contains i). Directory d has total size 24933642. As the outermost directory, / contains every file. Its total size is 48381165, the sum of the size of every file.

To begin, find all of the directories with a total size of at most 100000, then calculate the sum of their total sizes. In the example above, these directories are a and e; the sum of their total sizes is 95437 (94853 + 584). (As in this example, this process can count files more than once!)

Find all of the directories with a total size of at most 100000. What is the sum of the total sizes of those directories?

(def input
  (for [command (rest (str/split (slurp "input-7.txt") #"\$ "))
        :let [[cmd & output] (str/split-lines command)
              [cmd operand] (str/split cmd #" ")]]
    {:cmd cmd :operand operand :output output}))
(def sizes
  (loop [[{:keys [cmd operand output]} & rest] input
         dir []
         sizes {}]
    (if-not cmd
      sizes
      (case cmd
        "cd" (case operand
               "/" (recur rest [] sizes)
               ".." (recur rest (vec (butlast dir)) sizes)
               (recur rest (conj dir operand) sizes))
        "ls" (->> (map #(str/split % #" ") output)
                  (filter (fn [[type name]] (not= "dir" type)))
                  (map (fn [[size name]] {(conj dir name) (Integer/parseInt size)}))
                  (into sizes)
                  (recur rest dir))))))

(defn add-size-to-folder [folder-sizes folder size]
  (loop [[part & rest] (concat ["/"] folder)
         folder []
         folder-sizes folder-sizes]
    (if-not part
      folder-sizes
      (let [folder (conj folder part)
            new-size (+ (get folder-sizes folder 0) size)]
        (recur rest folder (conj folder-sizes {folder new-size}))))))

(def folder-sizes
  (loop [[[file size] & rest] (vec sizes)
         folder-sizes {}]
    (if-not file
      folder-sizes
      (recur rest (add-size-to-folder folder-sizes (vec (butlast file)) size)))))
(->> (filter (fn [[folder size]] (<= size 100000)) folder-sizes)
     (map second)
     (reduce +))

Part Two

Now, you’re ready to choose a directory to delete.

The total disk space available to the filesystem is 70000000. To run the update, you need unused space of at least 30000000. You need to find a directory you can delete that will free up enough space to run the update.

In the example above, the total size of the outermost directory (and thus the total amount of used space) is 48381165; this means that the size of the unused space must currently be 21618835, which isn’t quite the 30000000 required by the update. Therefore, the update still requires a directory with total size of at least 8381165 to be deleted before it can run.

To achieve this, you have the following options:

Delete directory e, which would increase unused space by 584. Delete directory a, which would increase unused space by 94853. Delete directory d, which would increase unused space by 24933642. Delete directory /, which would increase unused space by 48381165.

Directories e and a are both too small; deleting them would not free up enough space. However, directories d and / are both big enough! Between these, choose the smallest: d, increasing unused space by 24933642.

Find the smallest directory that, if deleted, would free up enough space on the filesystem to run the update. What is the total size of that directory?

(let [remaining (- 70000000 (folder-sizes ["/"]))
      needed (- 30000000 remaining)]
  (->> (sort-by second folder-sizes)
       (filter #(< needed (second %)))
       first))

Day 8: Treetop Tree House

The expedition comes across a peculiar patch of tall trees all planted carefully in a grid. The Elves explain that a previous expedition planted these trees as a reforestation effort. Now, they’re curious if this would be a good location for a tree house.

First, determine whether there is enough tree cover here to keep a tree house hidden. To do this, you need to count the number of trees that are visible from outside the grid when looking directly along a row or column.

The Elves have already launched a quadcopter to generate a map with the height of each tree (your puzzle input). For example:

30373 25512 65332 33549 35390

Each tree is represented as a single digit whose value is its height, where 0 is the shortest and 9 is the tallest.

A tree is visible if all of the other trees between it and an edge of the grid are shorter than it. Only consider trees in the same row or column; that is, only look up, down, left, or right from any given tree.

All of the trees around the edge of the grid are visible - since they are already on the edge, there are no trees to block the view. In this example, that only leaves the interior nine trees to consider:

The top-left 5 is visible from the left and top. (It isn’t visible from the right or bottom since other trees of height 5 are in the way.) The top-middle 5 is visible from the top and right. The top-right 1 is not visible from any direction; for it to be visible, there would need to only be trees of height 0 between it and an edge. The left-middle 5 is visible, but only from the right. The center 3 is not visible from any direction; for it to be visible, there would need to be only trees of at most height 2 between it and an edge. The right-middle 3 is visible from the right. In the bottom row, the middle 5 is visible, but the 3 and 4 are not.

With 16 trees visible on the edge and another 5 visible in the interior, a total of 21 trees are visible in this arrangement.

Consider your map; how many trees are visible from outside the grid?

(def input
  (for [row (str/split-lines (slurp "input-8.txt"))]
    (map (fn [height] {:height (Integer/parseInt (str height))}) row)))
(defn visible-after? [{h1 :height v1? :visible?} {h2 :height v2? :visible?}]
  (and v1? (>= h2 h1)))

(defn add-max-heights-lr [row]
  (loop [[{:keys [height max] :as tree} & rest] row
         rowmax 0
         acc []]
    (if-not tree
      acc
      (let [max (Math/min (or max Integer/MAX_VALUE) rowmax)
            newmax (Math/max rowmax (Math/max max (+ 1 height)))]
        (recur rest newmax (conj acc (assoc tree :max (if (empty? acc) 0 max))))))))

(defn add-max-heights-row [row]
  (->> (add-max-heights-lr row)
       reverse
       add-max-heights-lr
       reverse))

(def trees
  (->> (map add-max-heights-row input)
       (apply mapv vector)
       (map add-max-heights-row)
       (apply mapv vector)))

To visualize this:

(for [row trees]
  (apply str (map #(if (<= (:max %) (:height %)) \# \space) row)))
(loop [[row & rest] trees
       acc 0]
  (if-not row
    acc
    (recur rest (+ acc (count (filter #(<= (:max %) (:height %)) row))))))

Part Two

Content with the amount of tree cover available, the Elves just need to know the best spot to build their tree house: they would like to be able to see a lot of trees.

To measure the viewing distance from a given tree, look up, down, left, and right from that tree; stop if you reach an edge or at the first tree that is the same height or taller than the tree under consideration. (If a tree is right on the edge, at least one of its viewing distances will be zero.)

The Elves don’t care about distant trees taller than those found by the rules above; the proposed tree house has large eaves to keep it dry, so they wouldn’t be able to see higher than the tree house anyway.

In the example above, consider the middle 5 in the second row:

30373 25512 65332 33549 35390

Looking up, its view is not blocked; it can see 1 tree (of height 3). Looking left, its view is blocked immediately; it can see only 1 tree (of height 5, right next to it). Looking right, its view is not blocked; it can see 2 trees. Looking down, its view is blocked eventually; it can see 2 trees (one of height 3, then the tree of height 5 that blocks its view).

A tree’s scenic score is found by multiplying together its viewing distance in each of the four directions. For this tree, this is 4 (found by multiplying 1 * 1 * 2 * 2).

However, you can do even better: consider the tree of height 5 in the middle of the fourth row:

30373 25512 65332 33549 35390

Looking up, its view is blocked at 2 trees (by another tree with a height of 5). Looking left, its view is not blocked; it can see 2 trees. Looking down, its view is also not blocked; it can see 1 tree. Looking right, its view is blocked at 2 trees (by a massive tree of height 9).

This tree’s scenic score is 8 (2 * 2 * 1 * 2); this is the ideal spot for the tree house.

Consider each tree on your map. What is the highest scenic score possible for any tree?

(defn get-tree [x y]
  (-> trees
      (get y)
      (get x)))

(defn tree-line-v [x y height]
  (if (some (partial > 0) [x y height])
    []
    (map #(get-tree x %) (range y (+ y height)))))

(defn trees-aligned [x y]
  (let [up (reverse (tree-line-v x 0 y))
        down (tree-line-v x (+ 1 y) (- (count trees) (+ 1 y)))
        [left [_ & right]] (split-at x (get trees y))]
    {:up up :down down :left (reverse left) :right (or right [])}))

(defn filter-visible [view-height row]
  (loop [[{:keys [height] :as tree} & rest] row
         acc []]
    (if-not tree
      acc
      (let [can-see (conj acc tree)]
        (if (>= height view-height)
          can-see
          (recur rest can-see))))))

(defn trees-visible [x y]
  (let [{view-height :height} (get-tree x y)
        aligned (trees-aligned x y)]
    (into {} (map (fn [[k v]] {k (filter-visible view-height v)}) aligned))))

(defn trees-visible-score [x y]
  (->> (map second (trees-visible x y))
       (map count)
       (reduce *)))
(apply max
  (for [y (range (- (count trees) 1))
        x (range (- (count (first trees)) 1))]
    (trees-visible-score x y)))

Day 9: Rope Bridge

This rope bridge creaks as you walk along it. You aren’t sure how old it is, or whether it can even support your weight.

It seems to support the Elves just fine, though. The bridge spans a gorge which was carved out by the massive river far below you.

You step carefully; as you do, the ropes stretch and twist. You decide to distract yourself by modeling rope physics; maybe you can even figure out where not to step.

Consider a rope with a knot at each end; these knots mark the head and the tail of the rope. If the head moves far enough away from the tail, the tail is pulled toward the head.

Due to nebulous reasoning involving Planck lengths, you should be able to model the positions of the knots on a two-dimensional grid. Then, by following a hypothetical series of motions (your puzzle input) for the head, you can determine how the tail will move.

Due to the aforementioned Planck lengths, the rope must be quite short; in fact, the head (H) and tail (T) must always be touching (diagonally adjacent and even overlapping both count as touching):

…. .TH. ….

…. .H.. ..T. ….

… .H. (H covers T) …

If the head is ever two steps directly up, down, left, or right from the tail, the tail must also move one step in that direction so it remains close enough:

….. ….. ….. .TH.. -> .T.H. -> ..TH. ….. ….. …..

… … … .T. .T. … .H. -> … -> .T. … .H. .H. … … …

Otherwise, if the head and tail aren’t touching and aren’t in the same row or column, the tail always moves one step diagonally to keep up:

….. ….. ….. ….. ..H.. ..H.. ..H.. -> ….. -> ..T.. .T… .T… ….. ….. ….. …..

….. ….. ….. ….. ….. ….. ..H.. -> …H. -> ..TH. .T… .T… ….. ….. ….. …..

You just need to work out where the tail goes as the head follows a series of motions. Assume the head and the tail both start at the same position, overlapping.

For example:

R 4 U 4 L 3 D 1 R 4 D 1 L 5 R 2

This series of motions moves the head right four steps, then up four steps, then left three steps, then down one step, and so on. After each step, you’ll need to update the position of the tail if the step means the head is no longer adjacent to the tail. Visually, these motions occur as follows (s marks the starting position as a reference point):

== Initial State ==

…… …… …… …… H….. (H covers T, s)

== R 4 ==

…… …… …… …… TH…. (T covers s)

…… …… …… …… sTH…

…… …… …… …… s.TH..

…… …… …… …… s..TH.

== U 4 ==

…… …… …… ….H. s..T..

…… …… ….H. ….T. s…..

…… ….H. ….T. …… s…..

….H. ….T. …… …… s…..

== L 3 ==

…H.. ….T. …… …… s…..

..HT.. …… …… …… s…..

.HT… …… …… …… s…..

== D 1 ==

..T… .H…. …… …… s…..

== R 4 ==

..T… ..H… …… …… s…..

..T… …H.. …… …… s…..

…… …TH. …… …… s…..

…… ….TH …… …… s…..

== D 1 ==

…… ….T. …..H …… s…..

== L 5 ==

…… ….T. ….H. …… s…..

…… ….T. …H.. …… s…..

…… …… ..HT.. …… s…..

…… …… .HT… …… s…..

…… …… HT…. …… s…..

== R 2 ==

…… …… .H…. (H covers T) …… s…..

…… …… .TH… …… s…..

After simulating the rope, you can count up all of the positions the tail visited at least once. In this diagram, s again marks the starting position (which the tail also visited) and # marks other positions the tail visited:

..##.. …##. .####. ….#. s###..

So, there are 13 positions the tail visited at least once.

Simulate your complete hypothetical series of motions. How many positions does the tail of the rope visit at least once?

(def input
  (for [step (str/split-lines (slurp "input-9.txt"))
        :let [[_ dir dist] (re-find #"(.) (\d+)" step)]]
    {:dir dir :dist (Integer/parseInt dist)}))
(def dirs
  {"U" [0 1]
   "L" [-1 0]
   "R" [1 0]
   "D" [0 -1]})

(defn move [[x y] dir]
  (let [[dy dx] (dirs dir)]
    [(+ x dx) (+ y dy)]))

(defn round-up-div [x y]
  (letfn [(round [n] (if (> x 0) (Math/ceil n) (Math/floor n)))]
    (-> (/ x y) round int)))

(defn move-tail [[hx hy] [tx ty]]
  (match [(- hx tx) (- hy ty)]
    [(:or 1 0 -1) (:or 1 0 -1)] [tx ty]
    [far-x far-y] [(+ tx (round-up-div far-x 2))
                   (+ ty (round-up-div far-y 2))]))

(loop [[{:keys [dir dist]} & rest :as all] input
       head [0 0]
       tail [0 0]
       visited #{tail}]
  (if-not dir
    (count visited)
    (if (zero? dist)
      (recur rest head tail visited)
      (let [instructions (assoc-in (vec all) [0 :dist] (- dist 1))
            head (move head dir)
            tail (move-tail head tail)]
        (recur instructions head tail (conj visited tail))))))

Part Two

A rope snaps! Suddenly, the river is getting a lot closer than you remember. The bridge is still there, but some of the ropes that broke are now whipping toward you as you fall through the air!

The ropes are moving too quickly to grab; you only have a few seconds to choose how to arch your body to avoid being hit. Fortunately, your simulation can be extended to support longer ropes.

Rather than two knots, you now must simulate a rope consisting of ten knots. One knot is still the head of the rope and moves according to the series of motions. Each knot further down the rope follows the knot in front of it using the same rules as before.

Using the same series of motions as the above example, but with the knots marked H, 1, 2, …, 9, the motions now occur as follows:

== Initial State ==

…… …… …… …… H….. (H covers 1, 2, 3, 4, 5, 6, 7, 8, 9, s)

== R 4 ==

…… …… …… …… 1H…. (1 covers 2, 3, 4, 5, 6, 7, 8, 9, s)

…… …… …… …… 21H… (2 covers 3, 4, 5, 6, 7, 8, 9, s)

…… …… …… …… 321H.. (3 covers 4, 5, 6, 7, 8, 9, s)

…… …… …… …… 4321H. (4 covers 5, 6, 7, 8, 9, s)

== U 4 ==

…… …… …… ….H. 4321.. (4 covers 5, 6, 7, 8, 9, s)

…… …… ….H. .4321. 5….. (5 covers 6, 7, 8, 9, s)

…… ….H. ….1. .432.. 5….. (5 covers 6, 7, 8, 9, s)

….H. ….1. ..432. .5…. 6….. (6 covers 7, 8, 9, s)

== L 3 ==

…H.. ….1. ..432. .5…. 6….. (6 covers 7, 8, 9, s)

..H1.. …2.. ..43.. .5…. 6….. (6 covers 7, 8, 9, s)

.H1… …2.. ..43.. .5…. 6….. (6 covers 7, 8, 9, s)

== D 1 ==

..1… .H.2.. ..43.. .5…. 6….. (6 covers 7, 8, 9, s)

== R 4 ==

..1… ..H2.. ..43.. .5…. 6….. (6 covers 7, 8, 9, s)

..1… …H.. (H covers 2) ..43.. .5…. 6….. (6 covers 7, 8, 9, s)

…… …1H. (1 covers 2) ..43.. .5…. 6….. (6 covers 7, 8, 9, s)

…… …21H ..43.. .5…. 6….. (6 covers 7, 8, 9, s)

== D 1 ==

…… …21. ..43.H .5…. 6….. (6 covers 7, 8, 9, s)

== L 5 ==

…… …21. ..43H. .5…. 6….. (6 covers 7, 8, 9, s)

…… …21. ..4H.. (H covers 3) .5…. 6….. (6 covers 7, 8, 9, s)

…… …2.. ..H1.. (H covers 4; 1 covers 3) .5…. 6….. (6 covers 7, 8, 9, s)

…… …2.. .H13.. (1 covers 4) .5…. 6….. (6 covers 7, 8, 9, s)

…… …… H123.. (2 covers 4) .5…. 6….. (6 covers 7, 8, 9, s)

== R 2 ==

…… …… .H23.. (H covers 1; 2 covers 4) .5…. 6….. (6 covers 7, 8, 9, s)

…… …… .1H3.. (H covers 2, 4) .5…. 6….. (6 covers 7, 8, 9, s)

Now, you need to keep track of the positions the new tail, 9, visits. In this example, the tail never moves, and so it only visits 1 position. However, be careful: more types of motion are possible than before, so you might want to visually compare your simulated rope to the one above.

Here’s a larger example:

R 5 U 8 L 8 D 3 R 17 D 10 L 25 U 20

These motions occur as follows (individual steps are not shown):

== Initial State ==

…………………….. …………………….. …………………….. …………………….. …………………….. …………………….. …………………….. …………………….. …………………….. …………………….. …………………….. …………………….. …………………….. …………………….. …………………….. ………..H………….. (H covers 1, 2, 3, 4, 5, 6, 7, 8, 9, s) …………………….. …………………….. …………………….. …………………….. ……………………..

== R 5 ==

…………………….. …………………….. …………………….. …………………….. …………………….. …………………….. …………………….. …………………….. …………………….. …………………….. …………………….. …………………….. …………………….. …………………….. …………………….. ………..54321H……… (5 covers 6, 7, 8, 9, s) …………………….. …………………….. …………………….. …………………….. ……………………..

== U 8 ==

…………………….. …………………….. …………………….. …………………….. …………………….. …………………….. …………………….. …………….H……… …………….1……… …………….2……… …………….3……… ……………54……… …………..6……….. ………….7………… …………8…………. ………..9………….. (9 covers s) …………………….. …………………….. …………………….. …………………….. ……………………..

== L 8 ==

…………………….. …………………….. …………………….. …………………….. …………………….. …………………….. …………………….. ……..H1234…………. …………5…………. …………6…………. …………7…………. …………8…………. …………9…………. …………………….. …………………….. ………..s………….. …………………….. …………………….. …………………….. …………………….. ……………………..

== D 3 ==

…………………….. …………………….. …………………….. …………………….. …………………….. …………………….. …………………….. …………………….. ………2345…………. ……..1…6…………. ……..H…7…………. …………8…………. …………9…………. …………………….. …………………….. ………..s………….. …………………….. …………………….. …………………….. …………………….. ……………………..

== R 17 ==

…………………….. …………………….. …………………….. …………………….. …………………….. …………………….. …………………….. …………………….. …………………….. …………………….. …………….987654321H …………………….. …………………….. …………………….. …………………….. ………..s………….. …………………….. …………………….. …………………….. …………………….. ……………………..

== D 10 ==

…………………….. …………………….. …………………….. …………………….. …………………….. …………………….. …………………….. …………………….. …………………….. …………………….. …………………….. …………………….. …………………….. …………………….. …………………….. ………..s………98765 …………………….4 …………………….3 …………………….2 …………………….1 …………………….H

== L 25 ==

…………………….. …………………….. …………………….. …………………….. …………………….. …………………….. …………………….. …………………….. …………………….. …………………….. …………………….. …………………….. …………………….. …………………….. …………………….. ………..s………….. …………………….. …………………….. …………………….. …………………….. H123456789…………….

== U 20 ==

H……………………. 1……………………. 2……………………. 3……………………. 4……………………. 5……………………. 6……………………. 7……………………. 8……………………. 9……………………. …………………….. …………………….. …………………….. …………………….. …………………….. ………..s………….. …………………….. …………………….. …………………….. …………………….. ……………………..

Now, the tail (9) visits 36 positions (including s) at least once:

…………………….. …………………….. …………………….. …………………….. …………………….. …………………….. …………………….. …………………….. …………………….. #……………………. #………….###……… #…………#…#…….. .#……….#…..#……. ..#……….#…..#…… …#……..#…….#….. ….#……s………#…. …..#…………..#….. ……#…………#…… …….#……….#……. ……..#……..#…….. ………########………

Simulate your complete series of motions on a larger rope with ten knots. How many positions does the tail of the rope visit at least once?

(defn update-tails [head tails]
  (loop [[tail1 tail2 & rem] (cons head tails)
         acc []]
    (if-not tail2
      acc
      (let [tail2 (move-tail tail1 tail2)]
        (recur (cons tail2 rem) (conj acc tail2))))))

(loop [[{:keys [dir dist]} & rest :as all] input
       head [0 0]
       tails (take 9 (repeat [0 0]))
       visited #{}]
  (if-not dir
    (count visited)
    (if (zero? dist)
      (recur rest head tails visited)
      (let [instructions (assoc-in (vec all) [0 :dist] (- dist 1))
            head (move head dir)
            tails (update-tails head tails)]
        (recur instructions head tails (conj visited (last tails)))))))

Day 10: Cathode-Ray Tube

You avoid the ropes, plunge into the river, and swim to shore.

The Elves yell something about meeting back up with them upriver, but the river is too loud to tell exactly what they’re saying. They finish crossing the bridge and disappear from view.

Situations like this must be why the Elves prioritized getting the communication system on your handheld device working. You pull it out of your pack, but the amount of water slowly draining from a big crack in its screen tells you it probably won’t be of much immediate use.

Unless, that is, you can design a replacement for the device’s video system! It seems to be some kind of cathode-ray tube screen and simple CPU that are both driven by a precise clock circuit. The clock circuit ticks at a constant rate; each tick is called a cycle.

Start by figuring out the signal being sent by the CPU. The CPU has a single register, X, which starts with the value 1. It supports only two instructions:

addx V takes two cycles to complete. After two cycles, the X register is increased by the value V. (V can be negative.) noop takes one cycle to complete. It has no other effect.

The CPU uses these instructions in a program (your puzzle input) to, somehow, tell the screen what to draw.

Consider the following small program:

noop addx 3 addx -5

Execution of this program proceeds as follows:

At the start of the first cycle, the noop instruction begins execution. During the first cycle, X is 1. After the first cycle, the noop instruction finishes execution, doing nothing. At the start of the second cycle, the addx 3 instruction begins execution. During the second cycle, X is still 1. During the third cycle, X is still 1. After the third cycle, the addx 3 instruction finishes execution, setting X to 4. At the start of the fourth cycle, the addx -5 instruction begins execution. During the fourth cycle, X is still 4. During the fifth cycle, X is still 4. After the fifth cycle, the addx -5 instruction finishes execution, setting X to -1.

Maybe you can learn something by looking at the value of the X register throughout execution. For now, consider the signal strength (the cycle number multiplied by the value of the X register) during the 20th cycle and every 40 cycles after that (that is, during the 20th, 60th, 100th, 140th, 180th, and 220th cycles).

For example, consider this larger program:

addx 15 addx -11 addx 6 addx -3 addx 5 addx -1 addx -8 addx 13 addx 4 noop addx -1 addx 5 addx -1 addx 5 addx -1 addx 5 addx -1 addx 5 addx -1 addx -35 addx 1 addx 24 addx -19 addx 1 addx 16 addx -11 noop noop addx 21 addx -15 noop noop addx -3 addx 9 addx 1 addx -3 addx 8 addx 1 addx 5 noop noop noop noop noop addx -36 noop addx 1 addx 7 noop noop noop addx 2 addx 6 noop noop noop noop noop addx 1 noop noop addx 7 addx 1 noop addx -13 addx 13 addx 7 noop addx 1 addx -33 noop noop noop addx 2 noop noop noop addx 8 noop addx -1 addx 2 addx 1 noop addx 17 addx -9 addx 1 addx 1 addx -3 addx 11 noop noop addx 1 noop addx 1 noop noop addx -13 addx -19 addx 1 addx 3 addx 26 addx -30 addx 12 addx -1 addx 3 addx 1 noop noop noop addx -9 addx 18 addx 1 addx 2 noop noop addx 9 noop noop noop addx -1 addx 2 addx -37 addx 1 addx 3 noop addx 15 addx -21 addx 22 addx -6 addx 1 noop addx 2 addx 1 noop addx -10 noop noop addx 20 addx 1 addx 2 addx 2 addx -6 addx -11 noop noop noop

The interesting signal strengths can be determined as follows:

During the 20th cycle, register X has the value 21, so the signal strength is 20 * 21 = 420. (The 20th cycle occurs in the middle of the second addx -1, so the value of register X is the starting value, 1, plus all of the other addx values up to that point: 1 + 15 - 11 + 6 - 3 + 5 - 1 - 8 + 13 + 4 = 21.) During the 60th cycle, register X has the value 19, so the signal strength is 60 * 19 = 1140. During the 100th cycle, register X has the value 18, so the signal strength is 100 * 18 = 1800. During the 140th cycle, register X has the value 21, so the signal strength is 140 * 21 = 2940. During the 180th cycle, register X has the value 16, so the signal strength is 180 * 16 = 2880. During the 220th cycle, register X has the value 18, so the signal strength is 220 * 18 = 3960.

The sum of these signal strengths is 13140.

Find the signal strength during the 20th, 60th, 100th, 140th, 180th, and 220th cycles. What is the sum of these six signal strengths?

(def input
  (for [inst (str/split-lines (slurp "input-10.txt"))
        :let [[inst operand] (str/split inst #" ")]]
    {:inst inst :operand (when operand (Integer/parseInt operand))}))
(defn run [code]
  (loop [[{:keys [inst operand]} & rem] code
         x 1
         states []]
    (if-not inst
      (conj states x)
      (case inst
        "noop" (recur rem x (conj states x))
        "addx" (let [nx (+ x operand)]
                 (recur rem nx (conj states x x)))))))
(let [result (run input)]
  (->> [20 60 100 140 180 220]
       (map #(* % (get result (- % 1))))
       (reduce +)))

Part Two

It seems like the X register controls the horizontal position of a sprite. Specifically, the sprite is 3 pixels wide, and the X register sets the horizontal position of the middle of that sprite. (In this system, there is no such thing as “vertical position”: if the sprite’s horizontal position puts its pixels where the CRT is currently drawing, then those pixels will be drawn.)

You count the pixels on the CRT: 40 wide and 6 high. This CRT screen draws the top row of pixels left-to-right, then the row below that, and so on. The left-most pixel in each row is in position 0, and the right-most pixel in each row is in position 39.

Like the CPU, the CRT is tied closely to the clock circuit: the CRT draws a single pixel during each cycle. Representing each pixel of the screen as a #, here are the cycles during which the first and last pixel in each row are drawn:

Cycle 1 -> ######################################## <- Cycle 40 Cycle 41 -> ######################################## <- Cycle 80 Cycle 81 -> ######################################## <- Cycle 120 Cycle 121 -> ######################################## <- Cycle 160 Cycle 161 -> ######################################## <- Cycle 200 Cycle 201 -> ######################################## <- Cycle 240

So, by carefully timing the CPU instructions and the CRT drawing operations, you should be able to determine whether the sprite is visible the instant each pixel is drawn. If the sprite is positioned such that one of its three pixels is the pixel currently being drawn, the screen produces a lit pixel (#); otherwise, the screen leaves the pixel dark (.).

The first few pixels from the larger example above are drawn as follows:

Sprite position: ###……………………………….

Start cycle 1: begin executing addx 15 During cycle 1: CRT draws pixel in position 0 Current CRT row: #

During cycle 2: CRT draws pixel in position 1 Current CRT row: ## End of cycle 2: finish executing addx 15 (Register X is now 16) Sprite position: ……………###………………….

Start cycle 3: begin executing addx -11 During cycle 3: CRT draws pixel in position 2 Current CRT row: ##.

During cycle 4: CRT draws pixel in position 3 Current CRT row: ##.. End of cycle 4: finish executing addx -11 (Register X is now 5) Sprite position: ….###……………………………

Start cycle 5: begin executing addx 6 During cycle 5: CRT draws pixel in position 4 Current CRT row: ##..#

During cycle 6: CRT draws pixel in position 5 Current CRT row: ##..## End of cycle 6: finish executing addx 6 (Register X is now 11) Sprite position: ……….###………………………

Start cycle 7: begin executing addx -3 During cycle 7: CRT draws pixel in position 6 Current CRT row: ##..##.

During cycle 8: CRT draws pixel in position 7 Current CRT row: ##..##.. End of cycle 8: finish executing addx -3 (Register X is now 8) Sprite position: …….###…………………………

Start cycle 9: begin executing addx 5 During cycle 9: CRT draws pixel in position 8 Current CRT row: ##..##..#

During cycle 10: CRT draws pixel in position 9 Current CRT row: ##..##..## End of cycle 10: finish executing addx 5 (Register X is now 13) Sprite position: …………###…………………….

Start cycle 11: begin executing addx -1 During cycle 11: CRT draws pixel in position 10 Current CRT row: ##..##..##.

During cycle 12: CRT draws pixel in position 11 Current CRT row: ##..##..##.. End of cycle 12: finish executing addx -1 (Register X is now 12) Sprite position: ………..###……………………..

Start cycle 13: begin executing addx -8 During cycle 13: CRT draws pixel in position 12 Current CRT row: ##..##..##..#

During cycle 14: CRT draws pixel in position 13 Current CRT row: ##..##..##..## End of cycle 14: finish executing addx -8 (Register X is now 4) Sprite position: …###…………………………….

Start cycle 15: begin executing addx 13 During cycle 15: CRT draws pixel in position 14 Current CRT row: ##..##..##..##.

During cycle 16: CRT draws pixel in position 15 Current CRT row: ##..##..##..##.. End of cycle 16: finish executing addx 13 (Register X is now 17) Sprite position: …………….###…………………

Start cycle 17: begin executing addx 4 During cycle 17: CRT draws pixel in position 16 Current CRT row: ##..##..##..##..#

During cycle 18: CRT draws pixel in position 17 Current CRT row: ##..##..##..##..## End of cycle 18: finish executing addx 4 (Register X is now 21) Sprite position: ………………..###……………..

Start cycle 19: begin executing noop During cycle 19: CRT draws pixel in position 18 Current CRT row: ##..##..##..##..##. End of cycle 19: finish executing noop

Start cycle 20: begin executing addx -1 During cycle 20: CRT draws pixel in position 19 Current CRT row: ##..##..##..##..##..

During cycle 21: CRT draws pixel in position 20 Current CRT row: ##..##..##..##..##..# End of cycle 21: finish executing addx -1 (Register X is now 20) Sprite position: ……………….###………………

Allowing the program to run to completion causes the CRT to produce the following image:

##..##..##..##..##..##..##..##..##..##.. ###…###…###…###…###…###…###. ####….####….####….####….####…. #####…..#####…..#####…..#####….. ######……######……######……#### #######…….#######…….#######…..

Render the image given by your program. What eight capital letters appear on your CRT?

(let [width 40
      height 6]
  (loop [[x & rem] (run input)
         [cur-line & lines :as display] [[]]
         cycle 0]
    (if (= cycle (* width height))
      (map (comp list (partial apply str)) (reverse display))
      (let [pixel (if (#{(- x 1) x (+ x 1)} (mod cycle width)) \# \.)
            cur-line (conj cur-line pixel)]
        (if (= (count cur-line) 40)
          (recur rem (cons [] (cons cur-line lines)) (+ 1 cycle))
          (recur rem (cons cur-line lines) (+ 1 cycle)))))))

Day 11: Monkey in the Middle

As you finally start making your way upriver, you realize your pack is much lighter than you remember. Just then, one of the items from your pack goes flying overhead. Monkeys are playing Keep Away with your missing things!

To get your stuff back, you need to be able to predict where the monkeys will throw your items. After some careful observation, you realize the monkeys operate based on how worried you are about each item.

You take some notes (your puzzle input) on the items each monkey currently has, how worried you are about those items, and how the monkey makes decisions based on your worry level. For example:

Monkey 0: Starting items: 79, 98 Operation: new = old * 19 Test: divisible by 23 If true: throw to monkey 2 If false: throw to monkey 3

Monkey 1: Starting items: 54, 65, 75, 74 Operation: new = old + 6 Test: divisible by 19 If true: throw to monkey 2 If false: throw to monkey 0

Monkey 2: Starting items: 79, 60, 97 Operation: new = old * old Test: divisible by 13 If true: throw to monkey 1 If false: throw to monkey 3

Monkey 3: Starting items: 74 Operation: new = old + 3 Test: divisible by 17 If true: throw to monkey 0 If false: throw to monkey 1

Each monkey has several attributes:

Starting items lists your worry level for each item the monkey is currently holding in the order they will be inspected. Operation shows how your worry level changes as that monkey inspects an item. (An operation like new = old * 5 means that your worry level after the monkey inspected the item is five times whatever your worry level was before inspection.) Test shows how the monkey uses your worry level to decide where to throw an item next. If true shows what happens with an item if the Test was true. If false shows what happens with an item if the Test was false.

After each monkey inspects an item but before it tests your worry level, your relief that the monkey’s inspection didn’t damage the item causes your worry level to be divided by three and rounded down to the nearest integer.

The monkeys take turns inspecting and throwing items. On a single monkey’s turn, it inspects and throws all of the items it is holding one at a time and in the order listed. Monkey 0 goes first, then monkey 1, and so on until each monkey has had one turn. The process of each monkey taking a single turn is called a round.

When a monkey throws an item to another monkey, the item goes on the end of the recipient monkey’s list. A monkey that starts a round with no items could end up inspecting and throwing many items by the time its turn comes around. If a monkey is holding no items at the start of its turn, its turn ends.

In the above example, the first round proceeds as follows:

Monkey 0: Monkey inspects an item with a worry level of 79. Worry level is multiplied by 19 to 1501. Monkey gets bored with item. Worry level is divided by 3 to 500. Current worry level is not divisible by 23. Item with worry level 500 is thrown to monkey 3. Monkey inspects an item with a worry level of 98. Worry level is multiplied by 19 to 1862. Monkey gets bored with item. Worry level is divided by 3 to 620. Current worry level is not divisible by 23. Item with worry level 620 is thrown to monkey 3. Monkey 1: Monkey inspects an item with a worry level of 54. Worry level increases by 6 to 60. Monkey gets bored with item. Worry level is divided by 3 to 20. Current worry level is not divisible by 19. Item with worry level 20 is thrown to monkey 0. Monkey inspects an item with a worry level of 65. Worry level increases by 6 to 71. Monkey gets bored with item. Worry level is divided by 3 to 23. Current worry level is not divisible by 19. Item with worry level 23 is thrown to monkey 0. Monkey inspects an item with a worry level of 75. Worry level increases by 6 to 81. Monkey gets bored with item. Worry level is divided by 3 to 27. Current worry level is not divisible by 19. Item with worry level 27 is thrown to monkey 0. Monkey inspects an item with a worry level of 74. Worry level increases by 6 to 80. Monkey gets bored with item. Worry level is divided by 3 to 26. Current worry level is not divisible by 19. Item with worry level 26 is thrown to monkey 0. Monkey 2: Monkey inspects an item with a worry level of 79. Worry level is multiplied by itself to 6241. Monkey gets bored with item. Worry level is divided by 3 to 2080. Current worry level is divisible by 13. Item with worry level 2080 is thrown to monkey 1. Monkey inspects an item with a worry level of 60. Worry level is multiplied by itself to 3600. Monkey gets bored with item. Worry level is divided by 3 to 1200. Current worry level is not divisible by 13. Item with worry level 1200 is thrown to monkey 3. Monkey inspects an item with a worry level of 97. Worry level is multiplied by itself to 9409. Monkey gets bored with item. Worry level is divided by 3 to 3136. Current worry level is not divisible by 13. Item with worry level 3136 is thrown to monkey 3. Monkey 3: Monkey inspects an item with a worry level of 74. Worry level increases by 3 to 77. Monkey gets bored with item. Worry level is divided by 3 to 25. Current worry level is not divisible by 17. Item with worry level 25 is thrown to monkey 1. Monkey inspects an item with a worry level of 500. Worry level increases by 3 to 503. Monkey gets bored with item. Worry level is divided by 3 to 167. Current worry level is not divisible by 17. Item with worry level 167 is thrown to monkey 1. Monkey inspects an item with a worry level of 620. Worry level increases by 3 to 623. Monkey gets bored with item. Worry level is divided by 3 to 207. Current worry level is not divisible by 17. Item with worry level 207 is thrown to monkey 1. Monkey inspects an item with a worry level of 1200. Worry level increases by 3 to 1203. Monkey gets bored with item. Worry level is divided by 3 to 401. Current worry level is not divisible by 17. Item with worry level 401 is thrown to monkey 1. Monkey inspects an item with a worry level of 3136. Worry level increases by 3 to 3139. Monkey gets bored with item. Worry level is divided by 3 to 1046. Current worry level is not divisible by 17. Item with worry level 1046 is thrown to monkey 1.

After round 1, the monkeys are holding items with these worry levels:

Monkey 0: 20, 23, 27, 26 Monkey 1: 2080, 25, 167, 207, 401, 1046 Monkey 2: Monkey 3:

Monkeys 2 and 3 aren’t holding any items at the end of the round; they both inspected items during the round and threw them all before the round ended.

This process continues for a few more rounds:

After round 2, the monkeys are holding items with these worry levels: Monkey 0: 695, 10, 71, 135, 350 Monkey 1: 43, 49, 58, 55, 362 Monkey 2: Monkey 3:

After round 3, the monkeys are holding items with these worry levels: Monkey 0: 16, 18, 21, 20, 122 Monkey 1: 1468, 22, 150, 286, 739 Monkey 2: Monkey 3:

After round 4, the monkeys are holding items with these worry levels: Monkey 0: 491, 9, 52, 97, 248, 34 Monkey 1: 39, 45, 43, 258 Monkey 2: Monkey 3:

After round 5, the monkeys are holding items with these worry levels: Monkey 0: 15, 17, 16, 88, 1037 Monkey 1: 20, 110, 205, 524, 72 Monkey 2: Monkey 3:

After round 6, the monkeys are holding items with these worry levels: Monkey 0: 8, 70, 176, 26, 34 Monkey 1: 481, 32, 36, 186, 2190 Monkey 2: Monkey 3:

After round 7, the monkeys are holding items with these worry levels: Monkey 0: 162, 12, 14, 64, 732, 17 Monkey 1: 148, 372, 55, 72 Monkey 2: Monkey 3:

After round 8, the monkeys are holding items with these worry levels: Monkey 0: 51, 126, 20, 26, 136 Monkey 1: 343, 26, 30, 1546, 36 Monkey 2: Monkey 3:

After round 9, the monkeys are holding items with these worry levels: Monkey 0: 116, 10, 12, 517, 14 Monkey 1: 108, 267, 43, 55, 288 Monkey 2: Monkey 3:

After round 10, the monkeys are holding items with these worry levels: Monkey 0: 91, 16, 20, 98 Monkey 1: 481, 245, 22, 26, 1092, 30 Monkey 2: Monkey 3:

After round 15, the monkeys are holding items with these worry levels: Monkey 0: 83, 44, 8, 184, 9, 20, 26, 102 Monkey 1: 110, 36 Monkey 2: Monkey 3:

After round 20, the monkeys are holding items with these worry levels: Monkey 0: 10, 12, 14, 26, 34 Monkey 1: 245, 93, 53, 199, 115 Monkey 2: Monkey 3:

Chasing all of the monkeys at once is impossible; you’re going to have to focus on the two most active monkeys if you want any hope of getting your stuff back. Count the total number of times each monkey inspects items over 20 rounds:

Monkey 0 inspected items 101 times. Monkey 1 inspected items 95 times. Monkey 2 inspected items 7 times. Monkey 3 inspected items 105 times.

In this example, the two most active monkeys inspected items 101 and 105 times. The level of monkey business in this situation can be found by multiplying these together: 10605.

Figure out which monkeys to chase by counting how many items they inspect over 20 rounds. What is the level of monkey business after 20 rounds of stuff-slinging simian shenanigans?

(def monkeys
  (for [monkey (str/split (slurp "input-11.txt") #"\n\n")]
    (let [[_ id] (re-find #"Monkey (\d+):" monkey)
          [_ items] (re-find #"Starting items: ([\d, ]+)" monkey)
          [_ x op y] (re-find #"Operation: new = ([^ ]+) (.) ([^\s]+)" monkey)
          [_ test] (re-find #"Test: divisible by (\d+)" monkey)
          [_ if-true] (re-find #"If true: throw to monkey (\d+)" monkey)
          [_ if-false] (re-find #"If false: throw to monkey (\d+)" monkey)]
      {:i 0
       :id (Integer/parseInt id)
       :items (map #(Integer/parseInt %) (str/split items #", "))
       :op {:x x :y y :operand ({"*" * "+" +} op)}
       :modulo (Integer/parseInt test)
       :div (Integer/parseInt if-true)
       :not-div (Integer/parseInt if-false)})))
(defn update-monkey [{:keys [id items op modulo div not-div i] :as m} all]
  (let [{:keys [x y operand]} op]
    (letfn [(getval [v old] (if (= v "old") old (Integer/parseInt v)))]
      (loop [[item & rem] items
             monkeys (vec all)]
        (if-not item
          (assoc monkeys id (assoc m :items [] :i (+ i (count items))))
          (let [worry (-> (operand (getval x item) (getval y item)) (/ 3) int)
                divisable? (zero? (mod worry modulo))
                to (get monkeys (if divisable? div not-div))
                {to-id :id to-items :items} to
                to-items (conj to-items worry)]
            (recur rem (vec (assoc-in monkeys [to-id :items] to-items)))))))))

(defn update-monkeys [monkeys]
  (loop [[{id :id} & rem] monkeys
         monkeys monkeys]
    (if-not id
      monkeys
      (recur rem (update-monkey (nth monkeys id) monkeys)))))

(->> (nth (iterate update-monkeys monkeys) 20)
     (map :i)
     (sort >)
     (take 2)
     (apply *))

Part Two

You’re worried you might not ever get your items back. So worried, in fact, that your relief that a monkey’s inspection didn’t damage an item no longer causes your worry level to be divided by three.

Unfortunately, that relief was all that was keeping your worry levels from reaching ridiculous levels. You’ll need to find another way to keep your worry levels manageable.

At this rate, you might be putting up with these monkeys for a very long time - possibly 10000 rounds!

With these new rules, you can still figure out the monkey business after 10000 rounds. Using the same example above:

== After round 1 == Monkey 0 inspected items 2 times. Monkey 1 inspected items 4 times. Monkey 2 inspected items 3 times. Monkey 3 inspected items 6 times.

== After round 20 == Monkey 0 inspected items 99 times. Monkey 1 inspected items 97 times. Monkey 2 inspected items 8 times. Monkey 3 inspected items 103 times.

== After round 1000 == Monkey 0 inspected items 5204 times. Monkey 1 inspected items 4792 times. Monkey 2 inspected items 199 times. Monkey 3 inspected items 5192 times.

== After round 2000 == Monkey 0 inspected items 10419 times. Monkey 1 inspected items 9577 times. Monkey 2 inspected items 392 times. Monkey 3 inspected items 10391 times.

== After round 3000 == Monkey 0 inspected items 15638 times. Monkey 1 inspected items 14358 times. Monkey 2 inspected items 587 times. Monkey 3 inspected items 15593 times.

== After round 4000 == Monkey 0 inspected items 20858 times. Monkey 1 inspected items 19138 times. Monkey 2 inspected items 780 times. Monkey 3 inspected items 20797 times.

== After round 5000 == Monkey 0 inspected items 26075 times. Monkey 1 inspected items 23921 times. Monkey 2 inspected items 974 times. Monkey 3 inspected items 26000 times.

== After round 6000 == Monkey 0 inspected items 31294 times. Monkey 1 inspected items 28702 times. Monkey 2 inspected items 1165 times. Monkey 3 inspected items 31204 times.

== After round 7000 == Monkey 0 inspected items 36508 times. Monkey 1 inspected items 33488 times. Monkey 2 inspected items 1360 times. Monkey 3 inspected items 36400 times.

== After round 8000 == Monkey 0 inspected items 41728 times. Monkey 1 inspected items 38268 times. Monkey 2 inspected items 1553 times. Monkey 3 inspected items 41606 times.

== After round 9000 == Monkey 0 inspected items 46945 times. Monkey 1 inspected items 43051 times. Monkey 2 inspected items 1746 times. Monkey 3 inspected items 46807 times.

== After round 10000 == Monkey 0 inspected items 52166 times. Monkey 1 inspected items 47830 times. Monkey 2 inspected items 1938 times. Monkey 3 inspected items 52013 times.

After 10000 rounds, the two most active monkeys inspected items 52166 and 52013 times. Multiplying these together, the level of monkey business in this situation is now 2713310158.

Worry levels are no longer divided by three after each item is inspected; you’ll need to find another way to keep your worry levels manageable. Starting again from the initial state in your puzzle input, what is the level of monkey business after 10000 rounds?

So! I need to find a way to get the same result without the same nightmare worry levels. That means I need a way to miniaturize the worry number in a way that won’t affect any of the tests of the monkeys.

What are these actions?

OperationTest
new = old * 13divisible by 11
new = old + 4divisible by 17
new = old * 11divisible by 5
new = old + 8divisible by 13
new = old * olddivisible by 19
new = old + 5divisible by 2
new = old + 1divisible by 3
new = old + 3divisible by 7

It’s only checking for a modulo of several numbers! Maybe I can just multiply them all for a global modulo?

(* 11 17 5 13 19 2 3 7)

And for the test data:

(* 23 19 13 17)
(defn update-monkey [{:keys [id items op modulo div not-div i] :as m} all]
  (let [{:keys [x y operand]} op
        gmod (->> all (map :modulo) (reduce *))]
    (letfn [(getval [v old] (if (= v "old") old (Integer/parseInt v)))]
      (loop [[item & rem] items
             monkeys (vec all)]
        (if-not item
          (assoc monkeys id (assoc m :items [] :i (+ i (count items))))
          (let [worry (mod (operand (getval x item) (getval y item)) gmod)
                divisable? (zero? (mod worry modulo))
                to (get monkeys (if divisable? div not-div))
                {to-id :id to-items :items} to
                to-items (conj to-items worry)]
            (recur rem (vec (assoc-in monkeys [to-id :items] to-items)))))))))

(->> (nth (iterate update-monkeys monkeys) 10000)
     (map :i)
     (sort >)
     (take 2)
     (apply *))

Day 12: Hill Climbing Algorithm

You try contacting the Elves using your handheld device, but the river you’re following must be too low to get a decent signal.

You ask the device for a heightmap of the surrounding area (your puzzle input). The heightmap shows the local area from above broken into a grid; the elevation of each square of the grid is given by a single lowercase letter, where a is the lowest elevation, b is the next-lowest, and so on up to the highest elevation, z.

Also included on the heightmap are marks for your current position (S) and the location that should get the best signal (E). Your current position (S) has elevation a, and the location that should get the best signal (E) has elevation z.

You’d like to reach E, but to save energy, you should do it in as few steps as possible. During each step, you can move exactly one square up, down, left, or right. To avoid needing to get out your climbing gear, the elevation of the destination square can be at most one higher than the elevation of your current square; that is, if your current elevation is m, you could step to elevation n, but not to elevation o. (This also means that the elevation of the destination square can be much lower than the elevation of your current square.)

For example:

Sabqponm abcryxxl accszExk acctuvwj abdefghi

Here, you start in the top-left corner; your goal is near the middle. You could start by moving down or right, but eventually you’ll need to head toward the e at the bottom. From there, you can spiral around to the goal:

v..v<<<< >v.vv<<^ .>vv>E^^ ..v>>>^^ ..>>>>>^

In the above diagram, the symbols indicate whether the path exits each square moving up (^), down (v), left (<), or right (>). The location that should get the best signal is still E, and . marks unvisited squares.

This path reaches the goal in 31 steps, the fewest possible.

What is the fewest steps required to move from your current position to the location that should get the best signal?

(def input (str/split-lines (slurp "input-12.txt")))

(def hmap
  (vec (for [row input]
    (vec (map #(case % \S 0 \E 25 (- (int %) (int \a))) row)))))
(defn get-at [[x y]]
  (get-in hmap [y x] ##Inf))

(defn find-char [chr]
  (first (keep-indexed #(if-let [x (str/index-of %2 chr)] [x %1]) input)))

(defn get-adj [[x y]]
  (let [ch (get-at [x y])]
    (letfn [(no-climb? [h] (>= ch (- h 1)))]
      (->> [[(+ x 1) y] [(- x 1) y] [x (+ y 1)] [x (- y 1)]]
           (filter #(no-climb? (get-at %)))))))

(defn add-dmap [dmap dist adj]
  (into dmap (map (fn [coords] [coords dist]) adj)))

(defn distance-map [start end]
  (loop [adj (get-adj start)
         dist 1
         dmap {start 0}]
    (if (or (empty? adj) (contains? dmap end))
      dmap
      (as-> (mapcat get-adj adj) $
        (set (filter #(not (contains? dmap %)) $))
        (recur $ (+ 1 dist) (add-dmap dmap dist adj))))))

To visualize this around the hill:

(let [dmap (distance-map (find-char \S) (find-char \E))
      render-char #(if-let [d (dmap [%2 %1])] (char (+ 97 (mod d 26))) \.)]
  (for [y (range 7 32)]
    (list (apply str (map (partial render-char y) (range 36 63))))))
(let [end (find-char \E)
      dmap (distance-map (find-char \S) end)]
  (dmap end))

Part Two

As you walk up the hill, you suspect that the Elves will want to turn this into a hiking trail. The beginning isn’t very scenic, though; perhaps you can find a better starting point.

To maximize exercise while hiking, the trail should start as low as possible: elevation a. The goal is still the square marked E. However, the trail should still be direct, taking the fewest steps to reach its goal. So, you’ll need to find the shortest path from any square at elevation a to the square marked E.

Again consider the example from above:

Sabqponm abcryxxl accszExk acctuvwj abdefghi

Now, there are six choices for starting position (five marked a, plus the square marked S that counts as being at elevation a). If you start at the bottom-left square, you can reach the goal most quickly:

…v<<<< …vv<<^ …v>E^^ .>v>>>^^ >^>>>>>^

This path reaches the goal in only 29 steps, the fewest possible.

What is the fewest steps required to move starting from any square with elevation a to the location that should get the best signal?

(defn find-chars [chr]
  (keep-indexed #(if-let [x (str/index-of %2 chr)] [x %1]) input))

(defn dist-to-end [start]
  (let [end (find-char \E)
        dmap (distance-map start end)]
    (dmap end)))

(->> (find-chars \a)
     (map dist-to-end)
     (filter (complement nil?))
     sort
     first)

Day 13: Distress Signal

You climb the hill and again try contacting the Elves. However, you instead receive a signal you weren’t expecting: a distress signal.

Your handheld device must still not be working properly; the packets from the distress signal got decoded out of order. You’ll need to re-order the list of received packets (your puzzle input) to decode the message.

Your list consists of pairs of packets; pairs are separated by a blank line. You need to identify how many pairs of packets are in the right order.

For example:

[1,1,3,1,1] [1,1,5,1,1]

[[1],[2,3,4]] [[1],4]

[9] 8,7,6

[[4,4],4,4] [[4,4],4,4,4]

[7,7,7,7] [7,7,7]

[] [3]

[[[]]] [[]]

[1,[2,[3,[4,[5,6,7]]]],8,9] [1,[2,[3,[4,[5,6,0]]]],8,9]

Packet data consists of lists and integers. Each list starts with [, ends with ], and contains zero or more comma-separated values (either integers or other lists). Each packet is always a list and appears on its own line.

When comparing two values, the first value is called left and the second value is called right. Then:

If both values are integers, the lower integer should come first. If the left integer is lower than the right integer, the inputs are in the right order. If the left integer is higher than the right integer, the inputs are not in the right order. Otherwise, the inputs are the same integer; continue checking the next part of the input. If both values are lists, compare the first value of each list, then the second value, and so on. If the left list runs out of items first, the inputs are in the right order. If the right list runs out of items first, the inputs are not in the right order. If the lists are the same length and no comparison makes a decision about the order, continue checking the next part of the input. If exactly one value is an integer, convert the integer to a list which contains that integer as its only value, then retry the comparison. For example, if comparing [0,0,0] and 2, convert the right value to [2] (a list containing 2); the result is then found by instead comparing [0,0,0] and [2].

Using these rules, you can determine which of the pairs in the example are in the right order:

== Pair 1 ==

  • Compare [1,1,3,1,1] vs [1,1,5,1,1]
    • Compare 1 vs 1
    • Compare 1 vs 1
    • Compare 3 vs 5
      • Left side is smaller, so inputs are in the right order

== Pair 2 ==

  • Compare [[1],[2,3,4]] vs [[1],4]
    • Compare [1] vs [1]
      • Compare 1 vs 1
    • Compare [2,3,4] vs 4
      • Mixed types; convert right to [4] and retry comparison
      • Compare [2,3,4] vs [4]
        • Compare 2 vs 4
          • Left side is smaller, so inputs are in the right order

== Pair 3 ==

  • Compare [9] vs 8,7,6
    • Compare 9 vs [8,7,6]
      • Mixed types; convert left to [9] and retry comparison
      • Compare [9] vs [8,7,6]
        • Compare 9 vs 8
          • Right side is smaller, so inputs are not in the right order

== Pair 4 ==

  • Compare [[4,4],4,4] vs [[4,4],4,4,4]
    • Compare [4,4] vs [4,4]
      • Compare 4 vs 4
      • Compare 4 vs 4
    • Compare 4 vs 4
    • Compare 4 vs 4
    • Left side ran out of items, so inputs are in the right order

== Pair 5 ==

  • Compare [7,7,7,7] vs [7,7,7]
    • Compare 7 vs 7
    • Compare 7 vs 7
    • Compare 7 vs 7
    • Right side ran out of items, so inputs are not in the right order

== Pair 6 ==

  • Compare [] vs [3]
    • Left side ran out of items, so inputs are in the right order

== Pair 7 ==

  • Compare [[[]]] vs [[]]
    • Compare [[]] vs []
      • Right side ran out of items, so inputs are not in the right order

== Pair 8 ==

  • Compare [1,[2,[3,[4,[5,6,7]]]],8,9] vs [1,[2,[3,[4,[5,6,0]]]],8,9]
    • Compare 1 vs 1
    • Compare [2,[3,[4,[5,6,7]]]] vs [2,[3,[4,[5,6,0]]]]
      • Compare 2 vs 2
      • Compare [3,[4,[5,6,7]]] vs [3,[4,[5,6,0]]]
        • Compare 3 vs 3
        • Compare [4,[5,6,7]] vs [4,[5,6,0]]
          • Compare 4 vs 4
          • Compare [5,6,7] vs [5,6,0]
            • Compare 5 vs 5
            • Compare 6 vs 6
            • Compare 7 vs 0
              • Right side is smaller, so inputs are not in the right order

What are the indices of the pairs that are already in the right order? (The first pair has index 1, the second pair has index 2, and so on.) In the above example, the pairs in the right order are 1, 2, 4, and 6; the sum of these indices is 13.

Determine which pairs of packets are already in the right order. What is the sum of the indices of those pairs?

(def pairs
  (for [pair (str/split (slurp "input-13.txt") #"\n\n")]
    (map edn/read-string (str/split-lines pair))))
(declare comp-trees)

(defn comp-packet [f s]
  (case [(number? f) (number? s)]
    [true true] (compare f s)
    [true false] (comp-packet [f] s)
    [false true] (comp-packet f [s])
    (comp-trees f s)))

(defn comp-trees [f s]
  (loop [[ff & fr] f
         [sf & sr] s]
    (case [(nil? ff) (nil? sf)]
      [true true] 0
      [true false] -1
      [false true] 1
      (match (comp-packet ff sf)
        0 (recur fr sr)
        c c))))
(->> (map-indexed (fn [i [f s]] (if (> 1 (comp-trees f s)) (+ 1 i) 0)) pairs)
     (reduce +))

Part Two

Now, you just need to put all of the packets in the right order. Disregard the blank lines in your list of received packets.

The distress signal protocol also requires that you include two additional divider packets:

2 6

Using the same rules as before, organize all packets - the ones in your list of received packets as well as the two divider packets - into the correct order.

For the example above, the result of putting the packets in the correct order is:

[] [[]] [[[]]] [1,1,3,1,1] [1,1,5,1,1] [[1],[2,3,4]] [1,[2,[3,[4,[5,6,0]]]],8,9] [1,[2,[3,[4,[5,6,7]]]],8,9] [[1],4] 2 [3] [[4,4],4,4] [[4,4],4,4,4] 6 [7,7,7] [7,7,7,7] 8,7,6 [9]

Afterward, locate the divider packets. To find the decoder key for this distress signal, you need to determine the indices of the two divider packets and multiply them together. (The first packet is at index 1, the second packet is at index 2, and so on.) In this example, the divider packets are 10th and 14th, and so the decoder key is 140.

Organize all of the packets into the correct order. What is the decoder key for the distress signal?

(def all
  (for [line (str/split-lines (slurp "input-13.txt"))
        :when (not (str/blank? line))]
    (edn/read-string line)))
(->> (conj all [[2]] [[6]])
     (sort comp-trees)
     (keep-indexed (fn [i v] (when (#{[[2]] [[6]]} v) (+ 1 i))))
     (reduce *))

Day 14: Regolith Reservoir

The distress signal leads you to a giant waterfall! Actually, hang on - the signal seems like it’s coming from the waterfall itself, and that doesn’t make any sense. However, you do notice a little path that leads behind the waterfall.

Correction: the distress signal leads you behind a giant waterfall! There seems to be a large cave system here, and the signal definitely leads further inside.

As you begin to make your way deeper underground, you feel the ground rumble for a moment. Sand begins pouring into the cave! If you don’t quickly figure out where the sand is going, you could quickly become trapped!

Fortunately, your familiarity with analyzing the path of falling material will come in handy here. You scan a two-dimensional vertical slice of the cave above you (your puzzle input) and discover that it is mostly air with structures made of rock.

Your scan traces the path of each solid rock structure and reports the x,y coordinates that form the shape of the path, where x represents distance to the right and y represents distance down. Each path appears as a single line of text in your scan. After the first point of each path, each point indicates the end of a straight horizontal or vertical line to be drawn from the previous point. For example:

498,4 -> 498,6 -> 496,6 503,4 -> 502,4 -> 502,9 -> 494,9

This scan means that there are two paths of rock; the first path consists of two straight lines, and the second path consists of three straight lines. (Specifically, the first path consists of a line of rock from 498,4 through 498,6 and another line of rock from 498,6 through 496,6.)

The sand is pouring into the cave from point 500,0.

Drawing rock as #, air as ., and the source of the sand as +, this becomes:

4 5 5 9 0 0 4 0 3 0 ……+… 1 ………. 2 ………. 3 ………. 4 ….#…## 5 ….#…#. 6 ..###…#. 7 ……..#. 8 ……..#. 9 #########.

Sand is produced one unit at a time, and the next unit of sand is not produced until the previous unit of sand comes to rest. A unit of sand is large enough to fill one tile of air in your scan.

A unit of sand always falls down one step if possible. If the tile immediately below is blocked (by rock or sand), the unit of sand attempts to instead move diagonally one step down and to the left. If that tile is blocked, the unit of sand attempts to instead move diagonally one step down and to the right. Sand keeps moving as long as it is able to do so, at each step trying to move down, then down-left, then down-right. If all three possible destinations are blocked, the unit of sand comes to rest and no longer moves, at which point the next unit of sand is created back at the source.

So, drawing sand that has come to rest as o, the first unit of sand simply falls straight down and then stops:

……+… ………. ………. ………. ….#…## ….#…#. ..###…#. ……..#. ……o.#. #########.

The second unit of sand then falls straight down, lands on the first one, and then comes to rest to its left:

……+… ………. ………. ………. ….#…## ….#…#. ..###…#. ……..#. …..oo.#. #########.

After a total of five units of sand have come to rest, they form this pattern:

……+… ………. ………. ………. ….#…## ….#…#. ..###…#. ……o.#. ….oooo#. #########.

After a total of 22 units of sand:

……+… ………. ……o… …..ooo.. ….#ooo## ….#ooo#. ..###ooo#. ….oooo#. …ooooo#. #########.

Finally, only two more units of sand can possibly come to rest:

……+… ………. ……o… …..ooo.. ….#ooo## …o#ooo#. ..###ooo#. ….oooo#. .o.ooooo#. #########.

Once all 24 units of sand shown above have come to rest, all further sand flows out the bottom, falling into the endless void. Just for fun, the path any new sand takes before falling forever is shown here with ~:

…….+… …….~… ……~o… …..~ooo.. ….~#ooo## …~o#ooo#. ..~###ooo#. ..~..oooo#. .~o.ooooo#. ~#########. ~………. ~………. ~……….

Using your scan, simulate the falling sand. How many units of sand come to rest before sand starts flowing into the abyss below?

First! The state, including the starting point and the input from the file!

(def start [500 0])

(def input
  (for [line (str/split-lines (slurp "input-14.txt"))]
    (for [segment (str/split line #" -> ")]
      (map #(Integer/parseInt %) (str/split segment #",")))))

Then, to draw the map from the input:

(defn xrange [start end]
  (if (> start end)
    (range start (- end 1) -1)
    (range start (+ end 1))))

(defn draw-segment [[sx sy] [ex ey] map]
  (into map
    (if (= sx ex)
      (for [y (xrange sy ey)] {[sx y] :wall})
      (for [x (xrange sx ex)] {[x sy] :wall}))))

(defn draw-line [line map]
  (loop [[point1 point2 & rest] line
         map map]
    (if-not point2
      map
      (recur (cons point2 rest) (draw-segment point1 point2 map)))))

(defn input->map [input]
  (loop [[line & rest] input
         map {}]
    (if-not line
      map
      (recur rest (draw-line line map)))))

And then to solve for the actual puzzle!

(defn blocked? [map point]
  (contains? map point))

(defn gravity [map [x y :as point]]
  (let [next [[x (+ 1 y)] [(- x 1) (+ 1 y)] [(+ 1 x) (+ 1 y)]]]
    (if-let [valid (first (filter (complement (partial blocked? map)) next))]
      valid
      point)))

(defn add-sand [map]
  (loop [point start]
    (match (gravity map point)
      [x 999] map
      point (conj map {point :sand})
      n (recur n))))

(defn sand-possible [map]
  (loop [count 0
         map map]
    (match (add-sand map)
      map count
      added (recur (+ count 1) added))))

And altogether!

(let [smap (nth (iterate add-sand (input->map input)) 25)
      render-char #({:wall \# :sand \* :empty \.} (get smap [%2 %1] :empty))]
  (for [y (range 0 10)]
    (list (apply str (map (partial render-char y) (range 494 503))))))
(sand-possible (input->map input))

Part Two

You realize you misread the scan. There isn’t an endless void at the bottom of the scan - there’s floor, and you’re standing on it!

You don’t have time to scan the floor, so assume the floor is an infinite horizontal line with a y coordinate equal to two plus the highest y coordinate of any point in your scan.

In the example above, the highest y coordinate of any point is 9, and so the floor is at y=11. (This is as if your scan contained one extra rock path like -infinity,11 -> infinity,11.) With the added floor, the example above now looks like this:

………..+…….. ……………….. ……………….. ……………….. ………#…##….. ………#…#…… …….###…#…… ………….#…… ………….#…… …..#########…… ……………….. <– etc #################### etc –>

To find somewhere safe to stand, you’ll need to simulate falling sand until a unit of sand comes to rest at 500,0, blocking the source entirely and stopping the flow of sand into the cave. In the example above, the situation finally looks like this after 93 units of sand come to rest:

…………o………… ………..ooo……….. ……….ooooo………. ………ooooooo……… ……..oo#ooo##o…….. …….ooo#ooo#ooo……. ……oo###ooo#oooo…… …..oooo.oooo#ooooo….. ….oooooooooo#oooooo…. …ooo#########ooooooo… ..ooooo…….ooooooooo.. #########################

Using your scan, simulate the falling sand until the source of the sand becomes blocked. How many units of sand come to rest?

(defn get-max [smap]
  (->> (filter #(= :wall (second %)) smap)
       keys
       (map second)
       (sort >)
       first
       (+ 2)))

(def floormax (get-max (input->map input)))

(defn blocked? [map [_ y :as point]]
  (if (< y floormax)
    (contains? map point)
    true))
(let [smap (nth (iterate add-sand (input->map input)) 287)
      render-char #({:wall \# :sand \* :empty \.} (get smap [%2 %1] :empty))]
  (for [y (range 0 11)]
    (list (apply str (map (partial render-char y) (range 480 510))))))
(sand-possible (input->map input))

And for bonus points, here is the sand rendered after 1000 turns!

(let [smap (nth (iterate add-sand (input->map input)) 1000)
      render-char #({:wall \# :sand \* :empty \.} (get smap [%2 %1] :empty))]
  (for [y (range 0 (get-max smap))]
    (list (apply str (map (partial render-char y) (range 490 565))))))

Day 15: Beacon Exclusion Zone

You feel the ground rumble again as the distress signal leads you to a large network of subterranean tunnels. You don’t have time to search them all, but you don’t need to: your pack contains a set of deployable sensors that you imagine were originally built to locate lost Elves.

The sensors aren’t very powerful, but that’s okay; your handheld device indicates that you’re close enough to the source of the distress signal to use them. You pull the emergency sensor system out of your pack, hit the big button on top, and the sensors zoom off down the tunnels.

Once a sensor finds a spot it thinks will give it a good reading, it attaches itself to a hard surface and begins monitoring for the nearest signal source beacon. Sensors and beacons always exist at integer coordinates. Each sensor knows its own position and can determine the position of a beacon precisely; however, sensors can only lock on to the one beacon closest to the sensor as measured by the Manhattan distance. (There is never a tie where two beacons are the same distance to a sensor.)

It doesn’t take long for the sensors to report back their positions and closest beacons (your puzzle input). For example:

Sensor at x=2, y=18: closest beacon is at x=-2, y=15 Sensor at x=9, y=16: closest beacon is at x=10, y=16 Sensor at x=13, y=2: closest beacon is at x=15, y=3 Sensor at x=12, y=14: closest beacon is at x=10, y=16 Sensor at x=10, y=20: closest beacon is at x=10, y=16 Sensor at x=14, y=17: closest beacon is at x=10, y=16 Sensor at x=8, y=7: closest beacon is at x=2, y=10 Sensor at x=2, y=0: closest beacon is at x=2, y=10 Sensor at x=0, y=11: closest beacon is at x=2, y=10 Sensor at x=20, y=14: closest beacon is at x=25, y=17 Sensor at x=17, y=20: closest beacon is at x=21, y=22 Sensor at x=16, y=7: closest beacon is at x=15, y=3 Sensor at x=14, y=3: closest beacon is at x=15, y=3 Sensor at x=20, y=1: closest beacon is at x=15, y=3

So, consider the sensor at 2,18; the closest beacon to it is at -2,15. For the sensor at 9,16, the closest beacon to it is at 10,16.

Drawing sensors as S and beacons as B, the above arrangement of sensors and beacons looks like this:

1 1 2 2 0 5 0 5 0 5 0 ….S………………….. 1 ………………….S….. 2 ……………S………… 3 …………….SB………. 4 ………………………. 5 ………………………. 6 ………………………. 7 ……….S…….S……… 8 ………………………. 9 ………………………. 10 ….B………………….. 11 ..S……………………. 12 ………………………. 13 ………………………. 14 …………..S…….S….. 15 B……………………… 16 ………..SB…………… 17 …………….S……….B 18 ….S………………….. 19 ………………………. 20 …………S……S…….. 21 ………………………. 22 …………………..B….

This isn’t necessarily a comprehensive map of all beacons in the area, though. Because each sensor only identifies its closest beacon, if a sensor detects a beacon, you know there are no other beacons that close or closer to that sensor. There could still be beacons that just happen to not be the closest beacon to any sensor. Consider the sensor at 8,7:

1 1 2 2 0 5 0 5 0 5 -2 ……….#…………….. -1 ………###……………. 0 ….S…#####…………… 1 …….#######……..S….. 2 ……#########S………… 3 …..###########SB………. 4 ….#############……….. 5 …###############………. 6 ..#################……… 7 .#########S#######S#…….. 8 ..#################……… 9 …###############………. 10 ….B############……….. 11 ..S..###########………… 12 ……#########…………. 13 …….#######………….. 14 ……..#####.S…….S….. 15 B……..###……………. 16 ……….#SB…………… 17 …………….S……….B 18 ….S………………….. 19 ………………………. 20 …………S……S…….. 21 ………………………. 22 …………………..B….

This sensor’s closest beacon is at 2,10, and so you know there are no beacons that close or closer (in any positions marked #).

None of the detected beacons seem to be producing the distress signal, so you’ll need to work out where the distress beacon is by working out where it isn’t. For now, keep things simple by counting the positions where a beacon cannot possibly be along just a single row.

So, suppose you have an arrangement of beacons and sensors like in the example above and, just in the row where y=10, you’d like to count the number of positions a beacon cannot possibly exist. The coverage from all sensors near that row looks like this:

1 1 2 2 0 5 0 5 0 5 9 …#########################… 10 ..####B######################.. 11 .###S#############.###########.

In this example, in the row where y=10, there are 26 positions where a beacon cannot be present.

Consult the report from the sensors you just deployed. In the row where y=2000000, how many positions cannot contain a beacon?

(def sensors
  (let [line-re #"x=([-\d]+), y=([-\d]+).*x=([-\d]+), y=([-\d]+)$"]
    (for [line (str/split-lines (slurp "input-15.txt"))]
      (let [[_ x y bx by] (re-find line-re line)]
        {:pos [(Integer/parseInt x) (Integer/parseInt y)]
         :beacon [(Integer/parseInt bx) (Integer/parseInt by)]}))))
(defn get-taxi-dist [[x1 y1] [x2 y2]]
  (+ (Math/abs (- x1 x2))
     (Math/abs (- y1 y2))))

(defn get-adjacent [looked [x y]]
  (->> [[(+ x 1) y] [(- x 1) y] [x (+ y 1)] [x (- y 1)]]
       (filter (complement looked))))

(defn fill-empties [bmap start dist]
  (loop [points #{start}
         looked #{}
         dist dist
         bmap bmap]
    (if (zero? dist)
      bmap
      (let [new-points (set (mapcat (partial get-adjacent looked) points))
            bmap (into bmap (for [point new-points] [point :empty]))]
        (recur new-points (conj looked new-points) (- dist 1) bmap)))))

(defn place-beacon [bmap {:keys [pos beacon]}]
  (let [dist (get-taxi-dist pos beacon)]
    (conj bmap (fill-empties bmap pos dist) {pos :sensor beacon :beacon})))

(defn sensors->bmap [sensors]
  (loop [[sensor & rem] sensors
         bmap {}]
    (if-not sensor
      bmap
      (recur rem (place-beacon bmap sensor)))))
(defn visualize-sensors
  ([sensors] (visualize-sensors sensors [-2 -2] [25 17]))
  ([sensors [sx sy] [ex ey]]
   (let [bmap (sensors->bmap sensors)
         charmap {:sensor \S :beacon \B :empty \# :no-signal \.}
         render-char #(charmap (get bmap [%2 %1] :no-signal))]
     (for [y (range sy (+ 1 ey))]
       (->> (range sx (+ 1 ex))
            (map (partial render-char y))
            (apply str)
            list)))))
(visualize-sensors [{:pos [8 7] :beacon [2 10]}])
(visualize-sensors sensors [-4 9] [26 11])
(->> (sensors->bmap sensors)
     (filter #(not= :beacon (second %)))
     keys
     (filter #(= 10 (second %)))
     count)

So, this works! But I realize now that my implementation is nowhere near as efficient as it would need to be for the size of the numbers we are working with

Hmm, maybe I should just make a function that makes sure it isn’t within the specified taxi distance for each of the sensors

(defn add-sensor-dists [sensors]
  (loop [[{pos :pos beacon :beacon :as sensor} & rem] sensors
         acc []]
    (if-not sensor
      acc
      (let [with-dist (assoc sensor :dist (get-taxi-dist pos beacon))]
        (recur rem (conj acc with-dist))))))

(let [with-dists (add-sensor-dists sensors)]
  (defn definitely-empty? [[x y :as point]]
    (loop [[{[px py :as pos] :pos
             dist :dist
             [bx by :as beacon] :beacon :as sensor} & rem] with-dists]
      (if (or (not sensor) (and (= x bx) (= y by)) (and (= x px) (= y py)))
        false
        (if (>= dist (get-taxi-dist pos point))
          true
          (recur rem)))))

  (defn get-range [y]
    (loop [[{:keys [pos beacon dist] :as s} & rem] with-dists
           min-x 0
           max-x 0]
      (if-not s
        (range min-x max-x)
        (let [[bx] beacon
              [px] pos
              min-x (min (- bx dist) (- px dist) min-x)
              max-x (max (+ bx dist) (+ px dist) max-x)]
          (recur rem min-x max-x)))))

(defn count-row [y]
  (->> (get-range y)
       (map (fn [x] [x y]))
       (filter definitely-empty?)
       count)))

(defn visualize-sensors
  ([sensors] (visualize-sensors sensors [-2 -2] [25 17]))
  ([sensors [sx sy] [ex ey]]
   (for [y (range sy (+ 1 ey))]
     (->> (map #(if (definitely-empty? [% y]) \# \.) (range sx (+ 1 ex)))
          (apply str)
          list))))
(visualize-sensors sensors [-4 9] [26 11])
(count-row 10)

But even with this, it’s still really slow!

Profiling a few functions and running for about 35 seconds, and I find that:

:name:n:sum:q1:med:q3:sd:mad
get-range1330µs330µs330µs330µs0µs0µs
get-taxi-dist277244531.0s10µs10µs10µs116µs0µs
definitely-empty?7701235.0s409µs415µs435µs714µs7µs

Almost all of my time is being spent in the massive number of calls to get-taxi-dist, which only does add subtract, and abs.

I guess I need to find a way to decrease the number of times this gets called! That means I need to find a thing that can make the definitely-empty? return faster

Orrr I could just wait for my phone to catch up

(count-row 10)

Ah, wrong answer though? I guess I’ll need to debug that later too!

{:deps
{org.clojure/core.match {:mvn/version "1.0.0"}}}
9524
12618
6755
2121
12876
11330
4029
11446
11571
2683
3454
12411
6226
9901
6735
7602
4045
4643
5047
2329
5576
23361
16052
5523
12113
3128
5978
4683
3458
32135
15179
7380
9715
5985
9547
9207
6882
4407
1688
9175
4868
3374
6053
5304
4585
1344
5036
4807
1180
6655
4572
3864
4674
6759
6861
4273
2387
1085
1598
1807
13594
13712
7385
6607
6858
3872
5554
5802
1174
5234
6082
6672
4180
1491
4111
1721
6508
4569
2836
7992
2876
4464
5023
2920
3794
6274
3229
2998
15582
12963
14718
32390
2517
6446
6777
5881
7923
5523
4904
3018
5737
4826
5911
6152
2479
3949
3427
5924
6432
6746
6878
5884
3309
3674
2026
11177
1872
15245
16212
6512
23534
21079
5725
8219
7284
1011
1903
2835
3194
3712
5969
6069
4264
4616
5424
5382
4772
1908
1707
2222
2778
3712
10329
26374
4180
3086
5044
1980
5636
2776
5399
3898
1353
4864
5504
5631
3373
11290
1294
2117
13739
9724
11236
9653
13620
20041
8914
29248
32773
2316
3761
4458
4592
5963
2118
6079
2024
3928
4745
2965
1748
2824
5740
5189
1307
5004
2336
7721
1757
5155
4671
2734
4884
5549
16255
4892
4077
1163
7588
4887
4197
3782
5889
6735
5729
2783
3170
3062
6874
5479
4352
3701
5794
4775
1622
2128
1063
1009
1702
4405
4455
1304
5133
1374
2677
6261
1307
5579
6582
6098
5375
4876
4747
3285
6389
2660
68718
3578
5102
3755
2031
6961
6433
6081
2957
1770
1280
4229
7081
9388
11343
5178
2164
10275
6054
5742
8550
7983
8330
8883
9575
9300
8453
6367
5770
5374
5460
5590
6433
5785
3128
1194
5369
3032
6351
2210
4725
2942
5483
28182
36912
27721
15006
4561
2828
2120
4019
4685
1360
4315
2733
1546
3986
3071
4308
6705
1480
2075
4452
7034
6770
8934
8125
6333
2856
7908
5145
2068
1714
6972
5061
6633
4180
5603
5186
6986
3112
5696
1164
4408
7118
7230
1636
5958
2070
2091
3158
6631
6888
5446
3132
1888
2668
1529
1568
1901
4708
2815
8079
2394
1604
6133
1886
2648
3636
2998
5510
1422
5184
3436
6317
3481
3109
13992
8555
3038
5447
5010
10502
9033
4127
9385
7438
5561
14448
15742
9477
15244
1824
7913
3167
2770
6853
5049
8970
3980
3792
5263
1495
6398
3191
1787
4516
4528
1984
2209
2937
1917
7093
4995
11710
8145
2509
11002
2329
2772
9223
7429
5951
5211
5390
9636
5015
9576
9143
19336
8940
14860
1615
2033
1853
3334
10998
5591
10429
3400
6270
6159
1199
6841
1411
2272
2298
8236
2641
9002
8338
13253
9830
2121
6314
5463
16712
20041
15769
6691
8310
17869
15266
3313
3453
4166
6214
4735
6756
7020
4624
4679
1779
3429
1133
4630
2207
16017
2824
13752
6355
13493
12177
9701
1146
2421
6461
5774
5822
5873
7594
7653
6871
7934
6083
4111
7399
14561
4204
17338
9054
5551
2880
4587
7339
7793
8194
5359
8702
6846
4827
6451
2666
7916
2321
2258
7352
17612
30650
13845
9073
7678
15430
3256
13079
12502
8332
12919
15980
14653
5439
2880
15145
26007
18376
8663
11423
7152
3832
5843
3919
5658
1615
5840
3009
5725
2639
5239
4380
2298
4618
2586
15785
8518
4131
8614
4718
5897
7178
2031
3409
7218
6794
8699
4119
6928
2129
2231
2489
5616
1467
2225
5657
4127
6286
5359
4725
1819
5550
6079
7050
13912
13912
12870
4966
5974
3386
2793
4898
2975
3865
5974
3655
3838
1822
3322
1610
5610
3243
4090
1110
4663
2618
1587
3417
4401
3837
2593
4503
1746
4797
1821
3502
2592
4955
4020
13061
7532
12446
4084
1491
5988
6646
2061
2083
1761
5146
4656
5620
3959
6133
3161
9795
2854
6539
1197
7913
6560
1912
5636
3964
6541
3226
3536
6335
6956
3656
4149
6859
4609
4456
2856
3395
16002
11740
6583
8056
21295
6331
12521
14781
2837
18442
7673
12780
3682
2104
2166
4813
5722
5243
3506
4961
3587
5584
8571
6724
6901
5278
3464
4099
2514
6217
2209
6501
5950
3218
4821
3121
4106
4451
1228
5147
5877
1170
4801
4153
3710
1673
5553
5992
5173
4277
1451
5158
3766
3191
12693
13232
5554
12330
7602
6490
1168
14381
11380
6522
4822
3956
12204
1708
13838
7704
5066
5436
3448
4345
7430
6934
1717
4553
4683
7091
5718
4289
1140
2321
1291
2159
7409
3502
4266
2190
5307
1971
2217
8168
4475
7287
9416
6264
2691
4551
5109
3286
31132
31889
6154
6665
7026
11383
13857
8357
10312
3810
7818
6172
7615
9201
1937
9067
6897
4655
5091
2824
7062
1336
1835
3831
4839
5218
6044
4868
6466
4237
2814
2210
3365
6128
2713
5229
4600
1466
1225
5350
3013
1102
7614
3002
4451
2059
1843
6158
57499
2273
8394
9347
4833
9001
8823
7674
1882
9235
3759
7106
1671
1596
7855
3616
4858
4966
6050
2267
2082
3664
1812
4412
6457
5080
3280
6407
3124
5993
2142
2728
2912
1566
5990
7139
1082
6536
1213
6118
4821
3134
5633
3091
3618
5465
4116
1577
2776
4592
4923
5812
12233
1056
12928
6106
8177
12942
13879
2729
11070
7560
3359
1950
3396
7128
1724
6590
5952
2255
1022
5923
4381
2670
5619
5474
2892
5214
2677
4596
4314
2790
4749
6478
6865
3755
3747
1888
4764
5673
6832
8312
5569
3874
1831
1742
1953
6154
5064
2106
11402
8462
7116
2820
5625
5143
3055
1554
4279
5644
1908
6292
4492
7544
6590
6098
7178
7354
1570
8934
1544
6880
66910
12946
6226
7319
12112
6817
8025
2668
2630
1137
2881
2123
4994
3215
3315
2353
4031
4151
1609
5278
13286
5182
14123
6100
4344
7043
9434
6107
3579
1697
3166
3414
11329
35988
5631
7749
1074
4825
2650
6835
6433
5946
4203
4514
2944
7860
1341
2546
10857
11814
11301
9280
5318
8457
6221
1419
1715
6222
9581
5606
2293
9296
11898
8802
3804
1796
13910
12885
10836
17345
7449
2666
2481
6683
1783
4880
5339
5075
1043
6314
1440
5100
1647
2095
4698
7755
2595
1730
5954
3714
5023
4167
2202
4679
1165
4431
3109
3055
1713
1848
4118
1730
2280
1079
3688
1569
2995
4061
3757
4427
4747
2214
3723
1434
7512
1878
3167
2122
17054
9678
8169
2437
3160
2215
3949
2996
4494
1615
5174
6019
6055
3186
3229
5248
5656
1847
4314
5032
5345
3719
2918
3847
2708
1834
2603
2200
3822
6052
2997
1540
1846
3626
1064
5420
3228
1444
5662
5600
4544
5177
2309
2186
2638
3164
5703
6079
28701
30412
11849
11080
24418
3926
4456
3783
3058
1752
4944
6732
6587
2578
3490
1730
3862
12513
6788
4010
1427
1098
9313
8444
16375
14666
15215
2819
1623
4195
1981
2908
4730
2621
4136
4824
3588
2979
1583
1776
1845
3772
3668
3119
4402
5814
4507
3147
4834
1171
4102
5458
4930
5098
1284
5117
3889
7447
1031
6800
4884
6483
1577
7164
2778
6216
3167
5458
12710
14353
9583
5759
16081
3156
4905
4799
2502
7230
6169
2350
4196
4384
5939
2889
1349
4978
5247
10881
3833
13656
8822
4063
3379
4073
3091
2733
4759
5051
5605
3114
2039
6049
4568
5013
1991
4239
22021
21472
15888
23871
33564
1475
1319
6422
2086
1101
2435
1661
6011
5927
4798
4770
4860
4821
6438
45424
3704
6982
7230
4807
6677
6131
2698
3048
4914
3656
4707
1883
5114
2366
2220
3239
2574
3754
2711
6984
7464
6208
5881
5964
5999
4260
2501
3387
3112
5323
4895
3715
2183
2900
4867
1975
3961
5874
3960
5490
6056
5222
6205
1153
5491
4156
3921
4369
1195
1540
3601
6238
2433
5286
1272
1567
2425
5797
5222
3213
6021
6519
17672
19343
11461
8143
6489
5442
4307
1773
4716
1220
5407
2997
4763
2629
5102
6014
6309
4072
8155
7481
6771
8686
5980
6754
5761
69172
4781
6068
4342
6091
4340
5890
2973
4214
2884
1782
3622
3240
2185
1947
4634
11595
22943
1583
9915
2518
3285
12248
56794
1266
8056
3268
7231
3018
2774
2415
5377
4227
5428
1113
3527
5534
4501
8409
3396
5553
10346
2931
4457
6108
5058
3393
5132
2076
4461
3353
4568
2182
2493
3285
1592
5370
15869
8031
6349
5106
1725
4758
5364
3316
4235
4813
4421
1682
2133
3691
39362
1243
6663
7560
10078
1589
8782
9184
9149
4761
21813
24493
8335
9413
5100
7001
4090
6375
9420
6864
3263
2101
3950
6076
1739
5749
4174
5849
5463
4750
5934
4202
6119
1588
1637
3545
4228
7420
10436
5854
10021
7383
2430
5591
3145
13825
14058
4268
12789
11917
2470
4661
1018
4383
4852
1090
5644
3953
1204
2819
3500
2749
5615
3939
5118
3128
2882
3718
2670
2190
1495
3551
5497
3264
6484
6199
2011
4157
5896
6046
34056
2090
8624
11777
7414
4519
1108
8667
8481
5032
10813
3466
9107
2058
1813
2236
8430
2923
7801
7506
3315
1937
2698
1647
3083
5874
4801
4649
1311
5306
4655
4981
2325
2130
2261
37135
1831
4702
5322
5424
4620
3951
1275
1074
1767
4751
2512
4367
2623
6175
23083
30515
1765
3327
5205
4124
2834
5524
1945
4393
3958
1021
4989
1142
1960
11170
3970
11159
5081
5508
9043
6180
6216
3861
1281
1935
2128
1550
5869
4139
6307
5320
4740
5970
4039
8019
1455
3994
10337
3779
7604
9614
7636
5463
10532
13499
3967
4866
2889
4428
1896
2064
3350
2802
5240
5626
1206
2169
3757
3481
26031
10122
12480
5566
21219
57426
17286
1875
6596
2739
2182
4147
2513
4571
1569
2946
1972
3032
3580
5820
4722
3358
4456
2945
1417
16228
13578
12393
13426
4372
5930
4010
5308
3557
6006
2054
4331
4274
1501
1532
2900
3255
6106
6061
9386
18674
17741
14487
4117
5801
4046
2354
3552
4774
2218
4651
4221
6622
3388
2588
7925
5719
2382
6087
7799
5066
5100
4925
5764
5262
6232
12700
2207
7062
9723
4933
8313
8988
9771
8549
10278
10827
4384
3514
12710
12592
2531
15038
13852
2993
6765
1799
19487
10768
2715
7932
12032
10044
3722
2465
6819
3758
7537
1607
3958
2502
7743
1448
6763
7543
3664
6265
2609
1884
5972
4086
4523
6108
5073
5407
4410
2353
3627
4617
5816
2375
7279
6266
4691
6941
6754
1496
5536
1911
4220
3776
1762
5809
8808
1028
1768
7751
2274
5136
4402
19168
27638
16145
17357
7612
10493
6387
6862
6673
5873
6094
4189
3313
3217
3310
1580
4793
5262
2933
22224
11444
6708
1285
1573
2512
4161
2397
5196
2829
2105
5197
3478
4256
1755
3308
1105
2738
4607
3867
2306
3615
2686
5102
5659
3177
4846
13577
14550
5133
11050
7976
2082
5860
3018
8157
2087
1462
2164
2651
6380
3549
1849
4313
9018
5235
5785
3287
1464
6853
2251
4937
4124
4119
2485
3358
5815
4338
2249
5615
5378
1533
1035
2194
1521
24714
16695
23212
1679
1745
5214
4118
6052
4962
3633
3355
2768
2857
2124
4280
4754
1535
2400
5507
5947
7455
6774
2836
2126
3098
1685
6404
4302
4508
1739
3315
18956
13505
17849
7127
2867
4170
3426
2878
4025
3745
4267
2678
6439
1986
3401
1323
4225
6003
5156
5715
8382
2666
14581
11008
31882
15152
3976
2654
4849
2090
5774
1173
2645
4282
3014
3082
6723
6860
2129
5783
8750
4604
7494
5460
6231
4198
5747
7406
7529
1360
17274
9730
13453
3154
8490
5069
6268
4530
2929
7829
9000
4835
1441
3255
5210
1328
1628
3809
2422
3055
4402
2905
2375
2369
5513
4352
3749
3015
2463
8928
8067
9196
4077
5189
2392
2574
1847
3374
3505
3451
2323
5703
1466
5226
1553
7253
1835
6210
4886
5970
2459
4117
3866
5168
5914
6819
2291
6510
6039
4553
2686
5613
1938
5481
3692
5223
1505
3628
1095
4340
2681
5657
1811
1233
2815
7505
3875
1236
2028
3022
8262
6240
6295
7060
45267
16209
17734
3318
1727
4971
5208
8009
8009
6117
7870
4824
7741
1278
1854
4926
3228
6199
1312
2417
4413
1801
4145
4604
4296
5636
5169
6081
7523
3390
2318
8663
7609
1722
5343
8124
1579
2959
4172
21931
22824
2561
3470
3018
6387
4774
5611
4904
5883
6144
4977
1863
1613
3160
4236
3059
2276
1441
3886
2204
3853
3910
5347
5630
5721
6630
addx 1
noop
addx 29
addx -24
addx 4
addx 3
addx -2
addx 3
addx 1
addx 5
addx 3
addx -2
addx 2
noop
noop
addx 7
noop
noop
noop
addx 5
addx 1
noop
addx -38
addx 21
addx 8
noop
addx -19
addx -2
addx 2
addx 5
addx 2
addx -12
addx 13
addx 2
addx 5
addx 2
addx -18
addx 23
noop
addx -15
addx 16
addx 7
noop
noop
addx -38
noop
noop
noop
noop
noop
noop
addx 8
addx 2
addx 3
addx -2
addx 4
noop
noop
addx 5
addx 3
noop
addx 2
addx 5
noop
noop
addx -2
noop
addx 3
addx 6
noop
addx -38
addx -1
addx 35
addx -6
addx -19
addx -2
addx 2
addx 5
addx 2
addx 3
noop
addx 2
addx 3
addx -2
addx 2
noop
addx -9
addx 16
noop
addx 9
addx -3
addx -36
addx -2
addx 11
addx 22
addx -28
noop
addx 3
addx 2
addx 5
addx 2
addx 3
addx -2
addx 2
noop
addx 3
addx 2
noop
addx -11
addx 16
addx 2
addx 5
addx -31
noop
addx -6
noop
noop
noop
noop
noop
addx 7
addx 30
addx -24
addx -1
addx 5
noop
noop
noop
noop
noop
addx 5
noop
addx 5
noop
addx 1
noop
addx 2
addx 5
addx 2
addx 1
noop
noop
noop
noop
Monkey 0:
Starting items: 98, 97, 98, 55, 56, 72
Operation: new = old * 13
Test: divisible by 11
If true: throw to monkey 4
If false: throw to monkey 7
Monkey 1:
Starting items: 73, 99, 55, 54, 88, 50, 55
Operation: new = old + 4
Test: divisible by 17
If true: throw to monkey 2
If false: throw to monkey 6
Monkey 2:
Starting items: 67, 98
Operation: new = old * 11
Test: divisible by 5
If true: throw to monkey 6
If false: throw to monkey 5
Monkey 3:
Starting items: 82, 91, 92, 53, 99
Operation: new = old + 8
Test: divisible by 13
If true: throw to monkey 1
If false: throw to monkey 2
Monkey 4:
Starting items: 52, 62, 94, 96, 52, 87, 53, 60
Operation: new = old * old
Test: divisible by 19
If true: throw to monkey 3
If false: throw to monkey 1
Monkey 5:
Starting items: 94, 80, 84, 79
Operation: new = old + 5
Test: divisible by 2
If true: throw to monkey 7
If false: throw to monkey 0
Monkey 6:
Starting items: 89
Operation: new = old + 1
Test: divisible by 3
If true: throw to monkey 0
If false: throw to monkey 5
Monkey 7:
Starting items: 70, 59, 63
Operation: new = old + 3
Test: divisible by 7
If true: throw to monkey 4
If false: throw to monkey 3
abccccccccccccccccccaaaaaaaaacccccccccccccccccccccccccccccccccccccaaaa
abcccccccccccccccaaaaaaaaaaacccccccccccccccccccccccccccccccccccccaaaaa
abcaaccaacccccccccaaaaaaaaaacccccccccccccccccccccaaacccccccccccccaaaaa
abcaaaaaaccccccccaaaaaaaaaaaaacccccccccccccccccccaacccccccccccccaaaaaa
abcaaaaaacccaaacccccaaaaaaaaaaaccccccccccccccccccaaaccccccccccccccccaa
abaaaaaaacccaaaaccccaaaaaacaaaacccccccccccaaaacjjjacccccccccccccccccca
abaaaaaaaaccaaaaccccaaaaaaccccccaccccccccccaajjjjjkkcccccccccccccccccc
abaaaaaaaaccaaacccccccaaaccccccaaccccccccccajjjjjjkkkaaacccaaaccaccccc
abccaaacccccccccccccccaaccccaaaaaaaacccccccjjjjoookkkkaacccaaaaaaccccc
abcccaacccccccccccccccccccccaaaaaaaaccccccjjjjoooookkkkcccccaaaaaccccc
abcccccccaacccccccccccccccccccaaaacccccccijjjoooooookkkkccaaaaaaaccccc
abccaaccaaaccccccccccccccccccaaaaacccccciijjooouuuoppkkkkkaaaaaaaacccc
abccaaaaaaaccccccccccaaaaacccaacaaaccciiiiiooouuuuupppkkklllaaaaaacccc
abccaaaaaacccccccccccaaaaacccacccaaciiiiiiqooouuuuuupppkllllllacaccccc
abcccaaaaaaaacccccccaaaaaaccccaacaiiiiiqqqqoouuuxuuupppppplllllccccccc
abccaaaaaaaaaccaaaccaaaaaaccccaaaaiiiiqqqqqqttuxxxuuuppppppplllccccccc
abccaaaaaaaacccaaaaaaaaaaacccaaaahiiiqqqttttttuxxxxuuuvvpppplllccccccc
abcaaaaaaacccaaaaaaaaaaacccccaaaahhhqqqqtttttttxxxxuuvvvvvqqlllccccccc
abcccccaaaccaaaaaaaaaccccccccacaahhhqqqttttxxxxxxxyyyyyvvvqqlllccccccc
abcccccaaaccaaaaaaaacccccccccccaahhhqqqtttxxxxxxxyyyyyyvvqqqlllccccccc
SbcccccccccccaaaaaaaaaccccccccccchhhqqqtttxxxxEzzzyyyyvvvqqqmmlccccccc
abcccccccccccaaaaaaaacccaacccccccchhhppptttxxxxyyyyyvvvvqqqmmmcccccccc
abccccccccccaaaaaaaaaaccaacccccccchhhpppptttsxxyyyyyvvvqqqmmmccccccccc
abcaacccccccaaaaaaacaaaaaaccccccccchhhppppsswwyyyyyyyvvqqmmmmccccccccc
abaaaacccccccaccaaaccaaaaaaacccccccchhhpppsswwyywwyyyvvqqmmmddcccccccc
abaaaaccccccccccaaaccaaaaaaacccccccchhhpppsswwwwwwwwwvvqqqmmdddccccccc
abaaaacccccccccaaaccaaaaaaccccccccccgggpppsswwwwrrwwwwvrqqmmdddccccccc
abccccccaaaaaccaaaacaaaaaaccccccaacccggpppssswwsrrrwwwvrrqmmdddacccccc
abccccccaaaaaccaaaacccccaaccccaaaaaacggpppssssssrrrrrrrrrnmmdddaaccccc
abcccccaaaaaaccaaaccccccccccccaaaaaacggppossssssoorrrrrrrnnmdddacccccc
abcccccaaaaaaccccccccaaaaccccccaaaaacgggoooossoooonnnrrnnnnmddaaaacccc
abccccccaaaaaccccccccaaaacccccaaaaaccgggoooooooooonnnnnnnnndddaaaacccc
abccccccaaaccccccccccaaaacccccaaaaacccgggoooooooffennnnnnnedddaaaacccc
abcccccccccccccccccccaaacccccccaacccccggggffffffffeeeeeeeeeedaaacccccc
abccccccccccccccccccaaacccccaccaaccccccggfffffffffeeeeeeeeeecaaacccccc
abccccccccccccccccccaaaacccaaaaaaaaaccccfffffffaaaaaeeeeeecccccccccccc
abccccccccaacaaccccaaaaaacaaaaaaaaaaccccccccccaaaccaaaaccccccccccccccc
abccccccccaaaaacccaaaaaaaaaaacaaaaccccccccccccaaaccccaaccccccccccaaaca
abcccccccaaaaaccccaaaaaaaaaaacaaaaacccccccccccaaaccccccccccccccccaaaaa
abcccccccaaaaaacccaaaaaaaaaacaaaaaacccccccccccaaccccccccccccccccccaaaa
abcccccccccaaaaccaaaaaaaaaaaaaaccaaccccccccccccccccccccccccccccccaaaaa
[[6,[[0],[6,7],[4,10,8,4,1]],1,[[2,6],0,[4,6,2,3],9]]]
[[10,[7],6]]
[[[2,5,[0,2,6,4],[6],5],[1,[1,4,10]]],[7,[[],6,[9],[0,5,8,8,1],8]]]
[[2,3],[8,10],[3],[[10,[1,3,8,0,7],2,6,4],[],[1,[9,1,4],[1,4,5,10],[]],[5,[],[7],2],[3,7,[10,3],7,[]]]]
[[[4,[0,8,2]],3,[[],[0,1,9,3,5],6],[]],[],[0,2,[[5,5,8],[8,6,5,10]],10]]
[[[4,[9],[9,8,10,1,0]]],[7],[8,[0,[8,9,5,3],3,[8,4],4],0,[[]]]]
[[[],[8,5],9,10],[7,6,10,1],[[7,[3,5,0,1],2,0,[2,0,3,7]],3,10,2,[8]],[[5,[8,2,10],[5,8,2,8,7]],7,10,[],[[3,10,4,8,4],4,9,10,2]]]
[[[[0,2,8,5,3],4],[[5,4,10],[],4,[3,1,4]],[],10,10],[[],[],2,10],[6,1,[6,[2,6,4,6,4],[6]]],[[],0],[]]
[[[],5],[2]]
[[7,4,6,[4],[3,[7],[3,1,8,9,8]]],[7],[[]],[0,[[1,3,1,10],8,8,7]],[3,[8,[6,3,1]]]]
[[[],6],[[],10,4,[5,8],[5,5,[6,4,2,6,3],10]]]
[[],[[6,5],8,5,[2,[2,2],[4,8,1],[]]]]
[[6,8,[[6,4,9,2,3]]],[4,[[6,1,4,7,4],[1,10,3]],4,1],[],[5,[[9,5,2],[0,5,4],[4],[8,5,7,8],3]],[]]
[[10,[]],[[[0,2]]],[5,1,1,[],1]]
[[9,7,1]]
[[8,3,[[2],2,[6]],4],[[9,[9,3],[10,9]],[[10,9,0,6,8],[10,5,7,7,5],[8,10],5],3],[8],[[[9],[1,3,7,4,3],6,[],6],2,8],[[6,[],8,5],0,[[2,1],7],3]]
[[3],[],[],[5,[9,[8,5,2],[3,3,6,9],[]],[[9,2,1],[],2]]]
[[[10,[7,0,5],4,4,6],[4,9],[],[[4,1,7,7],9,8,2],[2,[],9,[8,0,1,0,5]]],[],[[],5,[1,3,[5],[2]],10]]
[[[[],8],3],[8,[[4,5,6,0],2,[3,3,4,6],[7,2,4]],[2,[8],[8,5],[4,6,4,5,8],[6,9,6,6,6]]],[[1,6,3,6,9]]]
[[],[[10,[],[9,3,7,8,3],[3,5,1,9,7]],[1,[2,4],[10,8,2],4],9],[],[[2,6,8,[9,3,8,5,1],0],[1],2]]
[[[[8,6,1],[8],[2,8,7,4,0],0,8],[[],[],8,[4,4,3]]],[[2,2],[8]],[3,[[3,7,10,0,10]]]]
[[9,[[2],[]],0],[],[5,[[5]],[[6,9,3],[]],1,5],[6,[8,5,9,[7,7]],[],3],[]]
[[7,10,2,8,[[4,9,0],[0,2],0,[6,1,3,5]]],[[[5]],[[4,9],9,[8],[2],[7,10,2]],9,2],[7,6,[[3],1,0,[7,8,0,2]],8],[0,6],[4,9]]
[[10,5,[],[[4,5,6,2,3],3,2],[3,[2],[2],3,[9,1]]]]
[[1,8,3,[[5,9],4,9,[8],[2,3,6,4]]],[8,6,8,4],[[3,0,[8,3]],[4,3,0],8,[2,6,10]],[10,7,1,10,3],[2,7,[],[]]]
[[[[8]],6],[[[8,10,8],7,8],[]],[[9,5,[10,3,2,4],8,[3,0,1,3,4]],[[10,6,0],2,7]],[[[],[5,4,6,6,5]],[],[[0,1,0,5,10],7,[],5,[4,10,4,7]],[]]]
[[[[2,4,3,1,6],5,[3,10,5,4,9],[3,4,8,7,6],[]],8,[8,1,4]],[[[1,9,6],0,7,6],3,10,[[3,8,9,5,6],[9,9,5,9],[2],8],8],[0],[10]]
[[[10,0,10],10,7,10,[7,4,6,[]]],[4],[5,0,4,[]],[]]
[[[4,[7,2,8,4,1],[10,7],4],5,[]],[5,3,4],[[],[0,4,3,[4,0,8]]],[]]
[[4,[]],[[[10,4],[1,6,0,3]],[[1,6,1],5,[],1,4],[[4,3,8,0,3],0],10],[[9,[7,0,0,10,6],[3,8,7],2,[1,2,6,0]],[0,4,3,[1,3,2,8],[7,0]],9],[],[]]
[[6,8,[[3],8,7,10]],[[[0],10,[5,8,4],9,[1,3]],[3,6,[3,4,0,9]],1,[0,4,[0,7,8],3,6]],[5,[],[[9],[2,0,10,8],5],7,0],[[9,6,[6,6],10],[],2,[[2,1,9],[]]]]
[[2,2,5],[[0,[1]],3,4,[[5,6,2],8,[1,5,6],[10,3,0,3,5],9],[[7,10,6,3,7],[9,10,0,9,4]]],[[[9,9,8,7,3]],1],[[],10,6],[[7,[2],[7],0,6],[8,[8],4,9],4,8]]
[[5,[1,[0,10,9,8],6,3,7],[[5,9,1],9],[10]],[3,[9]],[10,5,[10,2,6,[],[4,3,2,7]],4]]
[[2,[[3,8,3,0,5],[9,2]],[[6,3,9]],[1,8,10,[],4],5],[[6,[4,4,2,10,9],[3]]],[0],[10,[2,1,[],[3]],8],[10,3]]
[[[10],[],1,7,[[],9,[5],[9,4,8,0,4]]]]
[[],[[[2,2,5,1,4]],[7,10,[2,5],1],[],0,3],[[],[6,8,3,2],5,9]]
[[4,[4,[],[9,2,10,10],10],[3,[],[]],[[5],[9,9,8],4,[2,5,6]],[0,[0,6,0]]],[],[8,[5],1],[[10,2,9],[],9]]
[[2,[4],[[]],[]],[[8,8,[],4],10,9],[[[4,2,10],5],5,[3,[],[8],[2,9,6],[3,6]]]]
[[],[],[8,[8,0],10,[10,[10,6,4]],0],[10,1,[1]]]
[[[],[[],[]],[],[]],[[],0,10]]
[[],[],[]]
[[5],[0,[6,0,[4,3,1],4],7],[10,[[]],4,[[0,1],4,[5,4,9,2],0]],[10,4,5,8,10]]
[[[[5,3,7,8],[],[1,10,6]],1,[],[6,[3,7,3,7],10,5,8],0],[[7,[],6,[1,4,8,2,2]],0,6]]
[[[[]],[],9,7]]
[[[9,5]],[[5,9]],[]]
[[[9,1],[],[]],[2,0,[6,9],9],[7,[[],[6,8,6],[7],2],[[]],[10,[3,2],[3],[9,2],10]]]
[[],[0,[[]],7,4,[[],8,[10],[]]],[[1,[6,6,0],[2,2,8],[3,3,8,8],[1,5,9,2,6]],9,1],[]]
[[],[10,[[],9],[[0,8,9,10],9,[8,2,5]]],[[6],[[],10,2,[6,10,1],5],[4],[3,[2,4,6]],[4,[],[3,3,0],[7]]],[3,10,8]]
[[[7,[10,7,7,0],0,5,[6]],[]],[[0],[2,7,9,5],4,[2,[4,2,4],[4,4,0,1]],[7,[3,0,9,9,2]]],[[3,7],[5,[6,3],9,[]]]]
[[],[3,1,5,[[],[4,3,5,10],5,[1,8,4,5],[]],[6,[7]]],[7,[[4,9,5,3,10],7]]]
[[2],[],[[[5,6,4,7,1],[],4,5,[8,10]],5],[2,7],[6,[],[[9]],2,[[5],[5,6,9],1,[5,0,0],[6,8,7,5]]]]
[[],[[],5,[2,[0],[6,6,2,5,9],[0],[4]],9,9],[2],[8]]
[[9,10,[9,[0,5,9,8],4],[[5],1,[3,6,10],[3,8,4]]]]
[[[0],[10],1,[[0],8,[]],4]]
[[[4,5,[6,8,6,9,2],[1,0,6,2,9]]],[[[10]]],[7,0,[[4,8,7,9],[7,2,4],8]],[8,3,[],10,7]]
[[[8,2],0],[1,[]],[[0,1,[2],6],[[8,4,8,0,3],[],1],10]]
[[[7],[[3,0,10,9,8],[7,0,7,3],8,0,0],[[1,0,6,8,7],[8,3]],[[5]]],[[],[[9],[8],10,[10,4,7,5],[6,1]],1],[[[],[9,1,6,3],[5,8,2,7]]],[[[8],8],[[0,2,6],[4,0]],[[9,8],[3]],2,[[0,8],[10,6,4,10],4,5]],[[[8],5,3,[2]]]]
[[[],[9,[],[3,2,4]],6,[3,[5],[2,2,8,6,10],5,[]],4],[[[8,7],2,9,[1,0,2,7,4],9]],[]]
[[],[[],[]],[]]
[[],[[]],[[],4],[3,[],[[4,8,8,6,6],[3,2],8]]]
[[[0,4,0,[2,7,7],[0]]]]
[[[6,[7,1],[5,10],[],[0]],[10,9,[5],8,[4,2,2,7]],[3]],[9],[6,7,9,[3],3],[0,10],[[],1]]
[[6],[[[],[1],9,[0,2,2,7],6],8]]
[[7,3,[[],4,[],8,[10,4,3,5]],[1,[9,3,4,6,9],6,[]]]]
[[],[[[],[],7,[0],0],4,8],[4,10,2,2],[10,5,3]]
[[8,5],[2,10,0],[[[7,1,0,3,4],[9,2,4,2]],[[9,1,6,7,7],[5,2,8,7,3],[8,1,5,1,7],[],[]],[[10,1,10],[5],1]],[3,0,0,[],6]]
[[2,9,8,[],[]],[[[3,1,9,4],[6,10,4],1,9,10],[7,2,4,[10,8],4],0],[[],[[3]],[[],2,[5,9,2,3,3],[6,8,2]]],[[10,[5,1,3,5],10,9],0,5,10,[[],[0],5,3,3]],[0,[8,[4,9,2]],[[5,1,1,2],[9,4,3,10],6,[9,5],6]]]
[[9,[2,[1],4]],[],[9,[8],0],[10,[[6,6,10,1],9,10,4],3,[[1]]]]
[[2,2,7],[[],10,8,[4,10,5,[3,5,1],5],8]]
[[],[],[10,5,0,[[8],9,[10,2,9,8],[8,2,4],[8,1,6]]],[9]]
[[[[10,7,2],[5,9,5],[3,5,3]],[[9,8,7,2],4],0],[[8,1],[[10,10,7],6,5,9,6],0],[[9,[9,3,0,3],5],7,[[]]],[[1,[7,10,8]],2,9,[[4,1,4,1]],8]]
[[[]]]
[[2,[],[10]],[]]
[[[[1,1,4,2,9],1]],[10],[]]
[[0,5,[4,9]],[[],[[8,0,7],10,5],[],[[4,1]],[9,[9,6,3,7],[4,2,8,4,2],0,9]],[],[],[2]]
[[7],[2,[9,2,5,0],[3,[4,1],[4,8,3,8],[0,10],5]],[3,[10,[4,2,2,2],[0,3],[7,2,9,2,9],1],[[1,3],[10,6],6,8]],[],[1,9]]
[[5],[[[10,1,1,1],[9,9,0],[6,9]],3,8,6],[7,3,5],[[[0,0],[5,6,10,8,8],[10]],[1,10,2,0]],[]]
[[[[2,10,7],[1]],7,[],[[0,4,8,5]],8],[[[9,8,2,1],[7,10,8,9],3,[]],[],[1],[0,[5,8,7]],[[],[1,9]]]]
[[5,10,[[9,7,4],4,[4,10,5],[5,1,0,4,5],[8]]],[[7,[0,9,4,8,7],[1,8,4]],10,[],[9,[7,7,2,5],[8,9],[10,6,4,4],[9,2,6,3]],[[3],4,8]],[],[]]
[[5],[[4,8,4,[5,3,0,0,8]]],[8,[[7,8,5,8,8]],7],[9],[[3,[4,6],[],[6,6,1,8,8]],9,[],0,3]]
[[[2,0,8,[2,9,5,9]],[[],[]]],[6,4,10],[[8,4,5,[10],6],7]]
[[1,10,[[3,4,1],[],10,[6,4,7]]]]
[[[[2,10,2],[5,8],[],[],[3]],[[3,8,3,5,2]]],[[7,[2,2,5,5]],[6]],[[[10,10,8,2],[9,7,2,1]],[2,9],4],[0,[]],[]]
[[10,0],[],[8,10,7,[]],[[[10],[6,7],2],5,7]]
[[],[[6,[3],[8,6,7,3]],[3],[[5,10,8,3],0,[2,6,9,4,6],[1,5,6],0],10,[]],[[6,6,[],10],8]]
[[9],[8],[0],[6,4,[[],[4,4,2,4],[3,2,9]],[5,[8,2,5,9,1]]]]
[[[[6,5],5,1,3],5,6,5],[1,[]],[[],10,4],[[0,[4,9,10,10],[1,8],2],2,0,5,[[4,3,8],7,[7,4,1,9,2],6,[6,7,10,0]]],[0,1,6]]
[[],[4,[7,1,2,0,7],0,2,8],[],[[],7,[6,10,[0,7,2],8,3]],[]]
[[0,[[9,8,2,9],[6,5],3,1]],[[[6,4,3],[3,10,10,10,3],[10,1,6]],[5],8,1],[6,6,[[8,4,10]],7]]
[[[],2,[],[[0,1,5,0],4]]]
[[],[[],4,1]]
[[[5,[5],5,9],6,1,[8,5],6]]
[[1],[[10]],[1,[0,9]],[],[[[],7,[3,3,6]],[4,[9,6,2,4],[9,3],5,[4]],[[10,9,7,0],8,[6,0]],[8,[8,0,5,9],1,9,6],5]]
[[],[8,[[8],2,2],[]],[[1,7],6,[[0,3,9],7],0,6],[5,[[8,2,7],3,6,0]],[[5,4,[2],1,2],2,[[2,1],[9],[2,4,3],7],[]]]
[[[[3,10,1,4,9],[9,4,2,10]],[1,5,[3,8],4],5,[2,[]],[2]],[7,[[3,7,2],[0,8,3,8],9],6,[],[]],[[],[[0],[6,10,9,4,1],7],8,[[5,9,4,2,0],3,5]],[8],[]]
[[[[]],[0,7,2,2]],[],[],[[2,[7,4,5,3],[],3,10]]]
[[0,[[]],2,6]]
[[[7],[],[8,[10],[10,9,1,7]],5,[]],[[7,[1,2,6],4],[[6],[0,7,5]],[[10],[9,9],[0,2,9,3],[6,10,9],[]],[9],9],[],[1]]
[[3,[[5,6,2,1],7,[8,6],1,0]],[]]
[[[[7,9,3,8],4,[2,9],[4,1,10],7],9,1,[10,[9],[0,6,9],[1,2],2]],[],[1,5,2],[2,[],1]]
[[10,8,[[5]],3],[]]
[[[0,[8],[1,5,7,7,10],3],[[5],9],[[0,7],[7,10],2,[10,8,2,1,9]]],[[[],[2,1,10]],2,[9],1],[6,[[4,6,6],[3,4,6,10,10]],3],[5,9,8,5,[[4,4,1],8,6,[6]]],[10,[[],[9,5,1,4,9],8,[2,7,3,8,2],8],4]]
[[[3,4,5,[10,4,7,8,1],4],6],[[[4]],1,[10],5],[3],[[6,7,1,2,9],[7,[1,5,10,4],[6],[5,3,10,9,6],7],[2],[[7,1]],[5,9,9,5]],[0]]
[[[[8,5,7,1,4],6,[7,1,10],[],[3,3,3,7]],[[4,1],8]],[[[0,7,10,4],5,3,10,6],3,9,[]],[6,[5,8],[]],[0,5]]
[[8,2,3,[[1,7,10],5,4,[6,2,6],[8]]]]
[[3,[]]]
[[[10,[10],3],5],[[8,6,4],1,[[0,1,1,4,2]],[[8,1],0],[[6,7,5,5]]],[[[2,8,1,0,7],[8,7,7,1],[3,2,8,8,8],[8,3,8],[8,5,7,9]],1],[9,[4,1,10]]]
[[10,6,7,[[6],[2,4,9,8],7,[5]]],[1,1,[3,[6],[]],[8,[4],[4]],4],[[[8,5,9],[6,1],6],[5],3],[2,9]]
[[[[2,10,4,8,7]]],[7,0],[],[[],[10,[],[10,4,3],4,7],5],[9,[7,10],[]]]
[[[2],[[3,9,2],[],7,[8,8,2],[5,9]]],[[]],[[10,[],3,6,7]]]
[[[9,[8,6,6],[10,8,10,0]],2],[1,5,6,5,6]]
[[1,4,7,[4,10,[9,10,2],8,8],[[7,7,9,0,10],[0,3],2]],[],[2]]
[[2,5],[[6,[],[8,8,5,0],1],3,6,9],[[2,5,2,1,[6,8,0,6]]],[],[7,0,[1,[6,6],[1,1,0],7],2]]
[[[[]],5,[[3],3],[[10,3,1,5],8,8,0]],[2,[[7,0,6],[9,10,2],2,7,[4,4]],[3,9],8,0],[7,0],[[[1],[3],[5],[]]]]
[[1,5,[[1,6,9,8,0],[],10,3]],[],[],[[2,[7,6,8],[1,3]],[9,[10,1,4],[5,6,5]],[7,[3,5,2,5,2],[4,9],[6,9,8,7]]]]
[[1,[5,9,3,5,7],[[1,0,1,0],1,[3,8,2]]],[7,[[],2,1,2,1],[[3],6,9,[0,6,9,4]],[[3,3,3,3]]],[[[9,5,5],5,[3,5,4,0],[8,6,2,6,9]],[[5,10,8],[0,6,6,0,3]],[9,5,10,5,5],6,4],[[[0,5,0,3],[3,1,3,7],[4]]],[[6,4]]]
[[[[10,1]]],[[9,[3,3,4],2],[[5,3,8,9,6],4,[7,0,0,9],2],10,[],10]]
[[],[[[1,0,8,5]],10,[[5,6],[0,1],[0,7,2]],10,[6,0]],[3],[],[[6,[10,2,4,7,1],0,[6,6],5],[[6,9],[1,3]],[10,[9,10,6,1],0],[4,[10,7,3]],[[5],5,2,[7]]]]
[2,10,6,3]
[2,10,6,3,2]
[[4,2,1],[[[1],[6,5,3,7],[4,7,6],8],[[0,3,4],[3,9],[3,7,6,4,0],[3,8,0]],[5,[7,9,6,7,10],[1],[8,9,6,4,9]],[6,5,7,3]]]
[[[],[3],[7,[4,7,3],[10,6,7]],10],[8,[0,3],[0,3],[4,[8,6,3],8,0,4],[3,[1]]],[8,0,[[5,2,2,7]],1]]
[[[[7],8,4,2],1,[4,[10,9],[3,2,6],3,[5,0,2,9]],[9,[0,7,2,2],[],[],3],7],[]]
[[4,0],[0],[]]
[[[[],8,9,[0]]],[],[[8,[6,4,9,7],[2,7,6,1],[1,7,2,8],[4,8,9,4,0]],[5,1],6,9,4]]
[[8],[[[2,9,1],10,[1,2],[]],5,[]]]
[[[6,0,[10,3],6],1,[5],6],[5,1]]
[[[5,[4,5,2],3],[4,1],[[1],9],[9,10,[],[10,0,7]]],[[[],2],[[]],2,[0,6,10]],[5,6]]
[[[1,[],4,7],9],[4,5,9,[]],[],[4,10,4,[10]],[]]
[[2,9],[]]
[[9,[[5,5,1,4,4],[8,4,0,6,0],3],4,8,10],[[9,4,8,3,[0,6]]]]
[[2],[5,[3,7,[7,4,6,1,3],10,[2,6]],1,6],[10,3,[6,7,[2,4,8],[9,8],8],0,[]]]
[[[[0,5,4,1,4],[2,5,3,3,10],3]]]
[[8,1,5,5]]
[[[0,[5,8,9,5,4],[9,1,3],[9,10,7,0]],0,[4,9,6]],[[[1]]],[[10,8,3],4,[],[[5,4],2,2,4,8]],[[[],[2,2],8],[3,3,[6,9],4]],[5,1,2]]
[[[[],10,[8,3],2],[[5,3,8,8,4],1,7],[[4],[1,1],7,4,7]],[[[6,7,10,7,8]],[[2],0,10,[0,7,7,6,10]],[7,10,0,4,[5]],4]]
[[3,4],[[[1,6],1],[[],10,8,[6,8,8]],9,7]]
[[],[[[7,10]],3,0,[[],[],[8,7]],[[8,3,5],[6,4,2,8],2,[2]]],[7,10,7,[5,5]],[[8,[2,7,6,2],9,6,9],8,[[6,3]],5],[[[],7],10,1,7]]
[[],[],[[[3],3],2,6,10,10],[10,[],6]]
[[0,[2],4],[3,[7,2,2,8],5,[[8]],8],[[],[[],[10,8],3,6,[]]],[6,[1],[2,[],4],[[7,2,4,6],[7,1,10,4,4],8,7]],[7,10,[3],0]]
[[0,2],[],[]]
[[[6,10,[]]],[[1,[4,5,5]],[[]],[5,[],6,[0,1,8],[2,1]]]]
[[[3],[5,[5,4,1]],2],[],[],[[[4]],[[8,2,10]],10]]
[[[[6,2,6,1],[],5,[4,8,5,1,1]]],[10],[[3,0,4,5],4,4]]
[[]]
[[1,4,6,[[4],5],[[7,5],[],9,2]],[]]
[[[0,[]],5,[[7,0],[10,5,9,2],[1,0,6,5],3,[8,9,4,4]]],[[[0,8,10,3],10,0],10,[[7,8,2,8]],[5,5,1,[9]],[[6,5],6,5,10]],[1,[[0]],2,8],[[7,[7,5,1,10,1],7,[6,10,1]],[]]]
[[[9,6,[10],[0,10,10],[8,1,7,9,7]],10],[[0],3,[1,[8,5]],[2,5,3,[]]]]
[[0,6,[[7,5,2,8,8],[4,6,0,10]],[6,[6,6,5,3,5]]],[5,6,[1,[6,0]],[7,[9,0],[10,4,5],[2,4,10],[4,6]]],[[],5]]
[[[10,[6],[1,6],[5,7],9],9],[2,9],[],[[[9,7]],0,8,0]]
[[[],4,[]],[2,2,3,3,3],[[[8,1,2,9,2]],4],[1,[[],[],7,5],[0,[2,6,8,4]]]]
[[9,[[4,5],9,[]],0]]
[[[],9]]
[[7],[[2],7],[2,[8,[5,5],8,10,3],1,[[3,0],[0,1],2],10],[],[[8,[10,2,0,10,0],0,1]]]
[[3,8]]
[[],[[]],[0]]
[1,0,0,5,1]
[1,0,0,5]
[[],[[5]]]
[[7,8],[[5,[10,6,0,4],[10,9,9,4,6],[3,7]],[[],7,[7,4],6,3]]]
[[[3,[0,5,4,1,3],4,[10,9,10],[9,2,6]]]]
[[5,6,0,3],[],[0,[6,2,9,[0,8]],[0,[5,7,4,3],[6,9],[3,8,6,6],[9]]],[]]
[[9],[1],[6,[[1,1],8,5]],[2],[10,[[4],[4,6],[4,3],[2,5],2],[[5,3,8,5,3],3,2]]]
[[3,[],1,[[1,0,10],9,3,[8,9,8,1,9]]]]
[[5,[9,[1]],[],[0,5]]]
[[[9]],[10,10]]
[[[[0,7],[6,6,1,2]]],[8,[[4,4,10],[3,7,2,9,2],[4,9],8,7],10,0],[10,4]]
[[8]]
[[[[1,6,0,2],[2],6,4]],[[1],[[1,1],7,8],5,[0,[],[6,3,4],[0,2,9,2]]]]
[[3,[[4,4,0,5],[5,1,4,8,3]],[]],[]]
[[[[3]],[[9,2]],[3,5,[7,2,9,9],[6,3,3],[5,6,8]],1]]
[[5,[[3,8,2,2,0],[0,9,2]],10,[[],[1,10,7,0],[5,10,7,6,6],[]]],[]]
[[8,[[9,5,0],[7]],[[9,0,3,7]]],[]]
[[6,7,4,5,0],[10,[[5,3,8,3,8]],0,10],[9,3,[[10,3,2,4,10],7,[0,10,10,1],6]]]
[[10,[[],0,[5,9,9,1,5],[2,0,10,9,9]],4,[0,[],[0,6,7],[5],8]],[],[7,6],[7,[[8,10,2,2,4],[],[8,3,3],[2,1,6,9],[1,7,7]],7]]
[[[],[[0,6],[5],[9,1,9,2,10],[9,2,4,7]],[2],5,1]]
[[9,[]],[5,[[1,2]],4,[],8],[[[5,2]]]]
[[2,4,[4,[9,3,6,6],[0,0],1],1,0],[8,10,[[1,9,6,0]],4,[[0,10,7],5]],[],[]]
[[[[8,1,1,8],10,3],[[8],10,8,9],5],[5,[],1,9,[[0,4,7,3,9]]],[],[2],[[1,8,[2,4,5,6],[9,9,4,7],[5,0,10,8,2]],[9,[],[4,5,0]],[9,[10]]]]
[[],[[]],[[5,4,[7,0],[4,6,5],9],[[10,9,0]],[[7],[1,4],2],2,10]]
[[3,5,7,[0,0]]]
[[],[[[9],5,2,0],9,0],[[5,[0,6,0,10,1]],[9,[5,8,10,6,9]],5],[1,[[8,10,1,0]],8]]
[]
[[[4,[3,6],8,5],[[2,1,0,3,4],[3,8,10],7],[[0,1,5,0,8],[4,1,8],[]],[[10],3,2,[6,2,1],[10,4,10]],[10,[2,9],3,6]],[],[[[3],[10],[8,5,1],[10,6],4],[5,[1,2],3,4,[]],[2]],[5,8],[[[3,4,3],[1],[],5],3,7,8]]
[[[],[[6],6,[7,2],[8,7,0,10]],[0,[8,10,7],4],[7,6,9,2,4]],[3,6,[[2,5,7]]],[[8,[9],8,[],9],5],[3,[[],1,7,7]],[4]]
[[[0,[3,5,9,0],[5,2],8,6]],[3],[8,[8,6,[8,1]],[[8,4],[3,0,7,4,2],[6]],7,[4]],[[6,[4,1,10,3],[5,8,6],[3,10,1,3]],8],[5,[],7,[1],[1,[2,2,7,10]]]]
[[5,1,[[],[]],5,3],[5,[[],8,0,[6,7],2],6,1,[3,8,8,0,6]]]
[[],[],[0],[7,4,[[5,7,3,5,1]],9],[]]
[[5],[[[7,8,0],4]],[],[10,6,[[4,6],6,1],8],[[[1,8,7],6]]]
[[],[[[],[6,4,1,9,10],[6,9,2],[10,2,2,8],[]],[0,10]],[[[3,2],2,5],[],[],10]]
[[0],[3],[0,3,[8],[],[[7,0],0,10,4,5]]]
[[6,[7,[],[6,2,5],[]],[5,[8,7,9],5,[4,1,6,9,7],5],[9,[],1,[10],7],1],[],[3,4,[6,[2],7],6,8]]
[[[2,[4,2,7,7,9],0,[6],[5,1]],0],[[],[2,[1,7,3,7,5]],2,[],[[10,6,8,5],5,0,[0,10,8,2,0]]],[[6,[],6,[]],[[10,4,4,4,3],4,[8,0,5,1,3]],[2,[6],5,8]],[6],[[[10,0],9],[[],8,1],10,[[]],9]]
[[5,[7],[1,10,6,9,9],[8,0,5]],[]]
[[[[9,4,9],[],3,[],[8,4,2]],9,1,[[10,10,4],0,6]],[[[]],[6,[4,4,10],4,[3,2,4,0,3],3],[],[[10,1,10,9],5,[3,5,5]],6],[],[6,6,3,5]]
[[9,3,[],8],[0,[1,0,5],7]]
[[8,1,1,[]],[1,[],[[9,10]],4]]
[[2,3,9,6],[[[7,9],[3,7,4]],7,10,[]],[]]
[[[[4,6]],7,9,7,3],[[[7,2,8,3,1],10]],[7,5,8],[[[2,6,7,10,5],1,9,3,[]]]]
[[4,[[10]],4,[6,[9],8,[]],[]],[1],[9],[[4,5,[1,10]]],[2,9]]
[[0,[[0,3],[7],[1,10,6,2,4]]]]
[[[4,0,3],4,8,8],[],[]]
[[[],[[0,8,8]]],[5],[8,8,0],[4]]
[[[[],[8,5,3,6],[1,10,5]],[[],[1,7,10,9,7]],2,[6],8],[]]
[[[[4],8,[],[0]],8],[[],[[6,9],[2]],[5,0,6,[10,6,4]],[]]]
[[10,[[0,2],[4,9,9]]],[],[2],[[[8,9,0,1],9,8],0,10]]
[[[5,7]]]
[[[2,6],[[6,2,8],10,1,6,[5,10,0,5]],[3,1,[4],[7,7]]],[7,[[7,0,4],2,7,0]],[[4,5,[4,4],[1]],[],[[3,9,2,2],4]]]
[[[[7,3,10,2,1],[10,5,4,6,1],9,9,[]]],[[[7],10,[5,3,2,7]],[[1,0],6,[0,10]],[[0,0,9],[1,6,2,0],8,9],[[6,9,3,8,0],[8,8],[8,3],[5,4,1,1]]],[6,[5,[],10,2,4],[0,6,[6,0,0,10,8]],[[],[1,3,1],7],5]]
[[4,[7,[5,3,2,7,7]],6,[],[5,[6,6,0,2,6],8,[10,2]]]]
[[[1,[],5],[],10,5,1],[[[],[7],2,[4,7],[1,1]],[9,[8,1,10,8,1],[2,3],[10,9],10],6,4,[10,2,[6,2],3]],[[4],[[],7,[8],[1,5,6]],[[],[7,3,6,5],2],[10,[2,9],5,[7,4],[4,6,4,8,4]],[8,0,[],6,[0]]],[[[9,0],[6,10,7,4,10],9],[]]]
[[[1]]]
[[8,[9],[7,[7]]]]
[[[3,9,[9],[10,8],[5,9]],4,[8,[5,4,10,10,8],[],[10,3,5,7,7]]],[],[[[9,3],1],0,[5,[0,4,3,1],[]],[[],2,[10,0,8],8,[]]],[[0,10,5,[]]]]
[[2],[7]]
[[[],9,3,[[4,0,2]],[]],[[3,[4,7,10,5,8],3,10,[1]],[3,[],[1,2],[0,8,7,1]],0,1,2],[0,6,7,[[0,1,5,7],[7,4,2,8,5],5]],[]]
[[1,1,[],[[8],8,2,[10,8]],5],[],[10],[9,[4],[[],7,[7,5,9,9,1],5]],[6,0,[]]]
[[[[9,1,4]],[[6,8],[3,5]],[4],[6,[2,9,7,4,10],4,5,[2,2]]],[7,2],[2,[[6,7],[],[4,0,5],[6,7]],[],[[],[10,1],2,[],0]],[],[[10,1],3,6,[[],[8,10,9,3],[4,1,8,6,5]],0]]
[[0,[0,[1,6,4],2,7],4,[],[3,[],6,5,[7,5,0,3,8]]],[],[[[10,6,4,2],9,[],3],6,6,0,8]]
[[5],[[[]],[[7,2,1],10],8]]
[[[1,[2]],[1,9],[2,4,3],2,[[0],2,[1,1,7,10]]],[]]
[[[10],[[7,10],4,10,9],7],[[0,1,8,1,9],3],[[],9,[[0,8],[0,9],[5,7],6,0],[[],2,[],3],6],[6,[[],1]],[6,[[4],[3,7]],[],[3,7,[8,4,8]],10]]
[[[8,[6,10,6],3]],[7,[]],[7,[],3]]
[[],[]]
[[8,6,[[2],[6]],3,6],[],[3,9],[]]
[[9,9,[[9],[6,5,7]],0],[[],8,10,10]]
[[3,1],[4]]
[[[[3,2,0,3,1],[1,9,6],7]],[7,[9,9],2],[4,7,7],[[[3,2],10,[]],0,[3,[3,5,4],[5,8,3],[10,2,9,8],[10,6,4,1,2]],[[7,7,8]],6]]
[[[1,[8],4,[3,2,3,3],4]],[[[10,3]],4,[10,[5,3,2,8],[6,4,8,5],6,0],8],[[[7,4,7],[7,8],4],[10,[5,3,8,8],9,[]],[]]]
[[[2,[8,2,3,3,2]]],[[[],[0,5],9,[0,5]],[3,10,[7],[2,7,2,7,10]]]]
[[5,5],[[[5],[6,3,4,4,7],6,8,[0]],[[9],[7,3,3,3],[5,8,0,0,3],[9,1,10],8],3,0,6],[[[5,10],6,7,[2,6,0,5]]]]
[[4,3],[[4],0,[[10],[7,2,2,6],6,[2],[6,3,2]],9],[[[9],4,2,8,[4]]]]
[[6,[[0,6,10,4,9],[0],10,[]]],[[[]],9,[1,4,[6],[9,10]],8,10]]
[[8,4,3,10],[],[3,8,0],[8,8,0],[]]
[[2,0],[[]]]
[[2,9,[[3,1,6,9,0],[8,1,1],1,4,2]]]
[[],[2,10],[3,[[6,0,7,9],1,3],[[3],[3,4,8,7,5],3,1,8],4]]
[[6,2]]
[[[1],[],[]]]
[[[[9],4]],[3,10],[[4,[1],[9]],[[]],6]]
[[10,9,[]],[[9],9,[[0,3,8],10,7,[3],[5,2,7]],8,4],[[],7,[2],[8],4]]
[[],[[[5,0,3,2],[9,10,5],[0,6,9,1,3]],[9,5],[[2,3,5,10],4]],[0,0],[]]
[[[[3,10,8,8,6],[0,5,4,7],4],9,3],[4,[[3,8,10,0],[10,0,1],7,10,5],7],[[2,[0,0],9],9],[4,10,[[6]],[[10,3,9,3],[5,10,10],[1,3,0,2,6],[0,1,4],6]],[]]
[[[1,1]],[[[5,4,8]],6,[[0]],7]]
[[[5,[6,10,10,2]]],[1,[10,[],7,[4,3]],3],[5]]
[[[[7,9],1],[0,[9,8,7,8],0],8,9]]
[[[9],[[2,5],[],4,[]],[],[0,5,1,4]],[6,[[9,1,5,1,3],0]],[[[3,5],1,[9,1],2],[],4],[9],[2,[[10,3,1,10],4,6,7],1,0,[[],10,[10]]]]
[[[],2],[[],[3,[2,6,8,9,0],[0,9,7,1,8],[8,8]]]]
[[7]]
[[1,[[8,3],2,2,4],1,[]],[3,[[6]]]]
[[[[]]],[3,[],[9,[10,0,5,5],4,[]],[1],[[],[10,9,1],7,[]]]]
[[[[2]],[[],[],[]],[[],2,2],5,5],[[9,[],[10,5,7,4,7],[4]],4],[[[],[9,5],0,1,[9,10,2]],9,8,[],5],[[[],[4,7]],[0,1,7],[7,[9],3]],[4,[[1,9,5,8,9],[1,8],[5,4,0,8,5],[],[8,2,0,4]]]]
[[[],0,[[6,1,1],[3,10,7,1,3],[6,2,0,8]]]]
[[[6,[],[9,10,8,8,6]],2,[1,2],[5,[9,2,9,5],5,10]],[8,[[1,6,4],[2,7,3,10],[0,5,10]],[[2,4,1,1],[0],4]],[[]],[9,6,6,[],4],[[[10,5,2,0,6],[]],0]]
[[[8,[5,8],[],[],[10,4]],[[4,4,6],[],1,[8,10,3,3,5],0],[[],[],[2,9,1]],5],[],[[[],2,[10,9,2,10],10],2,[[2,3,2]],[[4,6,7,3,0],[7,8,3,6,7]],[5,[5]]]]
[[7,[10,1,[7,3,4,10,4],[],0]],[[0,0],3,[[1,5,2,1],[],[7,2,7,3],[8],5]],[[[8,5,1,2,2],[2,8]],3,[9,[9,6,3,2,0],[10]],7],[[7,[8,9,4,10],1]]]
[[[[4,5,9,2,8],[],[4,4,6,7],4]],[9,[6,2],[[3,1],9,[]],[5,[1,7,6,0,2],7],0],[[[2]],4,[[9,2,5],[1,1,0,8],[5,7],[5,3,4,7]]],[],[[4,[0,4,0,1],[1]],[],4,0,[]]]
[[[[],1,2],0],[4],[7,[9,[0,3,0]],[10,[6,3]],[[0]]],[7],[3,9]]
[[5,[[0,5,1,4]],9],[1,4,10],[],[[9,[10,10,2,1,0],2,5],[[0,4,2,6],10,10,8,[]],[9,10,[6,9],[],[2,5,4,3]],[[7,6,4,1,3]],[[8],[3,3,0]]]]
[[[1,[8,7,1,1]],[[1,7],[],[3,5,4,2],6],10,4,10],[[],[[],[0,10],3],[],0]]
[[],[[3,7],[0],0,3,[]],[8,[9,[],[1,10,1,7,7],[8,0]],1,[[6,2,3,7,10]],9],[6,7,5,[[7,7,0],4,[5,8,1],[6,5]]]]
[[[5,[3,8,9]],[[],[3,7,7],[3],10],[],[[4,9],[4,10]]],[9,4,3],[[3],10,8,[],4],[7,1,7]]
[[[1],[],2,5]]
[[[0,9],[7,9]],[0,9,[[9,10,3],[],[]],0],[[1],8,4],[9,[8,[5,8],10,8],[2,1,8,9]]]
[[7,[[3,6],3,[10,8,10]],[[6,6,2],[3,8,0],[7,9,7],7],[],4],[10,[1,[5,8,3]],[6,[2,7,10],[],[10,8]],6],[8,3,7,1,[[4,8],4,[6,0,7],[]]]]
[[3,[0,2]],[],[[1,[2,2,1,6],[]],[[9,3,3,3]]],[[6,[0,7,1],[8,7,4],[],10]],[9,[10,[10,3,2],[2],8,1],1,6]]
[[[5,5,10,4,3],[2,[],[7,9,2,3,9],2,[0,10,7]]],[],[[[0,4,8],9,10,0],[2,[2,6,4,8,10],5],10,[],6]]
[[[],[[5],10,10,5],0],[[[1],3,[3],[1]]],[]]
[[5,10,[1,10,6,10],0],[[[7,9,5,3,8],[7,0],3],3,10,7],[5],[[[9,0],0],2],[[7,[2,3],[3],[10,10,6,6]],9,[[2,0]]]]
[[2,[7],[10,[4,0],[4,3,6],6,10],[[9,8,9],9,[6,2,0]]]]
[[4,[[9,2,8,9]],1,10],[[[5,8,4],[8,10],8,9],[5,2,[9,0]],[[10,5,0,10]],4,6],[[2],[2,[9],1],5],[[3,[8,0,2,4],8,6],6,4,[[],7,[4,10,8,9,9],2,[3,9,6]]],[[2,[2,1]],[[5],[4,6,4,10],6],[7,[8,4],[1,7,7,7],[3]],3]]
[[[[],[],10,[3,2,3,4],4]],[[],[[],[],5,[10,4,5,10,1],3],2,10,[[0,7,8,10]]],[3,[7,[]],[5,[4,8,6],2,[1,4,7],6],[]],[[6,8],[],[],1],[10,[0,3],[[0],[7,8,3,9,9]]]]
[[10,[[1,2,5],[2]],[]]]
[[[9,[],4,5,[5,0,10]],9,3],[7,[0,2,1],[[4,7,6,0],[5,1,6]],[[],4,4,[10,1,10,3,1]],9],[0,[2,5,[6],0]],[[1,[]]],[[7]]]
[[],[[[],8,10,7]],[4,[8],1],[1,[[7,2],6,[6,0,4,1]],[[2,1],[10,2,10,8,3],2,[9,4],2],5],[]]
[[[[7,6,7],[10,0]],[[3,5,5,6,1],3],[1],1,3],[2,[10,6],1,8],[],[[[3],[0,1,8],[0,8,4,10,4],9,3],[[3],8],3,[5,[5,2,1],[]]]]
[[3,2,2,10]]
[[10,[10,3,[7,2,0],[]]],[[7,7,9,0,8],[[8,6],7],[1,6,4]]]
[[[10,[10,9,1,1,3]],1],[1,5,7,8,[9]],[2,2,9,4]]
[[],[],[5],[[1,9],[[0,0,8,5],1,[2,3,10,0],[6,9]]],[]]
[[[],1,[7,9,[],4]]]
[[[1,0,[9],[2,8,6,7],6]],[9,[10],3],[[8,3,7],[],[2,8],2],[]]
[[1,[6,[6,1],[3,1],8,[2,6,9,8,4]],7,0,6],[0,[1,[3,10,2],6,7],[[8,10],1,[0,9,3,6],6,7],9,9],[[[9,1,9,2,8],4,[],[3,8,4]],8,[9,[6,2,9,5,9],8],3],[2,6,[1,8,[]]],[10]]
[[0,[10],6,10],[],[4,[[10,5,0],[]]],[8,[[4,1,4],[],4]],[4,10,[]]]
[[[[4,9],[7],[4,8],3,[6,10,8,1]],3]]
[[[],[[6,5,8,9],1,7,[9,2,9,5,8],10],[[6,8,10,8],7,4,[2,1,0,6,6]]],[10],[[],[],0,[10,8,[5,3,4,5,0],[9,9]],[6,0,[4,8],[]]],[[[8],[4],[1,8,2],[5,6,4,6],[]],4]]
[[],[],[10,[10]],[[[4,7,9,2],2,[10,4,7,3,6],[10,4,1],[9,0,10]],8,[[2,3,1,9],10,[9,2,9],[]]],[5,7,4,[[0],6,[9,0],[1,7,5,7,2]],1]]
[[[[0],[0,6,4],6],[2,4]],[[0,[0]],[[],[10,3,9,2,2]],[[8,6,8,3,3],4],7,8]]
[[[5],[],[9,2,0,[9,3]]],[3,7,[4,3,[5,5]],4,8],[[1,[]]]]
[[[2,4]],[0,[5,8,1,[7,10]],[[1,10,2,0,0],7],[9,4,[8],[0,10,1,8,9],7]]]
[[4,[[5,3,2,0],7,4,10],8,3,[[7,10],[5],[1,10,9,7],[3,4,1,6,5]]],[[2,6],[8,3,0,2,9]]]
[[[10,[4,10,8,6],[3,4],[3,1,3,3,2],[3,10,0,4]],7],[5,[],[[],[7,3],6],10],[],[[2,[6,3],6],[9,9,[0,8,9,5,6],[]]],[[7,[4,1,0,0,6]],7,[]]]
[[[],[[8,6,1,6],[10]],[8,3,[2,1,2,6],[8,1,10,8],0]],[[0,[7,4]],5,7,[[10]]],[[[],8],[],8],[[6,[0,1],9,1,0],[],3,5,9]]
[[],[1],[7],[4,0,4,[]]]
[[[7,3,6]],[8,[[],4,8,[6]],[1,4,[]],0,9],[]]
[[3,0,2,[]],[3,[],5,[]],[[[4,1,9,4],[5,10,3],9,[9,1]],[[10],7,[3]],[[],[2,5,0,10],8,5],[],4]]
[[9,[9,[0,2]],10,[[0,7,9,4,2],2,[6,7,4,3],[7]],4],[],[[],10,4,5]]
[[[[9],[7],2,1,8],[[7,5,9],10],[],[]]]
[[1,3,[[7],3,[6,10],[7,2,10,6],6],5],[],[[],[[],2],1,[10,[],8,3,[9,7,9,8]]],[]]
[[[10,[10,7,9],[],[8,9]],7],[2,10,[0,9,[4,2,10,7]],6,9],[[1,2,3],0],[5,3,[2],2]]
519,81 -> 524,81
534,161 -> 534,157 -> 534,161 -> 536,161 -> 536,154 -> 536,161 -> 538,161 -> 538,156 -> 538,161 -> 540,161 -> 540,153 -> 540,161 -> 542,161 -> 542,151 -> 542,161 -> 544,161 -> 544,160 -> 544,161 -> 546,161 -> 546,156 -> 546,161 -> 548,161 -> 548,159 -> 548,161 -> 550,161 -> 550,159 -> 550,161 -> 552,161 -> 552,159 -> 552,161
499,53 -> 499,57 -> 491,57 -> 491,63 -> 513,63 -> 513,57 -> 505,57 -> 505,53
530,130 -> 530,123 -> 530,130 -> 532,130 -> 532,126 -> 532,130 -> 534,130 -> 534,128 -> 534,130 -> 536,130 -> 536,123 -> 536,130 -> 538,130 -> 538,124 -> 538,130 -> 540,130 -> 540,126 -> 540,130 -> 542,130 -> 542,122 -> 542,130 -> 544,130 -> 544,127 -> 544,130 -> 546,130 -> 546,125 -> 546,130 -> 548,130 -> 548,125 -> 548,130
530,130 -> 530,123 -> 530,130 -> 532,130 -> 532,126 -> 532,130 -> 534,130 -> 534,128 -> 534,130 -> 536,130 -> 536,123 -> 536,130 -> 538,130 -> 538,124 -> 538,130 -> 540,130 -> 540,126 -> 540,130 -> 542,130 -> 542,122 -> 542,130 -> 544,130 -> 544,127 -> 544,130 -> 546,130 -> 546,125 -> 546,130 -> 548,130 -> 548,125 -> 548,130
540,132 -> 540,133 -> 552,133 -> 552,132
495,50 -> 495,40 -> 495,50 -> 497,50 -> 497,43 -> 497,50 -> 499,50 -> 499,43 -> 499,50 -> 501,50 -> 501,41 -> 501,50
547,139 -> 552,139
558,142 -> 563,142
501,24 -> 505,24
530,130 -> 530,123 -> 530,130 -> 532,130 -> 532,126 -> 532,130 -> 534,130 -> 534,128 -> 534,130 -> 536,130 -> 536,123 -> 536,130 -> 538,130 -> 538,124 -> 538,130 -> 540,130 -> 540,126 -> 540,130 -> 542,130 -> 542,122 -> 542,130 -> 544,130 -> 544,127 -> 544,130 -> 546,130 -> 546,125 -> 546,130 -> 548,130 -> 548,125 -> 548,130
551,142 -> 556,142
530,130 -> 530,123 -> 530,130 -> 532,130 -> 532,126 -> 532,130 -> 534,130 -> 534,128 -> 534,130 -> 536,130 -> 536,123 -> 536,130 -> 538,130 -> 538,124 -> 538,130 -> 540,130 -> 540,126 -> 540,130 -> 542,130 -> 542,122 -> 542,130 -> 544,130 -> 544,127 -> 544,130 -> 546,130 -> 546,125 -> 546,130 -> 548,130 -> 548,125 -> 548,130
495,50 -> 495,40 -> 495,50 -> 497,50 -> 497,43 -> 497,50 -> 499,50 -> 499,43 -> 499,50 -> 501,50 -> 501,41 -> 501,50
486,37 -> 486,34 -> 486,37 -> 488,37 -> 488,34 -> 488,37 -> 490,37 -> 490,28 -> 490,37 -> 492,37 -> 492,28 -> 492,37 -> 494,37 -> 494,30 -> 494,37 -> 496,37 -> 496,36 -> 496,37 -> 498,37 -> 498,36 -> 498,37
512,66 -> 512,70 -> 505,70 -> 505,78 -> 521,78 -> 521,70 -> 516,70 -> 516,66
551,164 -> 551,168 -> 546,168 -> 546,171 -> 556,171 -> 556,168 -> 555,168 -> 555,164
534,161 -> 534,157 -> 534,161 -> 536,161 -> 536,154 -> 536,161 -> 538,161 -> 538,156 -> 538,161 -> 540,161 -> 540,153 -> 540,161 -> 542,161 -> 542,151 -> 542,161 -> 544,161 -> 544,160 -> 544,161 -> 546,161 -> 546,156 -> 546,161 -> 548,161 -> 548,159 -> 548,161 -> 550,161 -> 550,159 -> 550,161 -> 552,161 -> 552,159 -> 552,161
534,161 -> 534,157 -> 534,161 -> 536,161 -> 536,154 -> 536,161 -> 538,161 -> 538,156 -> 538,161 -> 540,161 -> 540,153 -> 540,161 -> 542,161 -> 542,151 -> 542,161 -> 544,161 -> 544,160 -> 544,161 -> 546,161 -> 546,156 -> 546,161 -> 548,161 -> 548,159 -> 548,161 -> 550,161 -> 550,159 -> 550,161 -> 552,161 -> 552,159 -> 552,161
507,20 -> 511,20
530,130 -> 530,123 -> 530,130 -> 532,130 -> 532,126 -> 532,130 -> 534,130 -> 534,128 -> 534,130 -> 536,130 -> 536,123 -> 536,130 -> 538,130 -> 538,124 -> 538,130 -> 540,130 -> 540,126 -> 540,130 -> 542,130 -> 542,122 -> 542,130 -> 544,130 -> 544,127 -> 544,130 -> 546,130 -> 546,125 -> 546,130 -> 548,130 -> 548,125 -> 548,130
486,37 -> 486,34 -> 486,37 -> 488,37 -> 488,34 -> 488,37 -> 490,37 -> 490,28 -> 490,37 -> 492,37 -> 492,28 -> 492,37 -> 494,37 -> 494,30 -> 494,37 -> 496,37 -> 496,36 -> 496,37 -> 498,37 -> 498,36 -> 498,37
545,148 -> 550,148
522,104 -> 526,104
499,53 -> 499,57 -> 491,57 -> 491,63 -> 513,63 -> 513,57 -> 505,57 -> 505,53
530,130 -> 530,123 -> 530,130 -> 532,130 -> 532,126 -> 532,130 -> 534,130 -> 534,128 -> 534,130 -> 536,130 -> 536,123 -> 536,130 -> 538,130 -> 538,124 -> 538,130 -> 540,130 -> 540,126 -> 540,130 -> 542,130 -> 542,122 -> 542,130 -> 544,130 -> 544,127 -> 544,130 -> 546,130 -> 546,125 -> 546,130 -> 548,130 -> 548,125 -> 548,130
486,37 -> 486,34 -> 486,37 -> 488,37 -> 488,34 -> 488,37 -> 490,37 -> 490,28 -> 490,37 -> 492,37 -> 492,28 -> 492,37 -> 494,37 -> 494,30 -> 494,37 -> 496,37 -> 496,36 -> 496,37 -> 498,37 -> 498,36 -> 498,37
517,90 -> 522,90
486,37 -> 486,34 -> 486,37 -> 488,37 -> 488,34 -> 488,37 -> 490,37 -> 490,28 -> 490,37 -> 492,37 -> 492,28 -> 492,37 -> 494,37 -> 494,30 -> 494,37 -> 496,37 -> 496,36 -> 496,37 -> 498,37 -> 498,36 -> 498,37
538,148 -> 543,148
495,50 -> 495,40 -> 495,50 -> 497,50 -> 497,43 -> 497,50 -> 499,50 -> 499,43 -> 499,50 -> 501,50 -> 501,41 -> 501,50
548,145 -> 553,145
486,37 -> 486,34 -> 486,37 -> 488,37 -> 488,34 -> 488,37 -> 490,37 -> 490,28 -> 490,37 -> 492,37 -> 492,28 -> 492,37 -> 494,37 -> 494,30 -> 494,37 -> 496,37 -> 496,36 -> 496,37 -> 498,37 -> 498,36 -> 498,37
530,130 -> 530,123 -> 530,130 -> 532,130 -> 532,126 -> 532,130 -> 534,130 -> 534,128 -> 534,130 -> 536,130 -> 536,123 -> 536,130 -> 538,130 -> 538,124 -> 538,130 -> 540,130 -> 540,126 -> 540,130 -> 542,130 -> 542,122 -> 542,130 -> 544,130 -> 544,127 -> 544,130 -> 546,130 -> 546,125 -> 546,130 -> 548,130 -> 548,125 -> 548,130
514,93 -> 514,97 -> 506,97 -> 506,101 -> 523,101 -> 523,97 -> 518,97 -> 518,93
534,161 -> 534,157 -> 534,161 -> 536,161 -> 536,154 -> 536,161 -> 538,161 -> 538,156 -> 538,161 -> 540,161 -> 540,153 -> 540,161 -> 542,161 -> 542,151 -> 542,161 -> 544,161 -> 544,160 -> 544,161 -> 546,161 -> 546,156 -> 546,161 -> 548,161 -> 548,159 -> 548,161 -> 550,161 -> 550,159 -> 550,161 -> 552,161 -> 552,159 -> 552,161
486,37 -> 486,34 -> 486,37 -> 488,37 -> 488,34 -> 488,37 -> 490,37 -> 490,28 -> 490,37 -> 492,37 -> 492,28 -> 492,37 -> 494,37 -> 494,30 -> 494,37 -> 496,37 -> 496,36 -> 496,37 -> 498,37 -> 498,36 -> 498,37
534,161 -> 534,157 -> 534,161 -> 536,161 -> 536,154 -> 536,161 -> 538,161 -> 538,156 -> 538,161 -> 540,161 -> 540,153 -> 540,161 -> 542,161 -> 542,151 -> 542,161 -> 544,161 -> 544,160 -> 544,161 -> 546,161 -> 546,156 -> 546,161 -> 548,161 -> 548,159 -> 548,161 -> 550,161 -> 550,159 -> 550,161 -> 552,161 -> 552,159 -> 552,161
528,108 -> 532,108
562,145 -> 567,145
534,161 -> 534,157 -> 534,161 -> 536,161 -> 536,154 -> 536,161 -> 538,161 -> 538,156 -> 538,161 -> 540,161 -> 540,153 -> 540,161 -> 542,161 -> 542,151 -> 542,161 -> 544,161 -> 544,160 -> 544,161 -> 546,161 -> 546,156 -> 546,161 -> 548,161 -> 548,159 -> 548,161 -> 550,161 -> 550,159 -> 550,161 -> 552,161 -> 552,159 -> 552,161
514,93 -> 514,97 -> 506,97 -> 506,101 -> 523,101 -> 523,97 -> 518,97 -> 518,93
495,24 -> 499,24
486,37 -> 486,34 -> 486,37 -> 488,37 -> 488,34 -> 488,37 -> 490,37 -> 490,28 -> 490,37 -> 492,37 -> 492,28 -> 492,37 -> 494,37 -> 494,30 -> 494,37 -> 496,37 -> 496,36 -> 496,37 -> 498,37 -> 498,36 -> 498,37
534,161 -> 534,157 -> 534,161 -> 536,161 -> 536,154 -> 536,161 -> 538,161 -> 538,156 -> 538,161 -> 540,161 -> 540,153 -> 540,161 -> 542,161 -> 542,151 -> 542,161 -> 544,161 -> 544,160 -> 544,161 -> 546,161 -> 546,156 -> 546,161 -> 548,161 -> 548,159 -> 548,161 -> 550,161 -> 550,159 -> 550,161 -> 552,161 -> 552,159 -> 552,161
486,37 -> 486,34 -> 486,37 -> 488,37 -> 488,34 -> 488,37 -> 490,37 -> 490,28 -> 490,37 -> 492,37 -> 492,28 -> 492,37 -> 494,37 -> 494,30 -> 494,37 -> 496,37 -> 496,36 -> 496,37 -> 498,37 -> 498,36 -> 498,37
541,116 -> 541,117 -> 549,117 -> 549,116
534,161 -> 534,157 -> 534,161 -> 536,161 -> 536,154 -> 536,161 -> 538,161 -> 538,156 -> 538,161 -> 540,161 -> 540,153 -> 540,161 -> 542,161 -> 542,151 -> 542,161 -> 544,161 -> 544,160 -> 544,161 -> 546,161 -> 546,156 -> 546,161 -> 548,161 -> 548,159 -> 548,161 -> 550,161 -> 550,159 -> 550,161 -> 552,161 -> 552,159 -> 552,161
501,20 -> 505,20
512,66 -> 512,70 -> 505,70 -> 505,78 -> 521,78 -> 521,70 -> 516,70 -> 516,66
495,50 -> 495,40 -> 495,50 -> 497,50 -> 497,43 -> 497,50 -> 499,50 -> 499,43 -> 499,50 -> 501,50 -> 501,41 -> 501,50
534,161 -> 534,157 -> 534,161 -> 536,161 -> 536,154 -> 536,161 -> 538,161 -> 538,156 -> 538,161 -> 540,161 -> 540,153 -> 540,161 -> 542,161 -> 542,151 -> 542,161 -> 544,161 -> 544,160 -> 544,161 -> 546,161 -> 546,156 -> 546,161 -> 548,161 -> 548,159 -> 548,161 -> 550,161 -> 550,159 -> 550,161 -> 552,161 -> 552,159 -> 552,161
534,161 -> 534,157 -> 534,161 -> 536,161 -> 536,154 -> 536,161 -> 538,161 -> 538,156 -> 538,161 -> 540,161 -> 540,153 -> 540,161 -> 542,161 -> 542,151 -> 542,161 -> 544,161 -> 544,160 -> 544,161 -> 546,161 -> 546,156 -> 546,161 -> 548,161 -> 548,159 -> 548,161 -> 550,161 -> 550,159 -> 550,161 -> 552,161 -> 552,159 -> 552,161
530,130 -> 530,123 -> 530,130 -> 532,130 -> 532,126 -> 532,130 -> 534,130 -> 534,128 -> 534,130 -> 536,130 -> 536,123 -> 536,130 -> 538,130 -> 538,124 -> 538,130 -> 540,130 -> 540,126 -> 540,130 -> 542,130 -> 542,122 -> 542,130 -> 544,130 -> 544,127 -> 544,130 -> 546,130 -> 546,125 -> 546,130 -> 548,130 -> 548,125 -> 548,130
530,130 -> 530,123 -> 530,130 -> 532,130 -> 532,126 -> 532,130 -> 534,130 -> 534,128 -> 534,130 -> 536,130 -> 536,123 -> 536,130 -> 538,130 -> 538,124 -> 538,130 -> 540,130 -> 540,126 -> 540,130 -> 542,130 -> 542,122 -> 542,130 -> 544,130 -> 544,127 -> 544,130 -> 546,130 -> 546,125 -> 546,130 -> 548,130 -> 548,125 -> 548,130
530,130 -> 530,123 -> 530,130 -> 532,130 -> 532,126 -> 532,130 -> 534,130 -> 534,128 -> 534,130 -> 536,130 -> 536,123 -> 536,130 -> 538,130 -> 538,124 -> 538,130 -> 540,130 -> 540,126 -> 540,130 -> 542,130 -> 542,122 -> 542,130 -> 544,130 -> 544,127 -> 544,130 -> 546,130 -> 546,125 -> 546,130 -> 548,130 -> 548,125 -> 548,130
530,130 -> 530,123 -> 530,130 -> 532,130 -> 532,126 -> 532,130 -> 534,130 -> 534,128 -> 534,130 -> 536,130 -> 536,123 -> 536,130 -> 538,130 -> 538,124 -> 538,130 -> 540,130 -> 540,126 -> 540,130 -> 542,130 -> 542,122 -> 542,130 -> 544,130 -> 544,127 -> 544,130 -> 546,130 -> 546,125 -> 546,130 -> 548,130 -> 548,125 -> 548,130
554,139 -> 559,139
495,50 -> 495,40 -> 495,50 -> 497,50 -> 497,43 -> 497,50 -> 499,50 -> 499,43 -> 499,50 -> 501,50 -> 501,41 -> 501,50
534,161 -> 534,157 -> 534,161 -> 536,161 -> 536,154 -> 536,161 -> 538,161 -> 538,156 -> 538,161 -> 540,161 -> 540,153 -> 540,161 -> 542,161 -> 542,151 -> 542,161 -> 544,161 -> 544,160 -> 544,161 -> 546,161 -> 546,156 -> 546,161 -> 548,161 -> 548,159 -> 548,161 -> 550,161 -> 550,159 -> 550,161 -> 552,161 -> 552,159 -> 552,161
530,130 -> 530,123 -> 530,130 -> 532,130 -> 532,126 -> 532,130 -> 534,130 -> 534,128 -> 534,130 -> 536,130 -> 536,123 -> 536,130 -> 538,130 -> 538,124 -> 538,130 -> 540,130 -> 540,126 -> 540,130 -> 542,130 -> 542,122 -> 542,130 -> 544,130 -> 544,127 -> 544,130 -> 546,130 -> 546,125 -> 546,130 -> 548,130 -> 548,125 -> 548,130
486,37 -> 486,34 -> 486,37 -> 488,37 -> 488,34 -> 488,37 -> 490,37 -> 490,28 -> 490,37 -> 492,37 -> 492,28 -> 492,37 -> 494,37 -> 494,30 -> 494,37 -> 496,37 -> 496,36 -> 496,37 -> 498,37 -> 498,36 -> 498,37
486,37 -> 486,34 -> 486,37 -> 488,37 -> 488,34 -> 488,37 -> 490,37 -> 490,28 -> 490,37 -> 492,37 -> 492,28 -> 492,37 -> 494,37 -> 494,30 -> 494,37 -> 496,37 -> 496,36 -> 496,37 -> 498,37 -> 498,36 -> 498,37
486,37 -> 486,34 -> 486,37 -> 488,37 -> 488,34 -> 488,37 -> 490,37 -> 490,28 -> 490,37 -> 492,37 -> 492,28 -> 492,37 -> 494,37 -> 494,30 -> 494,37 -> 496,37 -> 496,36 -> 496,37 -> 498,37 -> 498,36 -> 498,37
541,116 -> 541,117 -> 549,117 -> 549,116
514,93 -> 514,97 -> 506,97 -> 506,101 -> 523,101 -> 523,97 -> 518,97 -> 518,93
534,161 -> 534,157 -> 534,161 -> 536,161 -> 536,154 -> 536,161 -> 538,161 -> 538,156 -> 538,161 -> 540,161 -> 540,153 -> 540,161 -> 542,161 -> 542,151 -> 542,161 -> 544,161 -> 544,160 -> 544,161 -> 546,161 -> 546,156 -> 546,161 -> 548,161 -> 548,159 -> 548,161 -> 550,161 -> 550,159 -> 550,161 -> 552,161 -> 552,159 -> 552,161
552,148 -> 557,148
530,130 -> 530,123 -> 530,130 -> 532,130 -> 532,126 -> 532,130 -> 534,130 -> 534,128 -> 534,130 -> 536,130 -> 536,123 -> 536,130 -> 538,130 -> 538,124 -> 538,130 -> 540,130 -> 540,126 -> 540,130 -> 542,130 -> 542,122 -> 542,130 -> 544,130 -> 544,127 -> 544,130 -> 546,130 -> 546,125 -> 546,130 -> 548,130 -> 548,125 -> 548,130
495,50 -> 495,40 -> 495,50 -> 497,50 -> 497,43 -> 497,50 -> 499,50 -> 499,43 -> 499,50 -> 501,50 -> 501,41 -> 501,50
495,50 -> 495,40 -> 495,50 -> 497,50 -> 497,43 -> 497,50 -> 499,50 -> 499,43 -> 499,50 -> 501,50 -> 501,41 -> 501,50
530,130 -> 530,123 -> 530,130 -> 532,130 -> 532,126 -> 532,130 -> 534,130 -> 534,128 -> 534,130 -> 536,130 -> 536,123 -> 536,130 -> 538,130 -> 538,124 -> 538,130 -> 540,130 -> 540,126 -> 540,130 -> 542,130 -> 542,122 -> 542,130 -> 544,130 -> 544,127 -> 544,130 -> 546,130 -> 546,125 -> 546,130 -> 548,130 -> 548,125 -> 548,130
523,84 -> 528,84
534,161 -> 534,157 -> 534,161 -> 536,161 -> 536,154 -> 536,161 -> 538,161 -> 538,156 -> 538,161 -> 540,161 -> 540,153 -> 540,161 -> 542,161 -> 542,151 -> 542,161 -> 544,161 -> 544,160 -> 544,161 -> 546,161 -> 546,156 -> 546,161 -> 548,161 -> 548,159 -> 548,161 -> 550,161 -> 550,159 -> 550,161 -> 552,161 -> 552,159 -> 552,161
495,50 -> 495,40 -> 495,50 -> 497,50 -> 497,43 -> 497,50 -> 499,50 -> 499,43 -> 499,50 -> 501,50 -> 501,41 -> 501,50
530,130 -> 530,123 -> 530,130 -> 532,130 -> 532,126 -> 532,130 -> 534,130 -> 534,128 -> 534,130 -> 536,130 -> 536,123 -> 536,130 -> 538,130 -> 538,124 -> 538,130 -> 540,130 -> 540,126 -> 540,130 -> 542,130 -> 542,122 -> 542,130 -> 544,130 -> 544,127 -> 544,130 -> 546,130 -> 546,125 -> 546,130 -> 548,130 -> 548,125 -> 548,130
540,132 -> 540,133 -> 552,133 -> 552,132
530,130 -> 530,123 -> 530,130 -> 532,130 -> 532,126 -> 532,130 -> 534,130 -> 534,128 -> 534,130 -> 536,130 -> 536,123 -> 536,130 -> 538,130 -> 538,124 -> 538,130 -> 540,130 -> 540,126 -> 540,130 -> 542,130 -> 542,122 -> 542,130 -> 544,130 -> 544,127 -> 544,130 -> 546,130 -> 546,125 -> 546,130 -> 548,130 -> 548,125 -> 548,130
514,93 -> 514,97 -> 506,97 -> 506,101 -> 523,101 -> 523,97 -> 518,97 -> 518,93
534,161 -> 534,157 -> 534,161 -> 536,161 -> 536,154 -> 536,161 -> 538,161 -> 538,156 -> 538,161 -> 540,161 -> 540,153 -> 540,161 -> 542,161 -> 542,151 -> 542,161 -> 544,161 -> 544,160 -> 544,161 -> 546,161 -> 546,156 -> 546,161 -> 548,161 -> 548,159 -> 548,161 -> 550,161 -> 550,159 -> 550,161 -> 552,161 -> 552,159 -> 552,161
499,53 -> 499,57 -> 491,57 -> 491,63 -> 513,63 -> 513,57 -> 505,57 -> 505,53
530,130 -> 530,123 -> 530,130 -> 532,130 -> 532,126 -> 532,130 -> 534,130 -> 534,128 -> 534,130 -> 536,130 -> 536,123 -> 536,130 -> 538,130 -> 538,124 -> 538,130 -> 540,130 -> 540,126 -> 540,130 -> 542,130 -> 542,122 -> 542,130 -> 544,130 -> 544,127 -> 544,130 -> 546,130 -> 546,125 -> 546,130 -> 548,130 -> 548,125 -> 548,130
540,132 -> 540,133 -> 552,133 -> 552,132
524,90 -> 529,90
544,142 -> 549,142
486,37 -> 486,34 -> 486,37 -> 488,37 -> 488,34 -> 488,37 -> 490,37 -> 490,28 -> 490,37 -> 492,37 -> 492,28 -> 492,37 -> 494,37 -> 494,30 -> 494,37 -> 496,37 -> 496,36 -> 496,37 -> 498,37 -> 498,36 -> 498,37
559,148 -> 564,148
499,53 -> 499,57 -> 491,57 -> 491,63 -> 513,63 -> 513,57 -> 505,57 -> 505,53
534,161 -> 534,157 -> 534,161 -> 536,161 -> 536,154 -> 536,161 -> 538,161 -> 538,156 -> 538,161 -> 540,161 -> 540,153 -> 540,161 -> 542,161 -> 542,151 -> 542,161 -> 544,161 -> 544,160 -> 544,161 -> 546,161 -> 546,156 -> 546,161 -> 548,161 -> 548,159 -> 548,161 -> 550,161 -> 550,159 -> 550,161 -> 552,161 -> 552,159 -> 552,161
507,24 -> 511,24
530,130 -> 530,123 -> 530,130 -> 532,130 -> 532,126 -> 532,130 -> 534,130 -> 534,128 -> 534,130 -> 536,130 -> 536,123 -> 536,130 -> 538,130 -> 538,124 -> 538,130 -> 540,130 -> 540,126 -> 540,130 -> 542,130 -> 542,122 -> 542,130 -> 544,130 -> 544,127 -> 544,130 -> 546,130 -> 546,125 -> 546,130 -> 548,130 -> 548,125 -> 548,130
499,53 -> 499,57 -> 491,57 -> 491,63 -> 513,63 -> 513,57 -> 505,57 -> 505,53
530,130 -> 530,123 -> 530,130 -> 532,130 -> 532,126 -> 532,130 -> 534,130 -> 534,128 -> 534,130 -> 536,130 -> 536,123 -> 536,130 -> 538,130 -> 538,124 -> 538,130 -> 540,130 -> 540,126 -> 540,130 -> 542,130 -> 542,122 -> 542,130 -> 544,130 -> 544,127 -> 544,130 -> 546,130 -> 546,125 -> 546,130 -> 548,130 -> 548,125 -> 548,130
499,53 -> 499,57 -> 491,57 -> 491,63 -> 513,63 -> 513,57 -> 505,57 -> 505,53
512,66 -> 512,70 -> 505,70 -> 505,78 -> 521,78 -> 521,70 -> 516,70 -> 516,66
498,22 -> 502,22
525,106 -> 529,106
530,130 -> 530,123 -> 530,130 -> 532,130 -> 532,126 -> 532,130 -> 534,130 -> 534,128 -> 534,130 -> 536,130 -> 536,123 -> 536,130 -> 538,130 -> 538,124 -> 538,130 -> 540,130 -> 540,126 -> 540,130 -> 542,130 -> 542,122 -> 542,130 -> 544,130 -> 544,127 -> 544,130 -> 546,130 -> 546,125 -> 546,130 -> 548,130 -> 548,125 -> 548,130
495,50 -> 495,40 -> 495,50 -> 497,50 -> 497,43 -> 497,50 -> 499,50 -> 499,43 -> 499,50 -> 501,50 -> 501,41 -> 501,50
486,37 -> 486,34 -> 486,37 -> 488,37 -> 488,34 -> 488,37 -> 490,37 -> 490,28 -> 490,37 -> 492,37 -> 492,28 -> 492,37 -> 494,37 -> 494,30 -> 494,37 -> 496,37 -> 496,36 -> 496,37 -> 498,37 -> 498,36 -> 498,37
551,164 -> 551,168 -> 546,168 -> 546,171 -> 556,171 -> 556,168 -> 555,168 -> 555,164
530,130 -> 530,123 -> 530,130 -> 532,130 -> 532,126 -> 532,130 -> 534,130 -> 534,128 -> 534,130 -> 536,130 -> 536,123 -> 536,130 -> 538,130 -> 538,124 -> 538,130 -> 540,130 -> 540,126 -> 540,130 -> 542,130 -> 542,122 -> 542,130 -> 544,130 -> 544,127 -> 544,130 -> 546,130 -> 546,125 -> 546,130 -> 548,130 -> 548,125 -> 548,130
486,37 -> 486,34 -> 486,37 -> 488,37 -> 488,34 -> 488,37 -> 490,37 -> 490,28 -> 490,37 -> 492,37 -> 492,28 -> 492,37 -> 494,37 -> 494,30 -> 494,37 -> 496,37 -> 496,36 -> 496,37 -> 498,37 -> 498,36 -> 498,37
512,66 -> 512,70 -> 505,70 -> 505,78 -> 521,78 -> 521,70 -> 516,70 -> 516,66
510,90 -> 515,90
534,161 -> 534,157 -> 534,161 -> 536,161 -> 536,154 -> 536,161 -> 538,161 -> 538,156 -> 538,161 -> 540,161 -> 540,153 -> 540,161 -> 542,161 -> 542,151 -> 542,161 -> 544,161 -> 544,160 -> 544,161 -> 546,161 -> 546,156 -> 546,161 -> 548,161 -> 548,159 -> 548,161 -> 550,161 -> 550,159 -> 550,161 -> 552,161 -> 552,159 -> 552,161
514,93 -> 514,97 -> 506,97 -> 506,101 -> 523,101 -> 523,97 -> 518,97 -> 518,93
534,161 -> 534,157 -> 534,161 -> 536,161 -> 536,154 -> 536,161 -> 538,161 -> 538,156 -> 538,161 -> 540,161 -> 540,153 -> 540,161 -> 542,161 -> 542,151 -> 542,161 -> 544,161 -> 544,160 -> 544,161 -> 546,161 -> 546,156 -> 546,161 -> 548,161 -> 548,159 -> 548,161 -> 550,161 -> 550,159 -> 550,161 -> 552,161 -> 552,159 -> 552,161
494,14 -> 494,15 -> 505,15 -> 505,14
530,130 -> 530,123 -> 530,130 -> 532,130 -> 532,126 -> 532,130 -> 534,130 -> 534,128 -> 534,130 -> 536,130 -> 536,123 -> 536,130 -> 538,130 -> 538,124 -> 538,130 -> 540,130 -> 540,126 -> 540,130 -> 542,130 -> 542,122 -> 542,130 -> 544,130 -> 544,127 -> 544,130 -> 546,130 -> 546,125 -> 546,130 -> 548,130 -> 548,125 -> 548,130
530,130 -> 530,123 -> 530,130 -> 532,130 -> 532,126 -> 532,130 -> 534,130 -> 534,128 -> 534,130 -> 536,130 -> 536,123 -> 536,130 -> 538,130 -> 538,124 -> 538,130 -> 540,130 -> 540,126 -> 540,130 -> 542,130 -> 542,122 -> 542,130 -> 544,130 -> 544,127 -> 544,130 -> 546,130 -> 546,125 -> 546,130 -> 548,130 -> 548,125 -> 548,130
534,161 -> 534,157 -> 534,161 -> 536,161 -> 536,154 -> 536,161 -> 538,161 -> 538,156 -> 538,161 -> 540,161 -> 540,153 -> 540,161 -> 542,161 -> 542,151 -> 542,161 -> 544,161 -> 544,160 -> 544,161 -> 546,161 -> 546,156 -> 546,161 -> 548,161 -> 548,159 -> 548,161 -> 550,161 -> 550,159 -> 550,161 -> 552,161 -> 552,159 -> 552,161
534,161 -> 534,157 -> 534,161 -> 536,161 -> 536,154 -> 536,161 -> 538,161 -> 538,156 -> 538,161 -> 540,161 -> 540,153 -> 540,161 -> 542,161 -> 542,151 -> 542,161 -> 544,161 -> 544,160 -> 544,161 -> 546,161 -> 546,156 -> 546,161 -> 548,161 -> 548,159 -> 548,161 -> 550,161 -> 550,159 -> 550,161 -> 552,161 -> 552,159 -> 552,161
534,161 -> 534,157 -> 534,161 -> 536,161 -> 536,154 -> 536,161 -> 538,161 -> 538,156 -> 538,161 -> 540,161 -> 540,153 -> 540,161 -> 542,161 -> 542,151 -> 542,161 -> 544,161 -> 544,160 -> 544,161 -> 546,161 -> 546,156 -> 546,161 -> 548,161 -> 548,159 -> 548,161 -> 550,161 -> 550,159 -> 550,161 -> 552,161 -> 552,159 -> 552,161
551,164 -> 551,168 -> 546,168 -> 546,171 -> 556,171 -> 556,168 -> 555,168 -> 555,164
534,161 -> 534,157 -> 534,161 -> 536,161 -> 536,154 -> 536,161 -> 538,161 -> 538,156 -> 538,161 -> 540,161 -> 540,153 -> 540,161 -> 542,161 -> 542,151 -> 542,161 -> 544,161 -> 544,160 -> 544,161 -> 546,161 -> 546,156 -> 546,161 -> 548,161 -> 548,159 -> 548,161 -> 550,161 -> 550,159 -> 550,161 -> 552,161 -> 552,159 -> 552,161
534,161 -> 534,157 -> 534,161 -> 536,161 -> 536,154 -> 536,161 -> 538,161 -> 538,156 -> 538,161 -> 540,161 -> 540,153 -> 540,161 -> 542,161 -> 542,151 -> 542,161 -> 544,161 -> 544,160 -> 544,161 -> 546,161 -> 546,156 -> 546,161 -> 548,161 -> 548,159 -> 548,161 -> 550,161 -> 550,159 -> 550,161 -> 552,161 -> 552,159 -> 552,161
551,164 -> 551,168 -> 546,168 -> 546,171 -> 556,171 -> 556,168 -> 555,168 -> 555,164
495,50 -> 495,40 -> 495,50 -> 497,50 -> 497,43 -> 497,50 -> 499,50 -> 499,43 -> 499,50 -> 501,50 -> 501,41 -> 501,50
555,145 -> 560,145
551,164 -> 551,168 -> 546,168 -> 546,171 -> 556,171 -> 556,168 -> 555,168 -> 555,164
486,37 -> 486,34 -> 486,37 -> 488,37 -> 488,34 -> 488,37 -> 490,37 -> 490,28 -> 490,37 -> 492,37 -> 492,28 -> 492,37 -> 494,37 -> 494,30 -> 494,37 -> 496,37 -> 496,36 -> 496,37 -> 498,37 -> 498,36 -> 498,37
530,130 -> 530,123 -> 530,130 -> 532,130 -> 532,126 -> 532,130 -> 534,130 -> 534,128 -> 534,130 -> 536,130 -> 536,123 -> 536,130 -> 538,130 -> 538,124 -> 538,130 -> 540,130 -> 540,126 -> 540,130 -> 542,130 -> 542,122 -> 542,130 -> 544,130 -> 544,127 -> 544,130 -> 546,130 -> 546,125 -> 546,130 -> 548,130 -> 548,125 -> 548,130
486,37 -> 486,34 -> 486,37 -> 488,37 -> 488,34 -> 488,37 -> 490,37 -> 490,28 -> 490,37 -> 492,37 -> 492,28 -> 492,37 -> 494,37 -> 494,30 -> 494,37 -> 496,37 -> 496,36 -> 496,37 -> 498,37 -> 498,36 -> 498,37
534,161 -> 534,157 -> 534,161 -> 536,161 -> 536,154 -> 536,161 -> 538,161 -> 538,156 -> 538,161 -> 540,161 -> 540,153 -> 540,161 -> 542,161 -> 542,151 -> 542,161 -> 544,161 -> 544,160 -> 544,161 -> 546,161 -> 546,156 -> 546,161 -> 548,161 -> 548,159 -> 548,161 -> 550,161 -> 550,159 -> 550,161 -> 552,161 -> 552,159 -> 552,161
494,14 -> 494,15 -> 505,15 -> 505,14
522,108 -> 526,108
494,14 -> 494,15 -> 505,15 -> 505,14
514,93 -> 514,97 -> 506,97 -> 506,101 -> 523,101 -> 523,97 -> 518,97 -> 518,93
504,18 -> 508,18
534,161 -> 534,157 -> 534,161 -> 536,161 -> 536,154 -> 536,161 -> 538,161 -> 538,156 -> 538,161 -> 540,161 -> 540,153 -> 540,161 -> 542,161 -> 542,151 -> 542,161 -> 544,161 -> 544,160 -> 544,161 -> 546,161 -> 546,156 -> 546,161 -> 548,161 -> 548,159 -> 548,161 -> 550,161 -> 550,159 -> 550,161 -> 552,161 -> 552,159 -> 552,161
486,37 -> 486,34 -> 486,37 -> 488,37 -> 488,34 -> 488,37 -> 490,37 -> 490,28 -> 490,37 -> 492,37 -> 492,28 -> 492,37 -> 494,37 -> 494,30 -> 494,37 -> 496,37 -> 496,36 -> 496,37 -> 498,37 -> 498,36 -> 498,37
534,161 -> 534,157 -> 534,161 -> 536,161 -> 536,154 -> 536,161 -> 538,161 -> 538,156 -> 538,161 -> 540,161 -> 540,153 -> 540,161 -> 542,161 -> 542,151 -> 542,161 -> 544,161 -> 544,160 -> 544,161 -> 546,161 -> 546,156 -> 546,161 -> 548,161 -> 548,159 -> 548,161 -> 550,161 -> 550,159 -> 550,161 -> 552,161 -> 552,159 -> 552,161
530,130 -> 530,123 -> 530,130 -> 532,130 -> 532,126 -> 532,130 -> 534,130 -> 534,128 -> 534,130 -> 536,130 -> 536,123 -> 536,130 -> 538,130 -> 538,124 -> 538,130 -> 540,130 -> 540,126 -> 540,130 -> 542,130 -> 542,122 -> 542,130 -> 544,130 -> 544,127 -> 544,130 -> 546,130 -> 546,125 -> 546,130 -> 548,130 -> 548,125 -> 548,130
551,164 -> 551,168 -> 546,168 -> 546,171 -> 556,171 -> 556,168 -> 555,168 -> 555,164
530,130 -> 530,123 -> 530,130 -> 532,130 -> 532,126 -> 532,130 -> 534,130 -> 534,128 -> 534,130 -> 536,130 -> 536,123 -> 536,130 -> 538,130 -> 538,124 -> 538,130 -> 540,130 -> 540,126 -> 540,130 -> 542,130 -> 542,122 -> 542,130 -> 544,130 -> 544,127 -> 544,130 -> 546,130 -> 546,125 -> 546,130 -> 548,130 -> 548,125 -> 548,130
512,66 -> 512,70 -> 505,70 -> 505,78 -> 521,78 -> 521,70 -> 516,70 -> 516,66
530,130 -> 530,123 -> 530,130 -> 532,130 -> 532,126 -> 532,130 -> 534,130 -> 534,128 -> 534,130 -> 536,130 -> 536,123 -> 536,130 -> 538,130 -> 538,124 -> 538,130 -> 540,130 -> 540,126 -> 540,130 -> 542,130 -> 542,122 -> 542,130 -> 544,130 -> 544,127 -> 544,130 -> 546,130 -> 546,125 -> 546,130 -> 548,130 -> 548,125 -> 548,130
519,106 -> 523,106
534,161 -> 534,157 -> 534,161 -> 536,161 -> 536,154 -> 536,161 -> 538,161 -> 538,156 -> 538,161 -> 540,161 -> 540,153 -> 540,161 -> 542,161 -> 542,151 -> 542,161 -> 544,161 -> 544,160 -> 544,161 -> 546,161 -> 546,156 -> 546,161 -> 548,161 -> 548,159 -> 548,161 -> 550,161 -> 550,159 -> 550,161 -> 552,161 -> 552,159 -> 552,161
486,37 -> 486,34 -> 486,37 -> 488,37 -> 488,34 -> 488,37 -> 490,37 -> 490,28 -> 490,37 -> 492,37 -> 492,28 -> 492,37 -> 494,37 -> 494,30 -> 494,37 -> 496,37 -> 496,36 -> 496,37 -> 498,37 -> 498,36 -> 498,37
510,22 -> 514,22
513,24 -> 517,24
495,50 -> 495,40 -> 495,50 -> 497,50 -> 497,43 -> 497,50 -> 499,50 -> 499,43 -> 499,50 -> 501,50 -> 501,41 -> 501,50
499,53 -> 499,57 -> 491,57 -> 491,63 -> 513,63 -> 513,57 -> 505,57 -> 505,53
527,87 -> 532,87
486,37 -> 486,34 -> 486,37 -> 488,37 -> 488,34 -> 488,37 -> 490,37 -> 490,28 -> 490,37 -> 492,37 -> 492,28 -> 492,37 -> 494,37 -> 494,30 -> 494,37 -> 496,37 -> 496,36 -> 496,37 -> 498,37 -> 498,36 -> 498,37
514,93 -> 514,97 -> 506,97 -> 506,101 -> 523,101 -> 523,97 -> 518,97 -> 518,93
534,161 -> 534,157 -> 534,161 -> 536,161 -> 536,154 -> 536,161 -> 538,161 -> 538,156 -> 538,161 -> 540,161 -> 540,153 -> 540,161 -> 542,161 -> 542,151 -> 542,161 -> 544,161 -> 544,160 -> 544,161 -> 546,161 -> 546,156 -> 546,161 -> 548,161 -> 548,159 -> 548,161 -> 550,161 -> 550,159 -> 550,161 -> 552,161 -> 552,159 -> 552,161
530,130 -> 530,123 -> 530,130 -> 532,130 -> 532,126 -> 532,130 -> 534,130 -> 534,128 -> 534,130 -> 536,130 -> 536,123 -> 536,130 -> 538,130 -> 538,124 -> 538,130 -> 540,130 -> 540,126 -> 540,130 -> 542,130 -> 542,122 -> 542,130 -> 544,130 -> 544,127 -> 544,130 -> 546,130 -> 546,125 -> 546,130 -> 548,130 -> 548,125 -> 548,130
531,90 -> 536,90
504,22 -> 508,22
520,87 -> 525,87
530,130 -> 530,123 -> 530,130 -> 532,130 -> 532,126 -> 532,130 -> 534,130 -> 534,128 -> 534,130 -> 536,130 -> 536,123 -> 536,130 -> 538,130 -> 538,124 -> 538,130 -> 540,130 -> 540,126 -> 540,130 -> 542,130 -> 542,122 -> 542,130 -> 544,130 -> 544,127 -> 544,130 -> 546,130 -> 546,125 -> 546,130 -> 548,130 -> 548,125 -> 548,130
534,161 -> 534,157 -> 534,161 -> 536,161 -> 536,154 -> 536,161 -> 538,161 -> 538,156 -> 538,161 -> 540,161 -> 540,153 -> 540,161 -> 542,161 -> 542,151 -> 542,161 -> 544,161 -> 544,160 -> 544,161 -> 546,161 -> 546,156 -> 546,161 -> 548,161 -> 548,159 -> 548,161 -> 550,161 -> 550,159 -> 550,161 -> 552,161 -> 552,159 -> 552,161
550,136 -> 555,136
528,112 -> 542,112
516,84 -> 521,84
516,108 -> 520,108
541,145 -> 546,145
541,116 -> 541,117 -> 549,117 -> 549,116
534,161 -> 534,157 -> 534,161 -> 536,161 -> 536,154 -> 536,161 -> 538,161 -> 538,156 -> 538,161 -> 540,161 -> 540,153 -> 540,161 -> 542,161 -> 542,151 -> 542,161 -> 544,161 -> 544,160 -> 544,161 -> 546,161 -> 546,156 -> 546,161 -> 548,161 -> 548,159 -> 548,161 -> 550,161 -> 550,159 -> 550,161 -> 552,161 -> 552,159 -> 552,161
551,164 -> 551,168 -> 546,168 -> 546,171 -> 556,171 -> 556,168 -> 555,168 -> 555,164
512,66 -> 512,70 -> 505,70 -> 505,78 -> 521,78 -> 521,70 -> 516,70 -> 516,66
513,87 -> 518,87
512,66 -> 512,70 -> 505,70 -> 505,78 -> 521,78 -> 521,70 -> 516,70 -> 516,66
486,37 -> 486,34 -> 486,37 -> 488,37 -> 488,34 -> 488,37 -> 490,37 -> 490,28 -> 490,37 -> 492,37 -> 492,28 -> 492,37 -> 494,37 -> 494,30 -> 494,37 -> 496,37 -> 496,36 -> 496,37 -> 498,37 -> 498,36 -> 498,37
566,148 -> 571,148
Sensor at x=489739, y=1144461: closest beacon is at x=-46516, y=554951
Sensor at x=2543342, y=3938: closest beacon is at x=2646619, y=229757
Sensor at x=3182359, y=3999986: closest beacon is at x=3142235, y=3956791
Sensor at x=3828004, y=1282262: closest beacon is at x=3199543, y=2310713
Sensor at x=871967, y=3962966: closest beacon is at x=-323662, y=4519876
Sensor at x=1323641, y=2986163: closest beacon is at x=2428372, y=3303736
Sensor at x=2911492, y=2576579: closest beacon is at x=3022758, y=2461675
Sensor at x=3030965, y=2469848: closest beacon is at x=3022758, y=2461675
Sensor at x=3299037, y=3402462: closest beacon is at x=3142235, y=3956791
Sensor at x=1975203, y=1672969: closest beacon is at x=1785046, y=2000000
Sensor at x=3048950, y=2452864: closest beacon is at x=3022758, y=2461675
Sensor at x=336773, y=2518242: closest beacon is at x=1785046, y=2000000
Sensor at x=1513936, y=574443: closest beacon is at x=2646619, y=229757
Sensor at x=3222440, y=2801189: closest beacon is at x=3199543, y=2310713
Sensor at x=2838327, y=2122421: closest beacon is at x=2630338, y=2304286
Sensor at x=2291940, y=2502068: closest beacon is at x=2630338, y=2304286
Sensor at x=2743173, y=3608337: closest beacon is at x=2428372, y=3303736
Sensor at x=3031202, y=2452943: closest beacon is at x=3022758, y=2461675
Sensor at x=3120226, y=3998439: closest beacon is at x=3142235, y=3956791
Sensor at x=2234247, y=3996367: closest beacon is at x=2428372, y=3303736
Sensor at x=593197, y=548: closest beacon is at x=-46516, y=554951
Sensor at x=2612034, y=2832157: closest beacon is at x=2630338, y=2304286
Sensor at x=3088807, y=3929947: closest beacon is at x=3142235, y=3956791
Sensor at x=2022834, y=2212455: closest beacon is at x=1785046, y=2000000
Sensor at x=3129783, y=3975610: closest beacon is at x=3142235, y=3956791
Sensor at x=3150025, y=2333166: closest beacon is at x=3199543, y=2310713
Sensor at x=3118715, y=2376161: closest beacon is at x=3199543, y=2310713
Sensor at x=3951193, y=3181929: closest beacon is at x=4344952, y=3106256
Sensor at x=2807831, y=2401551: closest beacon is at x=2630338, y=2304286
Sensor at x=3683864, y=2906786: closest beacon is at x=4344952, y=3106256
Sensor at x=2723234, y=3206978: closest beacon is at x=2428372, y=3303736
Sensor at x=3047123, y=3891244: closest beacon is at x=3142235, y=3956791
Sensor at x=3621967, y=3793314: closest beacon is at x=3142235, y=3956791
Sensor at x=2384506, y=1814055: closest beacon is at x=2630338, y=2304286
Sensor at x=83227, y=330275: closest beacon is at x=-46516, y=554951
Sensor at x=3343176, y=75114: closest beacon is at x=2646619, y=229757
C X
B Y
C Z
C Z
B X
C Z
C Z
C Z
B X
B Y
B Z
B Z
B Z
C X
C Y
B Y
C Z
C Y
C X
B Y
C Y
C Z
A Y
B Y
C X
C X
C Y
B Y
B X
C Z
B Y
B Z
C Y
A X
B Y
B X
B Y
B X
C Z
B Y
C Y
A Z
B Y
C Z
A Z
B Y
B Y
B Y
C Y
B Y
A X
C Z
C X
C Z
A Y
C X
C Z
C Y
C Y
A Y
C Z
B Y
B Z
A X
C Z
B Y
C X
B X
C Z
C Z
B Y
C Z
A Z
C X
C Y
B X
C X
C Z
B Z
B Z
B Z
B Y
A X
B Y
C Y
B Z
B Y
C Y
C X
B Z
C X
B Y
A Y
B X
C Z
A Z
C Y
C Y
A Z
B Z
B Z
C Z
B X
B X
C Y
C Z
B X
B X
A Z
C X
C Z
A Y
B Z
B Y
B Y
C Z
C X
B Z
A X
B Y
B Z
B Z
A Z
A Y
B X
B Y
A X
C Y
B Y
B Y
B Y
B Y
B X
C Z
C Z
C Z
C Z
B Z
C Z
A X
C Z
C X
B Z
C X
A Z
A Y
B Z
A Y
A X
B Y
A Z
C Z
C Z
B X
C Z
A Y
C Z
B Y
C Z
C X
A Z
B Y
B Y
C X
A Z
C Z
B X
B Y
C X
B X
B X
B Z
B Y
A Z
C Z
B X
B Y
B Z
B Z
C Z
C Z
C Y
A Z
A Z
C Y
B Y
B Y
B Y
B Y
B Z
C X
B Y
A Y
C X
A Z
A Z
A Z
C X
B Y
B Z
B Z
C Z
B Z
C X
A X
A Z
B Z
C X
C Z
C Y
C Z
B Y
B X
C Z
A Y
B X
A X
B Z
C Y
B Y
B Y
B Y
B X
B Y
C X
C Z
B Y
C X
C Z
C X
C Z
B Z
B Z
B Z
A X
B Y
C Z
C Z
B Y
C X
A X
A Z
B Z
B X
C X
A X
B Y
B Y
C Y
B Z
B X
A Z
C Y
B Y
C X
B Y
C X
B Z
A X
A Y
C X
A X
C Y
B Y
B Y
A Y
C Z
B Y
C X
B Y
C X
C Z
C X
C Z
C Y
B Z
B Z
A Z
C X
B X
C Z
C Y
B Y
B Z
B Z
B Y
C Z
B Z
B X
C Z
C Z
C Z
B Y
C X
C Y
B Z
B Y
A Y
C X
B Z
A Z
B Y
B Y
C X
C Y
C Z
C X
C X
C X
C Z
A Z
A Z
C X
C Z
C Y
C Y
C Z
C Z
C Z
C X
B X
B Y
B X
C Y
C Y
B Y
C Z
C X
B Y
C X
B Z
B Y
B Z
B X
B X
C X
C Z
C X
C X
C Z
C Z
B Y
C X
B Y
C Y
C Z
B Z
B Y
C X
C X
A X
C Z
C Y
B Z
B Z
B Y
C Z
C Z
B Y
B Z
A Y
C X
A Z
C Y
C X
B Y
A X
A Z
C X
C Z
B Y
B Y
A Y
A Z
A Y
C Z
A Z
A Z
C Z
B Y
C X
C X
B Y
C X
B Z
B Y
C Y
B Y
B Y
B Y
A Y
C Z
B Y
C X
C Z
C X
B Y
B Y
C Z
B Y
C Z
C Z
B Y
B Y
C X
C Z
C X
A Y
A Y
B Z
C Z
B Y
C X
B Y
C X
C Y
C X
A Y
C Y
B Y
B Z
C Z
A Z
B X
C Z
B Z
B X
A Y
C Z
A Y
B Y
A Z
B Y
C X
B X
C Z
B Z
C Z
B Y
C X
B Z
B Y
A Z
B Y
C Z
C X
C Z
A Y
A Z
B X
A Z
B Y
B Y
B Y
C Z
C X
B Z
C Z
A X
C Z
C X
B X
A Z
C Y
A Z
B Y
C Y
A Y
C X
A Z
C Z
A Z
B Z
C Z
A Y
C Z
C Y
B Y
B Y
B Y
C X
B Z
B Y
C X
C Y
C Z
C Z
B X
C X
B Y
A Y
B Y
C Z
B X
A Z
B Z
C Z
C X
C Z
B X
B Y
C Y
B Z
B Y
C Z
C Z
B X
C Z
A Y
B Z
B Y
B Y
B Z
B Z
B Y
B Y
B X
B Y
A Z
B Y
C X
B Z
A Y
B Z
C Z
C Z
B Y
B Z
B Y
C X
C Y
C Y
C Y
C Z
C X
C X
C Z
A Z
C Z
B Y
B Y
A Z
C Z
B Y
B Y
C X
C Y
B Y
A Y
C Z
C X
C Z
B Y
C Z
C X
B X
B X
C X
C X
C X
B Z
A Z
B Y
C Z
B Y
B Z
B Y
C Y
A Z
B Z
B Y
C Y
C X
B Y
C Y
C Z
C Y
B Y
C Z
C Z
B Z
C X
C Y
C X
C X
C Z
C X
C Z
C Y
A Y
A Z
C Z
C X
B Y
B Y
C X
C Z
A Y
B Z
B Y
C Z
C X
B X
B Y
B Z
B Z
B Y
A Y
C X
C Z
C X
A Z
A Y
C X
A X
C Y
A X
B Y
C Z
A Y
C X
C Z
B Y
B Y
B Z
B Y
B X
B X
C X
A Z
B Z
A Z
A Z
A X
B Y
C X
C Z
C Z
B Y
C X
C X
A X
A Z
B X
C Z
C Z
B Y
C X
B Z
B Z
A Y
B Y
C X
B Y
B Y
B X
C Z
A Y
C X
B Y
C Z
B X
A Z
A Z
B X
B Y
C X
B Z
A Y
C Z
C Z
B Y
B X
A Z
B Z
B Y
A Y
A Z
B Y
B X
B Z
B Z
A Z
A X
A Y
A Y
B X
C X
C Y
B X
A X
B Z
B Y
C Z
B Y
C Z
C Y
C X
A Y
B Z
A Z
B X
B X
B Y
C X
B X
A Y
C X
C Y
B Y
B Z
C Z
A Y
A X
C Z
C Z
C X
A Z
C X
A Y
B Z
B Y
C X
B X
A Y
B Z
C X
B Y
C X
B X
A Z
B Y
C Y
C X
C X
C Z
A Z
C Y
B Y
C Z
C Z
B Y
C Z
C Y
B Y
C X
C X
B Y
B X
A Y
C Z
B Y
A Z
C X
C Y
B Y
B Y
B Y
A Z
A Y
B X
B Y
B Y
B Z
B X
C Z
B Y
C X
C Z
C X
C Y
B Y
C Y
A Z
B Y
C Y
B Y
B Y
A Y
C Z
C Y
C Y
A X
C Z
C Z
C Z
A Y
B Y
C Z
B Z
A Z
B Z
C X
C Z
C Z
A X
C Y
C Z
C Y
C Y
C X
C Y
C X
A Z
C X
C X
B X
C Z
B Y
C Z
B Y
B X
C Z
B Y
C Y
C Z
C X
A X
C Z
A Y
C Y
B Y
B Z
B Z
B Z
B Y
B X
B Y
C Z
B X
B X
B Y
C Y
C Z
A Z
C Y
B Y
B Z
C X
C X
B Z
B Y
C X
C Z
C Z
C X
C Y
B Y
C Y
C Z
C Z
B Z
C Z
B X
B Z
A Z
A Z
C Z
C Y
C Z
C X
B Y
B Y
C Z
B Y
B Y
A Z
A Y
B Z
C Z
C X
B Y
C X
C Z
B Z
C X
C Y
B X
C Z
C Y
A Z
C Z
C Z
C Z
C Z
C Z
A Z
B Y
A Z
A Z
A Z
C X
B Z
B Z
B Y
A Y
C Z
C X
B Z
A Y
B Y
C X
C Z
B Z
C Y
A Y
C Z
B Z
B Z
B Z
C Z
C Z
C Z
C Y
A Y
A Z
A Y
C X
C Y
C Z
C X
B Y
B Z
C Z
B Y
C X
A X
C X
B Y
B Y
B Y
C Z
C Z
A X
B Y
B Y
B Z
B X
C Z
B Y
C X
B X
C Z
C Z
B Y
C Z
C Y
C Z
C Y
C Y
A Z
C Z
B Y
A Y
A Y
B Y
C Y
B X
A Y
C X
C Y
B X
C X
C X
C Z
C X
C Z
B Y
C X
B X
C Y
C Z
C Z
B Z
C X
B Y
A Z
C Y
B X
B Y
B Y
B Y
C Z
C Y
A Z
C X
B Z
C Y
C Y
C X
C Z
A Z
B X
A Z
C Z
B Z
B Y
A Z
C Z
B Z
A X
B Y
B Y
C Z
C Y
C Z
C X
B Y
C X
B Y
A X
B X
C Y
B Y
A Y
B Y
C Z
C X
B Y
C Z
C Y
C X
C X
B X
B Y
C X
A X
B X
B Z
A Z
B Z
C Y
B Z
B Y
C Z
C Y
B Y
B Y
C X
B Y
C Z
B Y
C X
B X
C Z
C Z
B Y
C Z
B Y
B Y
A Y
B Y
B Y
C Z
B Z
C X
B X
C X
B Y
B Y
C Z
C Z
C Z
C X
C Z
A Z
C X
B Y
B X
B Y
B Z
C X
A Y
A Y
C Z
C X
C Y
C X
C X
C Z
A Y
C X
B Y
C Z
C X
B Y
A Z
B X
C Z
A Z
C X
B X
A Y
A Y
B Y
B X
B X
B X
C Y
A X
A Z
B Y
B Z
B Z
C Y
C X
A Z
C Z
B Z
C X
C Y
A Z
C Z
C X
C X
B Y
B Y
C Z
A Y
C Z
B Y
B Y
C Z
C Z
C Z
C Z
C Z
B Y
A Z
C X
B Y
C Z
B X
B Z
C Y
C Z
C Z
A X
C Z
A X
C X
C Z
A X
C Z
C Z
A Z
C X
C X
C Y
C Z
A X
C X
B Y
A Z
A Z
C X
B Y
A X
C Z
B Y
A Y
A Z
C X
B Y
B Z
C Y
B Y
B X
B X
B Y
B X
A X
B Y
C X
B Y
C Z
B X
C Y
B Z
B X
B Y
C X
B Z
B X
A X
C X
B Y
B Y
C Y
B Y
C X
C Z
C X
C X
B Z
C Z
C Y
A Z
C Z
C Y
C X
A Z
B Y
B Y
B Z
B X
A Y
B Y
C Z
B Y
B Z
A X
C X
C X
B X
A Z
B Z
B X
B Y
C Z
B Y
B Z
B Y
C Y
A Y
C Y
C Z
B Z
A Y
B Y
C Z
B Z
A Z
C X
C Z
B Y
C Z
A Z
C Z
C Y
C Z
A X
B Y
B Y
B Y
A Z
A Y
B Z
C Z
A Z
B Y
B Y
B Y
C X
A Z
A Z
A Z
C X
C Z
A Z
C Y
B Y
C Z
C X
B Y
A Y
C Z
C Z
C Z
A Z
A X
B Y
B X
C Y
B X
B Z
C X
A Z
B Z
B Y
A X
A Z
A Y
C X
C Z
C X
C Z
A Z
B Z
B Z
B Z
C Z
C Y
A Z
A Z
A Y
B Y
C Z
B Z
A Z
C Z
A X
B Y
B Y
C X
C Z
B Z
B Y
B X
C Z
B Z
A X
B Z
C Z
B Y
A X
C Y
C X
C X
B Y
C Z
B X
A Z
B Y
C Z
B Y
C Z
A Y
B Z
C X
C X
B Y
C Y
B X
C Z
C Z
B Y
B Y
A Z
A Y
C Y
A Z
C Z
A Y
A Z
C X
C Y
B Z
C X
B X
C X
C X
B X
B X
B Z
C X
C X
B Y
A Z
C X
B Y
B Y
C Y
B Y
C Z
C Y
A Z
A X
C Z
C X
B Z
B X
B Y
A X
C Y
B Y
B Z
B Y
C Z
C Z
A Y
C Y
C X
A X
C Y
C Z
B Z
B Y
C Z
C X
C Y
B Z
B Z
C X
C Z
C X
B Y
A Z
B Y
B Y
C Z
B X
C X
C Y
A Z
C Z
B Y
C Y
B Y
C Y
A X
C X
B X
C X
C Y
C Z
B Y
B X
B Y
C Z
C Y
B Z
C X
B Y
B Y
C Z
C Z
C Z
C X
B Y
C X
C Z
C X
C X
C Y
B Y
C Z
C Z
B Y
B Y
B Y
B Z
C Y
A Z
C X
C Z
A Y
C X
C Z
C Y
B Y
A X
C Z
B Y
B X
B Z
A Y
A Z
C X
C Z
C Y
B X
C Z
A Y
B X
A Z
B Y
A Z
C Z
B Y
C X
A Z
B Y
C Z
C Z
C Y
B Z
C X
C X
B Y
B Y
C Z
C Z
B X
C Z
A Y
B Y
C Z
B X
A Z
C Z
B X
C X
B X
C Y
C Y
A Z
B Y
C X
C Z
A Z
C Z
B X
B Z
C X
C Y
C Z
A Y
C Y
B Z
C X
B Z
C X
B Z
B Y
B Z
A Y
B Y
A Y
B Y
A Z
C Y
C Z
C Z
A X
C Z
B X
A Z
B Y
C Z
A Y
C Z
B Y
B X
C Z
C Z
B Y
C X
B X
A Z
C Y
C Z
B Y
B Y
C X
B Y
B Y
B Z
A Y
C X
B X
B Y
B Y
A Z
C X
C Y
A Y
B Y
C Z
B Y
C Z
B Y
C X
B Z
B Z
A X
A Z
B Y
B X
A X
B Y
B Y
C X
C Z
B Y
C X
C Y
C Z
B Y
A Z
B Y
A Z
B Z
C X
A Z
B Y
B Y
C Z
A Z
A Z
B Y
B Z
C Z
B X
C Z
C Z
B X
B Z
C X
B Z
C X
B Y
B Y
A Y
C Z
B Y
C Z
C Z
C Y
C X
A Z
B Y
C Z
C Z
B X
C X
C Z
B Z
A Z
C X
C Z
A Z
B Y
B Y
C Z
A X
A Z
C Z
C Z
B Y
C X
B Y
B Y
C Y
A Y
C Z
A Z
B Z
A Z
B Y
C X
C Z
B Y
C Z
B Y
C Z
C Z
B Z
B X
A Z
B Z
B Z
C X
C X
A Z
B X
B Z
B Y
C Z
C X
B Z
B Z
C Z
B Y
B Y
C X
B X
C X
C Z
B Y
A Z
B Z
B Y
B Z
B X
C Z
C Y
C Z
A X
C Z
A Y
C Y
A Z
C Z
B X
A X
B Y
A Z
A Y
B Z
B Y
B X
C Y
C Y
B Z
A X
C X
B Y
C Z
B Y
B Y
B X
A X
C Z
B Y
B Y
B Z
C X
C X
B Y
C Z
C X
C Z
C Y
B Y
A Z
C Y
A Y
C Z
C X
C Z
C Z
B Y
B Y
B Z
B X
A Z
B X
A Z
C Z
C Y
B X
B Y
C Z
A Y
B Y
B Z
A Y
B Z
B Z
A Y
A X
B Y
A Z
B Z
A Z
B Z
C X
C Y
B Y
B X
B Y
C Y
C Y
B X
B X
A Z
A Y
A X
A Z
B Y
B Y
C X
C Z
C X
C X
B Z
A Y
C Z
C X
A Y
A X
A Z
C Y
B X
A X
A Z
C Z
B Y
C X
C Z
B Z
B Y
C X
C X
C Z
A Y
C X
B Y
A X
A Y
C X
C X
A Z
C Y
B Y
A Y
C Y
A Z
B Y
B X
C Z
C X
B Y
A Y
C X
B Y
B X
C X
B Y
A Z
B Y
C X
C Z
A Y
C X
A X
C Y
C Z
C Z
C Z
B Z
B X
C Z
B Y
B Z
C Z
A X
C Z
B Y
B Y
C Y
A Z
A X
C X
B Z
C Z
A Y
C X
C Z
B X
A Z
C Y
A Y
C Z
A Z
B X
C X
C Z
C X
B Z
B Y
C X
B Y
C X
B Y
C X
B X
A Z
B Z
C Z
C X
C Y
A Z
C X
A Z
B Z
B Z
B X
B Y
B Z
C Z
C Y
C Z
B Z
B Y
C X
C Z
C Y
C Z
A Y
A Y
C Y
A Y
B Y
C Z
A Y
C X
B Z
A Y
B Y
C X
C X
B Y
C X
B Y
C Z
C X
A Y
C Z
A Z
B Y
B Z
C Z
C Z
C Y
B Y
C Y
C Z
B Y
C Z
B X
A Z
A X
B X
C Z
B Y
B Y
B Y
C Y
C Z
A Y
A Z
B Y
C Y
C Z
C Z
C X
C Z
C X
C Z
C Z
C Y
C X
B Z
C Z
C Z
C Z
C X
B Y
C Z
A Y
C Z
C X
C Y
C X
C Y
B Y
C Z
B X
A Z
C Y
C Z
B X
C Z
A X
B Y
A Y
C Z
B Y
C Z
C Z
B Z
C X
B Y
C Z
A Y
B Z
B X
C X
A Z
C Z
B Y
C Z
C Z
B X
B Y
C Y
C X
C Z
A X
B Z
C Y
C Y
B Y
B Y
B X
B Y
B Z
B Y
C Z
B Y
A Z
B X
B Z
B Y
B X
A X
C Z
B Z
A Z
A Z
A Z
A Z
B Y
C Y
C Y
A Y
C Z
B Y
B Y
B Y
C Z
C Z
C Y
C X
B Z
C Y
C X
C Z
B X
A Z
C X
A X
C X
C X
A X
C Z
B Y
C X
C Y
B X
B Y
C Z
C X
B Y
B Z
B Z
B Y
C X
C X
B Y
B X
C Z
A Z
C Z
B Z
B Y
B X
C Z
C Z
B X
B Y
C Z
B Y
B Y
A Y
C X
C Y
B Y
C Z
B X
B Y
C Z
C Y
C Y
B Y
B Y
A X
A Z
A Z
B Y
B Y
B Y
C X
B X
C Z
C Z
B Z
B Y
C Y
C Z
C X
C Z
C Y
A X
C Z
B Y
B Y
B Y
B X
C Z
B Y
B Y
A Y
C Z
A Z
B Y
B Y
A Z
A Z
A Y
C Z
A X
B X
B Z
C X
A Y
A Z
B Y
B Y
A Y
A Z
C Z
B Y
B Y
C Z
A X
A Z
A Z
C X
B Y
C X
B Z
B Y
C Y
B Y
C Z
B Y
C Z
B Y
C Y
C Z
A Y
A X
A X
C X
B Y
A X
C X
C Y
C Z
C Y
C Z
A Z
B Y
C X
C X
C Y
C Z
B Y
C Z
C Y
B Y
B Y
A X
C X
C X
B Z
A Z
C X
B Y
C X
A X
C Z
B Y
C Y
C Z
C X
A X
B Z
A Y
C Z
C Y
B X
B Y
C Z
B Z
C Z
C X
B Y
C X
B Z
B Y
A Z
A Y
C X
A Y
C Z
C Z
A Z
C Y
C X
A Z
B Y
C X
A Y
A Z
B Y
C Z
A Y
C X
C X
C Z
C Z
C Z
B Z
B Y
A Y
B Y
C Z
C X
B X
A Z
C Z
C Z
C Z
C X
A Y
A Z
A Z
B Z
B X
C X
B Y
C X
C Y
C Z
A Z
C X
C Y
B Y
B X
C X
B Y
C Y
B Y
B Y
C Z
C Y
C Y
B Y
A Y
B X
A Y
B X
C Z
B X
C Z
C Y
B Y
A Z
C X
B Z
C X
C X
C X
C Z
A Z
A Z
B Y
A Z
C Z
C Y
B Z
A X
A Z
C X
B Y
C X
C Z
C Z
A Z
C Z
C Y
B Z
B Z
C Y
B Y
C X
B Y
B Z
C Z
B X
C Z
B Z
B Y
B Y
C Y
C Z
C X
B Y
C X
C X
B Z
B X
C X
B X
C Z
C Z
B Y
A Y
C X
B Z
C X
C Y
C Z
C X
A Z
C X
B Y
B Y
A Y
C Z
B Z
B Y
C Y
C Y
A Y
B Y
B Y
B Y
C Z
C Z
A Z
B Y
C X
C Y
B Y
B Z
B Y
B Y
C X
C Z
C Z
A X
B Y
C Z
C Z
C Z
B Y
C Y
B Z
C Z
C X
C X
C Y
B X
C Z
B Y
C Y
B Z
A Y
B Y
B Z
A Z
C Z
C X
C Z
B Y
C Y
B Y
B Y
A Z
B Y
B Y
B Y
C X
C X
B Y
C Z
C Z
B Y
C X
C Z
C X
A Y
C Z
C Z
B Y
A X
C X
B X
A Y
C X
A X
B Y
A Z
C Y
C Y
C Z
C X
B Y
C X
C Z
B Y
C Z
C X
C Z
C Z
A Z
A Z
C Z
A X
C Z
C Z
B X
C Z
B Y
C X
A Z
C Z
C X
B Z
C Z
B Y
A Z
C Y
B X
B Z
A Y
B Y
C X
C Y
C Z
C Y
A X
C Z
C Z
C X
B Y
C Z
B Z
B Y
C X
C Z
C Y
B Y
C Y
B Y
A Y
B X
C Z
C Z
C Z
C X
B Z
C X
A Z
C Y
C Z
C X
C Z
A Z
A Y
B X
C X
C Z
B Z
B X
C Y
B Y
B Z
C X
C Z
C X
B Y
B Y
C X
B X
C X
C X
B Y
B Y
A Y
B Z
C Z
A Z
B Z
A Z
B Y
C Z
C Z
A Z
B Y
B Y
B X
C X
A Z
C Y
C Z
A Y
C Z
C Z
B Z
B Z
A X
A X
C Y
B X
WjmsdnddnmQPZPPJPL
bQllTtpBlgwtrbbCwfZcfSFPSfLCSF
GgVgQrlpphBGrlVGgTtsRHRWVRMzRdVsqdnDnV
MMTcbpnfNGQbMjgsRwSzRptRzz
lPqCCqQdQqQmCPRzRVSwtzgqqwqR
lrDdllPdBWdDFQFnMbDNDn
FldWTldlpBSLzvpnpSTpWbDhbHNDPHhJcNHNDwbH
qVCGQRGrrgMQrJhPNchgvgJhNc
frjGfMrGQMjsRrRQjvQGmrQQszTTpSLBznlzBlLLSBLLSZTn
TPZZZMTTbNTZNtTlTbjPVRVGzpGQLLzdGgmslhzSzgLzQh
wrfwDDvcnFvCfrrSQsmzGGQQdndsGg
qfHwHCqCqCrFJrcBHCCJRmWTRTmVMttjRjRHZMNV
vpbqnzbPmWLFjFLBnjZg
NltQcCClQlcGQGtMTCRdGTGBFZRLZjFFZZhBPLrFHZFjHf
lMtlGMwMsCCNlTwtsCPzzmPmmVpmpWqVWsWz
VmWVSchSrScGtwlVtBnwBVFF
RZZPRNpPCLZvZPZNCLbQPZNBFtttmwBMTMTtttCwtgwBgl
RNNmPvbQQjPRQQNNHpNbhsfzWJqqSJcsGHhHcfhq
dtJvcpccWvLDztRCRRCrCC
qHVslPzPqHqzmPhTzmDFggjrHrSCNFFFSjgR
qPVPMhszZPVhwBZcdpvZJncbcJ
HBNLlBDtvLDHhHLvfwlFjqfQTFqqWfST
ddsGcggJncZVRdGCdZdcWWzSFrjzQFrfTzqfCjFw
VdgscZmbZNBvbDHTbL
GtSZQqpHpHfGHzzqHzHfSbPbnJCrRCnJChmjnJnbSh
DvcTNTDWlNDWdlbnnbjmRhRrCCRd
cclNlwBRvvTNccRlBNRspVLLZzVzVZQqfqqLpzpw
dBSfHdZvMQMdNVpWRmWmLCmmtB
rbTTrrjDcqcrrqrjjJGGclltPCWDmvtpmpPpvRDsCspsLC
vlhjThlqcjrnTvThndddHZngMnfwNQFNFM
tHqfszrgLsvgqtHrHtwVCGBRRjGSCwsCsmmV
MdFMclPmcDQFDlDdlZPmbVpCbFpCbBSCCRGCFpbV
mcDJdDQMcDTZQhhNNPldhhDtvHLgqtzgLvzTzWHWnWfvvz
sVdGlTMMVTGCdsTMHHWWnNBzNWpNWCpW
mPmjFhlwmwmWrpSrSWHB
jhPhjwgthtFFjRwjZgjGdJcdflfqMsZLLsdZdc
CBRsTsBBzLCfLqtqBRPNDQglSttlcgDlgGGt
rJdbrJjrdbVJZdVZCGrNNcgDQlcQrggl
FpFbbppjFCdwmTvsvfzmTnTBfq
cqhcWqqCNjGWqcqhGGZzngftmptLZLGZTn
brJHBbPVHPvSsdHrzQLzZgpfVzpfQtnL
dHFPBPrBJFRzcWNFhWwN
QTBTfQTZsjWDJBJd
FgFWNqWGDPqlPllp
CCvHzSWFrrtvNvNNHLGQQfbVRRfHZcZcVTTTnZ
ZCCHHCVRZzBZQThM
nljDtcqnhcfbwjwltfLQMLLQQppJBMLQJL
qDsqschsqblDqjcqtRmNVVdNsddNNPmFgV
QQRnqGBSpQnMmSGmRQQFtdcbbtHHccjpTFcTfF
wCNPNwNNWNgZHJHJFffqCjbj
ZNPzNWgNrsmzMVqsqs
pVWlMBWjlWWqspWDjdjMpMDCPtmmdbhtQtQtbGPCzChchz
HZNgrHSvHwnFZnvgNvnwLPBGQHmCmtPmtBCGGCmQhG
FrNfvSNSZLZJrJsVlRWWWqRBVTff
PQctSHQDPSQcbShpFzbmFddpmdmR
wqWVwvwNCJRhmdhwJw
nMnWggVqRVZqHBSBsQsQGDSZ
qppwrgZSLsVbbfvZ
hhBHPQQChCDcPcsvvhbGbsllJTfv
MDWmWFCPFWtgpRWjws
bmRjdmrJRjhJdJLZBjTFfHGTtQFTSQBS
wCNVnsspwsnvNDwnsDwSBHtDHHQGTFQFtMrQMS
nWsNvqVgVcqdJrchrz
MZlfqlmblmMRWhWNsjSQfh
CznczgtDFnVtFBNSRNttvhQsNh
SGDFzVrzVPrGHVnzCPVnlZlPwTbpTqlbqLMpbLlq
lbbbGDlwLDLjvDvm
FQfQnLTWVcPChtjmjWSj
cfgzzgfgfVdzTdfNwBpbLbwdRbpZGrdw
mwnWtbmdWdccwtgTmwnQfPqsqLQQJQQLsfQQ
SjrZbhvBZzPHQqfGJfjG
FlrMBSvMZZFBZhShMMdctWDtmFNDbDTmtmpt
ndHWprpqFTnnpdNFlhljzlGTwDGzlhGz
fvZmmVVfJctMZsgMgmcBmsZhwQlGDCzPPZWDGDjCllhC
WsmvmsmRNnpRHdbS
LgZSvhvcsWtcWnjrFrWjjjnPWW
DJDfNlDNRFlpMlFLFP
TmqTqDHdmfwJRwfdQJLHzzSggHZZcGzhtZvcZhzG
lbTpqhhgSlgtlTqSDzzLPPPrLGTTGnLm
VwGfQGBGZWNnmDLPznLB
vQdfZFWvFMMFwWGGhpGqJbpFtgbS
hSvCvFRDwmzCCHrszb
jdMgfTblgjJTLLLzqqGscmPmlqPzHc
bjQLTTbZMfJffZBBWdjBBQwVDntFpRvvDVvSnhppFv
FFnFQndPqzmjHscmJFwc
ZrZrRgDphGGDZgRRBSBNMHHvmwJJSNJHcv
DGrbbthfWWWDgtfffttfpGPVqnmblqPqCdQTlTPCzTll
sHTsGrHpsftmddRRZfRv
MqFcqcMQbMcVPCdFZCzZsRsFzL
qnVlBbcJJbbMcbgQJMMbQlDWWwHWSWwpTsGHGrpDWG
qpmvVVcGvVVcVmDsCfqTHLLJzTjfZzLZ
rSSgwwnSRRBrQrZzZHCQrZ
BFgFRgdNnSBbbnhSMBSNFdsWVtpWmzsGtvpVPvGWVDDN
fBBRfJBzzMRGRzCBgWtbCWtbgHHHWdqt
mvNcDcsDLLnnqfbv
hpTsTsTrDrfpMSFFZjPFMrSP
CNQGGDMFWGnWWvvNMQFPvrgzBLVBLszwgggLgw
mppZVZtZRTbTTpRccVbgrSLzSPSzBrfbPBbSPw
VtZJhRJcTpJTHlhtHZCFFWFjNjGGnFhCqDqG
cppcZGcGgGpdTgSSnmpFMFrFzmwqwmrHwz
RStQJNCNvfBQNjrqmrjFrBMzFB
LJDNNJCDLcdLnSVd
gNrBNSrNNtSjBndzmzlVnm
MbfqfpCLpCsLqsLFSbQLfnMdcdRRcdzldlnljzncnJ
QPQLqZqhSqhvtvTTWrNg
DtrrcGvtLnrrvLrfctfHztrfQpbwwphpdSbbPPPwFSFFRPwH
gggBqTNdTNjqWBlNmCqCmNggQPhpPPPbhhQpSBpJwbSJSQFR
ZglTmgWNgVZMZdsGMcvDcMdMnz
bjtTFsPmmtpvVlQHlQJQnJjn
WzDzwLCSLrrDNLdrSZRCwNzrlQlJMnJQJJVhbcMhgllwnJQh
fRCZzrWRzzGbGvTmBPTf
lVlfJVblPQbllflfLdJdvGpjnFRFqJFnDqpJjnpF
HcwZMgmwWCHHCSwcWCcgSCtCqqpFppGDqvDnRhgnnqFDpjFT
cwCHtGrCssWHCCWZZMbPPNBVbNfVbPllVszf
DSpSnRwrZDPWsJdZ
zjjlQVjlNZmCVCfhCfgFFfFFFqWJbgbFWHJH
lNQMlGjQBZjCmhNMCChGzlVNrpTnccLLwcRwTSppSpprLRcB
vLfvcgglbfLfgqdgNpPtzqDmPzmJTTztPCHT
ZWSQVGwQcWjSshGwVcnSzDJZtPPTzmzzJHCTzDtJ
SjVSrWVhQVQhwrLMcrFbfplcflvv
NgtfSRPnnRrSlgsPhnShDWQlMWpVBMMMpCWVBpCQBB
LLJnvwJvZHZbHTbVCQBppCFJCWWQBz
wHTGZmZvdvLvjLwZdqngNgsGtrDPSDhtNfDf
DwrDRlrwmbSbRgwsSbRwGJvQGqjJqGNTJTNGTSGn
PZdMZzCQFBZWWFQvJZvcNcjqNjjZJG
WHWCFHBBdzzMWhPFtFdMzlRsVbVmDrRVVrtQplwVwD
bpWbJMWpJbprfNMrBfJfprWhPnGtnHnLHjPPjLvsWnHGvGvj
qZdgVVgDQhQZlwcqgDcchldjjmLtntmntPQsmLnLPjssnL
RVRlgcSSdglZczdqbTCrhBrBpNBSBSbF
SgbGvfbnGgmnNnnzqMqqHHRzbZBzZR
TWlssdFwWdtswWPtTtWltwdVHlZZzRHZBZRzrprqHMpqgZrq
dssdCWTFwSvgmDjDCG
pqsDnNzzZsdZSnDSpwjBCBWvgjvWjNFWQgWC
lVGtRtLMGGfbTGTtTbQCQnBQBnBFgFQcgjfc
GPbTbPtnPttmLTGRRbtmdwSDwpwwhZqmdpzDhDJd
MdccRQMJvHdgZggvhjjMgHcHlWWqFFWmGqFbJWzzFLWlLmPm
TDpSsTrtblSzQlGQ
tfVNrwTwtswTssMRjMMQQddNMRCd
GqGqGpFqqgDGFRqDwwqqmzpGTLPvVWMPVCPLJLRJJMLTlCWV
rHrSbrsbQcbtdNHHHfdPlvWBLLWlvMTVlVLCJf
rccbtthHSHsNHrrcttwqpnDFnMmpnzFnFhnF
vQQQbRvlLjNNLLBzNllNHNBqGqhMWhGGhTqmPmqhWTFhRm
tnsZwgSnCDrZSCDsfTMSGpPWmPSWmGmbFq
CrVnfnCCtrCgfrffcrstDnJNlvJdNvzdBcHdLBJHvbBv
nmQsMqTnLlmmpQZmTZcdHwCFSpHJSSWHSJVSWSHH
vRgRRtfPvDjzDgDbsjzRvjfNNWWCSJFwrHCFbrCJWJHCSC
GhsRBztDBgzRPstgzBLZcqmlcLMMlmdLQBZT
CWfvvhfWrlllSSRrdQrQDQGQdTRr
jsNctMZLmMZLMmmmbbNZswZNqBTHPHzBMHHTMGqBRMRPDQqP
jcwjntLngngplgFhgRvJVp
vchzqzwlhzRqzVZQwqtVPZLnLLbDnDFnbGLnDbPLDGWD
pBTHpdpHsrNBBsgdrdCpCpCgRFCMFDLFWWnFWLRRGWbDFGSF
prsBHfggjpjjcRQlqvtw
VDwzLQrDDWrrwWbJrVJwVrVQfMfSCNPMfSlMlPcMmThChf
tsjFdsRsgtRmGZHpHRgBClSlGSClcPhGCfPlllll
qBBFBZZpmgdFHdstjFJbzVwJVqJWWbrvWJDL
mgjZmrqmdsmGtDplglJgRVVc
nPhnLvnHLtLnWzzcNwwcchVJRflhpc
SnnLntLWZsMqZrSZ
jcrNfnrNLNNqFgbDfCSgSQbS
zPPHtMrGGptvTWPVvzvHRgQsbDsSRRCCQbtJsJDS
wHzrWVzPwThGGwMHzTGGPGwhdlZnBndZLljNjBcLdZdNBN
qNPhNqddBNhqvPhFvllNgNBHCrrCQnjpCfPVJnnJQJCjJj
ZZbZTZcmGWWMDWRSDnBVQCjVDffJjnnVCJ
SGBRTTZGGcLSSWTScsmcMbGlhgwFqslhzqggghwhNvwwvw
GCCPwpsBqNSsBPpSCrSshzQzLhTvQhqTnhtTVQcT
JDjFJfMJgWbWWlDJcnvvhvtdLnjnzhjz
FlDflbZfZgJgMgbmgZJfSpGCvvrGrRCpCBrZRprw
HwqhgFGSMgPPCGQQQnvvcpjn
BllbdfRBsBmsmZlBTmQCjTnNWNCmNmvc
lJDlBflDdbbRlLbfsbZBJtbRqrVFPnwwwhVMHwVrgJwwrSwH
LTvLtTFLCddFTTthsbVVmHHcqVHmWRcmHL
lBgwwNggwMwNVbjBCQcCqCRB
nCMCwZGGNGJnGhtrzsdDDndtsF
ZlZdJJplLZBDpJjNJlGjQCLmCQmTwVVCbQQbqWCT
SfgFzftrnRzMnVbPPPQmPq
FfmrRvgShchvFfghzRvgtvFBpJDpcGNGdBHJlpDDDJlDJZ
LdNrLzjdWQnrDHsD
tBZmBZtVZpldVMPRnsRQsnnsHVbRHs
MlfldwMBBFMZTSFTSqLqcvSJ
nJqBlvvBjHhBcqqRrGPrTrGpBCGzTG
MfVCVMLZVZtQCdtLMtQtQSSSTSzFRSRPFpFRGpdTFd
CCQQtQVgfbbQNggsNfQZZbHbcWmnhlhnvlnlHjJWvnhv
SGmmGwVwnmhbhnhwhhwbdMgNNgjmvMDrJTCgmBTBBj
ztFWcWQQfcRzzRFllvjDjggjDDfBgJMBgC
QtzcJtFtqcFQRRWRRQWFzFGpVnVSGLLGZVGVqddbLqGL
tBmdmQtjMMqDLqBtttQMjDdwwgwccMMbffllgzncwfFflF
TPVHTVsRsJVHVrVvHvrRhVJbfCgFbzwbCGgFlwgcCwbn
hssVWnRrTVZSSZZqjLddWtLBddqtQL
WhhtGZtZGQZmvCfCwtvhqgbfdDJdfjlSDlSlBBJDSg
rHnpFHnDrdBggJngnL
HVcTzFPNzTpPPVrzmtwtvvvmNQwDQvWw
dStBwStGGBrNnBdrSSMzvjhgFcvvDcnnvPDn
RLZbCWWJbHRsTHspZWLcDWcPPhzczfjgPjjvjz
ZmLHJqJsLJJHLRsmmmGSztQdQzmNBrBN
JrmRVdvcmvvmvvRTdBVVfjFQLwjqLFLWFMqwcFjz
DDhhttDHHHbHSnsDbHqMqzwQLLFwLsjjLLQf
bSbPthtgGQPNPHnSDChCRJZZJRCZdCrCBZZZZvJd
rqvVqNJpVVNwnqqTwthMMq
jsFRFDQRLQDQmsPRmQsmcQFMzGhwBGBhTzTTzHnRhnhBhRwz
dCccQcQsFCmCQfbJbvZMNZfJrJll
TGjrrTRLHvrQrFDCrmzzVm
NwWqqhndWtzDQhCzVCsh
CSSwNNwqgBBBBbGGvLTTvb
fRBRBHCVRRzcCdZHvRvZVCZLNjtwtNwNTtLjNtTpTNttfS
DZshMssZmTMjwjSLtw
QPrJDDJsPDFmFrFDscHHRzrcvccCZRVzrR
zgqzLLvlvdgpgrWpWW
RnJmNRncnScFmZSScrJQQdbpGdHbWHtPHpBHsdFdsW
JDfRcrSnmDSJcNfrNZNjvlwjhllhMzlDqMqMvh
fDLzSMLhhtDWMvtjCRRZjCHHJjChHN
pmTNpVwPNbPwPBFRqRJqjCnFjZFV
dTwpddsTbgbQBssprsgtvgcNLzWMctfSgcfWLt
fbBsBTsNDhGBGZcLLLJJQffQLQ
MpsCCMHClsHQqZcQWLqR
FtjdCFzVljFlslVCpFrFjPhggBGDgNSTTgbGNmbGTr
HqTfmsCFmPlGHddNVGpLhz
JjjcQQJgjZvZZzzwgpNVGwLGgV
nQnSbDDRbSQJQQpRZtZcZZsPPrFfWCPFWlrFsFPqmqFt
TgTDDrCmqJDGLrhqLmLGqDQRFtttjMbQZJjtdtjFdsdF
WHffcHWnlvvcSSWzPVvHpWWVRbFdQQtQnjwZFMwZtwddsZbd
cBpPplVVPfvVGBDLGCBqmmLM
dlMMmnmjvCCjJrrvMdgHcbcFbqFbzQrFbGzb
tPhRBRZPtZRshTzRsNShRZNGDfGgFFbFQqbGHDHbqfGD
TSPhBVsTwRBTpVtRZpVhZLJjWzLjJlJlJvmwWWzwWn
WcvLLgLcczLTDtccbLcgzMMfPsGwRPjwfMwHMfMvMp
QVmlPQCdJlJJJlFJJJnPQQhlwwMMMnMwNMpwMGwwfswwGMsR
lrSCZZVFhPSZgzgWttWBcc
bwbbZLlbwlJhBzFCgtTGRGQldQRmQW
SSnpHnPHqpmggCWgdT
PPscHHTfcsPSDVfVssjvwFJLBJFjFJJZFJLNLwrL
nLgDSHgwRgGnHjjNfTRhjPVpWV
BstQsvhQZQQbMvCvMPVNWpPcTjfmPmmW
brtCrtvtzrhdSDJDwh
dTQTwgmZQbDzzMQCCl
WLLtntFnfnRHbttnSRRzSMVGDDMGzVlV
JsPhFtfbLWnsLPLqgdJcjmcwTwjcdw
wMwMbMRRBBMLPBlhLRQlhPcWzgJNvJtzWNtJptpgjJgpBj
TnmGGmVnFFNSZsnZqFsWzWjrTJzvzWvWgWtTWz
qnHGnVSsqZCddnGCGCSNdDbLQPcLLQlDhPRMhb
NGsBTBlqsvfQBQqsTLTFltRMmRwmmHmFtPSRhM
gjZWJWCZdDpjggDdgnpWdZZJtFwFRFFRMwbbmRPtShnwRbtt
zZpSDDgpzcDddjVWggJsQGrfQvrQcTGTGrTrqr
hpJchhFWMpRDWHWcDGnCGrnGnwPTwpQnCt
bmgddgmlmjjbfddgmmmNvGQLrtfTwrTtLtGTLQVQQP
qqbmdZgzZbvgPDccHcZPhWWH
VVrdQZZrZSZFgQTTTzggrVZVMlfBBfvcMBCBslMhBvsMBSff
bQwnHwbNpwcsCwjMBw
pHqqPnJHqpPNJFzqTzQWWDQQZq
HgwTDfgBwBgcRHqRRjHqHTzQQClSzvlzPVSQLvbbPC
MnhtNZNnJpWpGhMQbCCPVSPLNmSPQQ
rrhJMFJJZFJpHcjRLFRfHjgj
vGvGMBlttBltvjdgbPsrsDWdjPPP
HnJQHVqNmQHmZsDZPPrDWpgFps
JSqJQVVDqqVfJNfRffGSGMBwGTCCCTlBMSBl
PsFZPfGbDNbtQmCCmCBBbmmL
dcRdhSrCqjThTRcTpLzHQzTmpmlgBz
hhhcqCvwhhVhfPNvsMstZtsZ
VvGwBBwvZtGgfZCqShnFFjSstCMC
NlTRdvpDdTRNzdTHHnMssCnCnCqjSz
LvWvPcWLpGwBwVVgVc
bVVmSrLmLSJzTZMSFTBdMj
QnvqRGGDvWpQWGDpvsRZLBzTRjBTtjRTPtBF
QWGvDpqcvpGWQpGngqGQGwpLhJVNJcrbfrVbfbhHrmlVJHVV
NGRGPZWZpblGcJtfssSSsbffCs
gwRhjvrgjmwgnzvJJJtVCtHJqs
rrmLrhwFFmmTMgFRjNZWNpZlZLppQNcDWP
qsHZsHZrTBtZrHBNFCJGWrMcpcddWGJWLG
mRDDzbPVDVlVDgbgRRvmwCcWdGvJwGddpvLm
PnfDbPbVzDbVfjnnlbzhVFsspBSfFsssHQNTBpFqNQ
gCmtbDqPVVVqggCGqTJjHMpMQfgMpMHQQpcM
zNZnsSLzZzrlRhTTJMHppjfHSpvp
nhdrBsLlRRrdTlsTVmCmGqDVFdtDPGwV
FnqNfdGfgzmPLGmj
blvVvbsRwgnzjCPcbT
RWWvtvphnZQZwMBNdHfNDBZZdq
DMRhDhdvnjhnPnvPMfdZSGTccGJFjGFFpFpFTbTpTW
NVgVmtzVlLBmgztsBNmtgCmqFpJJFGGpGbrcGGsrcpbWPr
zwBztLBzllQPDZvfQZfRfHSR
mFCgPzmqgtPPqMmFWzbMttcRGvRclvHhWGGcZvclRfHh
psSNnhnLGnwZHZGv
hBpNLTNLBhsPmbCgBtPDbM
JsbLLWLJRfQFnccmQhtvvPCP
dwgrVwGpgVhCrrhPDHtC
gpGSjpVdVpVppjjVZBwdCbFRWLzLMSRMbNzfzbWR
DmMQMJmnmGwzGwwG
ZcLcgLgcRsZSctHFWLGfjjBwvbvBsvjpfhGb
GgFPqFtLRHLFSHLRRFRHHtMnJVNCQCrJCJCnMJDdnqDV
tqdqFqdsRdVdtHMNdRZHTZLrHJgrlZQPJLgr
GGwVcpGznmhbWhwcVVgzTrDrDDLZlTLLZQrJ
nhbnbfjcnfMfFNVtBq
QHmPNZvfCLsSwJSm
pDhjpVDFcRBpFFjjMnRcVhpFCzbzsZbSSCtwtLMSLZLLtLbs
FRjrnRchnfHPrrZlHl
bjjMbdChgRDZthpQpRQnwRTprRwS
mGzJsGsHzHGPvvvqvzGzSnglSJrrwQgnlQQSrlQl
qvzHqHLHmHgPsNBdCdZtVBtVVMBFbh
CctrCwrdpTwcpVrdpTpcrcnSJQttvQPHJQNQnQNjvvHQ
zsqRlslRLqfgRmWsRgRzqzQnHjSBSQWJHPhHnSvHnJJJ
GRgllbgfRgbzfRmwwcGdFMcTVPrFCF
2-5,15-90
42-93,43-57
71-95,72-81
19-92,2-93
21-92,57-93
57-75,76-76
66-92,14-76
4-97,5-96
22-50,22-51
10-43,42-43
50-59,60-60
81-86,86-94
86-98,82-99
44-63,44-62
36-65,42-89
2-86,14-85
51-51,48-52
41-55,10-55
3-99,3-96
62-64,38-63
24-80,80-98
13-67,7-47
22-78,21-91
3-92,26-91
97-98,86-98
17-90,16-91
4-96,97-97
33-46,44-47
98-98,44-96
9-36,7-13
17-91,18-90
1-37,4-37
19-58,18-58
42-43,11-42
9-98,10-97
6-22,5-6
9-12,13-61
4-16,17-24
37-45,36-38
62-86,61-61
8-41,8-40
35-91,35-98
84-85,72-84
40-90,41-91
47-58,31-59
30-80,22-31
87-89,58-90
13-25,14-25
23-54,52-53
4-89,5-88
3-99,1-2
4-54,3-53
4-33,5-52
50-92,49-50
72-98,71-97
7-27,26-27
10-49,39-78
3-93,16-92
16-30,31-96
6-90,5-6
5-93,4-99
7-99,8-95
49-89,50-90
43-43,38-42
23-78,6-79
89-90,31-89
3-8,7-25
26-54,26-27
64-87,64-97
25-53,25-53
17-77,17-78
58-88,59-82
7-30,6-29
9-95,1-10
31-98,26-97
3-9,10-55
19-19,19-35
81-86,22-86
51-69,52-70
17-82,17-82
30-41,30-52
32-36,17-34
12-60,15-61
5-85,6-86
26-95,25-95
2-94,94-95
37-37,38-76
39-59,38-38
8-98,7-97
15-95,14-94
63-65,27-64
18-62,61-61
8-82,8-82
75-75,74-75
63-98,63-98
68-86,12-69
41-88,53-91
18-81,94-94
67-99,66-67
41-42,42-50
39-40,4-39
11-12,12-20
43-48,40-49
10-10,11-49
8-50,8-49
42-42,43-94
30-94,6-32
15-92,15-15
4-88,1-40
5-13,11-15
5-76,1-6
1-3,3-92
6-92,9-91
74-98,73-99
10-13,13-35
26-81,27-82
13-69,12-93
6-44,6-43
22-88,88-89
48-58,47-71
23-24,22-24
2-47,7-42
28-55,27-56
20-93,93-93
61-76,26-60
63-98,63-97
26-29,25-30
69-79,9-69
18-98,17-97
51-59,50-51
2-98,3-97
26-92,11-26
15-20,26-89
18-42,41-41
1-95,1-96
9-98,97-97
99-99,3-99
3-99,3-96
3-70,3-71
14-65,14-39
2-96,97-99
21-58,22-57
7-64,35-63
4-83,83-83
23-74,75-99
98-98,1-99
38-94,38-94
65-77,78-78
12-50,49-49
32-84,84-85
9-35,9-35
11-50,39-51
7-98,9-96
30-57,29-56
61-69,25-61
7-81,17-82
5-35,35-35
11-79,12-78
35-76,35-77
25-36,19-36
79-92,37-91
4-4,3-97
10-12,15-30
36-64,37-63
11-14,13-83
13-82,92-96
6-6,16-71
17-75,10-29
25-74,25-73
67-92,59-91
81-83,64-82
88-88,37-87
45-76,36-52
2-13,12-92
24-25,25-31
5-95,1-4
11-55,4-10
32-91,32-90
77-77,11-77
20-64,20-63
45-63,49-62
20-99,19-91
13-67,5-14
29-49,24-40
12-67,12-68
98-98,5-99
28-51,52-56
2-99,38-99
17-50,16-16
8-84,9-85
67-92,26-67
68-69,69-70
18-54,19-19
2-93,3-80
2-28,27-42
47-81,37-48
25-35,34-35
26-94,16-20
26-92,27-93
46-92,4-47
91-91,18-91
24-48,35-56
5-94,5-94
84-95,46-83
5-95,95-97
91-93,18-92
15-46,16-47
3-33,4-34
4-91,4-71
14-27,15-92
71-92,92-92
18-70,19-71
46-68,47-69
30-31,29-83
28-89,29-98
11-90,12-95
65-70,28-68
23-77,70-76
21-44,45-90
50-50,1-49
60-94,61-93
24-89,23-72
15-93,3-16
12-78,11-77
11-20,68-92
51-86,52-63
29-41,29-29
6-96,5-95
45-91,44-90
23-26,22-27
7-82,7-82
47-61,48-93
7-7,8-88
31-73,30-46
22-85,22-86
8-17,18-62
10-77,11-77
15-94,14-93
5-78,2-2
24-53,23-52
61-79,62-80
97-98,59-97
69-99,34-58
2-93,1-94
88-88,89-99
15-15,14-16
20-20,21-25
40-60,15-61
18-25,84-86
8-99,56-97
12-98,6-49
1-48,2-47
34-44,33-43
68-94,67-95
3-56,23-56
12-35,12-33
23-79,24-43
13-92,13-92
60-96,29-97
17-87,2-17
29-61,43-61
51-93,82-93
19-95,19-94
13-14,14-81
19-19,20-40
31-93,31-93
9-94,8-93
46-85,46-99
5-51,6-52
53-80,52-53
7-57,39-59
79-90,90-90
72-93,26-69
1-97,1-96
18-79,18-50
72-72,42-71
54-95,54-99
86-94,34-93
20-77,21-77
88-90,26-89
23-83,23-84
7-7,7-40
35-35,18-36
67-85,68-86
22-59,21-58
28-72,27-32
13-13,1-12
9-90,9-89
24-69,25-70
67-67,40-68
1-9,15-96
7-48,6-47
36-67,48-54
2-4,10-95
4-89,15-97
28-63,34-48
81-81,80-80
18-87,87-88
94-94,8-95
77-92,71-97
41-41,42-90
3-36,4-35
3-91,96-96
89-91,9-35
1-82,1-1
15-83,15-82
4-92,4-93
93-94,32-93
82-93,96-99
15-32,15-39
60-64,59-65
68-72,72-73
65-72,27-64
16-17,17-35
7-19,7-67
31-98,30-94
93-99,30-96
18-88,18-85
18-45,17-77
4-45,4-44
74-82,40-73
8-92,7-7
18-86,86-86
30-60,30-50
42-78,39-78
10-79,44-78
8-96,8-39
8-64,13-65
92-93,30-92
4-94,1-2
91-97,92-98
41-97,42-97
2-97,2-70
28-79,5-79
30-30,31-68
6-97,99-99
10-10,9-20
3-96,2-94
3-8,8-47
99-99,52-99
2-31,1-6
2-89,2-82
22-95,29-94
92-94,27-93
1-2,2-87
53-54,53-54
1-66,41-62
7-42,1-26
7-98,8-97
26-99,26-92
2-95,3-94
93-93,12-94
21-23,9-22
43-97,43-96
45-72,74-83
26-94,25-93
32-32,31-71
21-21,20-98
4-98,26-98
8-63,62-88
2-82,6-97
11-48,10-53
54-54,55-93
38-39,3-38
75-77,74-76
35-98,8-35
13-83,84-97
13-21,7-21
2-17,16-78
79-79,21-79
25-87,87-88
53-90,89-90
11-38,37-37
4-42,41-41
2-2,3-98
52-72,52-71
16-22,13-21
16-91,2-7
4-61,29-46
10-91,1-59
28-93,27-93
88-99,27-89
27-87,88-88
10-66,10-67
12-13,12-42
80-89,81-91
39-85,39-84
82-82,83-97
24-46,47-63
26-74,27-73
4-92,2-3
1-88,1-88
29-94,29-68
29-96,28-82
51-51,52-80
13-41,12-26
3-51,17-50
17-46,45-45
16-25,97-99
20-42,26-47
21-49,40-44
6-80,1-31
74-86,68-85
32-98,1-99
7-30,6-30
70-79,24-71
64-97,28-49
23-93,24-94
29-42,28-28
91-95,91-96
9-41,10-40
83-93,31-94
42-94,41-76
75-77,9-76
64-93,92-93
68-68,69-69
14-21,19-20
89-89,4-90
8-10,9-59
20-83,10-86
37-89,38-88
8-99,5-8
8-50,20-49
50-74,49-50
20-92,19-93
52-78,36-53
63-96,62-63
15-47,16-46
87-88,4-88
45-66,44-67
49-54,48-94
27-35,28-35
67-91,66-90
2-99,1-60
16-85,15-84
9-93,92-95
4-38,37-39
7-16,3-16
33-41,33-67
19-34,33-34
79-85,85-86
68-99,80-89
4-70,11-81
19-80,19-19
15-64,63-64
17-50,18-54
14-87,13-13
51-89,52-98
73-90,12-91
30-93,2-94
80-81,8-81
51-80,81-87
75-83,97-97
13-89,14-27
1-2,3-46
93-94,54-93
11-84,11-85
17-30,2-6
15-65,64-69
64-74,10-69
9-95,10-94
70-91,69-92
27-96,26-95
39-48,8-10
46-49,45-46
54-82,35-54
1-1,2-86
81-93,10-80
88-93,42-93
33-33,33-82
9-55,56-73
1-93,2-92
97-97,2-95
1-94,71-94
26-54,59-66
35-86,15-36
2-55,4-66
50-87,26-49
43-87,19-43
4-96,3-97
20-90,53-89
16-88,4-87
64-64,11-63
38-65,39-39
11-31,12-32
25-60,24-43
24-47,26-48
3-92,91-91
87-95,87-90
91-92,4-91
74-77,74-76
2-96,96-99
26-42,26-59
4-5,7-65
64-71,44-64
33-83,29-82
19-32,18-28
2-95,1-95
28-95,28-95
9-72,10-73
50-96,96-97
19-52,19-60
9-78,8-9
53-54,2-53
36-86,4-37
47-60,59-60
80-81,43-81
21-60,22-61
27-78,26-77
57-93,57-94
1-92,95-96
12-94,11-93
4-99,1-47
28-28,29-92
34-86,54-87
62-81,63-80
13-98,97-99
30-30,29-55
29-72,29-94
4-98,4-4
48-50,49-49
12-12,3-13
42-91,41-91
59-63,60-64
6-61,7-54
23-94,15-24
6-98,6-97
21-96,20-21
18-68,18-68
27-40,27-27
16-99,3-17
67-82,32-51
98-98,26-77
29-96,96-97
3-31,1-32
52-60,18-55
6-88,5-95
84-90,84-86
19-83,18-97
1-50,49-51
94-94,23-95
40-40,5-40
29-30,29-29
13-49,12-50
28-76,27-75
40-55,40-57
9-9,10-98
6-75,4-4
4-95,5-96
46-47,31-47
44-62,43-61
29-75,18-95
37-72,37-73
49-67,49-66
55-78,56-79
9-54,53-55
3-65,4-64
37-37,4-37
29-55,30-56
6-95,4-96
78-80,79-81
15-59,14-15
61-62,55-62
50-96,17-32
12-96,11-96
9-9,10-33
36-89,97-99
37-59,38-58
32-51,33-54
72-74,39-73
77-99,77-94
5-31,28-29
22-96,21-21
2-94,3-95
6-97,6-98
53-69,44-52
29-90,30-91
4-26,7-24
18-26,27-91
20-96,19-97
22-28,23-27
18-74,17-90
36-70,36-94
57-77,20-58
10-36,11-80
23-23,23-99
7-87,88-88
12-13,13-62
4-38,2-5
53-55,2-54
30-87,4-87
33-34,34-51
86-90,39-86
51-51,52-89
7-42,8-8
31-34,17-35
4-77,33-78
9-33,14-82
39-83,40-82
15-72,26-72
77-93,92-92
14-81,80-81
81-96,97-97
27-28,28-86
50-83,37-50
67-96,67-98
23-91,23-91
25-83,24-84
43-82,43-48
88-88,37-88
97-98,2-96
9-98,97-97
20-33,20-33
9-26,15-99
1-4,3-61
42-75,67-75
29-94,29-60
70-70,70-89
1-92,1-92
53-74,73-75
80-80,2-81
1-98,3-99
1-92,3-91
15-88,16-89
7-97,8-96
2-5,5-66
3-83,2-82
45-94,45-45
20-26,26-92
2-47,47-52
31-70,30-30
48-71,48-90
24-95,95-95
32-83,82-83
26-59,18-40
90-92,2-91
16-73,17-65
17-97,18-99
33-33,31-33
1-97,14-50
24-96,25-95
62-62,33-62
32-32,33-68
62-81,61-91
26-55,8-25
24-64,16-23
50-64,49-49
30-94,93-93
84-95,36-83
82-97,41-83
11-33,10-32
19-27,27-50
17-60,18-61
31-85,85-85
45-70,46-69
1-6,5-84
17-86,12-60
48-94,97-99
91-96,90-90
12-75,82-99
10-77,77-78
5-7,6-97
93-98,92-98
25-36,25-67
36-37,37-70
38-58,59-92
88-88,67-89
3-91,3-90
9-71,8-70
26-70,27-70
84-86,31-85
34-83,2-33
14-58,14-50
47-81,48-82
90-91,77-91
91-92,39-91
76-78,30-77
22-53,21-22
16-87,86-87
1-3,3-41
18-27,27-27
4-97,4-4
64-67,64-67
12-13,1-13
37-59,36-36
10-96,9-10
66-67,41-66
12-45,11-66
78-94,79-95
7-95,52-95
85-85,17-84
46-57,47-58
18-74,1-59
22-63,34-39
6-73,12-80
33-85,16-83
4-47,4-47
4-4,5-67
18-65,9-17
13-88,13-89
60-79,61-69
97-98,11-95
12-96,12-75
18-18,18-88
27-81,82-98
48-48,49-84
16-58,57-57
83-84,84-96
32-42,49-93
99-99,3-97
1-95,95-96
56-68,55-55
2-2,2-49
27-59,35-58
43-86,44-86
20-75,19-75
14-95,1-14
6-93,93-94
16-95,15-16
11-16,16-90
80-80,62-79
11-51,10-51
66-91,67-81
39-42,39-43
14-18,17-19
50-54,50-55
4-71,3-54
2-98,1-99
69-71,20-69
3-52,28-53
9-45,8-46
94-95,29-94
8-89,14-90
89-91,2-90
1-58,14-85
25-25,25-74
29-82,82-82
84-97,6-83
31-92,91-91
45-78,45-92
55-58,55-78
8-85,7-84
44-90,43-82
45-58,44-58
20-27,27-85
51-69,52-70
29-50,30-49
3-3,4-54
69-73,70-72
6-7,7-92
3-8,3-97
6-65,83-85
78-81,39-78
23-47,24-40
72-74,28-73
2-2,1-96
67-93,66-94
32-33,10-33
33-89,33-46
22-39,24-39
63-74,64-86
2-39,4-21
28-71,72-84
3-64,64-64
15-69,16-68
49-86,44-80
44-80,45-79
20-20,9-21
28-41,6-28
16-54,15-53
51-93,50-82
63-70,69-71
26-79,43-78
7-59,1-9
59-63,50-63
57-58,11-58
6-91,4-5
15-20,5-16
2-79,8-34
90-90,69-90
39-67,38-50
3-79,3-80
5-97,4-98
32-97,23-31
11-98,11-99
20-75,75-76
76-77,36-77
55-55,54-93
93-94,49-94
5-96,4-5
91-93,19-73
35-77,11-93
21-43,21-44
34-83,84-84
4-38,5-33
7-7,8-48
3-96,2-96
11-90,2-11
28-79,28-79
6-96,1-35
17-30,17-17
52-52,30-53
83-94,82-93
11-13,7-14
96-96,75-96
46-59,6-60
25-76,75-76
91-91,90-90
62-87,61-88
16-69,17-68
36-43,39-42
8-87,7-87
73-75,42-74
91-98,81-92
23-95,22-22
93-95,53-94
5-92,91-93
21-41,40-41
12-97,12-98
7-98,8-99
13-97,13-96
61-62,62-74
43-45,23-44
43-45,46-74
32-69,32-69
54-56,53-56
2-76,3-77
11-74,11-73
22-75,16-22
8-80,79-81
8-27,9-28
66-80,79-86
43-43,44-97
2-74,2-8
11-78,78-80
59-82,83-91
94-94,94-99
2-86,2-2
35-35,34-98
61-63,61-85
22-76,21-77
9-35,35-69
44-79,45-78
31-66,66-67
17-95,96-97
47-79,38-48
28-94,13-39
39-73,38-73
35-64,14-55
53-95,8-96
24-94,15-25
83-84,55-83
41-68,41-67
78-91,15-74
52-79,83-91
6-9,10-98
9-37,7-7
39-47,40-47
25-97,23-39
88-88,11-89
10-88,9-88
9-84,7-7
6-91,6-6
66-75,44-74
16-85,86-90
42-57,31-41
39-74,73-96
13-87,87-88
25-26,26-27
3-11,4-12
46-74,3-74
21-96,95-97
47-64,47-57
9-42,10-43
28-77,29-78
20-38,37-71
45-98,44-96
10-61,15-59
8-98,6-6
13-67,12-66
2-97,3-3
27-28,28-44
13-67,67-89
8-71,70-71
15-49,15-52
11-75,3-10
85-85,50-86
21-88,25-76
45-71,70-77
5-81,4-84
15-64,14-15
3-95,2-3
36-46,35-45
4-23,5-22
24-48,47-48
6-27,2-58
36-58,37-82
6-66,3-56
3-29,28-71
43-83,43-87
22-79,21-90
27-45,45-58
3-37,4-36
8-9,10-81
24-99,74-99
9-42,8-43
2-98,3-99
75-76,60-75
29-83,28-28
18-26,26-26
78-95,9-77
7-71,2-72
22-88,87-89
26-28,71-73
93-96,51-89
65-65,66-96
11-19,18-98
27-62,32-65
18-69,17-19
55-56,35-56
25-71,26-70
3-96,3-95
25-96,40-95
95-95,3-96
47-65,63-66
45-53,39-45
5-84,6-79
31-91,14-85
24-31,32-54
11-48,48-62
38-51,10-52
4-90,5-89
9-44,10-15
5-11,10-98
2-4,5-18
1-98,79-98
63-90,89-90
60-69,58-60
37-95,37-98
30-77,31-78
10-21,20-39
11-30,31-64
39-86,85-87
67-79,42-74
11-76,75-91
5-30,30-57
88-90,58-89
19-90,20-91
1-1,3-12
95-95,23-96
40-76,40-76
26-46,26-46
8-56,79-79
28-81,28-88
3-65,49-64
15-51,15-15
44-78,43-64
6-82,5-83
19-56,19-56
24-52,24-51
14-88,13-14
26-97,89-97
13-86,13-87
52-80,51-52
27-55,12-48
56-82,80-85
2-29,3-29
18-87,3-87
6-35,2-6
28-36,37-97
75-87,75-87
1-99,2-2
48-48,48-88
59-92,80-95
82-87,6-83
81-97,13-81
13-75,14-75
97-98,21-97
14-93,13-13
21-32,20-31
30-71,72-72
51-75,41-75
24-84,23-85
11-11,11-21
62-81,62-81
1-3,3-98
75-78,78-79
17-96,18-96
9-98,5-99
18-49,48-48
66-66,40-66
18-72,17-73
6-87,87-88
3-44,4-45
31-54,54-79
55-59,54-58
6-6,7-15
21-98,20-99
1-2,3-30
72-77,20-77
[D] [N] [F]
[H] [F] [L] [J] [H]
[R] [H] [F] [V] [G] [H]
[Z] [Q] [Z] [W] [L] [J] [B]
[S] [W] [H] [B] [H] [D] [C] [M]
[P] [R] [S] [G] [J] [J] [W] [Z] [V]
[W] [B] [V] [F] [G] [T] [T] [T] [P]
[Q] [V] [C] [H] [P] [Q] [Z] [D] [W]
1 2 3 4 5 6 7 8 9
move 1 from 3 to 9
move 2 from 2 to 1
move 3 from 5 to 4
move 1 from 1 to 8
move 1 from 3 to 9
move 1 from 5 to 7
move 1 from 5 to 3
move 4 from 4 to 2
move 2 from 3 to 4
move 1 from 3 to 2
move 6 from 1 to 5
move 1 from 4 to 3
move 1 from 3 to 9
move 4 from 2 to 4
move 4 from 8 to 7
move 3 from 2 to 6
move 1 from 2 to 7
move 5 from 5 to 6
move 1 from 5 to 8
move 5 from 8 to 7
move 7 from 4 to 6
move 15 from 6 to 4
move 1 from 8 to 7
move 1 from 1 to 5
move 1 from 2 to 4
move 2 from 4 to 8
move 1 from 5 to 2
move 5 from 6 to 4
move 2 from 2 to 1
move 1 from 9 to 4
move 1 from 6 to 9
move 3 from 9 to 3
move 3 from 4 to 3
move 1 from 6 to 1
move 5 from 3 to 4
move 2 from 8 to 5
move 1 from 3 to 6
move 1 from 6 to 2
move 1 from 2 to 8
move 6 from 4 to 2
move 1 from 2 to 7
move 1 from 5 to 3
move 4 from 9 to 3
move 1 from 9 to 1
move 3 from 1 to 6
move 1 from 9 to 7
move 14 from 7 to 6
move 1 from 8 to 3
move 4 from 2 to 6
move 3 from 3 to 8
move 9 from 4 to 9
move 1 from 1 to 5
move 2 from 5 to 8
move 3 from 8 to 2
move 4 from 2 to 6
move 1 from 3 to 9
move 10 from 6 to 1
move 5 from 9 to 8
move 1 from 9 to 3
move 6 from 1 to 8
move 3 from 7 to 4
move 2 from 4 to 5
move 2 from 9 to 8
move 15 from 8 to 3
move 3 from 7 to 9
move 8 from 4 to 3
move 2 from 5 to 9
move 6 from 6 to 5
move 6 from 5 to 8
move 1 from 7 to 8
move 6 from 9 to 2
move 5 from 2 to 4
move 6 from 3 to 5
move 5 from 5 to 8
move 1 from 5 to 7
move 1 from 9 to 7
move 2 from 6 to 4
move 12 from 8 to 2
move 7 from 2 to 4
move 3 from 7 to 5
move 3 from 5 to 7
move 3 from 7 to 9
move 2 from 9 to 7
move 1 from 9 to 3
move 2 from 7 to 4
move 3 from 1 to 9
move 4 from 6 to 5
move 6 from 2 to 8
move 14 from 4 to 9
move 7 from 9 to 6
move 9 from 9 to 2
move 1 from 5 to 8
move 5 from 6 to 3
move 3 from 1 to 9
move 3 from 8 to 9
move 1 from 8 to 3
move 5 from 2 to 5
move 1 from 4 to 9
move 2 from 6 to 1
move 2 from 3 to 6
move 3 from 8 to 3
move 2 from 6 to 3
move 1 from 4 to 9
move 4 from 3 to 6
move 7 from 6 to 9
move 10 from 9 to 2
move 10 from 3 to 2
move 7 from 2 to 8
move 2 from 1 to 7
move 13 from 3 to 7
move 7 from 5 to 1
move 1 from 9 to 6
move 4 from 8 to 4
move 2 from 3 to 2
move 4 from 4 to 6
move 1 from 3 to 4
move 5 from 6 to 5
move 3 from 5 to 7
move 12 from 2 to 5
move 7 from 5 to 6
move 2 from 8 to 3
move 7 from 6 to 2
move 3 from 9 to 6
move 1 from 6 to 7
move 1 from 4 to 9
move 2 from 7 to 6
move 13 from 7 to 4
move 3 from 7 to 5
move 1 from 9 to 6
move 12 from 4 to 3
move 1 from 8 to 1
move 2 from 6 to 4
move 1 from 7 to 9
move 2 from 9 to 8
move 12 from 3 to 5
move 1 from 8 to 2
move 15 from 5 to 6
move 2 from 4 to 6
move 1 from 9 to 6
move 5 from 5 to 4
move 4 from 4 to 2
move 2 from 1 to 5
move 4 from 1 to 5
move 1 from 8 to 6
move 7 from 5 to 2
move 22 from 2 to 3
move 9 from 6 to 3
move 1 from 1 to 8
move 1 from 8 to 7
move 23 from 3 to 6
move 2 from 2 to 4
move 1 from 7 to 8
move 1 from 8 to 2
move 19 from 6 to 9
move 2 from 2 to 4
move 4 from 4 to 6
move 13 from 6 to 8
move 12 from 9 to 1
move 2 from 5 to 9
move 2 from 4 to 8
move 1 from 2 to 7
move 1 from 7 to 1
move 4 from 6 to 2
move 10 from 1 to 9
move 1 from 6 to 7
move 11 from 8 to 2
move 6 from 3 to 6
move 1 from 7 to 2
move 1 from 1 to 8
move 2 from 6 to 7
move 7 from 6 to 3
move 9 from 3 to 1
move 7 from 9 to 6
move 1 from 8 to 7
move 4 from 2 to 6
move 1 from 8 to 3
move 6 from 6 to 5
move 9 from 9 to 3
move 5 from 6 to 1
move 1 from 7 to 8
move 2 from 8 to 4
move 1 from 4 to 2
move 1 from 4 to 5
move 2 from 5 to 6
move 1 from 6 to 9
move 9 from 1 to 4
move 4 from 4 to 6
move 2 from 4 to 7
move 7 from 2 to 8
move 5 from 6 to 7
move 6 from 3 to 8
move 8 from 1 to 9
move 3 from 5 to 2
move 2 from 3 to 9
move 3 from 9 to 4
move 7 from 2 to 3
move 1 from 7 to 2
move 10 from 3 to 2
move 6 from 9 to 4
move 1 from 3 to 1
move 1 from 1 to 8
move 4 from 8 to 5
move 10 from 8 to 4
move 2 from 8 to 9
move 7 from 4 to 9
move 6 from 2 to 6
move 3 from 6 to 5
move 4 from 4 to 9
move 8 from 7 to 5
move 1 from 9 to 2
move 7 from 2 to 1
move 4 from 9 to 8
move 2 from 6 to 3
move 2 from 3 to 2
move 13 from 5 to 7
move 5 from 4 to 9
move 5 from 1 to 7
move 3 from 5 to 8
move 17 from 7 to 2
move 15 from 2 to 6
move 15 from 9 to 5
move 1 from 9 to 5
move 4 from 8 to 6
move 1 from 4 to 6
move 5 from 4 to 7
move 5 from 2 to 7
move 18 from 6 to 2
move 2 from 7 to 6
move 10 from 2 to 8
move 2 from 2 to 3
move 11 from 8 to 7
move 7 from 7 to 5
move 9 from 7 to 5
move 3 from 7 to 5
move 2 from 1 to 7
move 4 from 2 to 1
move 30 from 5 to 1
move 1 from 3 to 1
move 35 from 1 to 9
move 2 from 2 to 5
move 2 from 8 to 3
move 20 from 9 to 2
move 3 from 7 to 9
move 1 from 3 to 6
move 5 from 5 to 3
move 18 from 2 to 5
move 4 from 5 to 8
move 7 from 9 to 7
move 1 from 6 to 2
move 3 from 8 to 5
move 6 from 3 to 5
move 3 from 7 to 4
move 2 from 2 to 3
move 1 from 4 to 5
move 2 from 4 to 5
move 4 from 7 to 2
move 26 from 5 to 6
move 2 from 2 to 7
move 1 from 2 to 9
move 1 from 7 to 8
move 1 from 5 to 3
move 2 from 8 to 3
move 11 from 9 to 3
move 6 from 3 to 4
move 27 from 6 to 4
move 33 from 4 to 3
move 4 from 6 to 8
move 1 from 2 to 8
move 1 from 7 to 3
move 4 from 8 to 9
move 1 from 8 to 6
move 34 from 3 to 8
move 1 from 8 to 5
move 1 from 2 to 9
move 8 from 3 to 9
move 3 from 5 to 4
move 1 from 6 to 5
move 27 from 8 to 9
move 1 from 3 to 4
move 1 from 5 to 7
move 3 from 8 to 1
move 11 from 9 to 1
move 1 from 7 to 5
move 11 from 9 to 3
move 1 from 5 to 1
move 1 from 8 to 7
move 2 from 9 to 2
move 1 from 2 to 1
move 1 from 2 to 7
move 2 from 8 to 2
move 6 from 3 to 8
move 1 from 4 to 2
move 7 from 1 to 2
move 1 from 7 to 1
move 19 from 9 to 1
move 3 from 2 to 9
move 10 from 1 to 4
move 2 from 9 to 1
move 1 from 7 to 9
move 7 from 1 to 6
move 10 from 4 to 3
move 14 from 1 to 7
move 2 from 9 to 1
move 3 from 4 to 6
move 9 from 7 to 6
move 1 from 3 to 5
move 4 from 8 to 5
move 10 from 6 to 8
move 3 from 5 to 6
move 10 from 3 to 4
move 4 from 3 to 7
move 1 from 5 to 9
move 2 from 7 to 9
move 1 from 1 to 9
move 6 from 2 to 4
move 1 from 5 to 3
move 11 from 4 to 9
move 3 from 4 to 9
move 1 from 2 to 7
move 2 from 3 to 5
move 1 from 3 to 2
move 7 from 7 to 2
move 2 from 5 to 8
move 8 from 2 to 1
move 2 from 6 to 8
move 9 from 6 to 8
move 3 from 8 to 2
move 3 from 2 to 6
move 9 from 9 to 5
move 3 from 5 to 8
move 5 from 9 to 4
move 3 from 6 to 4
move 1 from 6 to 3
move 3 from 1 to 6
move 3 from 6 to 9
move 17 from 8 to 5
move 12 from 5 to 4
move 21 from 4 to 3
move 1 from 4 to 9
move 7 from 5 to 4
move 22 from 3 to 7
move 3 from 1 to 8
move 3 from 9 to 1
move 4 from 4 to 6
move 1 from 6 to 2
move 3 from 4 to 1
move 1 from 6 to 7
move 4 from 9 to 3
move 2 from 5 to 7
move 1 from 9 to 6
move 2 from 6 to 9
move 8 from 7 to 9
move 1 from 6 to 2
move 1 from 9 to 3
move 4 from 3 to 4
move 14 from 7 to 4
move 1 from 3 to 2
move 3 from 7 to 8
move 12 from 8 to 9
move 8 from 4 to 1
move 1 from 7 to 4
move 2 from 5 to 1
move 3 from 2 to 9
move 17 from 9 to 3
move 6 from 9 to 1
move 1 from 9 to 2
move 13 from 3 to 9
move 4 from 3 to 1
move 3 from 9 to 1
move 22 from 1 to 9
move 1 from 8 to 1
move 6 from 9 to 5
move 4 from 1 to 9
move 3 from 1 to 9
move 4 from 4 to 8
move 4 from 4 to 2
move 1 from 4 to 3
move 3 from 8 to 9
move 1 from 3 to 4
move 1 from 1 to 3
move 1 from 8 to 2
move 1 from 5 to 8
move 4 from 2 to 1
move 1 from 8 to 7
move 10 from 9 to 6
move 1 from 7 to 9
move 1 from 2 to 3
move 1 from 6 to 1
move 3 from 5 to 7
move 1 from 8 to 7
move 1 from 6 to 1
move 1 from 2 to 4
move 1 from 5 to 2
move 19 from 9 to 2
move 1 from 4 to 7
move 1 from 3 to 7
move 3 from 7 to 9
move 4 from 1 to 2
move 10 from 9 to 4
move 1 from 5 to 8
move 3 from 6 to 4
move 1 from 3 to 4
move 10 from 2 to 8
move 12 from 2 to 5
move 3 from 5 to 9
move 5 from 6 to 5
move 5 from 1 to 4
move 22 from 4 to 3
move 3 from 8 to 7
move 1 from 7 to 2
move 3 from 2 to 9
move 19 from 3 to 5
move 2 from 7 to 8
move 7 from 5 to 6
move 5 from 9 to 6
move 1 from 9 to 3
move 16 from 5 to 1
move 2 from 3 to 1
move 3 from 7 to 3
move 7 from 8 to 4
move 2 from 8 to 1
move 5 from 5 to 9
move 1 from 5 to 2
move 1 from 2 to 3
move 1 from 8 to 5
move 4 from 5 to 7
move 2 from 3 to 8
move 2 from 1 to 5
move 4 from 7 to 6
move 6 from 4 to 7
move 4 from 9 to 8
move 14 from 6 to 7
move 8 from 1 to 7
move 7 from 1 to 3
move 3 from 5 to 9
move 28 from 7 to 5
move 1 from 1 to 8
move 4 from 8 to 3
move 9 from 3 to 1
move 1 from 9 to 5
move 6 from 3 to 2
move 10 from 1 to 6
move 1 from 1 to 9
move 5 from 9 to 7
move 14 from 5 to 3
move 1 from 4 to 1
move 1 from 7 to 2
move 1 from 7 to 1
move 1 from 1 to 7
move 3 from 8 to 5
move 4 from 6 to 3
move 3 from 7 to 2
move 15 from 3 to 6
move 16 from 5 to 7
move 4 from 2 to 8
move 1 from 3 to 1
move 5 from 7 to 3
move 12 from 6 to 4
move 4 from 8 to 5
move 1 from 4 to 2
move 2 from 5 to 3
move 8 from 6 to 3
move 7 from 4 to 5
move 9 from 7 to 6
move 1 from 7 to 9
move 1 from 1 to 9
move 1 from 1 to 9
move 5 from 2 to 8
move 5 from 8 to 2
move 11 from 5 to 9
move 1 from 4 to 2
move 4 from 9 to 6
move 12 from 3 to 7
move 3 from 4 to 9
move 14 from 6 to 2
move 2 from 2 to 4
move 2 from 3 to 5
move 10 from 7 to 2
move 1 from 4 to 8
move 1 from 2 to 7
move 28 from 2 to 9
move 4 from 7 to 5
move 1 from 2 to 4
move 6 from 5 to 1
move 2 from 4 to 3
move 1 from 8 to 1
move 40 from 9 to 1
move 10 from 1 to 6
move 5 from 3 to 5
move 1 from 9 to 8
move 3 from 6 to 7
move 11 from 1 to 2
move 9 from 2 to 3
move 3 from 5 to 1
move 4 from 7 to 1
move 2 from 2 to 4
move 2 from 5 to 8
move 19 from 1 to 7
move 8 from 3 to 2
move 14 from 1 to 8
move 14 from 7 to 1
move 4 from 6 to 5
move 1 from 1 to 9
mnlnvlljqqccznnjtjljbllrtllwwpmmhjjbbzppnndmmsppdqqwvvstvssgmsggmlmttnvvfbbdsssnzzbssjrsjjpmpvmmcjjwsssndsslwsswtwnwrrslshhvzzsppffmpfmmfvfpfpsssqpqzpqqcjcjnjcnnzbzjzpzbpbnbwbcctvvhgvgsvvpwwvjjvqjjjdqqrmrmqmsqszqsqpsqslsddhbhcbhbchcvvjvjcjnccdbcdcrddldblbffhvffpvpzpvvmvfmmwhwqhqvhqhmmpdmmlbmbgmbbrqqpmqqcvcmvvcncllptltvtdtbbqzzcggjgsjjvjsvvgmgffqhqqgpptspsffvdvbbhqhzzllvvjbvvbpppggfpgptgtvvzdvdzdgzgccmmphpmhppldlnlpnnhghhrrgwrwssnllmpllbvbvqvtvhtvvmnvvpgvgfvggtztpthhcfhfqfhhnhtnhhljhjppqjjffgjggrwrjjhphzhtztggwswnwzzvbzzmmtrtqtjqttwlwmmmmnddmnddwvvcllgrgfgzznwnsswjjhwwspsbbvzzqvzvbvcvmmtltnlnfnfnwwsvwwpswppjhjdhhmbbblfbfwffwvvjgghwhzhjzzrttwhwjhjchjhggdrgdgmmsjsfstftvtmtctggcwgcgzccgzgsgrgmmjhhqzzrmrttgtgfgcffvsfvvslsvvpqvvnjnrrwdwcwcnnhllwpwdpwdpdqqtwtftdftddppncpnccllqqrffpssgvsvtvmvssrbrhbbzggtssdsvddqfdfjfhjhdjhhncnddfpdfdmmrddncnvcnvccgvvhzvzwztwzwtzwtwqttrlrvrddztzrzcccgmmqgqjgqjgjqqspqqpjppbggchcqcpqqgbgdbbspbbrbhrhzhqhrqhhhtbhhvshspsvsggjdjwjwvjvdvwddjggmrrbnrrztthlllhlclbclbbhpbhphjhccdwccdbbjrbjjmrjrhhnlnjllltwltlmmlqlnqntqnntsnsqqvtvwvgwvwnncgcdctddnttfjfqfttrhrjhjqqcnnsmnmgmqgmgbblcctntrntnccnvvmpmjjvfjfrrbpbttsbttvnttmnnjdnndnzntnrnwrwcctllvhvqhhddmzztppphghphzzglzlnnfccrfffvvhllpspwssstwstsvttcrtccfssbccdjdqdfqddrbrqbbtllmmsfmfcmmzwzpznpnttjgtgbbdtdvdwwpmphpprsrjrbrqbqwwljlslrlrhhpchpcprcrtcrcfcfssndsspddcjjjfmfqfggmssnhsnhnpncnfnmffdrdjdhjjrgjrjgjqgjqqlmlljffbcfcrrrzwwftwtrrpgpprqqmrmhmwhwmmcrrhqrqwqppwjwggpdpgpvgvzvttqlljhhbvbhblhhcsssvmsmppcvpvrvzvbvtbtssplpgptgtnthhvwhvwwfvvfwwmtwmwfmfgmgnmnllgsgmsgswwhqhhhzqhhfwwnttmfmrrfnnpbpssvbsshqhqvhqqbmbpmbmqqjtjqjvjtjjhtttpzphpqqwqfqttqqhfhbfhfwwcpcpssdvvzhzwwqddjzdjdldlggvnvlnlbljlqjjmcczbccznnlnslswlwplpttvrvllfwflftllhclldhlhddbvvpvzpvpmmrccvgvdvqqjcqqwvvnjjlbbjwjrjhhlzhlhttljlcjjsnsgngrnntzzbsbmbsbrbdrdppjrjlrrjljqlqhqqnqsgdvhpgdhmnslqtjclmcfzrmgmlfnjbzznfgfprvwprwdbcgfcclmspgnzpbshwjbqvhzhrhswjzbfvnmcjtfvqbwmjpvfvctpmwsspdbtvfhfdfzjdpqnvslgmdvrnflzwzcnzmvzsvznwhpwtjwnqdgrrttmmdwzbbnwtllpbffrgtpjjjwltqrcbqcttdwnfjpmhdsbbpqmstjqchgjvfrmrbgqrlstnbdnzzzbzbsmsnnsssswmqhcbswtjhmcgnwmcclhzjqjzqcpbzgdzjgqzpqbmvvhtcznfrhdndswfvfhtfpdpszpjqrlwfdscvcngftwqmfttjtjrlbgcwvcjwsstqmcblmjzsgtgrqnqqvhzhvsphjmbcpfcznlcqldcvhlsvggbjngmhspwwqhlwstslvwmmbwqdmrgdvvnlstmjllhzscrhzjtmnsjfbndnlmzqbzgdgbcqchnbvwsftjtznnbsnvsgzpdzdqznjsslrlfnccdhwsljhczggvmgqswjltmrqqmwtbzmtdzhpjcvmwsscsdzpfnwlcrrdgzqqdmgwdlzvvvjcqsgpcwvrdnrstpcmgfjnjffbfmgzjthhllzrlsjtnqfppltbrlnqnjvqlvtpqvsbfgmmlcdzhgmzzqjwtqtzmpwwddbqrqnfzzpsjglsjddsslwwlrttzfzplmwsswlnvrvwwcgddjwcmvsjjbfgcfjmthfbpmcwjptchhnsmzttjqnwzdljffghhqdcwzwgbvfsmwqdbtblphdgcmbhprtbccjbzqrpvjdbnsmlwfntvjgptnshzmddwbhgwsnfrjbpqqwlsfdpnmmnnwhdmhzvjcmddbdnjzfzvffbgdqgwbggprcrbzwhvtzzgbhhcscrlmfgztfswjbsnwsmdfwlntwjzvlwhvlrfzszllmflmrsrcfnncvszvgdmmnvgrqnjhljcnrrhpdhffwmrsqfnbcpfdmmgppwjbjrwdfmpcrbznrjnbmssszhnlbpgmlczhhcdtgjqcbqrvzcbpgrftfhzdqthhspwnqqswntlpcmmqtcszngpggqvfjnmnprhdfjsngwrncjcmqdmjhpdlfnshpdlnlfpcnprwjgdvwwbvhvsbrfjtqsqjnvcpfdsrnfwmrrbtcvcqzflhdlbpcthzthdjzsrvwgbhjvhbtrngthfrszlvrbtnscsqlblcwlngslspcrhqzzdlzcdbhqdhthlpmdrntbhnqtwtzwpndbgphpsllbvgqjtmszdvjpgttzcmbwgrgdwmsbfgvgbbcmsnhvmnsbcsthsdwdqtghpdclfbglbdjgnnnwhmzzvnhbmgfbmvqwvwqhdswgtzslspmbmznnwdmjbzbddhzchtdzdzgwtlmlpmwrqvghpfwhvfjrtvmjwgjjnwdwnpdcqjdmcctjfcrdgpvczvnhlrbfmqgnrhmdwsrmmpqhvwgqgbqccpznpjfldwpntnvzgdfzljmtqwvfnrdsjsqgbvzjsczwwjggqtrpvwgqggwwhqggtgqfjmzsmjvdhdwqggbgnftpqqqlsfpflwrdpjwnhfdpchcgntjshgtwnwrnpsvwmplvqcltbgrcpflpgzbqfclghfnwjchnbgjnplgldmphdplvjrnrtzcmlftprsnmrjmnffpqjlvqlztbwprjwprrmmgzhjgdnhbfdrwjtvsvnbqhtfhbqgdrvcwlwfdbbcthgvttpvrwrqmpmrmvgpjzwlpvbqcvgccpgfddjbwhrvgqmjqzwgghllrtrblcpbttmcrgjsftlqhjfvqnbhmhbhngwnfqtgdttstzvmstrqcpfjrdgtsdbqqccqvbhpwhnpmpqgntfqszndjrmfhlqjqjbqvjtlfmrnnzzrtqlzzhjfqmmsmzvzrcplmfjpcmpfmpzbsbrmbnbnjqwjcfwnnwwrwzvvrsvhvrwnhlmwqjdztqthcwnwrlbjdflfsbplbwfmzqqnpwvzjbcfdgztpwttlrvhlfzzsfltpqwcpnzlsqgvwnqfvgclrfvssfcfmfvvjsndrhqdbrqfggfhjbvdvvmgpglqzwgjdmqtscjpfhgsbshghtmftrrhznttpzrzcsmrrvzdjmwtmbcbpqbsdmqzqdzrncwzmptltvdphsltfrhbbrdzbnbsqdhfvrgvmbgfvwblsjvfphlpzfvsllwnqjmbhngzzslcdmdzfgrgscbzggrzmbmwlzbnpzcvsbsfgdpnwzljsf
$ cd /
$ ls
dir cgw
dir fbhz
dir lvrzvt
224312 vngq
dir vwlps
$ cd cgw
$ ls
dir jpmf
dir rfb
dir tjtccqtm
$ cd jpmf
$ ls
dir ncfcchsz
dir rfb
dir tjtccqtm
$ cd ncfcchsz
$ ls
205103 ntpprbt.pvt
$ cd ..
$ cd rfb
$ ls
331667 tjtccqtm.qzv
$ cd ..
$ cd tjtccqtm
$ ls
dir jvbb
175277 tpc
304201 vtgzj.hnb
69381 wnq.npz
dir zgpb
$ cd jvbb
$ ls
dir fbhz
$ cd fbhz
$ ls
dir wjj
$ cd wjj
$ ls
255580 mgft
$ cd ..
$ cd ..
$ cd ..
$ cd zgpb
$ ls
57622 bgpm.gqf
44482 jvbb
156048 tpc
$ cd ..
$ cd ..
$ cd ..
$ cd rfb
$ ls
25370 gjptbqsm.mvm
$ cd ..
$ cd tjtccqtm
$ ls
359767 pcpqw.wvn
9514 wplftrb
$ cd ..
$ cd ..
$ cd fbhz
$ ls
dir fbhz
328535 fbhz.fbd
51958 fbhz.fbp
37508 fcjgf.crj
dir llfdghs
dir ncfcchsz
222206 srvhswd.mcg
dir tbnq
62795 vtgzj.hnb
dir zhj
$ cd fbhz
$ ls
363951 psm.lsv
182275 sssdht.pqt
44558 zvntd.hvr
$ cd ..
$ cd llfdghs
$ ls
126845 flg
dir hsz
dir mlvl
199117 mzz.pbj
141875 srvhswd.mcg
dir tvtqs
309288 wrbrmh
$ cd hsz
$ ls
dir fbhz
72585 mwlqg.rfg
265089 ncfcchsz.cgj
dir qsvh
202721 vtgzj.hnb
$ cd fbhz
$ ls
163444 nsrgjtl.dts
$ cd ..
$ cd qsvh
$ ls
260300 srvhswd.mcg
dir tjtccqtm
$ cd tjtccqtm
$ ls
311932 dhcmbc.ljq
$ cd ..
$ cd ..
$ cd ..
$ cd mlvl
$ ls
55902 rfb.jnd
$ cd ..
$ cd tvtqs
$ ls
dir fbhz
dir hgr
dir njvsjmmj
dir tjtccqtm
356368 tpc
dir vgj
$ cd fbhz
$ ls
196969 ncfcchsz.tfn
176294 wzfchcvz.wwv
$ cd ..
$ cd hgr
$ ls
dir tjtccqtm
$ cd tjtccqtm
$ ls
360282 vtgzj.hnb
$ cd ..
$ cd ..
$ cd njvsjmmj
$ ls
dir gbrjnrh
$ cd gbrjnrh
$ ls
270925 psm.lsv
$ cd ..
$ cd ..
$ cd tjtccqtm
$ ls
dir nlqt
dir tjtccqtm
47866 vtgzj.hnb
144250 zdg.brf
$ cd nlqt
$ ls
49935 tpc
$ cd ..
$ cd tjtccqtm
$ ls
178987 sgpdvcf
$ cd ..
$ cd ..
$ cd vgj
$ ls
213820 mcbph.srq
$ cd ..
$ cd ..
$ cd ..
$ cd ncfcchsz
$ ls
267915 fbhz
dir tjtccqtm
205385 zghlv.mtv
$ cd tjtccqtm
$ ls
334824 ptbdgpn.wnz
$ cd ..
$ cd ..
$ cd tbnq
$ ls
138692 dzwgs
70126 gjps.vbz
dir jvbb
dir nzl
196653 rsshtl.qlg
110016 srvhswd.mcg
217737 vngq
$ cd jvbb
$ ls
dir wshhs
dir ztrb
$ cd wshhs
$ ls
dir bpcv
285906 ntptv.hld
182940 rfb.wfd
24187 wgfmq
$ cd bpcv
$ ls
108995 ncfcchsz.rmg
304028 srvhswd.mcg
$ cd ..
$ cd ..
$ cd ztrb
$ ls
88425 pfzbdqmw
$ cd ..
$ cd ..
$ cd nzl
$ ls
dir fbhz
dir jzvvr
dir mghww
131115 qcpdd.jfb
208300 rqhtgdf.rqf
dir tnfg
$ cd fbhz
$ ls
317958 fbhz.pws
$ cd ..
$ cd jzvvr
$ ls
292945 dnqfmf.cwg
8055 mwtrbv.sfm
119001 rfb
dir srgrvcm
214676 srvhswd.mcg
$ cd srgrvcm
$ ls
dir cfwmvbjq
dir dqwwtrr
102903 grhqhm.bhm
360122 qmgtr.qmn
dir tjtccqtm
$ cd cfwmvbjq
$ ls
91385 vtgzj.hnb
$ cd ..
$ cd dqwwtrr
$ ls
151683 htg.ncm
178927 vngq
236079 vtgzj.hnb
$ cd ..
$ cd tjtccqtm
$ ls
334582 psm.lsv
$ cd ..
$ cd ..
$ cd ..
$ cd mghww
$ ls
48114 msvbqh
$ cd ..
$ cd tnfg
$ ls
172920 jhn.ghz
$ cd ..
$ cd ..
$ cd ..
$ cd zhj
$ ls
dir dqzgfcd
dir jvbb
dir ncnhjjs
$ cd dqzgfcd
$ ls
dir ppmbn
dir rfb
dir srlvzvr
225107 srvhswd.mcg
353094 vngq
dir vtdvdgdv
297817 vtgzj.hnb
dir vwhnlp
dir wsmvrf
$ cd ppmbn
$ ls
6037 vngq
$ cd ..
$ cd rfb
$ ls
293304 nzhchfrv.nst
194726 rfb.gfs
287537 tpc
137637 vtgzj.hnb
dir wdm
$ cd wdm
$ ls
61473 psm.lsv
152521 srvhswd.mcg
$ cd ..
$ cd ..
$ cd srlvzvr
$ ls
dir dlp
274123 whc.cjc
$ cd dlp
$ ls
dir rfpgt
$ cd rfpgt
$ ls
281038 jvbb.mnq
312481 mmjcgss
186883 vdpq.qzn
194336 wvjrhdq.llv
$ cd ..
$ cd ..
$ cd ..
$ cd vtdvdgdv
$ ls
dir rfb
dir tjtccqtm
$ cd rfb
$ ls
196456 dprdjqnp.wqc
67720 psm.lsv
820 rfb.jrh
170351 tpc
$ cd ..
$ cd tjtccqtm
$ ls
269007 bsrvltnf
$ cd ..
$ cd ..
$ cd vwhnlp
$ ls
dir fbhz
30697 ncfcchsz.dlh
dir rfb
dir tjtccqtm
185165 vtgzj.hnb
$ cd fbhz
$ ls
dir dstmnnd
65237 dvhhwv.zqz
156937 gtbzgp
dir jvbb
dir ncfcchsz
dir wdpqfl
$ cd dstmnnd
$ ls
334642 grbvbw
dir jvbb
$ cd jvbb
$ ls
187235 bgrhrn.wmt
$ cd ..
$ cd ..
$ cd jvbb
$ ls
dir dcszm
280304 fbhz.bfq
161981 jrgqlf
dir mvcfwwlm
194182 psm.lsv
dir rfb
40787 zrscw
$ cd dcszm
$ ls
178161 gfc.nss
$ cd ..
$ cd mvcfwwlm
$ ls
284005 hvzzlc
$ cd ..
$ cd rfb
$ ls
295068 fbhz.ccj
dir jvbb
73713 mqs
dir ncfcchsz
99417 psps.pnc
dir rhmmtvv
$ cd jvbb
$ ls
62151 hlblqv.cbq
318565 jvbb.rgv
230913 ppq.chd
$ cd ..
$ cd ncfcchsz
$ ls
133380 srvhswd.mcg
$ cd ..
$ cd rhmmtvv
$ ls
270217 qms.zrf
$ cd ..
$ cd ..
$ cd ..
$ cd ncfcchsz
$ ls
dir bzpz
dir fmhdlm
dir wqctddqc
$ cd bzpz
$ ls
270136 tpc
271633 vtgzj.hnb
$ cd ..
$ cd fmhdlm
$ ls
273720 mgf.pdm
23453 rfb.lvs
49685 tld.vbh
$ cd ..
$ cd wqctddqc
$ ls
dir ncfcchsz
$ cd ncfcchsz
$ ls
111237 vqvs
$ cd ..
$ cd ..
$ cd ..
$ cd wdpqfl
$ ls
dir fmrclsn
258435 fzgtz.bhg
dir mwwmbpgr
dir nsf
dir tfpqqjw
118118 tjtccqtm
219688 tjtccqtm.tst
$ cd fmrclsn
$ ls
271116 gzbqm.tnj
216909 jvbb
167454 qnfdzw.slr
252140 tsrzcnjb
$ cd ..
$ cd mwwmbpgr
$ ls
dir jvbb
dir rqfqbw
$ cd jvbb
$ ls
44631 tjtccqtm
$ cd ..
$ cd rqfqbw
$ ls
dir cqpwhrtp
$ cd cqpwhrtp
$ ls
305787 vjndql.qqv
$ cd ..
$ cd ..
$ cd ..
$ cd nsf
$ ls
211811 ggztzqp
69628 vtgzj.hnb
$ cd ..
$ cd tfpqqjw
$ ls
295011 ncfcchsz.dnn
88554 psm.lsv
$ cd ..
$ cd ..
$ cd ..
$ cd rfb
$ ls
51633 ncfcchsz
318667 psm.lsv
49231 qnsldrn
240239 sdcmgc.gdt
dir tgcr
121575 vtgzj.hnb
$ cd tgcr
$ ls
198742 rfb.nsl
$ cd ..
$ cd ..
$ cd tjtccqtm
$ ls
dir vnwpw
$ cd vnwpw
$ ls
338543 htwmhv
18782 lvwjtn.dcz
212005 ncfcchsz
dir rfb
dir tjhvvl
95069 vtgzj.hnb
117084 wsfvhn
$ cd rfb
$ ls
89621 fbhz.vnm
$ cd ..
$ cd tjhvvl
$ ls
262643 clmfhnct.wrt
dir fbhz
101520 ncfcchsz
169089 vtf.bmc
72983 zgjw.wpn
74431 zlwvcwn.gzf
$ cd fbhz
$ ls
213519 zpvhg
$ cd ..
$ cd ..
$ cd ..
$ cd ..
$ cd ..
$ cd wsmvrf
$ ls
dir ccbw
dir nqjpdlc
253007 rfb
dir sjgjgwb
dir zprqg
$ cd ccbw
$ ls
dir crjsgdv
dir dthrqpvv
dir ncfcchsz
dir ppqhd
dir tjtccqtm
dir ztsmqn
$ cd crjsgdv
$ ls
dir jgstsj
169620 vngq
$ cd jgstsj
$ ls
251288 vtgzj.hnb
$ cd ..
$ cd ..
$ cd dthrqpvv
$ ls
234510 fldrtqh.cbq
$ cd ..
$ cd ncfcchsz
$ ls
177247 dbt.fsb
$ cd ..
$ cd ppqhd
$ ls
21458 psm.lsv
20155 tjtccqtm.rsn
$ cd ..
$ cd tjtccqtm
$ ls
71907 psm.lsv
$ cd ..
$ cd ztsmqn
$ ls
124096 gjzgbrj.sjn
$ cd ..
$ cd ..
$ cd nqjpdlc
$ ls
dir jvbb
dir ltwl
143570 lwcgls.qvp
$ cd jvbb
$ ls
266605 qvwfhw.qvh
$ cd ..
$ cd ltwl
$ ls
dir lrgjbbn
$ cd lrgjbbn
$ ls
68291 tjtccqtm.rlr
$ cd ..
$ cd ..
$ cd ..
$ cd sjgjgwb
$ ls
265194 ddv
dir ghqtfhcz
dir jwzmtqff
15930 mzgtdwsg
$ cd ghqtfhcz
$ ls
dir gtlfvjpg
$ cd gtlfvjpg
$ ls
dir vwz
$ cd vwz
$ ls
252002 tpc
$ cd ..
$ cd ..
$ cd ..
$ cd jwzmtqff
$ ls
238465 gsr.mrj
332865 gzfcfqn.lbd
$ cd ..
$ cd ..
$ cd zprqg
$ ls
148532 nzjwc
179858 plznjhb
70176 tpc
$ cd ..
$ cd ..
$ cd ..
$ cd jvbb
$ ls
dir bnllsz
dir cqdr
293380 hrszhbzc.rrq
253762 jvbb
dir jwn
251152 lchdqwvg
dir lrh
dir nfbhj
dir nnflrw
dir rfb
293144 srvhswd.mcg
104936 vtgzj.hnb
$ cd bnllsz
$ ls
216397 vngq
$ cd ..
$ cd cqdr
$ ls
272746 psm.lsv
81840 tpc
$ cd ..
$ cd jwn
$ ls
224049 fhl.mrh
342246 tpc
233666 zmbg
$ cd ..
$ cd lrh
$ ls
139676 mcdv
$ cd ..
$ cd nfbhj
$ ls
49779 rfb.tnm
$ cd ..
$ cd nnflrw
$ ls
56516 hgtjdb
79167 psm.lsv
$ cd ..
$ cd rfb
$ ls
65765 mcdv
$ cd ..
$ cd ..
$ cd ncnhjjs
$ ls
dir jvbb
276470 ncfcchsz
273860 vngq
$ cd jvbb
$ ls
9420 psmrjhmp.dfj
$ cd ..
$ cd ..
$ cd ..
$ cd ..
$ cd lvrzvt
$ ls
26201 ncfcchsz.zrn
267647 ncppww
dir qzddwnm
345874 tpc
115177 vtgzj.hnb
dir zzwqlz
$ cd qzddwnm
$ ls
214814 psm.lsv
$ cd ..
$ cd zzwqlz
$ ls
181990 pcz.ctb
258280 tjtccqtm
37664 vtgzj.hnb
$ cd ..
$ cd ..
$ cd vwlps
$ ls
dir fbhz
dir jvbb
347635 psm.lsv
101891 pzzt.prc
dir rfb
dir tjtccqtm
322963 tjtccqtm.swf
$ cd fbhz
$ ls
dir fbhz
$ cd fbhz
$ ls
dir mnnzbnl
115 zhgrzjt.hlq
$ cd mnnzbnl
$ ls
624 vngq
$ cd ..
$ cd ..
$ cd ..
$ cd jvbb
$ ls
149547 jtng.qfh
84714 wqqnqpc.crj
$ cd ..
$ cd rfb
$ ls
dir ddcjgrdb
26416 jvbb.nbg
dir lwjvv
dir mtzbmlnp
dir nsq
42884 pmzdjzmv
305628 sgc
109079 srvhswd.mcg
303802 tpc
$ cd ddcjgrdb
$ ls
dir jvbb
dir rfb
$ cd jvbb
$ ls
348073 jgwzvs
$ cd ..
$ cd rfb
$ ls
dir tjtccqtm
119113 tpc
$ cd tjtccqtm
$ ls
357579 rfb
124868 srvhswd.mcg
$ cd ..
$ cd ..
$ cd ..
$ cd lwjvv
$ ls
212416 fbglfwjn
dir hhjlvjds
158555 tpc
dir tvqng
287589 vngq
dir zcn
$ cd hhjlvjds
$ ls
57297 przml.gfn
173735 psm.lsv
245882 srvhswd.mcg
244645 tjtccqtm.gnh
289149 vngq
dir zmzj
$ cd zmzj
$ ls
28824 vngq
$ cd ..
$ cd ..
$ cd tvqng
$ ls
136988 fbhz.wnl
$ cd ..
$ cd zcn
$ ls
dir czczrddv
$ cd czczrddv
$ ls
239586 zjwswstd.mdj
$ cd ..
$ cd ..
$ cd ..
$ cd mtzbmlnp
$ ls
dir fbhz
dir jvbb
231169 mnrbmhvt
dir nhfsqbb
dir sjmm
dir ttsjtcc
$ cd fbhz
$ ls
dir lhtc
dir tjtccqtm
9513 vtgzj.hnb
$ cd lhtc
$ ls
100051 fbhz.cvg
$ cd ..
$ cd tjtccqtm
$ ls
193182 psm.lsv
$ cd ..
$ cd ..
$ cd jvbb
$ ls
224879 hvswfzqc.zmc
dir rfb
202937 rflsltm.bcc
dir tjtccqtm
$ cd rfb
$ ls
238032 fbhz
dir fgctrfr
306802 jvbb
225954 ncfcchsz.lcs
dir tjtccqtm
$ cd fgctrfr
$ ls
dir dqjrndw
103974 jmmjds
233363 mqr.zhm
334730 psm.lsv
dir rbbw
281420 tjtccqtm
dir zgrrdb
$ cd dqjrndw
$ ls
295822 tpc
$ cd ..
$ cd rbbw
$ ls
dir hrwj
$ cd hrwj
$ ls
dir zlhhnwrv
$ cd zlhhnwrv
$ ls
168370 tjtccqtm.dnn
$ cd ..
$ cd ..
$ cd ..
$ cd zgrrdb
$ ls
84053 vtgzj.hnb
$ cd ..
$ cd ..
$ cd tjtccqtm
$ ls
297111 jpnzcw.srg
$ cd ..
$ cd ..
$ cd tjtccqtm
$ ls
dir jfmc
dir qwrd
dir tjtccqtm
$ cd jfmc
$ ls
dir fbhz
dir fjqnrb
dir mpc
dir ncfcchsz
139767 vtgzj.hnb
$ cd fbhz
$ ls
dir rfb
dir tqmtbvb
$ cd rfb
$ ls
304548 jhrjt
$ cd ..
$ cd tqmtbvb
$ ls
62368 vngq
$ cd ..
$ cd ..
$ cd fjqnrb
$ ls
dir qdrmjmds
dir rfb
dir sdtdrmz
$ cd qdrmjmds
$ ls
dir qscgv
dir rfb
$ cd qscgv
$ ls
173814 ncfcchsz.nch
$ cd ..
$ cd rfb
$ ls
1592 vtgzj.hnb
$ cd ..
$ cd ..
$ cd rfb
$ ls
237598 dvbnmp.bcw
$ cd ..
$ cd sdtdrmz
$ ls
43253 sqdd
$ cd ..
$ cd ..
$ cd mpc
$ ls
dir bdsnl
$ cd bdsnl
$ ls
175855 psm.lsv
$ cd ..
$ cd ..
$ cd ncfcchsz
$ ls
dir ctqnwzgn
dir dddjjbrs
dir nbnn
dir tjtccqtm
$ cd ctqnwzgn
$ ls
211637 ncfcchsz
$ cd ..
$ cd dddjjbrs
$ ls
160464 bjbdh.mtr
139283 jjgblbjc.bvn
dir lqpsr
155029 szcpzjz.vtv
$ cd lqpsr
$ ls
314159 mdzgl.jqd
$ cd ..
$ cd ..
$ cd nbnn
$ ls
218457 tpc
$ cd ..
$ cd tjtccqtm
$ ls
dir rfb
109587 tfw
dir vqsjdd
$ cd rfb
$ ls
240479 rblwfbn
$ cd ..
$ cd vqsjdd
$ ls
253970 srvhswd.mcg
$ cd ..
$ cd ..
$ cd ..
$ cd ..
$ cd qwrd
$ ls
dir dgf
$ cd dgf
$ ls
340237 fbsfq.mls
dir tjtccqtm
dir ttqnbdjn
$ cd tjtccqtm
$ ls
dir msgtcp
$ cd msgtcp
$ ls
245596 fbhz
$ cd ..
$ cd ..
$ cd ttqnbdjn
$ ls
dir gvll
$ cd gvll
$ ls
dir bhhzh
$ cd bhhzh
$ ls
153339 wcqpmnb.slt
$ cd ..
$ cd ..
$ cd ..
$ cd ..
$ cd ..
$ cd tjtccqtm
$ ls
dir nzbzjpnl
$ cd nzbzjpnl
$ ls
72123 dzpjf.wmb
35136 ncfcchsz.qnz
234519 vhq.vrr
$ cd ..
$ cd ..
$ cd ..
$ cd ..
$ cd nhfsqbb
$ ls
109518 tqnct.jvf
51666 vngq
$ cd ..
$ cd sjmm
$ ls
263022 psm.lsv
dir qrpr
dir rfb
$ cd qrpr
$ ls
51657 tpc
$ cd ..
$ cd rfb
$ ls
185213 fllcngdc
$ cd ..
$ cd ..
$ cd ttsjtcc
$ ls
dir fbhz
dir tjbnz
$ cd fbhz
$ ls
112216 slzn.jls
$ cd ..
$ cd tjbnz
$ ls
73261 fbhz.wtd
$ cd ..
$ cd ..
$ cd ..
$ cd nsq
$ ls
93689 srvhswd.mcg
$ cd ..
$ cd ..
$ cd tjtccqtm
$ ls
232421 vngq
222112212213012301211134200002032424301142102231553514443201341400212230204230401120330131220022210
102112111222233101031402012403201222213455312422432144422311112420034421043440034112120031011001111
102122223023130331231203443334122242323322135341452245355543411453442102413422113120120032330210022
110001231100011332234413013213045445233212225343233154553335222544334133331211032334110100233102201
112120312023213203233203304022134355314211535351534544145442243315233432344112114414123111203320020
011002313231332320303110000042412533123545342432545135533235211212352231130344444401342320130320121
202200003023134141242312215422124511134354234431153434535452422114151522515014320031112011030221212
113102102331342324141114531234352232235552513522232636554232221113521412245544143301410240122300333
211033000313424140310442544541544534324266444536336436655636514121154553344222201421134014231222302
332011030332301044222122531531145414243656663555635264222563536433553554235415534133020002100133303
003200210344344312222345212454341556565524245554625246646642233535613232411111322202404003021131033
212202212302402424325552233413344566554423363522454624625334634462244412142314412223233004123103222
231133111414111002334425521322446233535222326464242534552643634365465232413221523242312003123132201
313223120340002432131523132325234665452663343265346463224425352244233432414425145251402321040022332
110231011423200225543222433636555256543455255323675332254645322645563353642135152132431112220340303
013033041334034232133125136663662262646656343763365537633776266646642565425431553252154042003222320
211124212402311241341432552546235523455675766654367677563446366265563452623544411131322320324104112
311012141030452455113536433334564634756367376436373765454656664536225465334623141141513523202242330
012301101445223125154545353334243457447565444477775644753467675333526255343363252124213413334120103
233321342044534154326365623624635757737336333365467477364576355456334523455422644531423214142224224
301402311421451141543665323222675333544545373365757767436436377564663672643455325544345555343040001
304423021253551124566534255363675576646675576466557455437737444737747537646443223341251522522230001
402303113531252112565332322437444444733673535744665564777363553757753536545453435361315251231022201
343113132243234232442552423677343665646745755454558875768678444345656475473455643666552254215432201
001131034112131524452326657653354765338567784768566647744666875357433357473443522344225243313244213
122023311433442633553443245556444633487484788585787474756876774566456663465434656446221314315234003
210402415552526566563532756754334548465444477566878777656684755778854636554443444552623255421510333
012001214432256464324225465635565588677746855755476557887465446855587337665333246334333115555314412
222132543313562322224657563736748886877557564745856544774584766446584737675675655426522652442214320
423214351334263626364676677744385788876488856679865769577554548558576845634376735645243412241314440
200352424121452235643454473333744776478657758589797689577768775555766757575457666524463265134132113
333315323435235263224363656558587456864875686898957675666699844768877857436437433545365222234341541
440534535556542636375566743576488664766587899757997995986595998576846675543444535754225244215134554
024231424242352653653366736648748655879977997589965595769786599767867475484663336562353663434352152
343213443126654446367347436548467666598677556987577797968667957998466875566535756646625564625421223
305442424346225553455343444677558786657855987787595987859767769565548776784763364346444544514354521
044542513463542544536576766646765867855955675958686896585987667655786864488874467573643532225314434
333323555525534363367466378746456755999597668978976886986995578868978575457547765434534344531342414
132144512424624543767433787687869887957589699699889779999966965978785846878667767435452426244313414
433315554346265355436574786758868587559859868886977896966698966958756685885573763453344346541151314
413513516336543645563337757744486999985966876969996998987779796796957876687654446366443562255155552
053533316545342553357448558745679998895697868968686986668766695755859555675684345446663325326241315
452255213256224764677634885884887668896987769886798989898796878696976888585775655464573535262323413
053251253265242337365677865455955659889688896796678767879969869899867794878748765545564452542212253
432555255435523454456458675766766597799799989798787877998969799858879977447488835336742526665511541
241254425566644576536545645478755987567969698987978987986867699878998779657567765374554632255352231
212251243454532574336574754465559565989998678999989897797679989965986789447484777735556645354241432
351554453346366564744644787789767968867866998889898777887886689868676957588465675646434432325641155
233511144565355357637675467645758888989986767888998798799777986999866999584486736777445526634415411
552551233443243573655777577789585687789669879789877787877797698876776579788877444673437534324525435
143232566345523665757754565545667867777877897788988787899896686998995587547878766774555656636534135
433541553363523355656668675576556586969876788988999899779867798965678555468486575354456535425515555
344212454446337547774468664578575566899789897799779877978888689668755668747448866467365322263243551
552455432524262376773384654645576767866796977978879898778678866967889686688766434443675265336615251
135535155623522753744547875577557687669676967888999988997966866665885787456748875435366562424534531
215231124322426336745754475847579989586768769897789779979667996797575879668644656454763644425121422
212353152225262656674688558455679556678778878999989978897988687695977855845875545365732546546221153
342215156352366476447768686848995677666966898699678876998899788557885988654556543633764333352552233
321515146536623334447468787664857689889778679897689767666666876959657687557868737443466335436245511
013113244334363455557346868585476788777899669889889787896976986999798856665844344437522465564541413
255143115565563633554666548747467856858787976799799896788898657557689855656457337356756442362123313
031335324654646343353765754757559786988898799879766777869766957768678785744646763447522433365222442
355114345566265574654466845444746655698758868679677967667965686587997467558857755676353563261512215
211333325622665265467373444887576597859865989789968666967785965758665846744764735736522262624221433
203525523354545545357477756777858468677997556567877689887986699968965485487544534377623343312412411
035353154465262346653634674485667468675788965676899758666759666989765546648457665765463456343215245
443532324422363343764533655655465475697667556876899886655786789655544677465744335565363522535323222
023221222543624565343363346774576887896898699755676558575985686565448575865345566522423236451422212
340212523155644543675734665446864675489858766958766655767576857748765787847634454442644324452422442
340432344521322563564356377754466658556459785655679599676758974745687864733753553535332232533455131
423215444314465433363574467737846756465458875587578798587755447654584446665777433425655623221415333
231241142215323244526775377664464744577555454676959887594554756855744536775664443534325342321451404
041413415453153535346557674463478885886466466478646768858584468688855347653754554436233543155525231
124222414122553624346345437665675777668785565746566685776576878464743736477344643425242212132152233
431120425412133263655256663746445748465757577585866545754667484666835737774574546346652434524454213
332043443511242235543633465473473675845445877745757888777748556755354763764335524334264445423240213
110122354411324336322632634335645635764775666784878647588876775364547734567432433353213554524544241
404321421523113114622636256564577663536565667777575445785888764456777343552445536242253322122412030
434030213332131144533432644476553675447575534754446688644447737555467767665365336555321252231243214
334212124143441352445224356446437377466337354564437476736756465563366773665422354564145454110014014
023203310131523434232255525444447564635374747633465767673754476337356662443425256514522323244112441
101120041133443314423543562233264736667766476557757433763676347364333644664555433355235131413120024
011012441204314121121546323525643344445465476574645343546646554766764455636662533425443342404340220
120142204403244355135312262656523644334637455757667465354467643636263363553436554344424440004042021
010024440443243142133431335563452363655567477576345335375375467332245326522442143115352523013434101
221004131030132523224521244363343325363355755366544745635363662456454464634235115135451040111124021
221132142310414233535533233653455643535365654435673454636364553636652426332435251441310343014132131
100303413021411121224513435162254455525254445364236246246445454523356224411311133322303211413333203
101123123243233425552423352333355654363465545332323556635563566444222565424212444124103140200212222
113232221042340022452124431511116363243453446254253642443442525545623322551453455154131341124213102
023002112204241124205223211223435354464434654566424625466423255554312543425225144413300342321320033
300302313044222022000442431444142544322536453645445345252346423512232111334143531243041000123213120
200011033010243420404315154435115543241326325336453346442553521441225132213223512024314024301112320
112010033200133002013304454543415322425441251224536444233214423545234414225110400142441232331102223
021112220332003000034123214453541414533524435224552515112152545215413542331013134004230400322020232
021102300011120141433401232445214332421554341255254252534554543451451351441303324220233023133322000
201221330223300010443300144044452432145223434443422235541121234255244513242121233314221213203000111
202100221111033202310310014120314313424245224554332212352354242541454431213130404221010021102320022
210120011112003123423244304300221413244525315153255555432535313221224211034403142213223310310310011
D 2
R 1
L 2
U 1
R 2
L 2
R 2
L 1
R 1
L 1
R 2
L 2
R 1
D 2
U 1
R 1
L 2
U 2
R 2
U 2
R 2
D 1
L 1
U 1
R 2
L 1
D 1
U 1
L 1
U 1
D 2
U 1
R 2
U 1
L 1
D 1
L 1
U 1
R 1
L 1
U 2
L 2
D 2
L 2
R 2
U 1
R 1
U 2
D 2
R 2
L 1
R 1
D 1
U 2
R 1
L 1
U 2
L 2
U 1
L 2
U 1
R 1
L 1
D 2
U 2
R 2
D 1
R 1
U 2
R 2
L 2
U 1
L 1
D 2
R 2
L 1
R 1
D 1
R 1
L 1
D 2
R 1
U 1
L 1
R 1
L 1
D 2
L 1
U 1
R 1
D 1
R 1
D 1
L 2
U 1
D 1
R 2
D 2
R 2
L 2
U 2
L 1
U 1
L 1
R 1
L 1
U 2
L 2
U 2
L 1
U 1
D 1
U 3
R 2
D 2
R 1
U 2
L 2
D 1
U 1
R 2
U 3
D 1
L 3
U 2
D 2
R 1
D 1
L 1
D 2
L 2
U 1
L 2
R 3
U 3
L 1
U 3
L 1
D 1
U 3
R 1
U 3
D 2
L 3
R 3
L 2
U 1
D 1
U 1
L 1
D 1
R 2
U 3
D 3
L 3
R 1
U 3
D 1
U 3
L 1
D 3
R 3
U 2
D 1
R 2
U 1
R 3
U 1
D 1
U 1
L 1
R 3
U 2
D 3
U 2
R 2
L 1
D 3
R 3
L 2
U 1
L 2
U 2
R 3
U 3
D 2
U 2
D 3
R 1
D 1
R 3
D 1
L 3
R 2
D 1
L 1
D 1
L 3
D 1
L 3
D 2
L 2
D 2
R 1
U 2
D 1
U 3
L 3
D 1
R 3
L 2
D 2
U 2
R 1
U 2
R 3
L 1
R 3
L 1
D 1
U 2
L 3
U 3
R 2
L 1
R 2
U 4
R 1
U 2
L 2
D 3
U 1
L 2
U 1
L 2
D 3
U 1
D 3
U 1
D 3
L 2
R 1
L 3
R 2
U 2
L 2
D 3
L 2
U 3
R 4
L 3
D 4
L 3
U 2
L 2
U 4
R 2
D 4
R 1
D 4
U 4
D 3
R 2
D 4
U 1
D 4
U 4
R 2
D 3
R 4
D 2
L 2
R 4
L 1
D 2
U 4
R 4
U 4
L 4
U 2
D 3
L 3
U 3
R 1
L 2
D 2
L 3
R 2
U 3
D 4
L 1
D 4
U 3
L 3
U 4
D 1
U 2
D 4
L 4
D 3
R 3
U 1
L 4
D 2
R 4
U 4
L 4
U 3
L 4
R 3
D 3
L 1
U 2
R 1
U 2
D 3
U 4
L 1
D 2
U 1
D 1
L 1
D 1
U 1
D 3
L 1
D 4
L 2
R 3
L 2
R 4
L 4
U 2
R 3
L 2
D 3
L 2
U 2
R 3
U 1
D 3
U 5
D 4
U 3
L 1
D 4
U 3
D 2
L 1
R 3
U 5
L 5
R 1
D 2
R 2
D 3
L 4
D 4
U 2
D 3
R 5
D 3
U 2
D 4
L 1
D 5
R 2
D 1
U 2
L 1
R 5
U 4
L 5
D 2
U 4
D 5
U 4
L 4
U 3
D 2
L 2
R 2
D 1
U 1
R 5
L 3
R 4
D 5
R 5
D 4
L 1
R 2
U 3
R 5
D 5
R 3
D 1
R 3
D 2
U 4
D 1
U 5
L 1
U 3
L 3
D 1
R 3
U 1
L 3
R 2
L 4
R 4
U 1
D 5
R 2
L 5
R 5
U 3
D 1
R 4
D 5
L 5
R 4
U 5
R 4
D 3
R 4
D 2
R 2
U 1
D 2
L 1
R 1
L 3
D 3
L 5
D 4
R 5
D 2
L 5
U 3
R 3
L 5
U 3
L 5
R 5
L 2
U 4
D 2
R 1
L 5
R 1
U 5
L 2
R 2
U 6
L 6
U 2
R 5
U 3
R 2
D 3
U 3
D 1
L 1
U 2
R 5
L 1
R 5
D 6
R 4
L 4
U 1
R 3
D 5
U 3
L 6
U 1
D 6
R 6
L 4
R 4
U 6
R 6
U 3
R 6
U 2
R 6
U 4
R 2
L 5
U 2
D 6
L 4
U 5
L 4
R 6
L 1
R 3
L 3
D 1
L 5
D 1
L 5
R 2
D 3
L 1
U 6
R 6
U 2
L 3
R 4
U 6
R 3
L 4
U 1
R 1
D 1
L 4
D 6
U 1
R 2
L 6
U 3
R 1
L 1
D 3
R 1
U 4
D 2
L 1
D 3
R 2
D 5
L 3
R 6
U 4
D 4
L 4
U 2
D 2
L 4
D 6
U 5
D 5
R 6
D 1
L 4
R 2
U 3
D 5
R 4
U 6
R 4
U 6
L 7
U 6
D 1
U 2
D 6
R 4
U 7
D 2
L 6
R 2
U 7
R 7
L 1
U 2
L 5
R 4
L 7
R 3
D 5
U 7
D 4
L 6
U 5
L 4
D 2
U 2
D 2
U 5
R 7
D 3
U 3
D 6
U 4
D 2
R 6
L 5
U 3
R 1
D 7
R 7
U 4
R 7
U 2
R 1
L 4
U 6
L 1
D 1
U 3
R 7
U 1
R 3
L 3
R 2
U 6
L 6
D 7
L 7
R 3
U 5
L 5
D 4
L 7
R 5
U 7
D 5
R 2
U 2
L 4
U 4
D 5
L 6
R 3
D 4
U 3
D 6
L 5
U 1
L 4
R 2
L 2
U 7
R 4
U 4
L 4
D 1
U 1
D 3
U 3
D 3
R 6
L 5
R 6
D 1
U 4
L 5
U 2
D 6
L 1
U 5
D 5
R 5
D 1
L 4
D 2
U 1
R 3
U 3
L 3
D 5
U 2
R 4
U 1
D 8
R 2
U 4
L 4
D 8
R 2
U 6
D 4
R 5
U 4
R 2
L 2
U 4
D 8
R 7
L 5
R 5
U 6
R 6
U 7
D 2
U 6
D 1
R 5
U 1
D 6
R 7
L 1
R 1
D 1
R 3
D 8
R 1
U 2
L 4
R 4
L 6
R 2
U 7
R 1
L 3
D 1
L 3
U 7
R 8
L 7
D 1
R 1
L 7
D 7
U 5
D 5
L 1
U 7
D 7
R 5
D 5
U 5
R 6
L 8
R 6
L 1
R 3
D 1
L 2
U 7
R 5
L 4
U 3
L 6
U 6
R 6
L 4
U 6
R 5
U 2
R 7
U 8
R 5
U 2
R 4
L 5
R 1
D 4
L 8
R 3
L 2
U 7
R 4
L 6
R 5
U 2
L 3
D 8
R 8
D 7
L 4
D 4
R 6
L 7
U 8
L 5
R 4
D 4
R 8
D 2
L 7
D 6
U 3
L 4
R 6
U 8
L 2
R 6
L 7
U 4
L 3
D 2
R 8
U 3
D 2
U 5
R 7
D 7
L 6
U 8
D 6
U 5
D 6
U 2
L 7
R 4
L 9
R 2
U 3
R 7
U 6
L 3
U 8
L 9
U 5
R 1
L 5
D 5
R 8
L 3
U 1
L 2
D 5
U 1
D 8
U 5
D 7
L 9
U 6
D 4
R 5
U 3
L 1
D 9
R 4
D 7
U 2
R 2
D 4
L 2
U 9
R 7
U 1
R 2
D 7
R 3
D 6
L 7
U 5
R 9
U 4
L 7
R 5
U 7
L 4
D 4
R 9
D 5
L 5
D 1
R 2
D 6
L 8
U 8
L 6
D 7
L 5
U 2
L 3
D 9
U 8
D 3
L 8
R 2
D 7
R 5
D 3
U 1
R 3
L 9
U 3
D 2
L 4
D 7
R 8
U 7
D 5
U 5
R 7
L 8
D 7
L 7
D 8
U 5
R 9
U 10
R 5
U 6
R 7
D 9
L 2
R 1
D 2
R 9
L 4
U 4
R 5
D 9
U 4
L 7
D 9
L 4
D 4
L 10
U 9
L 8
R 10
U 9
L 10
U 2
R 8
L 2
D 6
R 1
D 1
L 5
U 2
R 9
U 2
R 1
U 1
L 6
D 1
R 2
D 10
L 7
R 2
U 7
D 4
R 9
L 7
D 8
U 5
R 10
L 10
D 2
U 2
R 8
U 9
D 1
R 2
L 10
U 5
R 8
L 7
D 1
R 7
D 3
U 8
L 4
D 3
U 4
R 5
U 9
R 10
U 3
R 10
L 6
R 5
U 8
D 9
R 4
U 9
L 1
U 7
R 4
U 2
L 7
D 9
U 8
L 7
U 8
L 3
R 7
D 7
L 7
D 6
L 2
D 5
U 4
R 8
L 6
R 7
D 4
U 10
L 8
R 10
D 2
R 1
U 7
L 5
R 5
L 10
D 5
R 10
U 7
L 7
R 9
D 2
L 8
R 11
D 4
R 6
L 5
R 8
U 1
L 6
U 3
L 1
D 10
L 9
D 3
U 10
L 9
U 8
D 11
U 11
L 1
R 2
U 1
L 3
U 2
D 1
U 4
R 6
L 6
R 7
L 9
R 8
L 4
D 11
L 4
U 10
D 6
L 10
U 2
R 3
L 10
D 5
L 1
D 2
R 6
U 2
L 2
U 9
R 10
L 4
D 2
R 10
L 5
U 2
L 1
D 6
L 4
U 5
D 8
U 11
D 5
U 10
L 8
R 5
L 6
R 5
L 2
R 7
D 4
L 9
D 2
R 11
D 5
U 6
D 2
L 4
R 9
L 2
D 5
R 2
D 9
R 8
L 3
U 8
R 9
D 8
R 4
D 5
U 7
D 7
R 4
D 10
L 1
D 5
U 11
L 11
U 11
L 10
U 9
L 6
D 4
R 6
D 8
U 6
D 11
R 2
U 9
L 6
U 5
R 10
D 8
L 9
R 8
D 6
L 8
D 12
U 2
R 1
L 1
U 1
R 6
D 3
U 6
D 5
R 9
L 12
U 7
R 6
L 9
U 1
R 12
D 11
R 6
U 11
D 4
L 2
R 12
U 5
R 3
U 11
D 6
U 9
L 10
U 2
L 9
U 9
R 6
L 12
D 2
U 10
R 3
U 12
L 12
R 4
L 11
D 1
L 3
D 11
U 5
D 1
U 12
L 12
U 5
R 8
L 1
D 1
L 3
U 1
R 4
D 4
L 6
R 11
U 11
D 2
U 7
L 3
D 3
R 10
D 1
U 8
D 7
U 6
L 10
R 3
L 6
D 10
L 2
U 6
D 8
R 2
L 5
U 1
D 5
U 10
D 5
L 7
U 3
R 6
D 2
U 5
D 10
L 5
D 2
R 9
L 11
D 3
L 6
R 11
U 10
L 12
D 12
U 8
D 5
R 1
L 6
D 11
U 12
R 11
D 12
L 5
D 7
R 10
U 4
L 1
R 3
U 9
L 13
U 8
R 3
D 4
R 8
D 3
R 8
D 13
U 1
R 12
U 12
L 8
R 5
D 1
U 3
R 9
D 6
U 11
R 3
D 12
R 8
L 6
D 8
U 6
R 13
L 10
U 6
R 5
L 11
U 9
L 12
R 8
L 6
R 3
D 12
L 9
D 3
U 5
L 6
R 7
L 13
D 4
R 7
U 5
D 13
R 4
U 11
D 8
R 5
D 5
U 3
L 6
U 4
R 8
D 8
U 9
L 8
U 2
R 7
L 2
U 1
D 12
R 3
L 2
R 8
D 4
L 7
R 8
D 6
U 10
R 7
L 9
D 5
R 12
U 2
R 10
U 4
L 13
R 9
L 12
U 3
R 10
U 3
L 8
R 12
U 8
R 11
U 5
L 3
D 10
R 8
D 4
R 4
U 9
L 13
U 5
R 11
L 12
U 11
D 9
L 5
R 13
U 2
L 1
U 12
R 13
L 1
R 2
U 6
R 12
D 11
L 8
U 13
L 14
U 13
L 3
U 9
L 10
R 11
D 6
U 8
D 11
U 5
L 11
U 8
L 3
R 2
D 11
L 12
U 14
R 3
D 1
U 14
R 7
D 14
R 4
D 5
L 13
R 2
L 13
U 8
L 7
D 14
L 2
U 13
D 2
L 13
D 13
U 5
L 12
U 3
L 6
D 2
U 3
L 9
D 14
R 3
L 1
R 6
D 3
U 6
D 9
L 5
D 11
L 1
D 11
L 9
D 8
U 13
D 4
R 5
D 14
L 10
U 14
D 14
R 1
L 8
U 5
D 11
U 8
D 14
L 4
D 13
U 13
R 6
U 11
L 9
U 6
D 11
R 11
U 11
D 14
R 6
L 13
U 1
R 11
L 9
R 11
L 4
R 14
L 2
D 14
R 3
U 9
D 6
U 12
R 7
U 9
L 4
D 9
R 11
L 9
R 14
L 12
U 1
L 10
U 7
R 13
D 3
R 8
L 4
R 4
L 3
U 1
R 14
D 4
R 9
U 3
L 12
U 11
R 5
U 4
L 11
D 14
L 12
R 7
L 15
R 14
D 12
U 10
R 11
D 9
U 14
R 5
D 13
L 14
D 9
U 1
R 10
U 15
R 12
D 13
L 9
R 9
U 8
R 2
U 3
R 3
D 8
U 14
R 4
L 7
U 11
D 6
L 14
D 6
R 8
U 8
R 5
L 13
R 9
D 6
R 6
L 9
U 2
R 13
U 4
D 9
U 14
R 15
D 2
R 6
D 7
L 3
U 14
D 5
U 13
R 8
D 15
U 3
R 9
D 10
R 11
U 12
D 8
R 3
L 5
D 15
L 1
U 6
R 15
D 1
R 13
D 1
U 2
R 15
D 3
L 4
U 9
D 1
L 13
R 11
U 15
R 5
U 15
R 13
L 5
U 2
R 5
D 11
U 11
L 12
D 15
R 11
L 7
D 2
L 11
D 2
L 7
U 7
R 5
D 8
R 6
L 10
U 5
R 3
U 7
R 1
U 7
L 5
U 11
R 14
U 9
D 8
R 10
L 9
R 11
U 6
R 14
U 16
D 13
U 16
L 1
D 2
R 13
D 11
U 9
R 4
L 11
U 2
L 7
R 2
U 14
L 11
R 10
L 1
R 15
U 9
L 16
R 11
D 15
U 10
L 7
R 9
L 9
D 16
U 7
D 10
R 11
L 3
R 16
L 6
R 7
L 7
R 13
L 5
R 6
D 15
R 11
D 7
U 5
D 11
U 13
R 13
U 12
D 10
L 11
D 10
R 6
U 10
D 9
U 1
L 13
U 13
L 11
U 15
L 7
R 2
D 2
U 9
D 1
L 15
U 6
D 3
U 7
D 6
L 6
U 14
L 3
U 16
L 8
D 8
R 4
D 1
U 13
L 4
U 1
R 15
U 3
D 6
L 4
D 12
L 16
D 7
U 10
L 3
R 6
L 12
R 9
D 1
U 7
L 14
D 5
U 15
D 14
L 5
R 6
D 4
U 10
L 17
R 9
D 1
R 12
U 17
R 14
U 4
R 14
U 2
D 13
R 6
L 12
D 10
L 9
D 17
R 14
D 12
L 5
D 17
L 8
U 16
D 9
U 7
L 11
R 13
U 2
D 15
R 2
L 5
U 6
L 5
U 15
D 13
U 17
R 17
L 4
U 17
R 1
D 16
L 16
R 7
U 14
L 3
D 12
L 2
D 6
R 10
U 11
R 8
D 8
U 3
R 5
U 12
D 5
U 14
R 13
U 12
R 1
U 4
D 12
L 6
R 8
D 9
U 4
D 16
L 4
D 7
L 2
U 13
L 7
D 16
U 1
D 14
U 14
L 10
U 2
D 11
L 5
D 14
U 14
L 11
R 17
D 3
R 7
D 6
R 17
D 4
R 14
L 7
U 17
L 6
D 7
L 9
U 10
L 4
D 1
L 17
R 4
D 13
L 4
D 9
U 12
L 6
R 18
L 8
R 16
L 14
D 9
L 18
D 2
U 4
D 7
R 8
D 13
L 17
U 3
D 10
R 10
L 13
D 15
L 14
D 11
R 7
L 3
R 17
U 13
R 14
D 5
L 12
U 4
R 17
D 2
U 7
R 9
U 16
L 18
D 13
R 6
D 8
L 18
D 7
L 11
R 9
U 18
L 10
U 11
D 10
L 7
D 9
R 17
L 4
R 2
U 1
D 9
U 16
D 1
U 5
R 9
U 13
D 10
U 10
L 5
D 1
U 11
L 3
D 15
U 2
R 15
D 1
L 15
R 16
U 14
L 9
D 4
R 15
L 9
U 6
L 4
R 13
U 17
D 6
L 14
D 18
L 17
D 2
L 12
D 11
R 14
U 3
R 12
L 9
R 14
L 16
U 14
L 9
D 1
L 7
D 2
R 2
L 18
D 3
L 10
D 15
L 14
U 11
L 11
D 3
L 4
R 14
D 11
R 8
D 8
L 2
U 15
L 15
D 6
U 1
D 19
U 5
L 5
U 17
D 6
R 5
L 10
R 19
D 9
R 12
L 10
R 1
L 17
U 14
L 1
D 1
U 14
D 14
L 8
D 10
U 12
L 18
U 3
D 17
U 4
L 13
D 3
R 16
U 7
R 19
U 14
D 7
R 15
L 19
R 15
U 11
L 9
U 15
D 16
U 3
L 10
U 1
D 4
U 13
R 7
U 15
D 13
R 18
L 4
U 11
D 3
L 14
R 9
L 8
R 8
U 10
R 17
L 16
U 17
D 15
U 8
D 5
L 8
R 9
D 12
L 2
U 19
L 11
R 18
D 14
R 6
D 4
L 3
D 15
L 3
R 1
U 4
L 6
U 14
L 18
D 13
R 12
U 4
L 12
U 15
L 15
D 2
L 13
R 15
L 3
U 13
R 6
D 1
U 12
D 19
U 10
L 13
D 9
L 18
U 3
D 13
U 2
L 10
D 18
U 16
D 9
U 12
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment