package cz.wrent.advent

fun main() {
	println(partOne(test))

	val result = partOne(input)
	println("9a: $result")

	println(partTwo(test))
	println(partTwo(test2))
	val resultTwo = partTwo(input)
	println("9b: $resultTwo")
}

private fun partOne(input: String): Long {
	val commands = input.split("\n")
		.map { it.split(" ") }
		.map { it.get(0) to it.get(1).toInt() }

	val visited = mutableSetOf(0 to 0)
	var head = 0 to 0
	var tail = 0 to 0
	commands.forEach { command ->
		repeat(command.second) {
			head = head.moveHead(command.first)
			tail = tail.moveTail(head)
			visited.add(tail)
		}
	}
	return visited.size.toLong()
}

private fun partTwo(input: String): Long {
	val commands = input.split("\n")
		.map { it.split(" ") }
		.map { it.get(0) to it.get(1).toInt() }

	val visited = mutableSetOf(0 to 0)
	val knots = mutableListOf<Pair<Int, Int>>()
	repeat(10) {
		knots.add(0 to 0)
	}
	commands.forEach { command ->
		repeat(command.second) {
			knots[0] = knots.first().moveHead(command.first)
			for (i in 1..9) {
				knots[i] = knots[i].moveTail(knots[i - 1])
			}
			visited.add(knots[9])
		}
	}
	return visited.size.toLong()}

private fun Pair<Int, Int>.moveHead(direction: String): Pair<Int, Int> {
	return when (direction) {
		"U" -> this.first to this.second + 1
		"D" -> this.first to this.second - 1
		"R" -> this.first + 1 to this.second
		"L" -> this.first - 1 to this.second
		else -> error("")
	}
}

private fun Pair<Int, Int>.toNeighboursAll(): Set<Pair<Int, Int>> {
	val set = mutableSetOf<Pair<Int, Int>>()
	for (i in this.first - 1..this.first + 1) {
		for (j in this.second - 1 .. this.second + 1) {
			set.add(i to j)
		}
	}
	return set
}

private fun Pair<Int, Int>.moveTail(head: Pair<Int, Int>): Pair<Int, Int> {
	if (head.toNeighboursAll().contains(this)) {
		return this
	} else if (this.first == head.first) {
		return this.first to if (this.second > head.second) this.second - 1 else this.second + 1
	} else if (this.second == head.second) {
		return (if (this.first > head.first) this.first - 1 else this.first + 1) to this.second
	} else {
		return (if (this.first > head.first) this.first - 1 else this.first + 1) to if (this.second > head.second) this.second - 1 else this.second + 1
	}
}

private const val test = """R 4
U 4
L 3
D 1
R 4
D 1
L 5
R 2"""

private const val test2 = """R 5
U 8
L 8
D 3
R 17
D 10
L 25
U 20"""

private const val input =
	"""R 2
L 2
D 2
U 2
R 2
D 2
L 2
D 2
U 2
L 2
D 1
R 1
D 2
R 2
U 1
R 1
U 2
R 1
L 2
D 2
L 1
U 1
L 1
D 1
R 1
L 2
U 2
R 2
U 1
R 2
L 2
D 1
U 1
D 2
L 1
U 1
L 1
D 1
U 1
D 1
L 2
D 2
U 2
L 2
U 1
R 2
D 2
L 1
R 1
U 1
R 1
L 1
U 2
D 1
U 2
R 1
U 1
R 2
D 2
R 2
U 2
D 2
U 2
L 1
D 2
R 1
L 2
D 2
R 2
L 2
U 2
L 2
R 1
D 1
R 1
L 2
D 1
L 2
R 1
U 1
R 1
U 1
L 2
U 1
D 2
R 1
L 1
D 1
R 1
L 2
R 2
L 2
R 1
L 1
D 1
L 1
R 1
D 2
U 1
D 2
R 1
D 1
U 1
L 1
R 1
D 2
R 2
L 2
R 1
L 1
R 1
U 3
L 2
R 3
L 1
R 1
L 2
D 1
U 3
L 1
R 3
U 1
L 2
U 2
D 2
R 2
D 1
L 2
U 1
R 1
L 3
R 2
L 3
R 2
L 2
D 2
U 3
R 2
L 1
R 2
U 1
D 2
U 3
D 1
U 3
L 1
R 3
D 2
R 1
L 2
D 1
L 1
D 3
U 2
L 3
R 1
U 3
L 1
R 2
U 3
D 2
U 3
L 3
R 1
L 2
R 2
D 3
L 1
D 3
R 3
L 1
U 1
D 1
L 3
D 1
U 2
D 3
U 3
L 1
U 2
D 1
R 3
D 1
R 1
L 2
U 1
R 1
L 1
U 3
D 3
U 3
R 1
D 3
U 1
L 2
R 2
U 2
R 1
D 3
L 1
D 2
U 2
R 2
D 2
R 3
L 2
R 1
L 3
D 3
R 1
L 1
U 3
R 1
D 3
R 3
D 2
U 2
R 2
D 2
U 3
D 2
R 1
U 2
L 3
D 1
L 2
U 1
D 1
U 4
R 4
U 4
D 4
U 3
D 1
R 4
L 1
D 2
R 3
U 1
R 2
D 2
U 4
R 3
D 2
L 1
U 4
D 3
U 1
D 4
L 2
U 3
D 4
R 3
L 2
D 4
L 2
R 3
U 2
R 2
U 1
L 3
R 3
L 3
U 4
R 4
U 2
R 3
U 1
L 3
D 4
L 4
R 4
D 3
L 4
R 1
U 4
D 3
R 3
U 1
L 4
U 2
L 2
D 4
U 3
R 1
U 2
D 4
U 4
D 4
U 1
L 4
R 3
U 2
R 1
L 4
D 4
U 3
R 2
L 2
U 3
L 1
R 1
L 1
U 4
L 1
R 3
U 1
R 1
D 2
R 2
L 4
D 1
L 2
R 1
D 1
L 3
D 3
U 4
R 2
L 4
U 2
L 1
R 3
U 3
L 2
R 2
D 2
R 3
U 4
L 1
U 3
L 3
U 1
R 1
L 2
D 3
L 5
D 2
U 2
D 4
R 2
L 3
U 3
R 1
U 4
D 1
R 2
U 1
L 5
R 4
D 5
R 5
D 2
U 2
L 5
D 2
U 3
R 2
L 4
D 5
L 4
R 4
U 5
R 2
U 5
L 1
D 2
L 3
U 4
D 2
U 2
L 3
R 4
U 4
R 5
L 1
D 2
U 4
D 5
L 5
R 4
U 3
R 2
U 5
L 3
U 5
R 3
U 2
R 2
D 3
R 2
L 2
D 4
R 4
U 3
R 3
D 5
R 2
U 3
L 5
R 1
U 5
D 4
R 3
D 5
U 1
R 4
L 5
D 1
U 3
L 4
U 3
R 3
D 5
U 5
D 5
L 5
U 4
D 5
L 3
R 3
D 4
U 2
L 5
R 1
U 5
L 4
U 4
D 5
R 4
L 1
U 2
D 2
L 1
R 2
D 4
R 5
L 3
R 4
D 4
L 4
R 2
L 1
D 3
L 3
R 2
D 3
R 5
D 2
U 4
D 5
L 1
U 3
D 3
U 6
L 1
R 1
L 4
R 6
L 1
R 1
D 2
U 6
R 1
U 3
R 6
U 1
R 1
L 3
D 5
R 6
L 6
R 1
U 2
R 1
L 5
R 5
D 6
R 4
D 4
R 1
U 6
R 4
U 1
R 5
U 3
L 5
U 1
R 5
L 5
D 5
R 3
L 5
D 3
L 2
U 3
R 1
U 1
D 4
R 4
L 2
U 3
L 1
U 5
L 5
D 4
R 6
U 6
L 5
U 3
R 3
D 1
U 6
R 2
L 4
R 2
L 5
U 3
D 1
U 3
R 1
D 1
L 3
U 6
L 5
U 2
L 3
D 1
L 3
U 6
L 4
D 3
R 4
D 1
L 4
U 1
R 6
D 6
R 5
D 4
R 4
D 4
U 6
D 4
L 3
R 4
L 5
R 1
D 6
U 6
D 2
R 1
L 6
U 6
L 5
D 6
U 4
R 4
D 3
U 5
D 6
U 7
L 5
U 7
R 6
U 1
L 6
U 1
R 2
D 7
R 4
U 1
R 6
L 6
D 4
L 4
U 4
R 1
D 7
L 7
D 7
L 5
D 1
L 1
U 2
R 5
D 5
L 3
U 5
D 6
L 4
R 1
U 6
L 3
D 6
L 7
D 6
R 3
U 7
R 1
D 6
R 3
U 7
D 5
U 1
L 4
U 3
D 3
U 3
R 1
L 2
R 2
L 1
U 3
D 5
U 7
D 1
U 7
L 4
D 3
U 4
R 6
D 2
L 5
R 7
L 5
R 1
U 6
R 7
U 4
D 3
U 1
L 1
D 1
U 6
L 1
U 1
R 7
L 4
D 1
U 2
R 7
L 7
R 5
U 4
R 2
L 7
U 6
R 5
L 1
R 3
U 7
D 7
L 4
R 1
U 4
R 1
L 7
D 4
L 5
D 7
U 4
L 5
R 6
U 1
L 4
R 6
D 2
L 1
D 2
U 4
L 5
U 5
D 4
U 7
L 2
D 3
U 5
R 7
D 1
R 7
D 6
U 4
R 3
D 5
U 5
D 8
R 7
L 7
R 1
D 5
L 3
R 1
U 3
R 6
D 5
R 6
L 5
D 7
L 5
R 2
D 1
R 7
L 1
D 3
R 8
L 5
U 8
R 6
U 4
D 2
U 4
D 5
U 7
D 5
U 2
D 3
U 1
R 4
L 2
R 4
U 7
R 8
D 2
U 3
R 7
D 2
U 1
D 6
R 4
L 4
R 3
D 8
R 8
U 7
L 3
U 7
D 1
U 6
R 8
L 1
R 1
D 8
U 7
L 3
D 4
L 4
R 2
L 6
D 6
L 4
R 7
D 8
L 8
U 8
R 2
L 6
U 5
D 2
L 5
U 1
L 6
D 6
U 7
L 2
U 5
R 6
D 5
L 8
U 8
R 1
U 2
L 3
D 1
L 3
U 4
D 3
L 6
R 9
L 9
U 9
R 1
D 4
U 1
L 3
R 7
U 7
R 1
U 1
R 2
D 4
U 8
L 7
R 3
U 8
L 1
R 1
D 7
U 3
L 3
U 8
D 3
L 1
D 6
L 3
U 4
D 3
U 3
L 3
D 5
L 6
U 9
L 1
U 2
L 3
R 1
L 9
D 2
U 1
L 3
R 9
L 8
R 2
L 7
D 4
L 4
R 2
L 4
R 8
D 4
L 2
D 5
R 8
U 6
L 9
D 1
L 6
R 9
D 4
L 5
U 5
D 1
U 3
L 4
U 2
L 2
R 2
L 1
R 7
L 4
D 4
U 4
L 1
R 2
D 6
L 1
U 8
D 7
R 5
D 7
R 7
L 8
U 8
L 5
D 7
U 2
D 2
R 1
U 2
L 1
R 1
L 2
D 1
U 9
L 9
U 9
R 1
U 3
R 7
U 8
R 1
L 7
D 1
U 7
R 9
D 8
R 2
D 5
L 5
D 2
L 6
U 6
R 1
L 1
D 2
R 4
L 3
U 2
R 5
L 3
R 6
U 8
R 1
U 1
R 7
D 10
R 2
D 4
R 3
L 5
D 1
U 8
R 1
U 4
D 6
L 5
U 8
D 6
L 6
R 4
L 9
R 5
U 6
L 8
U 6
L 10
D 4
U 6
L 8
U 3
R 3
L 6
U 1
R 9
D 8
U 9
R 5
U 10
R 8
U 9
L 7
R 4
D 7
U 3
L 5
R 3
D 9
L 9
U 6
R 10
L 2
D 7
U 8
D 4
L 3
U 4
R 2
L 10
D 4
U 10
R 7
D 5
R 7
U 3
L 10
R 8
L 7
D 3
L 6
R 1
L 2
U 1
R 1
U 8
R 5
L 9
R 9
L 1
D 4
R 6
U 7
L 7
R 3
U 4
D 2
U 8
L 5
D 3
L 6
D 7
L 2
U 1
R 6
L 8
D 9
R 3
U 4
D 8
L 5
R 9
L 1
U 7
L 5
D 4
U 5
L 4
R 4
L 3
U 11
D 1
L 10
U 6
L 5
D 3
U 8
D 11
L 8
R 2
U 5
L 9
D 3
L 11
R 2
U 5
L 7
D 11
R 8
U 1
L 10
R 10
L 9
R 9
L 8
R 7
D 3
U 6
R 11
U 8
D 4
L 9
U 3
D 5
L 4
R 5
D 7
L 5
U 10
D 8
L 3
D 2
U 9
D 6
L 3
U 3
D 8
U 4
R 1
L 9
U 4
L 5
D 10
L 11
U 6
D 8
L 5
R 9
L 2
U 2
L 10
R 5
U 6
L 7
R 7
U 9
D 6
R 7
D 8
U 7
R 6
L 2
D 6
R 8
L 5
R 1
L 10
R 8
U 11
R 10
L 10
R 10
L 4
U 4
D 9
U 8
R 5
D 7
U 7
L 6
D 4
L 9
R 2
U 8
D 2
L 2
D 2
U 6
L 2
R 9
U 10
D 11
U 3
R 9
U 1
L 11
R 7
L 4
R 5
U 10
L 3
R 10
L 10
D 2
L 9
D 9
L 6
D 11
R 10
L 2
R 4
D 2
R 4
D 8
L 3
U 10
R 4
L 2
U 1
L 3
R 1
L 2
R 3
D 2
L 2
D 3
R 5
U 10
L 12
R 5
D 5
U 9
L 9
D 2
L 8
U 2
L 11
U 5
L 8
U 7
R 4
U 10
D 4
L 5
R 3
D 8
R 12
L 5
U 9
L 10
R 5
U 10
R 1
L 5
U 6
D 7
L 12
D 2
R 12
L 1
U 11
D 8
R 12
L 8
U 3
R 9
L 8
D 2
L 10
D 10
R 4
D 2
R 11
U 4
R 10
U 7
L 7
D 5
U 5
R 9
D 10
L 10
U 1
D 11
U 4
D 5
U 5
D 8
U 2
D 4
R 4
L 5
U 10
D 12
R 9
L 11
R 9
L 1
D 9
L 11
D 12
U 4
R 7
D 1
U 3
L 4
U 9
R 12
D 1
L 7
U 7
D 6
U 1
R 3
L 7
U 5
L 2
D 10
R 12
L 3
U 7
D 10
L 5
R 1
U 9
L 1
D 11
R 5
L 2
D 1
U 3
R 2
L 3
U 5
L 3
D 5
R 10
L 7
R 12
U 4
D 3
R 3
L 2
R 7
U 4
D 9
U 7
D 1
R 9
L 2
U 6
R 5
D 3
U 7
R 12
L 10
D 11
L 8
U 12
D 13
U 9
D 5
U 4
R 2
L 3
U 13
R 4
L 9
U 4
L 3
U 9
R 1
D 6
U 4
D 3
U 5
R 5
L 11
R 8
D 1
U 4
D 10
R 5
D 10
U 3
D 4
R 1
U 3
R 13
L 6
D 8
R 12
L 4
U 2
L 13
D 11
L 4
U 8
L 10
R 2
D 8
R 11
L 2
D 8
R 8
L 10
U 10
L 4
D 9
L 7
D 11
L 10
U 13
L 6
U 7
D 8
L 3
R 10
L 14
U 13
L 11
D 5
R 8
U 2
D 9
L 14
U 7
R 4
U 1
D 8
U 8
D 9
L 2
D 7
R 1
D 9
R 2
U 4
D 8
L 9
R 6
L 2
R 11
D 6
L 5
U 8
L 4
R 3
D 5
L 3
U 9
R 3
U 1
D 7
R 1
L 10
U 1
L 8
U 11
D 8
U 12
R 9
L 5
D 10
L 2
R 8
D 10
R 6
D 1
L 11
D 8
R 7
L 14
D 12
L 11
R 11
U 9
R 12
D 10
L 12
R 4
L 8
D 2
R 3
L 14
R 7
U 10
R 1
L 6
R 4
D 11
L 13
R 12
U 4
L 12
U 10
D 8
R 10
D 9
R 13
L 2
U 2
D 7
U 7
R 3
D 3
R 13
U 8
R 10
U 13
D 14
R 11
D 7
R 2
U 5
D 2
L 6
U 14
L 10
R 9
U 11
R 12
D 5
L 11
R 12
U 11
R 8
L 2
D 14
U 3
D 9
U 5
L 4
U 5
L 6
D 3
L 1
R 10
L 4
D 12
U 15
L 5
D 11
L 15
D 10
L 14
U 1
L 14
D 6
R 6
U 9
R 1
L 7
D 11
U 12
D 2
R 7
L 2
D 13
U 13
R 6
L 3
D 3
R 11
U 3
D 3
U 11
L 10
U 7
R 7
D 9
U 10
R 11
U 12
D 11
R 11
U 2
R 2
D 9
R 12
D 1
L 11
R 1
U 2
R 14
L 4
R 1
D 12
R 7
U 12
L 2
U 5
D 7
R 15
D 5
L 9
D 7
R 10
U 12
D 10
R 11
D 5
U 10
R 2
U 11
R 3
U 6
D 14
U 11
D 5
L 8
D 6
L 2
U 2
L 14
R 8
U 15
L 10
D 1
R 4
L 8
D 7
L 15
U 10
D 14
U 9
L 7
R 13
U 11
R 15
L 11
R 2
L 11
R 14
L 1
D 10
L 2
U 7
L 9
D 12
R 2
L 4
U 4
R 9
L 6
R 13
D 1
U 13
R 7
D 3
R 14
L 12
D 15
R 16
L 7
R 2
U 3
R 9
U 10
D 6
U 7
L 11
D 12
L 16
R 12
D 10
U 16
D 9
U 14
L 14
U 11
D 14
L 14
D 10
L 3
D 10
U 6
D 11
L 8
U 4
D 1
U 5
D 5
L 4
U 8
R 3
D 12
U 4
R 8
D 6
U 8
D 2
U 12
L 6
D 12
R 7
D 6
U 7
D 12
L 3
R 2
L 12
R 13
U 16
L 6
D 8
U 13
R 14
D 4
U 7
D 1
R 4
D 13
R 10
D 7
R 11
L 6
U 6
R 7
L 8
D 2
L 11
U 3
L 12
U 4
D 11
U 8
D 10
U 1
R 12
U 1
L 15
R 15
D 2
L 8
D 13
L 3
R 8
U 14
R 5
U 3
D 15
U 7
D 1
L 6
D 8
U 13
R 6
L 6
D 3
L 9
D 17
U 8
R 16
L 6
D 9
U 3
L 10
R 13
L 14
U 8
R 7
U 12
D 14
R 1
D 3
L 11
R 8
D 9
R 17
D 5
R 17
U 8
L 10
D 7
U 4
D 16
L 9
D 1
L 16
R 7
L 1
R 11
U 10
R 2
U 10
L 15
U 10
R 2
D 11
U 12
L 15
U 4
D 2
R 4
U 2
L 11
R 16
U 10
R 4
D 9
U 7
D 2
R 10
D 14
L 10
U 9
R 7
D 3
R 7
L 3
U 15
D 13
L 17
R 12
U 13
D 16
U 13
R 13
U 14
L 16
U 7
D 2
R 11
U 17
D 9
R 12
U 16
L 11
R 3
U 9
L 6
D 2
U 1
D 7
L 1
U 7
D 8
U 11
L 4
R 6
L 2
U 12
L 13
U 5
L 17
R 16
D 10
U 12
L 7
R 4
U 8
D 17
R 13
L 2
D 5
L 1
R 2
D 16
U 9
D 15
L 8
U 14
R 9
D 18
U 16
L 17
U 9
D 11
U 17
R 8
D 17
U 14
D 8
U 8
R 8
U 14
R 5
L 1
R 3
D 5
U 10
R 16
U 18
D 16
U 11
D 18
U 13
L 11
D 2
R 16
D 15
L 9
D 12
R 11
L 8
U 8
R 10
L 2
D 6
L 5
D 9
L 3
D 1
U 18
D 12
U 13
L 6
R 17
D 10
R 9
L 6
R 3
U 1
R 1
U 6
L 15
U 8
D 15
U 14
R 10
L 6
U 1
L 12
R 9
D 13
U 1
L 16
U 16
L 13
R 4
U 3
D 11
L 12
R 11
U 17
R 18
L 4
R 6
L 18
D 10
L 16
R 2
D 4
R 14
D 11
L 12
R 7
L 9
U 12
D 12
R 4
L 1
D 14
R 14
L 3
U 2
L 6
R 7
D 6
U 18
L 17
U 12
R 12
L 5
D 13
R 7
D 8
L 16
D 13
U 4
D 3
R 16
L 9
U 8
D 15
R 8
L 12
R 5
L 1
U 11
D 11
L 10
U 7
D 6
L 15
D 9
R 10
D 6
U 14
L 7
U 19
R 17
L 12
U 1
L 9
R 17
D 12
U 3
L 15
R 16
D 15
R 15
L 1
U 16
R 19
D 9
L 16
D 12
R 8
L 2
D 16
L 17
U 16
D 9
L 9
U 8
L 9
R 16
L 3
D 8
U 7
D 10
U 17
R 2
D 16
R 6
U 9
R 4
L 17
D 10
U 10
L 14
D 9
R 8
L 9
R 18
U 13
L 16
R 2
U 16
L 11
U 4
L 13
R 8
L 19
U 4
D 10
R 10
U 14
R 13
L 17
U 17
R 12
D 18
R 2
D 5
L 12
U 6
D 7
R 9
L 13
D 15
R 9
U 16
D 14
R 8
L 8
U 10
L 8
D 18
U 8
D 9
L 6
R 8
U 4
D 14
L 13
D 4
R 3
U 13
L 2"""

Compiled from "Day9.kt"
public final class cz.wrent.advent.Day9Kt {
  private static final java.lang.String test;

  private static final java.lang.String test2;

  private static final java.lang.String input;

  public static final void main();
    Code:
       0: ldc           #8                  // String R 4\nU 4\nL 3\nD 1\nR 4\nD 1\nL 5\nR 2
       2: invokestatic  #12                 // Method partOne:(Ljava/lang/String;)J
       5: lstore_0
       6: getstatic     #18                 // Field java/lang/System.out:Ljava/io/PrintStream;
       9: lload_0
      10: invokevirtual #24                 // Method java/io/PrintStream.println:(J)V
      13: ldc           #26                 // String R 2\nL 2\nD 2\nU 2\nR 2\nD 2\nL 2\nD 2\nU 2\nL 2\nD 1\nR 1\nD 2\nR 2\nU 1\nR 1\nU 2\nR 1\nL 2\nD 2\nL 1\nU 1\nL 1\nD 1\nR 1\nL 2\nU 2\nR 2\nU 1\nR 2\nL 2\nD 1\nU 1\nD 2\nL 1\nU 1\nL 1\nD 1\nU 1\nD 1\nL 2\nD 2\nU 2\nL 2\nU 1\nR 2\nD 2\nL 1\nR 1\nU 1\nR 1\nL 1\nU 2\nD 1\nU 2\nR 1\nU 1\nR 2\nD 2\nR 2\nU 2\nD 2\nU 2\nL 1\nD 2\nR 1\nL 2\nD 2\nR 2\nL 2\nU 2\nL 2\nR 1\nD 1\nR 1\nL 2\nD 1\nL 2\nR 1\nU 1\nR 1\nU 1\nL 2\nU 1\nD 2\nR 1\nL 1\nD 1\nR 1\nL 2\nR 2\nL 2\nR 1\nL 1\nD 1\nL 1\nR 1\nD 2\nU 1\nD 2\nR 1\nD 1\nU 1\nL 1\nR 1\nD 2\nR 2\nL 2\nR 1\nL 1\nR 1\nU 3\nL 2\nR 3\nL 1\nR 1\nL 2\nD 1\nU 3\nL 1\nR 3\nU 1\nL 2\nU 2\nD 2\nR 2\nD 1\nL 2\nU 1\nR 1\nL 3\nR 2\nL 3\nR 2\nL 2\nD 2\nU 3\nR 2\nL 1\nR 2\nU 1\nD 2\nU 3\nD 1\nU 3\nL 1\nR 3\nD 2\nR 1\nL 2\nD 1\nL 1\nD 3\nU 2\nL 3\nR 1\nU 3\nL 1\nR 2\nU 3\nD 2\nU 3\nL 3\nR 1\nL 2\nR 2\nD 3\nL 1\nD 3\nR 3\nL 1\nU 1\nD 1\nL 3\nD 1\nU 2\nD 3\nU 3\nL 1\nU 2\nD 1\nR 3\nD 1\nR 1\nL 2\nU 1\nR 1\nL 1\nU 3\nD 3\nU 3\nR 1\nD 3\nU 1\nL 2\nR 2\nU 2\nR 1\nD 3\nL 1\nD 2\nU 2\nR 2\nD 2\nR 3\nL 2\nR 1\nL 3\nD 3\nR 1\nL 1\nU 3\nR 1\nD 3\nR 3\nD 2\nU 2\nR 2\nD 2\nU 3\nD 2\nR 1\nU 2\nL 3\nD 1\nL 2\nU 1\nD 1\nU 4\nR 4\nU 4\nD 4\nU 3\nD 1\nR 4\nL 1\nD 2\nR 3\nU 1\nR 2\nD 2\nU 4\nR 3\nD 2\nL 1\nU 4\nD 3\nU 1\nD 4\nL 2\nU 3\nD 4\nR 3\nL 2\nD 4\nL 2\nR 3\nU 2\nR 2\nU 1\nL 3\nR 3\nL 3\nU 4\nR 4\nU 2\nR 3\nU 1\nL 3\nD 4\nL 4\nR 4\nD 3\nL 4\nR 1\nU 4\nD 3\nR 3\nU 1\nL 4\nU 2\nL 2\nD 4\nU 3\nR 1\nU 2\nD 4\nU 4\nD 4\nU 1\nL 4\nR 3\nU 2\nR 1\nL 4\nD 4\nU 3\nR 2\nL 2\nU 3\nL 1\nR 1\nL 1\nU 4\nL 1\nR 3\nU 1\nR 1\nD 2\nR 2\nL 4\nD 1\nL 2\nR 1\nD 1\nL 3\nD 3\nU 4\nR 2\nL 4\nU 2\nL 1\nR 3\nU 3\nL 2\nR 2\nD 2\nR 3\nU 4\nL 1\nU 3\nL 3\nU 1\nR 1\nL 2\nD 3\nL 5\nD 2\nU 2\nD 4\nR 2\nL 3\nU 3\nR 1\nU 4\nD 1\nR 2\nU 1\nL 5\nR 4\nD 5\nR 5\nD 2\nU 2\nL 5\nD 2\nU 3\nR 2\nL 4\nD 5\nL 4\nR 4\nU 5\nR 2\nU 5\nL 1\nD 2\nL 3\nU 4\nD 2\nU 2\nL 3\nR 4\nU 4\nR 5\nL 1\nD 2\nU 4\nD 5\nL 5\nR 4\nU 3\nR 2\nU 5\nL 3\nU 5\nR 3\nU 2\nR 2\nD 3\nR 2\nL 2\nD 4\nR 4\nU 3\nR 3\nD 5\nR 2\nU 3\nL 5\nR 1\nU 5\nD 4\nR 3\nD 5\nU 1\nR 4\nL 5\nD 1\nU 3\nL 4\nU 3\nR 3\nD 5\nU 5\nD 5\nL 5\nU 4\nD 5\nL 3\nR 3\nD 4\nU 2\nL 5\nR 1\nU 5\nL 4\nU 4\nD 5\nR 4\nL 1\nU 2\nD 2\nL 1\nR 2\nD 4\nR 5\nL 3\nR 4\nD 4\nL 4\nR 2\nL 1\nD 3\nL 3\nR 2\nD 3\nR 5\nD 2\nU 4\nD 5\nL 1\nU 3\nD 3\nU 6\nL 1\nR 1\nL 4\nR 6\nL 1\nR 1\nD 2\nU 6\nR 1\nU 3\nR 6\nU 1\nR 1\nL 3\nD 5\nR 6\nL 6\nR 1\nU 2\nR 1\nL 5\nR 5\nD 6\nR 4\nD 4\nR 1\nU 6\nR 4\nU 1\nR 5\nU 3\nL 5\nU 1\nR 5\nL 5\nD 5\nR 3\nL 5\nD 3\nL 2\nU 3\nR 1\nU 1\nD 4\nR 4\nL 2\nU 3\nL 1\nU 5\nL 5\nD 4\nR 6\nU 6\nL 5\nU 3\nR 3\nD 1\nU 6\nR 2\nL 4\nR 2\nL 5\nU 3\nD 1\nU 3\nR 1\nD 1\nL 3\nU 6\nL 5\nU 2\nL 3\nD 1\nL 3\nU 6\nL 4\nD 3\nR 4\nD 1\nL 4\nU 1\nR 6\nD 6\nR 5\nD 4\nR 4\nD 4\nU 6\nD 4\nL 3\nR 4\nL 5\nR 1\nD 6\nU 6\nD 2\nR 1\nL 6\nU 6\nL 5\nD 6\nU 4\nR 4\nD 3\nU 5\nD 6\nU 7\nL 5\nU 7\nR 6\nU 1\nL 6\nU 1\nR 2\nD 7\nR 4\nU 1\nR 6\nL 6\nD 4\nL 4\nU 4\nR 1\nD 7\nL 7\nD 7\nL 5\nD 1\nL 1\nU 2\nR 5\nD 5\nL 3\nU 5\nD 6\nL 4\nR 1\nU 6\nL 3\nD 6\nL 7\nD 6\nR 3\nU 7\nR 1\nD 6\nR 3\nU 7\nD 5\nU 1\nL 4\nU 3\nD 3\nU 3\nR 1\nL 2\nR 2\nL 1\nU 3\nD 5\nU 7\nD 1\nU 7\nL 4\nD 3\nU 4\nR 6\nD 2\nL 5\nR 7\nL 5\nR 1\nU 6\nR 7\nU 4\nD 3\nU 1\nL 1\nD 1\nU 6\nL 1\nU 1\nR 7\nL 4\nD 1\nU 2\nR 7\nL 7\nR 5\nU 4\nR 2\nL 7\nU 6\nR 5\nL 1\nR 3\nU 7\nD 7\nL 4\nR 1\nU 4\nR 1\nL 7\nD 4\nL 5\nD 7\nU 4\nL 5\nR 6\nU 1\nL 4\nR 6\nD 2\nL 1\nD 2\nU 4\nL 5\nU 5\nD 4\nU 7\nL 2\nD 3\nU 5\nR 7\nD 1\nR 7\nD 6\nU 4\nR 3\nD 5\nU 5\nD 8\nR 7\nL 7\nR 1\nD 5\nL 3\nR 1\nU 3\nR 6\nD 5\nR 6\nL 5\nD 7\nL 5\nR 2\nD 1\nR 7\nL 1\nD 3\nR 8\nL 5\nU 8\nR 6\nU 4\nD 2\nU 4\nD 5\nU 7\nD 5\nU 2\nD 3\nU 1\nR 4\nL 2\nR 4\nU 7\nR 8\nD 2\nU 3\nR 7\nD 2\nU 1\nD 6\nR 4\nL 4\nR 3\nD 8\nR 8\nU 7\nL 3\nU 7\nD 1\nU 6\nR 8\nL 1\nR 1\nD 8\nU 7\nL 3\nD 4\nL 4\nR 2\nL 6\nD 6\nL 4\nR 7\nD 8\nL 8\nU 8\nR 2\nL 6\nU 5\nD 2\nL 5\nU 1\nL 6\nD 6\nU 7\nL 2\nU 5\nR 6\nD 5\nL 8\nU 8\nR 1\nU 2\nL 3\nD 1\nL 3\nU 4\nD 3\nL 6\nR 9\nL 9\nU 9\nR 1\nD 4\nU 1\nL 3\nR 7\nU 7\nR 1\nU 1\nR 2\nD 4\nU 8\nL 7\nR 3\nU 8\nL 1\nR 1\nD 7\nU 3\nL 3\nU 8\nD 3\nL 1\nD 6\nL 3\nU 4\nD 3\nU 3\nL 3\nD 5\nL 6\nU 9\nL 1\nU 2\nL 3\nR 1\nL 9\nD 2\nU 1\nL 3\nR 9\nL 8\nR 2\nL 7\nD 4\nL 4\nR 2\nL 4\nR 8\nD 4\nL 2\nD 5\nR 8\nU 6\nL 9\nD 1\nL 6\nR 9\nD 4\nL 5\nU 5\nD 1\nU 3\nL 4\nU 2\nL 2\nR 2\nL 1\nR 7\nL 4\nD 4\nU 4\nL 1\nR 2\nD 6\nL 1\nU 8\nD 7\nR 5\nD 7\nR 7\nL 8\nU 8\nL 5\nD 7\nU 2\nD 2\nR 1\nU 2\nL 1\nR 1\nL 2\nD 1\nU 9\nL 9\nU 9\nR 1\nU 3\nR 7\nU 8\nR 1\nL 7\nD 1\nU 7\nR 9\nD 8\nR 2\nD 5\nL 5\nD 2\nL 6\nU 6\nR 1\nL 1\nD 2\nR 4\nL 3\nU 2\nR 5\nL 3\nR 6\nU 8\nR 1\nU 1\nR 7\nD 10\nR 2\nD 4\nR 3\nL 5\nD 1\nU 8\nR 1\nU 4\nD 6\nL 5\nU 8\nD 6\nL 6\nR 4\nL 9\nR 5\nU 6\nL 8\nU 6\nL 10\nD 4\nU 6\nL 8\nU 3\nR 3\nL 6\nU 1\nR 9\nD 8\nU 9\nR 5\nU 10\nR 8\nU 9\nL 7\nR 4\nD 7\nU 3\nL 5\nR 3\nD 9\nL 9\nU 6\nR 10\nL 2\nD 7\nU 8\nD 4\nL 3\nU 4\nR 2\nL 10\nD 4\nU 10\nR 7\nD 5\nR 7\nU 3\nL 10\nR 8\nL 7\nD 3\nL 6\nR 1\nL 2\nU 1\nR 1\nU 8\nR 5\nL 9\nR 9\nL 1\nD 4\nR 6\nU 7\nL 7\nR 3\nU 4\nD 2\nU 8\nL 5\nD 3\nL 6\nD 7\nL 2\nU 1\nR 6\nL 8\nD 9\nR 3\nU 4\nD 8\nL 5\nR 9\nL 1\nU 7\nL 5\nD 4\nU 5\nL 4\nR 4\nL 3\nU 11\nD 1\nL 10\nU 6\nL 5\nD 3\nU 8\nD 11\nL 8\nR 2\nU 5\nL 9\nD 3\nL 11\nR 2\nU 5\nL 7\nD 11\nR 8\nU 1\nL 10\nR 10\nL 9\nR 9\nL 8\nR 7\nD 3\nU 6\nR 11\nU 8\nD 4\nL 9\nU 3\nD 5\nL 4\nR 5\nD 7\nL 5\nU 10\nD 8\nL 3\nD 2\nU 9\nD 6\nL 3\nU 3\nD 8\nU 4\nR 1\nL 9\nU 4\nL 5\nD 10\nL 11\nU 6\nD 8\nL 5\nR 9\nL 2\nU 2\nL 10\nR 5\nU 6\nL 7\nR 7\nU 9\nD 6\nR 7\nD 8\nU 7\nR 6\nL 2\nD 6\nR 8\nL 5\nR 1\nL 10\nR 8\nU 11\nR 10\nL 10\nR 10\nL 4\nU 4\nD 9\nU 8\nR 5\nD 7\nU 7\nL 6\nD 4\nL 9\nR 2\nU 8\nD 2\nL 2\nD 2\nU 6\nL 2\nR 9\nU 10\nD 11\nU 3\nR 9\nU 1\nL 11\nR 7\nL 4\nR 5\nU 10\nL 3\nR 10\nL 10\nD 2\nL 9\nD 9\nL 6\nD 11\nR 10\nL 2\nR 4\nD 2\nR 4\nD 8\nL 3\nU 10\nR 4\nL 2\nU 1\nL 3\nR 1\nL 2\nR 3\nD 2\nL 2\nD 3\nR 5\nU 10\nL 12\nR 5\nD 5\nU 9\nL 9\nD 2\nL 8\nU 2\nL 11\nU 5\nL 8\nU 7\nR 4\nU 10\nD 4\nL 5\nR 3\nD 8\nR 12\nL 5\nU 9\nL 10\nR 5\nU 10\nR 1\nL 5\nU 6\nD 7\nL 12\nD 2\nR 12\nL 1\nU 11\nD 8\nR 12\nL 8\nU 3\nR 9\nL 8\nD 2\nL 10\nD 10\nR 4\nD 2\nR 11\nU 4\nR 10\nU 7\nL 7\nD 5\nU 5\nR 9\nD 10\nL 10\nU 1\nD 11\nU 4\nD 5\nU 5\nD 8\nU 2\nD 4\nR 4\nL 5\nU 10\nD 12\nR 9\nL 11\nR 9\nL 1\nD 9\nL 11\nD 12\nU 4\nR 7\nD 1\nU 3\nL 4\nU 9\nR 12\nD 1\nL 7\nU 7\nD 6\nU 1\nR 3\nL 7\nU 5\nL 2\nD 10\nR 12\nL 3\nU 7\nD 10\nL 5\nR 1\nU 9\nL 1\nD 11\nR 5\nL 2\nD 1\nU 3\nR 2\nL 3\nU 5\nL 3\nD 5\nR 10\nL 7\nR 12\nU 4\nD 3\nR 3\nL 2\nR 7\nU 4\nD 9\nU 7\nD 1\nR 9\nL 2\nU 6\nR 5\nD 3\nU 7\nR 12\nL 10\nD 11\nL 8\nU 12\nD 13\nU 9\nD 5\nU 4\nR 2\nL 3\nU 13\nR 4\nL 9\nU 4\nL 3\nU 9\nR 1\nD 6\nU 4\nD 3\nU 5\nR 5\nL 11\nR 8\nD 1\nU 4\nD 10\nR 5\nD 10\nU 3\nD 4\nR 1\nU 3\nR 13\nL 6\nD 8\nR 12\nL 4\nU 2\nL 13\nD 11\nL 4\nU 8\nL 10\nR 2\nD 8\nR 11\nL 2\nD 8\nR 8\nL 10\nU 10\nL 4\nD 9\nL 7\nD 11\nL 10\nU 13\nL 6\nU 7\nD 8\nL 3\nR 10\nL 14\nU 13\nL 11\nD 5\nR 8\nU 2\nD 9\nL 14\nU 7\nR 4\nU 1\nD 8\nU 8\nD 9\nL 2\nD 7\nR 1\nD 9\nR 2\nU 4\nD 8\nL 9\nR 6\nL 2\nR 11\nD 6\nL 5\nU 8\nL 4\nR 3\nD 5\nL 3\nU 9\nR 3\nU 1\nD 7\nR 1\nL 10\nU 1\nL 8\nU 11\nD 8\nU 12\nR 9\nL 5\nD 10\nL 2\nR 8\nD 10\nR 6\nD 1\nL 11\nD 8\nR 7\nL 14\nD 12\nL 11\nR 11\nU 9\nR 12\nD 10\nL 12\nR 4\nL 8\nD 2\nR 3\nL 14\nR 7\nU 10\nR 1\nL 6\nR 4\nD 11\nL 13\nR 12\nU 4\nL 12\nU 10\nD 8\nR 10\nD 9\nR 13\nL 2\nU 2\nD 7\nU 7\nR 3\nD 3\nR 13\nU 8\nR 10\nU 13\nD 14\nR 11\nD 7\nR 2\nU 5\nD 2\nL 6\nU 14\nL 10\nR 9\nU 11\nR 12\nD 5\nL 11\nR 12\nU 11\nR 8\nL 2\nD 14\nU 3\nD 9\nU 5\nL 4\nU 5\nL 6\nD 3\nL 1\nR 10\nL 4\nD 12\nU 15\nL 5\nD 11\nL 15\nD 10\nL 14\nU 1\nL 14\nD 6\nR 6\nU 9\nR 1\nL 7\nD 11\nU 12\nD 2\nR 7\nL 2\nD 13\nU 13\nR 6\nL 3\nD 3\nR 11\nU 3\nD 3\nU 11\nL 10\nU 7\nR 7\nD 9\nU 10\nR 11\nU 12\nD 11\nR 11\nU 2\nR 2\nD 9\nR 12\nD 1\nL 11\nR 1\nU 2\nR 14\nL 4\nR 1\nD 12\nR 7\nU 12\nL 2\nU 5\nD 7\nR 15\nD 5\nL 9\nD 7\nR 10\nU 12\nD 10\nR 11\nD 5\nU 10\nR 2\nU 11\nR 3\nU 6\nD 14\nU 11\nD 5\nL 8\nD 6\nL 2\nU 2\nL 14\nR 8\nU 15\nL 10\nD 1\nR 4\nL 8\nD 7\nL 15\nU 10\nD 14\nU 9\nL 7\nR 13\nU 11\nR 15\nL 11\nR 2\nL 11\nR 14\nL 1\nD 10\nL 2\nU 7\nL 9\nD 12\nR 2\nL 4\nU 4\nR 9\nL 6\nR 13\nD 1\nU 13\nR 7\nD 3\nR 14\nL 12\nD 15\nR 16\nL 7\nR 2\nU 3\nR 9\nU 10\nD 6\nU 7\nL 11\nD 12\nL 16\nR 12\nD 10\nU 16\nD 9\nU 14\nL 14\nU 11\nD 14\nL 14\nD 10\nL 3\nD 10\nU 6\nD 11\nL 8\nU 4\nD 1\nU 5\nD 5\nL 4\nU 8\nR 3\nD 12\nU 4\nR 8\nD 6\nU 8\nD 2\nU 12\nL 6\nD 12\nR 7\nD 6\nU 7\nD 12\nL 3\nR 2\nL 12\nR 13\nU 16\nL 6\nD 8\nU 13\nR 14\nD 4\nU 7\nD 1\nR 4\nD 13\nR 10\nD 7\nR 11\nL 6\nU 6\nR 7\nL 8\nD 2\nL 11\nU 3\nL 12\nU 4\nD 11\nU 8\nD 10\nU 1\nR 12\nU 1\nL 15\nR 15\nD 2\nL 8\nD 13\nL 3\nR 8\nU 14\nR 5\nU 3\nD 15\nU 7\nD 1\nL 6\nD 8\nU 13\nR 6\nL 6\nD 3\nL 9\nD 17\nU 8\nR 16\nL 6\nD 9\nU 3\nL 10\nR 13\nL 14\nU 8\nR 7\nU 12\nD 14\nR 1\nD 3\nL 11\nR 8\nD 9\nR 17\nD 5\nR 17\nU 8\nL 10\nD 7\nU 4\nD 16\nL 9\nD 1\nL 16\nR 7\nL 1\nR 11\nU 10\nR 2\nU 10\nL 15\nU 10\nR 2\nD 11\nU 12\nL 15\nU 4\nD 2\nR 4\nU 2\nL 11\nR 16\nU 10\nR 4\nD 9\nU 7\nD 2\nR 10\nD 14\nL 10\nU 9\nR 7\nD 3\nR 7\nL 3\nU 15\nD 13\nL 17\nR 12\nU 13\nD 16\nU 13\nR 13\nU 14\nL 16\nU 7\nD 2\nR 11\nU 17\nD 9\nR 12\nU 16\nL 11\nR 3\nU 9\nL 6\nD 2\nU 1\nD 7\nL 1\nU 7\nD 8\nU 11\nL 4\nR 6\nL 2\nU 12\nL 13\nU 5\nL 17\nR 16\nD 10\nU 12\nL 7\nR 4\nU 8\nD 17\nR 13\nL 2\nD 5\nL 1\nR 2\nD 16\nU 9\nD 15\nL 8\nU 14\nR 9\nD 18\nU 16\nL 17\nU 9\nD 11\nU 17\nR 8\nD 17\nU 14\nD 8\nU 8\nR 8\nU 14\nR 5\nL 1\nR 3\nD 5\nU 10\nR 16\nU 18\nD 16\nU 11\nD 18\nU 13\nL 11\nD 2\nR 16\nD 15\nL 9\nD 12\nR 11\nL 8\nU 8\nR 10\nL 2\nD 6\nL 5\nD 9\nL 3\nD 1\nU 18\nD 12\nU 13\nL 6\nR 17\nD 10\nR 9\nL 6\nR 3\nU 1\nR 1\nU 6\nL 15\nU 8\nD 15\nU 14\nR 10\nL 6\nU 1\nL 12\nR 9\nD 13\nU 1\nL 16\nU 16\nL 13\nR 4\nU 3\nD 11\nL 12\nR 11\nU 17\nR 18\nL 4\nR 6\nL 18\nD 10\nL 16\nR 2\nD 4\nR 14\nD 11\nL 12\nR 7\nL 9\nU 12\nD 12\nR 4\nL 1\nD 14\nR 14\nL 3\nU 2\nL 6\nR 7\nD 6\nU 18\nL 17\nU 12\nR 12\nL 5\nD 13\nR 7\nD 8\nL 16\nD 13\nU 4\nD 3\nR 16\nL 9\nU 8\nD 15\nR 8\nL 12\nR 5\nL 1\nU 11\nD 11\nL 10\nU 7\nD 6\nL 15\nD 9\nR 10\nD 6\nU 14\nL 7\nU 19\nR 17\nL 12\nU 1\nL 9\nR 17\nD 12\nU 3\nL 15\nR 16\nD 15\nR 15\nL 1\nU 16\nR 19\nD 9\nL 16\nD 12\nR 8\nL 2\nD 16\nL 17\nU 16\nD 9\nL 9\nU 8\nL 9\nR 16\nL 3\nD 8\nU 7\nD 10\nU 17\nR 2\nD 16\nR 6\nU 9\nR 4\nL 17\nD 10\nU 10\nL 14\nD 9\nR 8\nL 9\nR 18\nU 13\nL 16\nR 2\nU 16\nL 11\nU 4\nL 13\nR 8\nL 19\nU 4\nD 10\nR 10\nU 14\nR 13\nL 17\nU 17\nR 12\nD 18\nR 2\nD 5\nL 12\nU 6\nD 7\nR 9\nL 13\nD 15\nR 9\nU 16\nD 14\nR 8\nL 8\nU 10\nL 8\nD 18\nU 8\nD 9\nL 6\nR 8\nU 4\nD 14\nL 13\nD 4\nR 3\nU 13\nL 2
      15: invokestatic  #12                 // Method partOne:(Ljava/lang/String;)J
      18: lstore_0
      19: new           #28                 // class java/lang/StringBuilder
      22: dup
      23: invokespecial #31                 // Method java/lang/StringBuilder."<init>":()V
      26: ldc           #33                 // String 9a:
      28: invokevirtual #37                 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
      31: lload_0
      32: invokevirtual #40                 // Method java/lang/StringBuilder.append:(J)Ljava/lang/StringBuilder;
      35: invokevirtual #44                 // Method java/lang/StringBuilder.toString:()Ljava/lang/String;
      38: getstatic     #18                 // Field java/lang/System.out:Ljava/io/PrintStream;
      41: swap
      42: invokevirtual #47                 // Method java/io/PrintStream.println:(Ljava/lang/Object;)V
      45: ldc           #8                  // String R 4\nU 4\nL 3\nD 1\nR 4\nD 1\nL 5\nR 2
      47: invokestatic  #50                 // Method partTwo:(Ljava/lang/String;)J
      50: lstore_2
      51: getstatic     #18                 // Field java/lang/System.out:Ljava/io/PrintStream;
      54: lload_2
      55: invokevirtual #24                 // Method java/io/PrintStream.println:(J)V
      58: ldc           #52                 // String R 5\nU 8\nL 8\nD 3\nR 17\nD 10\nL 25\nU 20
      60: invokestatic  #50                 // Method partTwo:(Ljava/lang/String;)J
      63: lstore_2
      64: getstatic     #18                 // Field java/lang/System.out:Ljava/io/PrintStream;
      67: lload_2
      68: invokevirtual #24                 // Method java/io/PrintStream.println:(J)V
      71: ldc           #26                 // String R 2\nL 2\nD 2\nU 2\nR 2\nD 2\nL 2\nD 2\nU 2\nL 2\nD 1\nR 1\nD 2\nR 2\nU 1\nR 1\nU 2\nR 1\nL 2\nD 2\nL 1\nU 1\nL 1\nD 1\nR 1\nL 2\nU 2\nR 2\nU 1\nR 2\nL 2\nD 1\nU 1\nD 2\nL 1\nU 1\nL 1\nD 1\nU 1\nD 1\nL 2\nD 2\nU 2\nL 2\nU 1\nR 2\nD 2\nL 1\nR 1\nU 1\nR 1\nL 1\nU 2\nD 1\nU 2\nR 1\nU 1\nR 2\nD 2\nR 2\nU 2\nD 2\nU 2\nL 1\nD 2\nR 1\nL 2\nD 2\nR 2\nL 2\nU 2\nL 2\nR 1\nD 1\nR 1\nL 2\nD 1\nL 2\nR 1\nU 1\nR 1\nU 1\nL 2\nU 1\nD 2\nR 1\nL 1\nD 1\nR 1\nL 2\nR 2\nL 2\nR 1\nL 1\nD 1\nL 1\nR 1\nD 2\nU 1\nD 2\nR 1\nD 1\nU 1\nL 1\nR 1\nD 2\nR 2\nL 2\nR 1\nL 1\nR 1\nU 3\nL 2\nR 3\nL 1\nR 1\nL 2\nD 1\nU 3\nL 1\nR 3\nU 1\nL 2\nU 2\nD 2\nR 2\nD 1\nL 2\nU 1\nR 1\nL 3\nR 2\nL 3\nR 2\nL 2\nD 2\nU 3\nR 2\nL 1\nR 2\nU 1\nD 2\nU 3\nD 1\nU 3\nL 1\nR 3\nD 2\nR 1\nL 2\nD 1\nL 1\nD 3\nU 2\nL 3\nR 1\nU 3\nL 1\nR 2\nU 3\nD 2\nU 3\nL 3\nR 1\nL 2\nR 2\nD 3\nL 1\nD 3\nR 3\nL 1\nU 1\nD 1\nL 3\nD 1\nU 2\nD 3\nU 3\nL 1\nU 2\nD 1\nR 3\nD 1\nR 1\nL 2\nU 1\nR 1\nL 1\nU 3\nD 3\nU 3\nR 1\nD 3\nU 1\nL 2\nR 2\nU 2\nR 1\nD 3\nL 1\nD 2\nU 2\nR 2\nD 2\nR 3\nL 2\nR 1\nL 3\nD 3\nR 1\nL 1\nU 3\nR 1\nD 3\nR 3\nD 2\nU 2\nR 2\nD 2\nU 3\nD 2\nR 1\nU 2\nL 3\nD 1\nL 2\nU 1\nD 1\nU 4\nR 4\nU 4\nD 4\nU 3\nD 1\nR 4\nL 1\nD 2\nR 3\nU 1\nR 2\nD 2\nU 4\nR 3\nD 2\nL 1\nU 4\nD 3\nU 1\nD 4\nL 2\nU 3\nD 4\nR 3\nL 2\nD 4\nL 2\nR 3\nU 2\nR 2\nU 1\nL 3\nR 3\nL 3\nU 4\nR 4\nU 2\nR 3\nU 1\nL 3\nD 4\nL 4\nR 4\nD 3\nL 4\nR 1\nU 4\nD 3\nR 3\nU 1\nL 4\nU 2\nL 2\nD 4\nU 3\nR 1\nU 2\nD 4\nU 4\nD 4\nU 1\nL 4\nR 3\nU 2\nR 1\nL 4\nD 4\nU 3\nR 2\nL 2\nU 3\nL 1\nR 1\nL 1\nU 4\nL 1\nR 3\nU 1\nR 1\nD 2\nR 2\nL 4\nD 1\nL 2\nR 1\nD 1\nL 3\nD 3\nU 4\nR 2\nL 4\nU 2\nL 1\nR 3\nU 3\nL 2\nR 2\nD 2\nR 3\nU 4\nL 1\nU 3\nL 3\nU 1\nR 1\nL 2\nD 3\nL 5\nD 2\nU 2\nD 4\nR 2\nL 3\nU 3\nR 1\nU 4\nD 1\nR 2\nU 1\nL 5\nR 4\nD 5\nR 5\nD 2\nU 2\nL 5\nD 2\nU 3\nR 2\nL 4\nD 5\nL 4\nR 4\nU 5\nR 2\nU 5\nL 1\nD 2\nL 3\nU 4\nD 2\nU 2\nL 3\nR 4\nU 4\nR 5\nL 1\nD 2\nU 4\nD 5\nL 5\nR 4\nU 3\nR 2\nU 5\nL 3\nU 5\nR 3\nU 2\nR 2\nD 3\nR 2\nL 2\nD 4\nR 4\nU 3\nR 3\nD 5\nR 2\nU 3\nL 5\nR 1\nU 5\nD 4\nR 3\nD 5\nU 1\nR 4\nL 5\nD 1\nU 3\nL 4\nU 3\nR 3\nD 5\nU 5\nD 5\nL 5\nU 4\nD 5\nL 3\nR 3\nD 4\nU 2\nL 5\nR 1\nU 5\nL 4\nU 4\nD 5\nR 4\nL 1\nU 2\nD 2\nL 1\nR 2\nD 4\nR 5\nL 3\nR 4\nD 4\nL 4\nR 2\nL 1\nD 3\nL 3\nR 2\nD 3\nR 5\nD 2\nU 4\nD 5\nL 1\nU 3\nD 3\nU 6\nL 1\nR 1\nL 4\nR 6\nL 1\nR 1\nD 2\nU 6\nR 1\nU 3\nR 6\nU 1\nR 1\nL 3\nD 5\nR 6\nL 6\nR 1\nU 2\nR 1\nL 5\nR 5\nD 6\nR 4\nD 4\nR 1\nU 6\nR 4\nU 1\nR 5\nU 3\nL 5\nU 1\nR 5\nL 5\nD 5\nR 3\nL 5\nD 3\nL 2\nU 3\nR 1\nU 1\nD 4\nR 4\nL 2\nU 3\nL 1\nU 5\nL 5\nD 4\nR 6\nU 6\nL 5\nU 3\nR 3\nD 1\nU 6\nR 2\nL 4\nR 2\nL 5\nU 3\nD 1\nU 3\nR 1\nD 1\nL 3\nU 6\nL 5\nU 2\nL 3\nD 1\nL 3\nU 6\nL 4\nD 3\nR 4\nD 1\nL 4\nU 1\nR 6\nD 6\nR 5\nD 4\nR 4\nD 4\nU 6\nD 4\nL 3\nR 4\nL 5\nR 1\nD 6\nU 6\nD 2\nR 1\nL 6\nU 6\nL 5\nD 6\nU 4\nR 4\nD 3\nU 5\nD 6\nU 7\nL 5\nU 7\nR 6\nU 1\nL 6\nU 1\nR 2\nD 7\nR 4\nU 1\nR 6\nL 6\nD 4\nL 4\nU 4\nR 1\nD 7\nL 7\nD 7\nL 5\nD 1\nL 1\nU 2\nR 5\nD 5\nL 3\nU 5\nD 6\nL 4\nR 1\nU 6\nL 3\nD 6\nL 7\nD 6\nR 3\nU 7\nR 1\nD 6\nR 3\nU 7\nD 5\nU 1\nL 4\nU 3\nD 3\nU 3\nR 1\nL 2\nR 2\nL 1\nU 3\nD 5\nU 7\nD 1\nU 7\nL 4\nD 3\nU 4\nR 6\nD 2\nL 5\nR 7\nL 5\nR 1\nU 6\nR 7\nU 4\nD 3\nU 1\nL 1\nD 1\nU 6\nL 1\nU 1\nR 7\nL 4\nD 1\nU 2\nR 7\nL 7\nR 5\nU 4\nR 2\nL 7\nU 6\nR 5\nL 1\nR 3\nU 7\nD 7\nL 4\nR 1\nU 4\nR 1\nL 7\nD 4\nL 5\nD 7\nU 4\nL 5\nR 6\nU 1\nL 4\nR 6\nD 2\nL 1\nD 2\nU 4\nL 5\nU 5\nD 4\nU 7\nL 2\nD 3\nU 5\nR 7\nD 1\nR 7\nD 6\nU 4\nR 3\nD 5\nU 5\nD 8\nR 7\nL 7\nR 1\nD 5\nL 3\nR 1\nU 3\nR 6\nD 5\nR 6\nL 5\nD 7\nL 5\nR 2\nD 1\nR 7\nL 1\nD 3\nR 8\nL 5\nU 8\nR 6\nU 4\nD 2\nU 4\nD 5\nU 7\nD 5\nU 2\nD 3\nU 1\nR 4\nL 2\nR 4\nU 7\nR 8\nD 2\nU 3\nR 7\nD 2\nU 1\nD 6\nR 4\nL 4\nR 3\nD 8\nR 8\nU 7\nL 3\nU 7\nD 1\nU 6\nR 8\nL 1\nR 1\nD 8\nU 7\nL 3\nD 4\nL 4\nR 2\nL 6\nD 6\nL 4\nR 7\nD 8\nL 8\nU 8\nR 2\nL 6\nU 5\nD 2\nL 5\nU 1\nL 6\nD 6\nU 7\nL 2\nU 5\nR 6\nD 5\nL 8\nU 8\nR 1\nU 2\nL 3\nD 1\nL 3\nU 4\nD 3\nL 6\nR 9\nL 9\nU 9\nR 1\nD 4\nU 1\nL 3\nR 7\nU 7\nR 1\nU 1\nR 2\nD 4\nU 8\nL 7\nR 3\nU 8\nL 1\nR 1\nD 7\nU 3\nL 3\nU 8\nD 3\nL 1\nD 6\nL 3\nU 4\nD 3\nU 3\nL 3\nD 5\nL 6\nU 9\nL 1\nU 2\nL 3\nR 1\nL 9\nD 2\nU 1\nL 3\nR 9\nL 8\nR 2\nL 7\nD 4\nL 4\nR 2\nL 4\nR 8\nD 4\nL 2\nD 5\nR 8\nU 6\nL 9\nD 1\nL 6\nR 9\nD 4\nL 5\nU 5\nD 1\nU 3\nL 4\nU 2\nL 2\nR 2\nL 1\nR 7\nL 4\nD 4\nU 4\nL 1\nR 2\nD 6\nL 1\nU 8\nD 7\nR 5\nD 7\nR 7\nL 8\nU 8\nL 5\nD 7\nU 2\nD 2\nR 1\nU 2\nL 1\nR 1\nL 2\nD 1\nU 9\nL 9\nU 9\nR 1\nU 3\nR 7\nU 8\nR 1\nL 7\nD 1\nU 7\nR 9\nD 8\nR 2\nD 5\nL 5\nD 2\nL 6\nU 6\nR 1\nL 1\nD 2\nR 4\nL 3\nU 2\nR 5\nL 3\nR 6\nU 8\nR 1\nU 1\nR 7\nD 10\nR 2\nD 4\nR 3\nL 5\nD 1\nU 8\nR 1\nU 4\nD 6\nL 5\nU 8\nD 6\nL 6\nR 4\nL 9\nR 5\nU 6\nL 8\nU 6\nL 10\nD 4\nU 6\nL 8\nU 3\nR 3\nL 6\nU 1\nR 9\nD 8\nU 9\nR 5\nU 10\nR 8\nU 9\nL 7\nR 4\nD 7\nU 3\nL 5\nR 3\nD 9\nL 9\nU 6\nR 10\nL 2\nD 7\nU 8\nD 4\nL 3\nU 4\nR 2\nL 10\nD 4\nU 10\nR 7\nD 5\nR 7\nU 3\nL 10\nR 8\nL 7\nD 3\nL 6\nR 1\nL 2\nU 1\nR 1\nU 8\nR 5\nL 9\nR 9\nL 1\nD 4\nR 6\nU 7\nL 7\nR 3\nU 4\nD 2\nU 8\nL 5\nD 3\nL 6\nD 7\nL 2\nU 1\nR 6\nL 8\nD 9\nR 3\nU 4\nD 8\nL 5\nR 9\nL 1\nU 7\nL 5\nD 4\nU 5\nL 4\nR 4\nL 3\nU 11\nD 1\nL 10\nU 6\nL 5\nD 3\nU 8\nD 11\nL 8\nR 2\nU 5\nL 9\nD 3\nL 11\nR 2\nU 5\nL 7\nD 11\nR 8\nU 1\nL 10\nR 10\nL 9\nR 9\nL 8\nR 7\nD 3\nU 6\nR 11\nU 8\nD 4\nL 9\nU 3\nD 5\nL 4\nR 5\nD 7\nL 5\nU 10\nD 8\nL 3\nD 2\nU 9\nD 6\nL 3\nU 3\nD 8\nU 4\nR 1\nL 9\nU 4\nL 5\nD 10\nL 11\nU 6\nD 8\nL 5\nR 9\nL 2\nU 2\nL 10\nR 5\nU 6\nL 7\nR 7\nU 9\nD 6\nR 7\nD 8\nU 7\nR 6\nL 2\nD 6\nR 8\nL 5\nR 1\nL 10\nR 8\nU 11\nR 10\nL 10\nR 10\nL 4\nU 4\nD 9\nU 8\nR 5\nD 7\nU 7\nL 6\nD 4\nL 9\nR 2\nU 8\nD 2\nL 2\nD 2\nU 6\nL 2\nR 9\nU 10\nD 11\nU 3\nR 9\nU 1\nL 11\nR 7\nL 4\nR 5\nU 10\nL 3\nR 10\nL 10\nD 2\nL 9\nD 9\nL 6\nD 11\nR 10\nL 2\nR 4\nD 2\nR 4\nD 8\nL 3\nU 10\nR 4\nL 2\nU 1\nL 3\nR 1\nL 2\nR 3\nD 2\nL 2\nD 3\nR 5\nU 10\nL 12\nR 5\nD 5\nU 9\nL 9\nD 2\nL 8\nU 2\nL 11\nU 5\nL 8\nU 7\nR 4\nU 10\nD 4\nL 5\nR 3\nD 8\nR 12\nL 5\nU 9\nL 10\nR 5\nU 10\nR 1\nL 5\nU 6\nD 7\nL 12\nD 2\nR 12\nL 1\nU 11\nD 8\nR 12\nL 8\nU 3\nR 9\nL 8\nD 2\nL 10\nD 10\nR 4\nD 2\nR 11\nU 4\nR 10\nU 7\nL 7\nD 5\nU 5\nR 9\nD 10\nL 10\nU 1\nD 11\nU 4\nD 5\nU 5\nD 8\nU 2\nD 4\nR 4\nL 5\nU 10\nD 12\nR 9\nL 11\nR 9\nL 1\nD 9\nL 11\nD 12\nU 4\nR 7\nD 1\nU 3\nL 4\nU 9\nR 12\nD 1\nL 7\nU 7\nD 6\nU 1\nR 3\nL 7\nU 5\nL 2\nD 10\nR 12\nL 3\nU 7\nD 10\nL 5\nR 1\nU 9\nL 1\nD 11\nR 5\nL 2\nD 1\nU 3\nR 2\nL 3\nU 5\nL 3\nD 5\nR 10\nL 7\nR 12\nU 4\nD 3\nR 3\nL 2\nR 7\nU 4\nD 9\nU 7\nD 1\nR 9\nL 2\nU 6\nR 5\nD 3\nU 7\nR 12\nL 10\nD 11\nL 8\nU 12\nD 13\nU 9\nD 5\nU 4\nR 2\nL 3\nU 13\nR 4\nL 9\nU 4\nL 3\nU 9\nR 1\nD 6\nU 4\nD 3\nU 5\nR 5\nL 11\nR 8\nD 1\nU 4\nD 10\nR 5\nD 10\nU 3\nD 4\nR 1\nU 3\nR 13\nL 6\nD 8\nR 12\nL 4\nU 2\nL 13\nD 11\nL 4\nU 8\nL 10\nR 2\nD 8\nR 11\nL 2\nD 8\nR 8\nL 10\nU 10\nL 4\nD 9\nL 7\nD 11\nL 10\nU 13\nL 6\nU 7\nD 8\nL 3\nR 10\nL 14\nU 13\nL 11\nD 5\nR 8\nU 2\nD 9\nL 14\nU 7\nR 4\nU 1\nD 8\nU 8\nD 9\nL 2\nD 7\nR 1\nD 9\nR 2\nU 4\nD 8\nL 9\nR 6\nL 2\nR 11\nD 6\nL 5\nU 8\nL 4\nR 3\nD 5\nL 3\nU 9\nR 3\nU 1\nD 7\nR 1\nL 10\nU 1\nL 8\nU 11\nD 8\nU 12\nR 9\nL 5\nD 10\nL 2\nR 8\nD 10\nR 6\nD 1\nL 11\nD 8\nR 7\nL 14\nD 12\nL 11\nR 11\nU 9\nR 12\nD 10\nL 12\nR 4\nL 8\nD 2\nR 3\nL 14\nR 7\nU 10\nR 1\nL 6\nR 4\nD 11\nL 13\nR 12\nU 4\nL 12\nU 10\nD 8\nR 10\nD 9\nR 13\nL 2\nU 2\nD 7\nU 7\nR 3\nD 3\nR 13\nU 8\nR 10\nU 13\nD 14\nR 11\nD 7\nR 2\nU 5\nD 2\nL 6\nU 14\nL 10\nR 9\nU 11\nR 12\nD 5\nL 11\nR 12\nU 11\nR 8\nL 2\nD 14\nU 3\nD 9\nU 5\nL 4\nU 5\nL 6\nD 3\nL 1\nR 10\nL 4\nD 12\nU 15\nL 5\nD 11\nL 15\nD 10\nL 14\nU 1\nL 14\nD 6\nR 6\nU 9\nR 1\nL 7\nD 11\nU 12\nD 2\nR 7\nL 2\nD 13\nU 13\nR 6\nL 3\nD 3\nR 11\nU 3\nD 3\nU 11\nL 10\nU 7\nR 7\nD 9\nU 10\nR 11\nU 12\nD 11\nR 11\nU 2\nR 2\nD 9\nR 12\nD 1\nL 11\nR 1\nU 2\nR 14\nL 4\nR 1\nD 12\nR 7\nU 12\nL 2\nU 5\nD 7\nR 15\nD 5\nL 9\nD 7\nR 10\nU 12\nD 10\nR 11\nD 5\nU 10\nR 2\nU 11\nR 3\nU 6\nD 14\nU 11\nD 5\nL 8\nD 6\nL 2\nU 2\nL 14\nR 8\nU 15\nL 10\nD 1\nR 4\nL 8\nD 7\nL 15\nU 10\nD 14\nU 9\nL 7\nR 13\nU 11\nR 15\nL 11\nR 2\nL 11\nR 14\nL 1\nD 10\nL 2\nU 7\nL 9\nD 12\nR 2\nL 4\nU 4\nR 9\nL 6\nR 13\nD 1\nU 13\nR 7\nD 3\nR 14\nL 12\nD 15\nR 16\nL 7\nR 2\nU 3\nR 9\nU 10\nD 6\nU 7\nL 11\nD 12\nL 16\nR 12\nD 10\nU 16\nD 9\nU 14\nL 14\nU 11\nD 14\nL 14\nD 10\nL 3\nD 10\nU 6\nD 11\nL 8\nU 4\nD 1\nU 5\nD 5\nL 4\nU 8\nR 3\nD 12\nU 4\nR 8\nD 6\nU 8\nD 2\nU 12\nL 6\nD 12\nR 7\nD 6\nU 7\nD 12\nL 3\nR 2\nL 12\nR 13\nU 16\nL 6\nD 8\nU 13\nR 14\nD 4\nU 7\nD 1\nR 4\nD 13\nR 10\nD 7\nR 11\nL 6\nU 6\nR 7\nL 8\nD 2\nL 11\nU 3\nL 12\nU 4\nD 11\nU 8\nD 10\nU 1\nR 12\nU 1\nL 15\nR 15\nD 2\nL 8\nD 13\nL 3\nR 8\nU 14\nR 5\nU 3\nD 15\nU 7\nD 1\nL 6\nD 8\nU 13\nR 6\nL 6\nD 3\nL 9\nD 17\nU 8\nR 16\nL 6\nD 9\nU 3\nL 10\nR 13\nL 14\nU 8\nR 7\nU 12\nD 14\nR 1\nD 3\nL 11\nR 8\nD 9\nR 17\nD 5\nR 17\nU 8\nL 10\nD 7\nU 4\nD 16\nL 9\nD 1\nL 16\nR 7\nL 1\nR 11\nU 10\nR 2\nU 10\nL 15\nU 10\nR 2\nD 11\nU 12\nL 15\nU 4\nD 2\nR 4\nU 2\nL 11\nR 16\nU 10\nR 4\nD 9\nU 7\nD 2\nR 10\nD 14\nL 10\nU 9\nR 7\nD 3\nR 7\nL 3\nU 15\nD 13\nL 17\nR 12\nU 13\nD 16\nU 13\nR 13\nU 14\nL 16\nU 7\nD 2\nR 11\nU 17\nD 9\nR 12\nU 16\nL 11\nR 3\nU 9\nL 6\nD 2\nU 1\nD 7\nL 1\nU 7\nD 8\nU 11\nL 4\nR 6\nL 2\nU 12\nL 13\nU 5\nL 17\nR 16\nD 10\nU 12\nL 7\nR 4\nU 8\nD 17\nR 13\nL 2\nD 5\nL 1\nR 2\nD 16\nU 9\nD 15\nL 8\nU 14\nR 9\nD 18\nU 16\nL 17\nU 9\nD 11\nU 17\nR 8\nD 17\nU 14\nD 8\nU 8\nR 8\nU 14\nR 5\nL 1\nR 3\nD 5\nU 10\nR 16\nU 18\nD 16\nU 11\nD 18\nU 13\nL 11\nD 2\nR 16\nD 15\nL 9\nD 12\nR 11\nL 8\nU 8\nR 10\nL 2\nD 6\nL 5\nD 9\nL 3\nD 1\nU 18\nD 12\nU 13\nL 6\nR 17\nD 10\nR 9\nL 6\nR 3\nU 1\nR 1\nU 6\nL 15\nU 8\nD 15\nU 14\nR 10\nL 6\nU 1\nL 12\nR 9\nD 13\nU 1\nL 16\nU 16\nL 13\nR 4\nU 3\nD 11\nL 12\nR 11\nU 17\nR 18\nL 4\nR 6\nL 18\nD 10\nL 16\nR 2\nD 4\nR 14\nD 11\nL 12\nR 7\nL 9\nU 12\nD 12\nR 4\nL 1\nD 14\nR 14\nL 3\nU 2\nL 6\nR 7\nD 6\nU 18\nL 17\nU 12\nR 12\nL 5\nD 13\nR 7\nD 8\nL 16\nD 13\nU 4\nD 3\nR 16\nL 9\nU 8\nD 15\nR 8\nL 12\nR 5\nL 1\nU 11\nD 11\nL 10\nU 7\nD 6\nL 15\nD 9\nR 10\nD 6\nU 14\nL 7\nU 19\nR 17\nL 12\nU 1\nL 9\nR 17\nD 12\nU 3\nL 15\nR 16\nD 15\nR 15\nL 1\nU 16\nR 19\nD 9\nL 16\nD 12\nR 8\nL 2\nD 16\nL 17\nU 16\nD 9\nL 9\nU 8\nL 9\nR 16\nL 3\nD 8\nU 7\nD 10\nU 17\nR 2\nD 16\nR 6\nU 9\nR 4\nL 17\nD 10\nU 10\nL 14\nD 9\nR 8\nL 9\nR 18\nU 13\nL 16\nR 2\nU 16\nL 11\nU 4\nL 13\nR 8\nL 19\nU 4\nD 10\nR 10\nU 14\nR 13\nL 17\nU 17\nR 12\nD 18\nR 2\nD 5\nL 12\nU 6\nD 7\nR 9\nL 13\nD 15\nR 9\nU 16\nD 14\nR 8\nL 8\nU 10\nL 8\nD 18\nU 8\nD 9\nL 6\nR 8\nU 4\nD 14\nL 13\nD 4\nR 3\nU 13\nL 2
      73: invokestatic  #50                 // Method partTwo:(Ljava/lang/String;)J
      76: lstore_2
      77: new           #28                 // class java/lang/StringBuilder
      80: dup
      81: invokespecial #31                 // Method java/lang/StringBuilder."<init>":()V
      84: ldc           #54                 // String 9b:
      86: invokevirtual #37                 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
      89: lload_2
      90: invokevirtual #40                 // Method java/lang/StringBuilder.append:(J)Ljava/lang/StringBuilder;
      93: invokevirtual #44                 // Method java/lang/StringBuilder.toString:()Ljava/lang/String;
      96: getstatic     #18                 // Field java/lang/System.out:Ljava/io/PrintStream;
      99: swap
     100: invokevirtual #47                 // Method java/io/PrintStream.println:(Ljava/lang/Object;)V
     103: return

  private static final long partOne(java.lang.String);
    Code:
       0: aload_0
       1: checkcast     #59                 // class java/lang/CharSequence
       4: iconst_1
       5: anewarray     #61                 // class java/lang/String
       8: astore_2
       9: aload_2
      10: iconst_0
      11: ldc           #63                 // String \n
      13: aastore
      14: aload_2
      15: iconst_0
      16: iconst_0
      17: bipush        6
      19: aconst_null
      20: invokestatic  #69                 // Method kotlin/text/StringsKt.split$default:(Ljava/lang/CharSequence;[Ljava/lang/String;ZIILjava/lang/Object;)Ljava/util/List;
      23: checkcast     #71                 // class java/lang/Iterable
      26: astore_2
      27: nop
      28: iconst_0
      29: istore_3
      30: aload_2
      31: astore        4
      33: new           #73                 // class java/util/ArrayList
      36: dup
      37: aload_2
      38: bipush        10
      40: invokestatic  #79                 // Method kotlin/collections/CollectionsKt.collectionSizeOrDefault:(Ljava/lang/Iterable;I)I
      43: invokespecial #82                 // Method java/util/ArrayList."<init>":(I)V
      46: checkcast     #84                 // class java/util/Collection
      49: astore        5
      51: iconst_0
      52: istore        6
      54: aload         4
      56: invokeinterface #88,  1           // InterfaceMethod java/lang/Iterable.iterator:()Ljava/util/Iterator;
      61: astore        7
      63: aload         7
      65: invokeinterface #94,  1           // InterfaceMethod java/util/Iterator.hasNext:()Z
      70: ifeq          135
      73: aload         7
      75: invokeinterface #98,  1           // InterfaceMethod java/util/Iterator.next:()Ljava/lang/Object;
      80: astore        8
      82: aload         5
      84: aload         8
      86: checkcast     #61                 // class java/lang/String
      89: astore        9
      91: astore        15
      93: iconst_0
      94: istore        10
      96: aload         9
      98: checkcast     #59                 // class java/lang/CharSequence
     101: iconst_1
     102: anewarray     #61                 // class java/lang/String
     105: astore        11
     107: aload         11
     109: iconst_0
     110: ldc           #100                // String
     112: aastore
     113: aload         11
     115: iconst_0
     116: iconst_0
     117: bipush        6
     119: aconst_null
     120: invokestatic  #69                 // Method kotlin/text/StringsKt.split$default:(Ljava/lang/CharSequence;[Ljava/lang/String;ZIILjava/lang/Object;)Ljava/util/List;
     123: aload         15
     125: swap
     126: invokeinterface #104,  2          // InterfaceMethod java/util/Collection.add:(Ljava/lang/Object;)Z
     131: pop
     132: goto          63
     135: aload         5
     137: checkcast     #106                // class java/util/List
     140: nop
     141: checkcast     #71                 // class java/lang/Iterable
     144: astore_2
     145: nop
     146: iconst_0
     147: istore_3
     148: aload_2
     149: astore        4
     151: new           #73                 // class java/util/ArrayList
     154: dup
     155: aload_2
     156: bipush        10
     158: invokestatic  #79                 // Method kotlin/collections/CollectionsKt.collectionSizeOrDefault:(Ljava/lang/Iterable;I)I
     161: invokespecial #82                 // Method java/util/ArrayList."<init>":(I)V
     164: checkcast     #84                 // class java/util/Collection
     167: astore        5
     169: iconst_0
     170: istore        6
     172: aload         4
     174: invokeinterface #88,  1           // InterfaceMethod java/lang/Iterable.iterator:()Ljava/util/Iterator;
     179: astore        7
     181: aload         7
     183: invokeinterface #94,  1           // InterfaceMethod java/util/Iterator.hasNext:()Z
     188: ifeq          254
     191: aload         7
     193: invokeinterface #98,  1           // InterfaceMethod java/util/Iterator.next:()Ljava/lang/Object;
     198: astore        8
     200: aload         5
     202: aload         8
     204: checkcast     #106                // class java/util/List
     207: astore        9
     209: astore        15
     211: iconst_0
     212: istore        10
     214: aload         9
     216: iconst_0
     217: invokeinterface #110,  2          // InterfaceMethod java/util/List.get:(I)Ljava/lang/Object;
     222: aload         9
     224: iconst_1
     225: invokeinterface #110,  2          // InterfaceMethod java/util/List.get:(I)Ljava/lang/Object;
     230: checkcast     #61                 // class java/lang/String
     233: invokestatic  #116                // Method java/lang/Integer.parseInt:(Ljava/lang/String;)I
     236: invokestatic  #120                // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
     239: invokestatic  #126                // Method kotlin/TuplesKt.to:(Ljava/lang/Object;Ljava/lang/Object;)Lkotlin/Pair;
     242: aload         15
     244: swap
     245: invokeinterface #104,  2          // InterfaceMethod java/util/Collection.add:(Ljava/lang/Object;)Z
     250: pop
     251: goto          181
     254: aload         5
     256: checkcast     #106                // class java/util/List
     259: nop
     260: astore_1
     261: iconst_1
     262: anewarray     #128                // class kotlin/Pair
     265: astore_3
     266: aload_3
     267: iconst_0
     268: iconst_0
     269: invokestatic  #120                // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
     272: iconst_0
     273: invokestatic  #120                // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
     276: invokestatic  #126                // Method kotlin/TuplesKt.to:(Ljava/lang/Object;Ljava/lang/Object;)Lkotlin/Pair;
     279: aastore
     280: aload_3
     281: invokestatic  #134                // Method kotlin/collections/SetsKt.mutableSetOf:([Ljava/lang/Object;)Ljava/util/Set;
     284: astore_2
     285: aconst_null
     286: astore_3
     287: iconst_0
     288: invokestatic  #120                // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
     291: iconst_0
     292: invokestatic  #120                // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
     295: invokestatic  #126                // Method kotlin/TuplesKt.to:(Ljava/lang/Object;Ljava/lang/Object;)Lkotlin/Pair;
     298: astore_3
     299: aconst_null
     300: astore        4
     302: iconst_0
     303: invokestatic  #120                // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
     306: iconst_0
     307: invokestatic  #120                // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
     310: invokestatic  #126                // Method kotlin/TuplesKt.to:(Ljava/lang/Object;Ljava/lang/Object;)Lkotlin/Pair;
     313: astore        4
     315: aload_1
     316: checkcast     #71                 // class java/lang/Iterable
     319: astore        5
     321: iconst_0
     322: istore        6
     324: aload         5
     326: invokeinterface #88,  1           // InterfaceMethod java/lang/Iterable.iterator:()Ljava/util/Iterator;
     331: astore        7
     333: aload         7
     335: invokeinterface #94,  1           // InterfaceMethod java/util/Iterator.hasNext:()Z
     340: ifeq          434
     343: aload         7
     345: invokeinterface #98,  1           // InterfaceMethod java/util/Iterator.next:()Ljava/lang/Object;
     350: astore        8
     352: aload         8
     354: checkcast     #128                // class kotlin/Pair
     357: astore        9
     359: iconst_0
     360: istore        10
     362: aload         9
     364: invokevirtual #137                // Method kotlin/Pair.getSecond:()Ljava/lang/Object;
     367: checkcast     #139                // class java/lang/Number
     370: invokevirtual #143                // Method java/lang/Number.intValue:()I
     373: istore        11
     375: iconst_0
     376: istore        12
     378: iload         12
     380: iload         11
     382: if_icmpge     429
     385: iload         12
     387: istore        13
     389: iconst_0
     390: istore        14
     392: aload_3
     393: aload         9
     395: invokevirtual #146                // Method kotlin/Pair.getFirst:()Ljava/lang/Object;
     398: checkcast     #61                 // class java/lang/String
     401: invokestatic  #150                // Method moveHead:(Lkotlin/Pair;Ljava/lang/String;)Lkotlin/Pair;
     404: astore_3
     405: aload         4
     407: aload_3
     408: invokestatic  #154                // Method moveTail:(Lkotlin/Pair;Lkotlin/Pair;)Lkotlin/Pair;
     411: astore        4
     413: aload_2
     414: aload         4
     416: invokeinterface #157,  2          // InterfaceMethod java/util/Set.add:(Ljava/lang/Object;)Z
     421: pop
     422: nop
     423: iinc          12, 1
     426: goto          378
     429: nop
     430: nop
     431: goto          333
     434: nop
     435: aload_2
     436: invokeinterface #160,  1          // InterfaceMethod java/util/Set.size:()I
     441: i2l
     442: lreturn

  private static final long partTwo(java.lang.String);
    Code:
       0: aload_0
       1: checkcast     #59                 // class java/lang/CharSequence
       4: iconst_1
       5: anewarray     #61                 // class java/lang/String
       8: astore_2
       9: aload_2
      10: iconst_0
      11: ldc           #63                 // String \n
      13: aastore
      14: aload_2
      15: iconst_0
      16: iconst_0
      17: bipush        6
      19: aconst_null
      20: invokestatic  #69                 // Method kotlin/text/StringsKt.split$default:(Ljava/lang/CharSequence;[Ljava/lang/String;ZIILjava/lang/Object;)Ljava/util/List;
      23: checkcast     #71                 // class java/lang/Iterable
      26: astore_2
      27: nop
      28: iconst_0
      29: istore_3
      30: aload_2
      31: astore        4
      33: new           #73                 // class java/util/ArrayList
      36: dup
      37: aload_2
      38: bipush        10
      40: invokestatic  #79                 // Method kotlin/collections/CollectionsKt.collectionSizeOrDefault:(Ljava/lang/Iterable;I)I
      43: invokespecial #82                 // Method java/util/ArrayList."<init>":(I)V
      46: checkcast     #84                 // class java/util/Collection
      49: astore        5
      51: iconst_0
      52: istore        6
      54: aload         4
      56: invokeinterface #88,  1           // InterfaceMethod java/lang/Iterable.iterator:()Ljava/util/Iterator;
      61: astore        7
      63: aload         7
      65: invokeinterface #94,  1           // InterfaceMethod java/util/Iterator.hasNext:()Z
      70: ifeq          135
      73: aload         7
      75: invokeinterface #98,  1           // InterfaceMethod java/util/Iterator.next:()Ljava/lang/Object;
      80: astore        8
      82: aload         5
      84: aload         8
      86: checkcast     #61                 // class java/lang/String
      89: astore        9
      91: astore        15
      93: iconst_0
      94: istore        10
      96: aload         9
      98: checkcast     #59                 // class java/lang/CharSequence
     101: iconst_1
     102: anewarray     #61                 // class java/lang/String
     105: astore        11
     107: aload         11
     109: iconst_0
     110: ldc           #100                // String
     112: aastore
     113: aload         11
     115: iconst_0
     116: iconst_0
     117: bipush        6
     119: aconst_null
     120: invokestatic  #69                 // Method kotlin/text/StringsKt.split$default:(Ljava/lang/CharSequence;[Ljava/lang/String;ZIILjava/lang/Object;)Ljava/util/List;
     123: aload         15
     125: swap
     126: invokeinterface #104,  2          // InterfaceMethod java/util/Collection.add:(Ljava/lang/Object;)Z
     131: pop
     132: goto          63
     135: aload         5
     137: checkcast     #106                // class java/util/List
     140: nop
     141: checkcast     #71                 // class java/lang/Iterable
     144: astore_2
     145: nop
     146: iconst_0
     147: istore_3
     148: aload_2
     149: astore        4
     151: new           #73                 // class java/util/ArrayList
     154: dup
     155: aload_2
     156: bipush        10
     158: invokestatic  #79                 // Method kotlin/collections/CollectionsKt.collectionSizeOrDefault:(Ljava/lang/Iterable;I)I
     161: invokespecial #82                 // Method java/util/ArrayList."<init>":(I)V
     164: checkcast     #84                 // class java/util/Collection
     167: astore        5
     169: iconst_0
     170: istore        6
     172: aload         4
     174: invokeinterface #88,  1           // InterfaceMethod java/lang/Iterable.iterator:()Ljava/util/Iterator;
     179: astore        7
     181: aload         7
     183: invokeinterface #94,  1           // InterfaceMethod java/util/Iterator.hasNext:()Z
     188: ifeq          254
     191: aload         7
     193: invokeinterface #98,  1           // InterfaceMethod java/util/Iterator.next:()Ljava/lang/Object;
     198: astore        8
     200: aload         5
     202: aload         8
     204: checkcast     #106                // class java/util/List
     207: astore        9
     209: astore        15
     211: iconst_0
     212: istore        10
     214: aload         9
     216: iconst_0
     217: invokeinterface #110,  2          // InterfaceMethod java/util/List.get:(I)Ljava/lang/Object;
     222: aload         9
     224: iconst_1
     225: invokeinterface #110,  2          // InterfaceMethod java/util/List.get:(I)Ljava/lang/Object;
     230: checkcast     #61                 // class java/lang/String
     233: invokestatic  #116                // Method java/lang/Integer.parseInt:(Ljava/lang/String;)I
     236: invokestatic  #120                // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
     239: invokestatic  #126                // Method kotlin/TuplesKt.to:(Ljava/lang/Object;Ljava/lang/Object;)Lkotlin/Pair;
     242: aload         15
     244: swap
     245: invokeinterface #104,  2          // InterfaceMethod java/util/Collection.add:(Ljava/lang/Object;)Z
     250: pop
     251: goto          181
     254: aload         5
     256: checkcast     #106                // class java/util/List
     259: nop
     260: astore_1
     261: iconst_1
     262: anewarray     #128                // class kotlin/Pair
     265: astore_3
     266: aload_3
     267: iconst_0
     268: iconst_0
     269: invokestatic  #120                // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
     272: iconst_0
     273: invokestatic  #120                // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
     276: invokestatic  #126                // Method kotlin/TuplesKt.to:(Ljava/lang/Object;Ljava/lang/Object;)Lkotlin/Pair;
     279: aastore
     280: aload_3
     281: invokestatic  #134                // Method kotlin/collections/SetsKt.mutableSetOf:([Ljava/lang/Object;)Ljava/util/Set;
     284: astore_2
     285: new           #73                 // class java/util/ArrayList
     288: dup
     289: invokespecial #189                // Method java/util/ArrayList."<init>":()V
     292: checkcast     #106                // class java/util/List
     295: astore_3
     296: bipush        10
     298: istore        4
     300: iconst_0
     301: istore        5
     303: iload         5
     305: iload         4
     307: if_icmpge     342
     310: iload         5
     312: istore        6
     314: iconst_0
     315: istore        7
     317: aload_3
     318: iconst_0
     319: invokestatic  #120                // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
     322: iconst_0
     323: invokestatic  #120                // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
     326: invokestatic  #126                // Method kotlin/TuplesKt.to:(Ljava/lang/Object;Ljava/lang/Object;)Lkotlin/Pair;
     329: invokeinterface #190,  2          // InterfaceMethod java/util/List.add:(Ljava/lang/Object;)Z
     334: pop
     335: nop
     336: iinc          5, 1
     339: goto          303
     342: aload_1
     343: checkcast     #71                 // class java/lang/Iterable
     346: astore        4
     348: iconst_0
     349: istore        5
     351: aload         4
     353: invokeinterface #88,  1           // InterfaceMethod java/lang/Iterable.iterator:()Ljava/util/Iterator;
     358: astore        6
     360: aload         6
     362: invokeinterface #94,  1           // InterfaceMethod java/util/Iterator.hasNext:()Z
     367: ifeq          524
     370: aload         6
     372: invokeinterface #98,  1           // InterfaceMethod java/util/Iterator.next:()Ljava/lang/Object;
     377: astore        7
     379: aload         7
     381: checkcast     #128                // class kotlin/Pair
     384: astore        8
     386: iconst_0
     387: istore        9
     389: aload         8
     391: invokevirtual #137                // Method kotlin/Pair.getSecond:()Ljava/lang/Object;
     394: checkcast     #139                // class java/lang/Number
     397: invokevirtual #143                // Method java/lang/Number.intValue:()I
     400: istore        10
     402: iconst_0
     403: istore        11
     405: iload         11
     407: iload         10
     409: if_icmpge     519
     412: iload         11
     414: istore        12
     416: iconst_0
     417: istore        13
     419: aload_3
     420: iconst_0
     421: aload_3
     422: invokestatic  #194                // Method kotlin/collections/CollectionsKt.first:(Ljava/util/List;)Ljava/lang/Object;
     425: checkcast     #128                // class kotlin/Pair
     428: aload         8
     430: invokevirtual #146                // Method kotlin/Pair.getFirst:()Ljava/lang/Object;
     433: checkcast     #61                 // class java/lang/String
     436: invokestatic  #150                // Method moveHead:(Lkotlin/Pair;Ljava/lang/String;)Lkotlin/Pair;
     439: invokeinterface #198,  3          // InterfaceMethod java/util/List.set:(ILjava/lang/Object;)Ljava/lang/Object;
     444: pop
     445: iconst_1
     446: istore        14
     448: iload         14
     450: bipush        10
     452: if_icmpge     497
     455: aload_3
     456: iload         14
     458: aload_3
     459: iload         14
     461: invokeinterface #110,  2          // InterfaceMethod java/util/List.get:(I)Ljava/lang/Object;
     466: checkcast     #128                // class kotlin/Pair
     469: aload_3
     470: iload         14
     472: iconst_1
     473: isub
     474: invokeinterface #110,  2          // InterfaceMethod java/util/List.get:(I)Ljava/lang/Object;
     479: checkcast     #128                // class kotlin/Pair
     482: invokestatic  #154                // Method moveTail:(Lkotlin/Pair;Lkotlin/Pair;)Lkotlin/Pair;
     485: invokeinterface #198,  3          // InterfaceMethod java/util/List.set:(ILjava/lang/Object;)Ljava/lang/Object;
     490: pop
     491: iinc          14, 1
     494: goto          448
     497: aload_2
     498: aload_3
     499: bipush        9
     501: invokeinterface #110,  2          // InterfaceMethod java/util/List.get:(I)Ljava/lang/Object;
     506: invokeinterface #157,  2          // InterfaceMethod java/util/Set.add:(Ljava/lang/Object;)Z
     511: pop
     512: nop
     513: iinc          11, 1
     516: goto          405
     519: nop
     520: nop
     521: goto          360
     524: nop
     525: aload_2
     526: invokeinterface #160,  1          // InterfaceMethod java/util/Set.size:()I
     531: i2l
     532: lreturn

  private static final kotlin.Pair<java.lang.Integer, java.lang.Integer> moveHead(kotlin.Pair<java.lang.Integer, java.lang.Integer>, java.lang.String);
    Code:
       0: aload_1
       1: astore_2
       2: aload_2
       3: invokevirtual #209                // Method java/lang/String.hashCode:()I
       6: lookupswitch  { // 4
                    68: 60
                    76: 84
                    82: 48
                    85: 72
               default: 196
          }
      48: aload_2
      49: ldc           #211                // String R
      51: invokevirtual #214                // Method java/lang/String.equals:(Ljava/lang/Object;)Z
      54: ifne          146
      57: goto          196
      60: aload_2
      61: ldc           #216                // String D
      63: invokevirtual #214                // Method java/lang/String.equals:(Ljava/lang/Object;)Z
      66: ifne          121
      69: goto          196
      72: aload_2
      73: ldc           #218                // String U
      75: invokevirtual #214                // Method java/lang/String.equals:(Ljava/lang/Object;)Z
      78: ifne          96
      81: goto          196
      84: aload_2
      85: ldc           #220                // String L
      87: invokevirtual #214                // Method java/lang/String.equals:(Ljava/lang/Object;)Z
      90: ifne          171
      93: goto          196
      96: aload_0
      97: invokevirtual #146                // Method kotlin/Pair.getFirst:()Ljava/lang/Object;
     100: aload_0
     101: invokevirtual #137                // Method kotlin/Pair.getSecond:()Ljava/lang/Object;
     104: checkcast     #139                // class java/lang/Number
     107: invokevirtual #143                // Method java/lang/Number.intValue:()I
     110: iconst_1
     111: iadd
     112: invokestatic  #120                // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
     115: invokestatic  #126                // Method kotlin/TuplesKt.to:(Ljava/lang/Object;Ljava/lang/Object;)Lkotlin/Pair;
     118: goto          209
     121: aload_0
     122: invokevirtual #146                // Method kotlin/Pair.getFirst:()Ljava/lang/Object;
     125: aload_0
     126: invokevirtual #137                // Method kotlin/Pair.getSecond:()Ljava/lang/Object;
     129: checkcast     #139                // class java/lang/Number
     132: invokevirtual #143                // Method java/lang/Number.intValue:()I
     135: iconst_1
     136: isub
     137: invokestatic  #120                // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
     140: invokestatic  #126                // Method kotlin/TuplesKt.to:(Ljava/lang/Object;Ljava/lang/Object;)Lkotlin/Pair;
     143: goto          209
     146: aload_0
     147: invokevirtual #146                // Method kotlin/Pair.getFirst:()Ljava/lang/Object;
     150: checkcast     #139                // class java/lang/Number
     153: invokevirtual #143                // Method java/lang/Number.intValue:()I
     156: iconst_1
     157: iadd
     158: invokestatic  #120                // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
     161: aload_0
     162: invokevirtual #137                // Method kotlin/Pair.getSecond:()Ljava/lang/Object;
     165: invokestatic  #126                // Method kotlin/TuplesKt.to:(Ljava/lang/Object;Ljava/lang/Object;)Lkotlin/Pair;
     168: goto          209
     171: aload_0
     172: invokevirtual #146                // Method kotlin/Pair.getFirst:()Ljava/lang/Object;
     175: checkcast     #139                // class java/lang/Number
     178: invokevirtual #143                // Method java/lang/Number.intValue:()I
     181: iconst_1
     182: isub
     183: invokestatic  #120                // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
     186: aload_0
     187: invokevirtual #137                // Method kotlin/Pair.getSecond:()Ljava/lang/Object;
     190: invokestatic  #126                // Method kotlin/TuplesKt.to:(Ljava/lang/Object;Ljava/lang/Object;)Lkotlin/Pair;
     193: goto          209
     196: new           #222                // class java/lang/IllegalStateException
     199: dup
     200: ldc           #224                // String
     202: invokevirtual #225                // Method java/lang/Object.toString:()Ljava/lang/String;
     205: invokespecial #228                // Method java/lang/IllegalStateException."<init>":(Ljava/lang/String;)V
     208: athrow
     209: areturn

  private static final java.util.Set<kotlin.Pair<java.lang.Integer, java.lang.Integer>> toNeighboursAll(kotlin.Pair<java.lang.Integer, java.lang.Integer>);
    Code:
       0: new           #235                // class java/util/LinkedHashSet
       3: dup
       4: invokespecial #236                // Method java/util/LinkedHashSet."<init>":()V
       7: checkcast     #156                // class java/util/Set
      10: astore_1
      11: aload_0
      12: invokevirtual #146                // Method kotlin/Pair.getFirst:()Ljava/lang/Object;
      15: checkcast     #139                // class java/lang/Number
      18: invokevirtual #143                // Method java/lang/Number.intValue:()I
      21: iconst_1
      22: isub
      23: istore_2
      24: aload_0
      25: invokevirtual #146                // Method kotlin/Pair.getFirst:()Ljava/lang/Object;
      28: checkcast     #139                // class java/lang/Number
      31: invokevirtual #143                // Method java/lang/Number.intValue:()I
      34: iconst_1
      35: iadd
      36: istore_3
      37: iload_2
      38: iload_3
      39: if_icmpgt     120
      42: aload_0
      43: invokevirtual #137                // Method kotlin/Pair.getSecond:()Ljava/lang/Object;
      46: checkcast     #139                // class java/lang/Number
      49: invokevirtual #143                // Method java/lang/Number.intValue:()I
      52: iconst_1
      53: isub
      54: istore        4
      56: aload_0
      57: invokevirtual #137                // Method kotlin/Pair.getSecond:()Ljava/lang/Object;
      60: checkcast     #139                // class java/lang/Number
      63: invokevirtual #143                // Method java/lang/Number.intValue:()I
      66: iconst_1
      67: iadd
      68: istore        5
      70: iload         4
      72: iload         5
      74: if_icmpgt     109
      77: aload_1
      78: iload_2
      79: invokestatic  #120                // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
      82: iload         4
      84: invokestatic  #120                // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
      87: invokestatic  #126                // Method kotlin/TuplesKt.to:(Ljava/lang/Object;Ljava/lang/Object;)Lkotlin/Pair;
      90: invokeinterface #157,  2          // InterfaceMethod java/util/Set.add:(Ljava/lang/Object;)Z
      95: pop
      96: iload         4
      98: iload         5
     100: if_icmpeq     109
     103: iinc          4, 1
     106: goto          77
     109: iload_2
     110: iload_3
     111: if_icmpeq     120
     114: iinc          2, 1
     117: goto          42
     120: aload_1
     121: areturn

  private static final kotlin.Pair<java.lang.Integer, java.lang.Integer> moveTail(kotlin.Pair<java.lang.Integer, java.lang.Integer>, kotlin.Pair<java.lang.Integer, java.lang.Integer>);
    Code:
       0: aload_1
       1: invokestatic  #241                // Method toNeighboursAll:(Lkotlin/Pair;)Ljava/util/Set;
       4: aload_0
       5: invokeinterface #244,  2          // InterfaceMethod java/util/Set.contains:(Ljava/lang/Object;)Z
      10: ifeq          15
      13: aload_0
      14: areturn
      15: aload_0
      16: invokevirtual #146                // Method kotlin/Pair.getFirst:()Ljava/lang/Object;
      19: checkcast     #139                // class java/lang/Number
      22: invokevirtual #143                // Method java/lang/Number.intValue:()I
      25: aload_1
      26: invokevirtual #146                // Method kotlin/Pair.getFirst:()Ljava/lang/Object;
      29: checkcast     #139                // class java/lang/Number
      32: invokevirtual #143                // Method java/lang/Number.intValue:()I
      35: if_icmpne     99
      38: aload_0
      39: invokevirtual #146                // Method kotlin/Pair.getFirst:()Ljava/lang/Object;
      42: aload_0
      43: invokevirtual #137                // Method kotlin/Pair.getSecond:()Ljava/lang/Object;
      46: checkcast     #139                // class java/lang/Number
      49: invokevirtual #143                // Method java/lang/Number.intValue:()I
      52: aload_1
      53: invokevirtual #137                // Method kotlin/Pair.getSecond:()Ljava/lang/Object;
      56: checkcast     #139                // class java/lang/Number
      59: invokevirtual #143                // Method java/lang/Number.intValue:()I
      62: if_icmple     80
      65: aload_0
      66: invokevirtual #137                // Method kotlin/Pair.getSecond:()Ljava/lang/Object;
      69: checkcast     #139                // class java/lang/Number
      72: invokevirtual #143                // Method java/lang/Number.intValue:()I
      75: iconst_1
      76: isub
      77: goto          92
      80: aload_0
      81: invokevirtual #137                // Method kotlin/Pair.getSecond:()Ljava/lang/Object;
      84: checkcast     #139                // class java/lang/Number
      87: invokevirtual #143                // Method java/lang/Number.intValue:()I
      90: iconst_1
      91: iadd
      92: invokestatic  #120                // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
      95: invokestatic  #126                // Method kotlin/TuplesKt.to:(Ljava/lang/Object;Ljava/lang/Object;)Lkotlin/Pair;
      98: areturn
      99: aload_0
     100: invokevirtual #137                // Method kotlin/Pair.getSecond:()Ljava/lang/Object;
     103: checkcast     #139                // class java/lang/Number
     106: invokevirtual #143                // Method java/lang/Number.intValue:()I
     109: aload_1
     110: invokevirtual #137                // Method kotlin/Pair.getSecond:()Ljava/lang/Object;
     113: checkcast     #139                // class java/lang/Number
     116: invokevirtual #143                // Method java/lang/Number.intValue:()I
     119: if_icmpne     183
     122: aload_0
     123: invokevirtual #146                // Method kotlin/Pair.getFirst:()Ljava/lang/Object;
     126: checkcast     #139                // class java/lang/Number
     129: invokevirtual #143                // Method java/lang/Number.intValue:()I
     132: aload_1
     133: invokevirtual #146                // Method kotlin/Pair.getFirst:()Ljava/lang/Object;
     136: checkcast     #139                // class java/lang/Number
     139: invokevirtual #143                // Method java/lang/Number.intValue:()I
     142: if_icmple     160
     145: aload_0
     146: invokevirtual #146                // Method kotlin/Pair.getFirst:()Ljava/lang/Object;
     149: checkcast     #139                // class java/lang/Number
     152: invokevirtual #143                // Method java/lang/Number.intValue:()I
     155: iconst_1
     156: isub
     157: goto          172
     160: aload_0
     161: invokevirtual #146                // Method kotlin/Pair.getFirst:()Ljava/lang/Object;
     164: checkcast     #139                // class java/lang/Number
     167: invokevirtual #143                // Method java/lang/Number.intValue:()I
     170: iconst_1
     171: iadd
     172: invokestatic  #120                // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
     175: aload_0
     176: invokevirtual #137                // Method kotlin/Pair.getSecond:()Ljava/lang/Object;
     179: invokestatic  #126                // Method kotlin/TuplesKt.to:(Ljava/lang/Object;Ljava/lang/Object;)Lkotlin/Pair;
     182: areturn
     183: aload_0
     184: invokevirtual #146                // Method kotlin/Pair.getFirst:()Ljava/lang/Object;
     187: checkcast     #139                // class java/lang/Number
     190: invokevirtual #143                // Method java/lang/Number.intValue:()I
     193: aload_1
     194: invokevirtual #146                // Method kotlin/Pair.getFirst:()Ljava/lang/Object;
     197: checkcast     #139                // class java/lang/Number
     200: invokevirtual #143                // Method java/lang/Number.intValue:()I
     203: if_icmple     221
     206: aload_0
     207: invokevirtual #146                // Method kotlin/Pair.getFirst:()Ljava/lang/Object;
     210: checkcast     #139                // class java/lang/Number
     213: invokevirtual #143                // Method java/lang/Number.intValue:()I
     216: iconst_1
     217: isub
     218: goto          233
     221: aload_0
     222: invokevirtual #146                // Method kotlin/Pair.getFirst:()Ljava/lang/Object;
     225: checkcast     #139                // class java/lang/Number
     228: invokevirtual #143                // Method java/lang/Number.intValue:()I
     231: iconst_1
     232: iadd
     233: invokestatic  #120                // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
     236: aload_0
     237: invokevirtual #137                // Method kotlin/Pair.getSecond:()Ljava/lang/Object;
     240: checkcast     #139                // class java/lang/Number
     243: invokevirtual #143                // Method java/lang/Number.intValue:()I
     246: aload_1
     247: invokevirtual #137                // Method kotlin/Pair.getSecond:()Ljava/lang/Object;
     250: checkcast     #139                // class java/lang/Number
     253: invokevirtual #143                // Method java/lang/Number.intValue:()I
     256: if_icmple     274
     259: aload_0
     260: invokevirtual #137                // Method kotlin/Pair.getSecond:()Ljava/lang/Object;
     263: checkcast     #139                // class java/lang/Number
     266: invokevirtual #143                // Method java/lang/Number.intValue:()I
     269: iconst_1
     270: isub
     271: goto          286
     274: aload_0
     275: invokevirtual #137                // Method kotlin/Pair.getSecond:()Ljava/lang/Object;
     278: checkcast     #139                // class java/lang/Number
     281: invokevirtual #143                // Method java/lang/Number.intValue:()I
     284: iconst_1
     285: iadd
     286: invokestatic  #120                // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
     289: invokestatic  #126                // Method kotlin/TuplesKt.to:(Ljava/lang/Object;Ljava/lang/Object;)Lkotlin/Pair;
     292: areturn

  public static void main(java.lang.String[]);
    Code:
       0: invokestatic  #248                // Method main:()V
       3: return
}


package cz.wrent.advent

fun main() {
	println(partOne(test))
	val result = partOne(input)
	println("14a: $result")
	println(partTwo(test))
	println("14b: ${partTwo(input)}")
}

private fun partOne(input: String): Int {
	return simulate(input, withFloor = false)
}

private fun simulate(input: String, withFloor: Boolean): Int {
	val map = input.split("\n").map { it.toShape() }.flatten().map { it to Material.ROCK }.toMap().toMutableMap()
	val cave = if (withFloor) CaveWithFloor(map) else Cave(map)
	var i = 0
	try {
		while (true) {
			cave.sandfall()
			i++
			if (cave.map[500 to 0] == Material.SAND) {
				return i
			}
		}
	} catch (e: EndlessFallException) {
		println("Finished")
	}
	return i
}

private fun partTwo(input: String): Int {
	return simulate(input, withFloor = true)
}

private open class Cave(val map: MutableMap<Pair<Int, Int>, Material>) {

	fun add(coord: Pair<Int, Int>, material: Material) {
		map[coord] = material
	}

	fun sandfall() {
		val next = this.fall(500 to 0)
		add(next, Material.SAND)
	}

	fun fall(from: Pair<Int, Int>): Pair<Int, Int> {
		val bellow = findBellow(from)
		return if (get(bellow.first - 1 to bellow.second) == null) {
			this.fall(bellow.first - 1 to bellow.second)
		} else if (get(bellow.first + 1 to bellow.second) == null) {
			this.fall(bellow.first + 1 to bellow.second)
		} else {
			bellow.first to bellow.second - 1
		}
	}

	open fun get(coord: Pair<Int, Int>): Material? {
		return map[coord]
	}

	open fun findBellow(from: Pair<Int, Int>): Pair<Int, Int> {
		return this.map.entries.filter { it.key.first == from.first }.filter { it.key.second > from.second }
			.minByOrNull { it.key.second }?.key
			?: throw EndlessFallException()
	}
}

private class CaveWithFloor(map: MutableMap<Pair<Int, Int>, Material>) : Cave(map) {
	val floorY = map.keys.maxByOrNull { it.second }!!.second + 2

	override fun get(coord: Pair<Int, Int>): Material? {
		return if (coord.second == floorY) return Material.ROCK else super.get(coord)
	}

	override fun findBellow(from: Pair<Int, Int>): Pair<Int, Int> {
		return try {
			super.findBellow(from)
		} catch (e: EndlessFallException) {
			from.first to floorY
		}
	}
}

private class EndlessFallException() : Exception()

private enum class Material {
	ROCK,
	SAND,
}

private fun String.toShape(): Set<Pair<Int, Int>> {
	val set = mutableSetOf<Pair<Int, Int>>()
	val points = this.split(" -> ").map { it.split(",") }.map { it.first().toInt() to it.get(1).toInt() }
	points.windowed(2).forEach { (first, second) ->
		var current = first
		if (first.first == second.first) {
			while (current != second) {
				set.add(current)
				val diff = if (current.second < second.second) 1 else (-1)
				current = current.first to current.second + diff
			}
		} else {
			while (current != second) {
				set.add(current)
				val diff = if (current.first < second.first) 1 else (-1)
				current = current.first + diff to current.second
			}
		}
		set.add(second)
	}
	return set
}

private const val test = """498,4 -> 498,6 -> 496,6
503,4 -> 502,4 -> 502,9 -> 494,9"""

private const val input =
	"""503,53 -> 503,50 -> 503,53 -> 505,53 -> 505,51 -> 505,53 -> 507,53 -> 507,52 -> 507,53 -> 509,53 -> 509,50 -> 509,53
539,105 -> 539,98 -> 539,105 -> 541,105 -> 541,100 -> 541,105 -> 543,105 -> 543,103 -> 543,105 -> 545,105 -> 545,101 -> 545,105 -> 547,105 -> 547,95 -> 547,105 -> 549,105 -> 549,104 -> 549,105 -> 551,105 -> 551,99 -> 551,105 -> 553,105 -> 553,97 -> 553,105 -> 555,105 -> 555,96 -> 555,105
545,125 -> 549,125
536,172 -> 536,168 -> 536,172 -> 538,172 -> 538,164 -> 538,172 -> 540,172 -> 540,168 -> 540,172 -> 542,172 -> 542,163 -> 542,172 -> 544,172 -> 544,164 -> 544,172 -> 546,172 -> 546,171 -> 546,172 -> 548,172 -> 548,165 -> 548,172 -> 550,172 -> 550,170 -> 550,172 -> 552,172 -> 552,170 -> 552,172
500,34 -> 500,37 -> 496,37 -> 496,40 -> 506,40 -> 506,37 -> 504,37 -> 504,34
527,147 -> 527,139 -> 527,147 -> 529,147 -> 529,142 -> 529,147 -> 531,147 -> 531,138 -> 531,147 -> 533,147 -> 533,137 -> 533,147 -> 535,147 -> 535,140 -> 535,147 -> 537,147 -> 537,146 -> 537,147 -> 539,147 -> 539,142 -> 539,147 -> 541,147 -> 541,140 -> 541,147
527,147 -> 527,139 -> 527,147 -> 529,147 -> 529,142 -> 529,147 -> 531,147 -> 531,138 -> 531,147 -> 533,147 -> 533,137 -> 533,147 -> 535,147 -> 535,140 -> 535,147 -> 537,147 -> 537,146 -> 537,147 -> 539,147 -> 539,142 -> 539,147 -> 541,147 -> 541,140 -> 541,147
539,150 -> 539,152 -> 534,152 -> 534,159 -> 544,159 -> 544,152 -> 543,152 -> 543,150
500,34 -> 500,37 -> 496,37 -> 496,40 -> 506,40 -> 506,37 -> 504,37 -> 504,34
527,147 -> 527,139 -> 527,147 -> 529,147 -> 529,142 -> 529,147 -> 531,147 -> 531,138 -> 531,147 -> 533,147 -> 533,137 -> 533,147 -> 535,147 -> 535,140 -> 535,147 -> 537,147 -> 537,146 -> 537,147 -> 539,147 -> 539,142 -> 539,147 -> 541,147 -> 541,140 -> 541,147
558,119 -> 563,119
536,172 -> 536,168 -> 536,172 -> 538,172 -> 538,164 -> 538,172 -> 540,172 -> 540,168 -> 540,172 -> 542,172 -> 542,163 -> 542,172 -> 544,172 -> 544,164 -> 544,172 -> 546,172 -> 546,171 -> 546,172 -> 548,172 -> 548,165 -> 548,172 -> 550,172 -> 550,170 -> 550,172 -> 552,172 -> 552,170 -> 552,172
539,131 -> 543,131
527,147 -> 527,139 -> 527,147 -> 529,147 -> 529,142 -> 529,147 -> 531,147 -> 531,138 -> 531,147 -> 533,147 -> 533,137 -> 533,147 -> 535,147 -> 535,140 -> 535,147 -> 537,147 -> 537,146 -> 537,147 -> 539,147 -> 539,142 -> 539,147 -> 541,147 -> 541,140 -> 541,147
536,172 -> 536,168 -> 536,172 -> 538,172 -> 538,164 -> 538,172 -> 540,172 -> 540,168 -> 540,172 -> 542,172 -> 542,163 -> 542,172 -> 544,172 -> 544,164 -> 544,172 -> 546,172 -> 546,171 -> 546,172 -> 548,172 -> 548,165 -> 548,172 -> 550,172 -> 550,170 -> 550,172 -> 552,172 -> 552,170 -> 552,172
526,82 -> 530,82
527,147 -> 527,139 -> 527,147 -> 529,147 -> 529,142 -> 529,147 -> 531,147 -> 531,138 -> 531,147 -> 533,147 -> 533,137 -> 533,147 -> 535,147 -> 535,140 -> 535,147 -> 537,147 -> 537,146 -> 537,147 -> 539,147 -> 539,142 -> 539,147 -> 541,147 -> 541,140 -> 541,147
548,122 -> 553,122
539,105 -> 539,98 -> 539,105 -> 541,105 -> 541,100 -> 541,105 -> 543,105 -> 543,103 -> 543,105 -> 545,105 -> 545,101 -> 545,105 -> 547,105 -> 547,95 -> 547,105 -> 549,105 -> 549,104 -> 549,105 -> 551,105 -> 551,99 -> 551,105 -> 553,105 -> 553,97 -> 553,105 -> 555,105 -> 555,96 -> 555,105
500,34 -> 500,37 -> 496,37 -> 496,40 -> 506,40 -> 506,37 -> 504,37 -> 504,34
539,105 -> 539,98 -> 539,105 -> 541,105 -> 541,100 -> 541,105 -> 543,105 -> 543,103 -> 543,105 -> 545,105 -> 545,101 -> 545,105 -> 547,105 -> 547,95 -> 547,105 -> 549,105 -> 549,104 -> 549,105 -> 551,105 -> 551,99 -> 551,105 -> 553,105 -> 553,97 -> 553,105 -> 555,105 -> 555,96 -> 555,105
523,84 -> 527,84
536,172 -> 536,168 -> 536,172 -> 538,172 -> 538,164 -> 538,172 -> 540,172 -> 540,168 -> 540,172 -> 542,172 -> 542,163 -> 542,172 -> 544,172 -> 544,164 -> 544,172 -> 546,172 -> 546,171 -> 546,172 -> 548,172 -> 548,165 -> 548,172 -> 550,172 -> 550,170 -> 550,172 -> 552,172 -> 552,170 -> 552,172
551,119 -> 556,119
529,84 -> 533,84
505,62 -> 509,62
503,53 -> 503,50 -> 503,53 -> 505,53 -> 505,51 -> 505,53 -> 507,53 -> 507,52 -> 507,53 -> 509,53 -> 509,50 -> 509,53
527,147 -> 527,139 -> 527,147 -> 529,147 -> 529,142 -> 529,147 -> 531,147 -> 531,138 -> 531,147 -> 533,147 -> 533,137 -> 533,147 -> 535,147 -> 535,140 -> 535,147 -> 537,147 -> 537,146 -> 537,147 -> 539,147 -> 539,142 -> 539,147 -> 541,147 -> 541,140 -> 541,147
527,147 -> 527,139 -> 527,147 -> 529,147 -> 529,142 -> 529,147 -> 531,147 -> 531,138 -> 531,147 -> 533,147 -> 533,137 -> 533,147 -> 535,147 -> 535,140 -> 535,147 -> 537,147 -> 537,146 -> 537,147 -> 539,147 -> 539,142 -> 539,147 -> 541,147 -> 541,140 -> 541,147
539,105 -> 539,98 -> 539,105 -> 541,105 -> 541,100 -> 541,105 -> 543,105 -> 543,103 -> 543,105 -> 545,105 -> 545,101 -> 545,105 -> 547,105 -> 547,95 -> 547,105 -> 549,105 -> 549,104 -> 549,105 -> 551,105 -> 551,99 -> 551,105 -> 553,105 -> 553,97 -> 553,105 -> 555,105 -> 555,96 -> 555,105
539,105 -> 539,98 -> 539,105 -> 541,105 -> 541,100 -> 541,105 -> 543,105 -> 543,103 -> 543,105 -> 545,105 -> 545,101 -> 545,105 -> 547,105 -> 547,95 -> 547,105 -> 549,105 -> 549,104 -> 549,105 -> 551,105 -> 551,99 -> 551,105 -> 553,105 -> 553,97 -> 553,105 -> 555,105 -> 555,96 -> 555,105
527,147 -> 527,139 -> 527,147 -> 529,147 -> 529,142 -> 529,147 -> 531,147 -> 531,138 -> 531,147 -> 533,147 -> 533,137 -> 533,147 -> 535,147 -> 535,140 -> 535,147 -> 537,147 -> 537,146 -> 537,147 -> 539,147 -> 539,142 -> 539,147 -> 541,147 -> 541,140 -> 541,147
526,86 -> 530,86
548,128 -> 552,128
500,34 -> 500,37 -> 496,37 -> 496,40 -> 506,40 -> 506,37 -> 504,37 -> 504,34
504,19 -> 504,23 -> 503,23 -> 503,31 -> 512,31 -> 512,23 -> 507,23 -> 507,19
503,53 -> 503,50 -> 503,53 -> 505,53 -> 505,51 -> 505,53 -> 507,53 -> 507,52 -> 507,53 -> 509,53 -> 509,50 -> 509,53
523,88 -> 527,88
551,131 -> 555,131
541,122 -> 546,122
536,172 -> 536,168 -> 536,172 -> 538,172 -> 538,164 -> 538,172 -> 540,172 -> 540,168 -> 540,172 -> 542,172 -> 542,163 -> 542,172 -> 544,172 -> 544,164 -> 544,172 -> 546,172 -> 546,171 -> 546,172 -> 548,172 -> 548,165 -> 548,172 -> 550,172 -> 550,170 -> 550,172 -> 552,172 -> 552,170 -> 552,172
539,105 -> 539,98 -> 539,105 -> 541,105 -> 541,100 -> 541,105 -> 543,105 -> 543,103 -> 543,105 -> 545,105 -> 545,101 -> 545,105 -> 547,105 -> 547,95 -> 547,105 -> 549,105 -> 549,104 -> 549,105 -> 551,105 -> 551,99 -> 551,105 -> 553,105 -> 553,97 -> 553,105 -> 555,105 -> 555,96 -> 555,105
536,172 -> 536,168 -> 536,172 -> 538,172 -> 538,164 -> 538,172 -> 540,172 -> 540,168 -> 540,172 -> 542,172 -> 542,163 -> 542,172 -> 544,172 -> 544,164 -> 544,172 -> 546,172 -> 546,171 -> 546,172 -> 548,172 -> 548,165 -> 548,172 -> 550,172 -> 550,170 -> 550,172 -> 552,172 -> 552,170 -> 552,172
503,53 -> 503,50 -> 503,53 -> 505,53 -> 505,51 -> 505,53 -> 507,53 -> 507,52 -> 507,53 -> 509,53 -> 509,50 -> 509,53
517,88 -> 521,88
504,19 -> 504,23 -> 503,23 -> 503,31 -> 512,31 -> 512,23 -> 507,23 -> 507,19
536,172 -> 536,168 -> 536,172 -> 538,172 -> 538,164 -> 538,172 -> 540,172 -> 540,168 -> 540,172 -> 542,172 -> 542,163 -> 542,172 -> 544,172 -> 544,164 -> 544,172 -> 546,172 -> 546,171 -> 546,172 -> 548,172 -> 548,165 -> 548,172 -> 550,172 -> 550,170 -> 550,172 -> 552,172 -> 552,170 -> 552,172
527,147 -> 527,139 -> 527,147 -> 529,147 -> 529,142 -> 529,147 -> 531,147 -> 531,138 -> 531,147 -> 533,147 -> 533,137 -> 533,147 -> 535,147 -> 535,140 -> 535,147 -> 537,147 -> 537,146 -> 537,147 -> 539,147 -> 539,142 -> 539,147 -> 541,147 -> 541,140 -> 541,147
527,147 -> 527,139 -> 527,147 -> 529,147 -> 529,142 -> 529,147 -> 531,147 -> 531,138 -> 531,147 -> 533,147 -> 533,137 -> 533,147 -> 535,147 -> 535,140 -> 535,147 -> 537,147 -> 537,146 -> 537,147 -> 539,147 -> 539,142 -> 539,147 -> 541,147 -> 541,140 -> 541,147
562,122 -> 567,122
539,150 -> 539,152 -> 534,152 -> 534,159 -> 544,159 -> 544,152 -> 543,152 -> 543,150
532,82 -> 536,82
505,58 -> 509,58
539,105 -> 539,98 -> 539,105 -> 541,105 -> 541,100 -> 541,105 -> 543,105 -> 543,103 -> 543,105 -> 545,105 -> 545,101 -> 545,105 -> 547,105 -> 547,95 -> 547,105 -> 549,105 -> 549,104 -> 549,105 -> 551,105 -> 551,99 -> 551,105 -> 553,105 -> 553,97 -> 553,105 -> 555,105 -> 555,96 -> 555,105
536,172 -> 536,168 -> 536,172 -> 538,172 -> 538,164 -> 538,172 -> 540,172 -> 540,168 -> 540,172 -> 542,172 -> 542,163 -> 542,172 -> 544,172 -> 544,164 -> 544,172 -> 546,172 -> 546,171 -> 546,172 -> 548,172 -> 548,165 -> 548,172 -> 550,172 -> 550,170 -> 550,172 -> 552,172 -> 552,170 -> 552,172
502,60 -> 506,60
539,105 -> 539,98 -> 539,105 -> 541,105 -> 541,100 -> 541,105 -> 543,105 -> 543,103 -> 543,105 -> 545,105 -> 545,101 -> 545,105 -> 547,105 -> 547,95 -> 547,105 -> 549,105 -> 549,104 -> 549,105 -> 551,105 -> 551,99 -> 551,105 -> 553,105 -> 553,97 -> 553,105 -> 555,105 -> 555,96 -> 555,105
535,88 -> 539,88
554,134 -> 558,134
539,150 -> 539,152 -> 534,152 -> 534,159 -> 544,159 -> 544,152 -> 543,152 -> 543,150
500,34 -> 500,37 -> 496,37 -> 496,40 -> 506,40 -> 506,37 -> 504,37 -> 504,34
539,105 -> 539,98 -> 539,105 -> 541,105 -> 541,100 -> 541,105 -> 543,105 -> 543,103 -> 543,105 -> 545,105 -> 545,101 -> 545,105 -> 547,105 -> 547,95 -> 547,105 -> 549,105 -> 549,104 -> 549,105 -> 551,105 -> 551,99 -> 551,105 -> 553,105 -> 553,97 -> 553,105 -> 555,105 -> 555,96 -> 555,105
503,53 -> 503,50 -> 503,53 -> 505,53 -> 505,51 -> 505,53 -> 507,53 -> 507,52 -> 507,53 -> 509,53 -> 509,50 -> 509,53
503,53 -> 503,50 -> 503,53 -> 505,53 -> 505,51 -> 505,53 -> 507,53 -> 507,52 -> 507,53 -> 509,53 -> 509,50 -> 509,53
503,53 -> 503,50 -> 503,53 -> 505,53 -> 505,51 -> 505,53 -> 507,53 -> 507,52 -> 507,53 -> 509,53 -> 509,50 -> 509,53
508,56 -> 512,56
540,91 -> 540,92 -> 547,92 -> 547,91
539,105 -> 539,98 -> 539,105 -> 541,105 -> 541,100 -> 541,105 -> 543,105 -> 543,103 -> 543,105 -> 545,105 -> 545,101 -> 545,105 -> 547,105 -> 547,95 -> 547,105 -> 549,105 -> 549,104 -> 549,105 -> 551,105 -> 551,99 -> 551,105 -> 553,105 -> 553,97 -> 553,105 -> 555,105 -> 555,96 -> 555,105
540,91 -> 540,92 -> 547,92 -> 547,91
521,65 -> 521,67 -> 513,67 -> 513,72 -> 526,72 -> 526,67 -> 523,67 -> 523,65
539,105 -> 539,98 -> 539,105 -> 541,105 -> 541,100 -> 541,105 -> 543,105 -> 543,103 -> 543,105 -> 545,105 -> 545,101 -> 545,105 -> 547,105 -> 547,95 -> 547,105 -> 549,105 -> 549,104 -> 549,105 -> 551,105 -> 551,99 -> 551,105 -> 553,105 -> 553,97 -> 553,105 -> 555,105 -> 555,96 -> 555,105
499,62 -> 503,62
536,172 -> 536,168 -> 536,172 -> 538,172 -> 538,164 -> 538,172 -> 540,172 -> 540,168 -> 540,172 -> 542,172 -> 542,163 -> 542,172 -> 544,172 -> 544,164 -> 544,172 -> 546,172 -> 546,171 -> 546,172 -> 548,172 -> 548,165 -> 548,172 -> 550,172 -> 550,170 -> 550,172 -> 552,172 -> 552,170 -> 552,172
536,172 -> 536,168 -> 536,172 -> 538,172 -> 538,164 -> 538,172 -> 540,172 -> 540,168 -> 540,172 -> 542,172 -> 542,163 -> 542,172 -> 544,172 -> 544,164 -> 544,172 -> 546,172 -> 546,171 -> 546,172 -> 548,172 -> 548,165 -> 548,172 -> 550,172 -> 550,170 -> 550,172 -> 552,172 -> 552,170 -> 552,172
536,172 -> 536,168 -> 536,172 -> 538,172 -> 538,164 -> 538,172 -> 540,172 -> 540,168 -> 540,172 -> 542,172 -> 542,163 -> 542,172 -> 544,172 -> 544,164 -> 544,172 -> 546,172 -> 546,171 -> 546,172 -> 548,172 -> 548,165 -> 548,172 -> 550,172 -> 550,170 -> 550,172 -> 552,172 -> 552,170 -> 552,172
548,134 -> 552,134
536,172 -> 536,168 -> 536,172 -> 538,172 -> 538,164 -> 538,172 -> 540,172 -> 540,168 -> 540,172 -> 542,172 -> 542,163 -> 542,172 -> 544,172 -> 544,164 -> 544,172 -> 546,172 -> 546,171 -> 546,172 -> 548,172 -> 548,165 -> 548,172 -> 550,172 -> 550,170 -> 550,172 -> 552,172 -> 552,170 -> 552,172
536,172 -> 536,168 -> 536,172 -> 538,172 -> 538,164 -> 538,172 -> 540,172 -> 540,168 -> 540,172 -> 542,172 -> 542,163 -> 542,172 -> 544,172 -> 544,164 -> 544,172 -> 546,172 -> 546,171 -> 546,172 -> 548,172 -> 548,165 -> 548,172 -> 550,172 -> 550,170 -> 550,172 -> 552,172 -> 552,170 -> 552,172
542,134 -> 546,134
518,76 -> 518,77 -> 530,77 -> 530,76
539,105 -> 539,98 -> 539,105 -> 541,105 -> 541,100 -> 541,105 -> 543,105 -> 543,103 -> 543,105 -> 545,105 -> 545,101 -> 545,105 -> 547,105 -> 547,95 -> 547,105 -> 549,105 -> 549,104 -> 549,105 -> 551,105 -> 551,99 -> 551,105 -> 553,105 -> 553,97 -> 553,105 -> 555,105 -> 555,96 -> 555,105
539,105 -> 539,98 -> 539,105 -> 541,105 -> 541,100 -> 541,105 -> 543,105 -> 543,103 -> 543,105 -> 545,105 -> 545,101 -> 545,105 -> 547,105 -> 547,95 -> 547,105 -> 549,105 -> 549,104 -> 549,105 -> 551,105 -> 551,99 -> 551,105 -> 553,105 -> 553,97 -> 553,105 -> 555,105 -> 555,96 -> 555,105
544,119 -> 549,119
527,147 -> 527,139 -> 527,147 -> 529,147 -> 529,142 -> 529,147 -> 531,147 -> 531,138 -> 531,147 -> 533,147 -> 533,137 -> 533,147 -> 535,147 -> 535,140 -> 535,147 -> 537,147 -> 537,146 -> 537,147 -> 539,147 -> 539,142 -> 539,147 -> 541,147 -> 541,140 -> 541,147
493,15 -> 493,16 -> 504,16 -> 504,15
536,172 -> 536,168 -> 536,172 -> 538,172 -> 538,164 -> 538,172 -> 540,172 -> 540,168 -> 540,172 -> 542,172 -> 542,163 -> 542,172 -> 544,172 -> 544,164 -> 544,172 -> 546,172 -> 546,171 -> 546,172 -> 548,172 -> 548,165 -> 548,172 -> 550,172 -> 550,170 -> 550,172 -> 552,172 -> 552,170 -> 552,172
542,128 -> 546,128
527,147 -> 527,139 -> 527,147 -> 529,147 -> 529,142 -> 529,147 -> 531,147 -> 531,138 -> 531,147 -> 533,147 -> 533,137 -> 533,147 -> 535,147 -> 535,140 -> 535,147 -> 537,147 -> 537,146 -> 537,147 -> 539,147 -> 539,142 -> 539,147 -> 541,147 -> 541,140 -> 541,147
539,105 -> 539,98 -> 539,105 -> 541,105 -> 541,100 -> 541,105 -> 543,105 -> 543,103 -> 543,105 -> 545,105 -> 545,101 -> 545,105 -> 547,105 -> 547,95 -> 547,105 -> 549,105 -> 549,104 -> 549,105 -> 551,105 -> 551,99 -> 551,105 -> 553,105 -> 553,97 -> 553,105 -> 555,105 -> 555,96 -> 555,105
540,91 -> 540,92 -> 547,92 -> 547,91
511,58 -> 515,58
500,34 -> 500,37 -> 496,37 -> 496,40 -> 506,40 -> 506,37 -> 504,37 -> 504,34
527,147 -> 527,139 -> 527,147 -> 529,147 -> 529,142 -> 529,147 -> 531,147 -> 531,138 -> 531,147 -> 533,147 -> 533,137 -> 533,147 -> 535,147 -> 535,140 -> 535,147 -> 537,147 -> 537,146 -> 537,147 -> 539,147 -> 539,142 -> 539,147 -> 541,147 -> 541,140 -> 541,147
527,147 -> 527,139 -> 527,147 -> 529,147 -> 529,142 -> 529,147 -> 531,147 -> 531,138 -> 531,147 -> 533,147 -> 533,137 -> 533,147 -> 535,147 -> 535,140 -> 535,147 -> 537,147 -> 537,146 -> 537,147 -> 539,147 -> 539,142 -> 539,147 -> 541,147 -> 541,140 -> 541,147
538,86 -> 542,86
521,65 -> 521,67 -> 513,67 -> 513,72 -> 526,72 -> 526,67 -> 523,67 -> 523,65
539,105 -> 539,98 -> 539,105 -> 541,105 -> 541,100 -> 541,105 -> 543,105 -> 543,103 -> 543,105 -> 545,105 -> 545,101 -> 545,105 -> 547,105 -> 547,95 -> 547,105 -> 549,105 -> 549,104 -> 549,105 -> 551,105 -> 551,99 -> 551,105 -> 553,105 -> 553,97 -> 553,105 -> 555,105 -> 555,96 -> 555,105
539,105 -> 539,98 -> 539,105 -> 541,105 -> 541,100 -> 541,105 -> 543,105 -> 543,103 -> 543,105 -> 545,105 -> 545,101 -> 545,105 -> 547,105 -> 547,95 -> 547,105 -> 549,105 -> 549,104 -> 549,105 -> 551,105 -> 551,99 -> 551,105 -> 553,105 -> 553,97 -> 553,105 -> 555,105 -> 555,96 -> 555,105
536,172 -> 536,168 -> 536,172 -> 538,172 -> 538,164 -> 538,172 -> 540,172 -> 540,168 -> 540,172 -> 542,172 -> 542,163 -> 542,172 -> 544,172 -> 544,164 -> 544,172 -> 546,172 -> 546,171 -> 546,172 -> 548,172 -> 548,165 -> 548,172 -> 550,172 -> 550,170 -> 550,172 -> 552,172 -> 552,170 -> 552,172
504,19 -> 504,23 -> 503,23 -> 503,31 -> 512,31 -> 512,23 -> 507,23 -> 507,19
536,172 -> 536,168 -> 536,172 -> 538,172 -> 538,164 -> 538,172 -> 540,172 -> 540,168 -> 540,172 -> 542,172 -> 542,163 -> 542,172 -> 544,172 -> 544,164 -> 544,172 -> 546,172 -> 546,171 -> 546,172 -> 548,172 -> 548,165 -> 548,172 -> 550,172 -> 550,170 -> 550,172 -> 552,172 -> 552,170 -> 552,172
527,147 -> 527,139 -> 527,147 -> 529,147 -> 529,142 -> 529,147 -> 531,147 -> 531,138 -> 531,147 -> 533,147 -> 533,137 -> 533,147 -> 535,147 -> 535,140 -> 535,147 -> 537,147 -> 537,146 -> 537,147 -> 539,147 -> 539,142 -> 539,147 -> 541,147 -> 541,140 -> 541,147
539,105 -> 539,98 -> 539,105 -> 541,105 -> 541,100 -> 541,105 -> 543,105 -> 543,103 -> 543,105 -> 545,105 -> 545,101 -> 545,105 -> 547,105 -> 547,95 -> 547,105 -> 549,105 -> 549,104 -> 549,105 -> 551,105 -> 551,99 -> 551,105 -> 553,105 -> 553,97 -> 553,105 -> 555,105 -> 555,96 -> 555,105
508,60 -> 512,60
517,62 -> 521,62
536,172 -> 536,168 -> 536,172 -> 538,172 -> 538,164 -> 538,172 -> 540,172 -> 540,168 -> 540,172 -> 542,172 -> 542,163 -> 542,172 -> 544,172 -> 544,164 -> 544,172 -> 546,172 -> 546,171 -> 546,172 -> 548,172 -> 548,165 -> 548,172 -> 550,172 -> 550,170 -> 550,172 -> 552,172 -> 552,170 -> 552,172
518,76 -> 518,77 -> 530,77 -> 530,76
539,105 -> 539,98 -> 539,105 -> 541,105 -> 541,100 -> 541,105 -> 543,105 -> 543,103 -> 543,105 -> 545,105 -> 545,101 -> 545,105 -> 547,105 -> 547,95 -> 547,105 -> 549,105 -> 549,104 -> 549,105 -> 551,105 -> 551,99 -> 551,105 -> 553,105 -> 553,97 -> 553,105 -> 555,105 -> 555,96 -> 555,105
539,105 -> 539,98 -> 539,105 -> 541,105 -> 541,100 -> 541,105 -> 543,105 -> 543,103 -> 543,105 -> 545,105 -> 545,101 -> 545,105 -> 547,105 -> 547,95 -> 547,105 -> 549,105 -> 549,104 -> 549,105 -> 551,105 -> 551,99 -> 551,105 -> 553,105 -> 553,97 -> 553,105 -> 555,105 -> 555,96 -> 555,105
493,15 -> 493,16 -> 504,16 -> 504,15
536,172 -> 536,168 -> 536,172 -> 538,172 -> 538,164 -> 538,172 -> 540,172 -> 540,168 -> 540,172 -> 542,172 -> 542,163 -> 542,172 -> 544,172 -> 544,164 -> 544,172 -> 546,172 -> 546,171 -> 546,172 -> 548,172 -> 548,165 -> 548,172 -> 550,172 -> 550,170 -> 550,172 -> 552,172 -> 552,170 -> 552,172
521,65 -> 521,67 -> 513,67 -> 513,72 -> 526,72 -> 526,67 -> 523,67 -> 523,65
536,172 -> 536,168 -> 536,172 -> 538,172 -> 538,164 -> 538,172 -> 540,172 -> 540,168 -> 540,172 -> 542,172 -> 542,163 -> 542,172 -> 544,172 -> 544,164 -> 544,172 -> 546,172 -> 546,171 -> 546,172 -> 548,172 -> 548,165 -> 548,172 -> 550,172 -> 550,170 -> 550,172 -> 552,172 -> 552,170 -> 552,172
527,147 -> 527,139 -> 527,147 -> 529,147 -> 529,142 -> 529,147 -> 531,147 -> 531,138 -> 531,147 -> 533,147 -> 533,137 -> 533,147 -> 535,147 -> 535,140 -> 535,147 -> 537,147 -> 537,146 -> 537,147 -> 539,147 -> 539,142 -> 539,147 -> 541,147 -> 541,140 -> 541,147
539,105 -> 539,98 -> 539,105 -> 541,105 -> 541,100 -> 541,105 -> 543,105 -> 543,103 -> 543,105 -> 545,105 -> 545,101 -> 545,105 -> 547,105 -> 547,95 -> 547,105 -> 549,105 -> 549,104 -> 549,105 -> 551,105 -> 551,99 -> 551,105 -> 553,105 -> 553,97 -> 553,105 -> 555,105 -> 555,96 -> 555,105
503,53 -> 503,50 -> 503,53 -> 505,53 -> 505,51 -> 505,53 -> 507,53 -> 507,52 -> 507,53 -> 509,53 -> 509,50 -> 509,53
539,105 -> 539,98 -> 539,105 -> 541,105 -> 541,100 -> 541,105 -> 543,105 -> 543,103 -> 543,105 -> 545,105 -> 545,101 -> 545,105 -> 547,105 -> 547,95 -> 547,105 -> 549,105 -> 549,104 -> 549,105 -> 551,105 -> 551,99 -> 551,105 -> 553,105 -> 553,97 -> 553,105 -> 555,105 -> 555,96 -> 555,105
547,116 -> 552,116
504,19 -> 504,23 -> 503,23 -> 503,31 -> 512,31 -> 512,23 -> 507,23 -> 507,19
539,150 -> 539,152 -> 534,152 -> 534,159 -> 544,159 -> 544,152 -> 543,152 -> 543,150
539,105 -> 539,98 -> 539,105 -> 541,105 -> 541,100 -> 541,105 -> 543,105 -> 543,103 -> 543,105 -> 545,105 -> 545,101 -> 545,105 -> 547,105 -> 547,95 -> 547,105 -> 549,105 -> 549,104 -> 549,105 -> 551,105 -> 551,99 -> 551,105 -> 553,105 -> 553,97 -> 553,105 -> 555,105 -> 555,96 -> 555,105
504,19 -> 504,23 -> 503,23 -> 503,31 -> 512,31 -> 512,23 -> 507,23 -> 507,19
527,147 -> 527,139 -> 527,147 -> 529,147 -> 529,142 -> 529,147 -> 531,147 -> 531,138 -> 531,147 -> 533,147 -> 533,137 -> 533,147 -> 535,147 -> 535,140 -> 535,147 -> 537,147 -> 537,146 -> 537,147 -> 539,147 -> 539,142 -> 539,147 -> 541,147 -> 541,140 -> 541,147
527,147 -> 527,139 -> 527,147 -> 529,147 -> 529,142 -> 529,147 -> 531,147 -> 531,138 -> 531,147 -> 533,147 -> 533,137 -> 533,147 -> 535,147 -> 535,140 -> 535,147 -> 537,147 -> 537,146 -> 537,147 -> 539,147 -> 539,142 -> 539,147 -> 541,147 -> 541,140 -> 541,147
539,105 -> 539,98 -> 539,105 -> 541,105 -> 541,100 -> 541,105 -> 543,105 -> 543,103 -> 543,105 -> 545,105 -> 545,101 -> 545,105 -> 547,105 -> 547,95 -> 547,105 -> 549,105 -> 549,104 -> 549,105 -> 551,105 -> 551,99 -> 551,105 -> 553,105 -> 553,97 -> 553,105 -> 555,105 -> 555,96 -> 555,105
536,172 -> 536,168 -> 536,172 -> 538,172 -> 538,164 -> 538,172 -> 540,172 -> 540,168 -> 540,172 -> 542,172 -> 542,163 -> 542,172 -> 544,172 -> 544,164 -> 544,172 -> 546,172 -> 546,171 -> 546,172 -> 548,172 -> 548,165 -> 548,172 -> 550,172 -> 550,170 -> 550,172 -> 552,172 -> 552,170 -> 552,172
536,172 -> 536,168 -> 536,172 -> 538,172 -> 538,164 -> 538,172 -> 540,172 -> 540,168 -> 540,172 -> 542,172 -> 542,163 -> 542,172 -> 544,172 -> 544,164 -> 544,172 -> 546,172 -> 546,171 -> 546,172 -> 548,172 -> 548,165 -> 548,172 -> 550,172 -> 550,170 -> 550,172 -> 552,172 -> 552,170 -> 552,172
521,65 -> 521,67 -> 513,67 -> 513,72 -> 526,72 -> 526,67 -> 523,67 -> 523,65
518,76 -> 518,77 -> 530,77 -> 530,76
503,53 -> 503,50 -> 503,53 -> 505,53 -> 505,51 -> 505,53 -> 507,53 -> 507,52 -> 507,53 -> 509,53 -> 509,50 -> 509,53
541,88 -> 545,88
504,19 -> 504,23 -> 503,23 -> 503,31 -> 512,31 -> 512,23 -> 507,23 -> 507,19
536,172 -> 536,168 -> 536,172 -> 538,172 -> 538,164 -> 538,172 -> 540,172 -> 540,168 -> 540,172 -> 542,172 -> 542,163 -> 542,172 -> 544,172 -> 544,164 -> 544,172 -> 546,172 -> 546,171 -> 546,172 -> 548,172 -> 548,165 -> 548,172 -> 550,172 -> 550,170 -> 550,172 -> 552,172 -> 552,170 -> 552,172
555,122 -> 560,122
521,65 -> 521,67 -> 513,67 -> 513,72 -> 526,72 -> 526,67 -> 523,67 -> 523,65
527,147 -> 527,139 -> 527,147 -> 529,147 -> 529,142 -> 529,147 -> 531,147 -> 531,138 -> 531,147 -> 533,147 -> 533,137 -> 533,147 -> 535,147 -> 535,140 -> 535,147 -> 537,147 -> 537,146 -> 537,147 -> 539,147 -> 539,142 -> 539,147 -> 541,147 -> 541,140 -> 541,147
532,86 -> 536,86
539,150 -> 539,152 -> 534,152 -> 534,159 -> 544,159 -> 544,152 -> 543,152 -> 543,150
536,172 -> 536,168 -> 536,172 -> 538,172 -> 538,164 -> 538,172 -> 540,172 -> 540,168 -> 540,172 -> 542,172 -> 542,163 -> 542,172 -> 544,172 -> 544,164 -> 544,172 -> 546,172 -> 546,171 -> 546,172 -> 548,172 -> 548,165 -> 548,172 -> 550,172 -> 550,170 -> 550,172 -> 552,172 -> 552,170 -> 552,172
536,172 -> 536,168 -> 536,172 -> 538,172 -> 538,164 -> 538,172 -> 540,172 -> 540,168 -> 540,172 -> 542,172 -> 542,163 -> 542,172 -> 544,172 -> 544,164 -> 544,172 -> 546,172 -> 546,171 -> 546,172 -> 548,172 -> 548,165 -> 548,172 -> 550,172 -> 550,170 -> 550,172 -> 552,172 -> 552,170 -> 552,172
539,150 -> 539,152 -> 534,152 -> 534,159 -> 544,159 -> 544,152 -> 543,152 -> 543,150
550,113 -> 555,113
554,116 -> 559,116
521,65 -> 521,67 -> 513,67 -> 513,72 -> 526,72 -> 526,67 -> 523,67 -> 523,65
527,147 -> 527,139 -> 527,147 -> 529,147 -> 529,142 -> 529,147 -> 531,147 -> 531,138 -> 531,147 -> 533,147 -> 533,137 -> 533,147 -> 535,147 -> 535,140 -> 535,147 -> 537,147 -> 537,146 -> 537,147 -> 539,147 -> 539,142 -> 539,147 -> 541,147 -> 541,140 -> 541,147
514,60 -> 518,60
539,105 -> 539,98 -> 539,105 -> 541,105 -> 541,100 -> 541,105 -> 543,105 -> 543,103 -> 543,105 -> 545,105 -> 545,101 -> 545,105 -> 547,105 -> 547,95 -> 547,105 -> 549,105 -> 549,104 -> 549,105 -> 551,105 -> 551,99 -> 551,105 -> 553,105 -> 553,97 -> 553,105 -> 555,105 -> 555,96 -> 555,105
535,84 -> 539,84
521,65 -> 521,67 -> 513,67 -> 513,72 -> 526,72 -> 526,67 -> 523,67 -> 523,65
511,62 -> 515,62
503,53 -> 503,50 -> 503,53 -> 505,53 -> 505,51 -> 505,53 -> 507,53 -> 507,52 -> 507,53 -> 509,53 -> 509,50 -> 509,53
536,172 -> 536,168 -> 536,172 -> 538,172 -> 538,164 -> 538,172 -> 540,172 -> 540,168 -> 540,172 -> 542,172 -> 542,163 -> 542,172 -> 544,172 -> 544,164 -> 544,172 -> 546,172 -> 546,171 -> 546,172 -> 548,172 -> 548,165 -> 548,172 -> 550,172 -> 550,170 -> 550,172 -> 552,172 -> 552,170 -> 552,172
539,105 -> 539,98 -> 539,105 -> 541,105 -> 541,100 -> 541,105 -> 543,105 -> 543,103 -> 543,105 -> 545,105 -> 545,101 -> 545,105 -> 547,105 -> 547,95 -> 547,105 -> 549,105 -> 549,104 -> 549,105 -> 551,105 -> 551,99 -> 551,105 -> 553,105 -> 553,97 -> 553,105 -> 555,105 -> 555,96 -> 555,105
527,147 -> 527,139 -> 527,147 -> 529,147 -> 529,142 -> 529,147 -> 531,147 -> 531,138 -> 531,147 -> 533,147 -> 533,137 -> 533,147 -> 535,147 -> 535,140 -> 535,147 -> 537,147 -> 537,146 -> 537,147 -> 539,147 -> 539,142 -> 539,147 -> 541,147 -> 541,140 -> 541,147
529,80 -> 533,80
545,131 -> 549,131
503,53 -> 503,50 -> 503,53 -> 505,53 -> 505,51 -> 505,53 -> 507,53 -> 507,52 -> 507,53 -> 509,53 -> 509,50 -> 509,53
527,147 -> 527,139 -> 527,147 -> 529,147 -> 529,142 -> 529,147 -> 531,147 -> 531,138 -> 531,147 -> 533,147 -> 533,137 -> 533,147 -> 535,147 -> 535,140 -> 535,147 -> 537,147 -> 537,146 -> 537,147 -> 539,147 -> 539,142 -> 539,147 -> 541,147 -> 541,140 -> 541,147
504,19 -> 504,23 -> 503,23 -> 503,31 -> 512,31 -> 512,23 -> 507,23 -> 507,19
539,150 -> 539,152 -> 534,152 -> 534,159 -> 544,159 -> 544,152 -> 543,152 -> 543,150
536,172 -> 536,168 -> 536,172 -> 538,172 -> 538,164 -> 538,172 -> 540,172 -> 540,168 -> 540,172 -> 542,172 -> 542,163 -> 542,172 -> 544,172 -> 544,164 -> 544,172 -> 546,172 -> 546,171 -> 546,172 -> 548,172 -> 548,165 -> 548,172 -> 550,172 -> 550,170 -> 550,172 -> 552,172 -> 552,170 -> 552,172
554,110 -> 563,110
539,105 -> 539,98 -> 539,105 -> 541,105 -> 541,100 -> 541,105 -> 543,105 -> 543,103 -> 543,105 -> 545,105 -> 545,101 -> 545,105 -> 547,105 -> 547,95 -> 547,105 -> 549,105 -> 549,104 -> 549,105 -> 551,105 -> 551,99 -> 551,105 -> 553,105 -> 553,97 -> 553,105 -> 555,105 -> 555,96 -> 555,105
493,15 -> 493,16 -> 504,16 -> 504,15
529,88 -> 533,88
527,147 -> 527,139 -> 527,147 -> 529,147 -> 529,142 -> 529,147 -> 531,147 -> 531,138 -> 531,147 -> 533,147 -> 533,137 -> 533,147 -> 535,147 -> 535,140 -> 535,147 -> 537,147 -> 537,146 -> 537,147 -> 539,147 -> 539,142 -> 539,147 -> 541,147 -> 541,140 -> 541,147
536,134 -> 540,134
500,34 -> 500,37 -> 496,37 -> 496,40 -> 506,40 -> 506,37 -> 504,37 -> 504,34
520,86 -> 524,86"""