Compare commits

...

38 Commits

Author SHA1 Message Date
Christian
1d9dc696a8 Day 16: Early exit search loop 2025-01-24 22:52:32 +01:00
Christian
9654c59bfd Day 16: Use two stacks instead of PQ 2025-01-24 17:24:56 +01:00
Christian
65b220007e Eternal builds 2024-12-28 22:45:09 +01:00
Christian
3515ad8d11 Day 24.... cleanup 2024-12-28 14:19:44 +01:00
Christian
76367959ae Day 24 ... overfit 2024-12-28 14:15:13 +01:00
Christian
3c6824e070 Day 25 2024-12-25 08:35:30 +01:00
Christian
d1079b00b2 Day 23 2024-12-23 12:56:47 +01:00
Christian
843bfcb2c3 Day 22 2024-12-22 17:44:41 +01:00
Christian
6db15ba9af Day 21 2024-12-21 20:01:19 +01:00
Christian
58710aca7a Day 20 shave off some cycles 2024-12-20 20:52:05 +01:00
Christian
cdf14fdada Day 20 faster? 2024-12-20 16:38:26 +01:00
Christian
4e20f541f9 Day 20 slooooow 2024-12-20 13:24:10 +01:00
Christian
57852ccfc1 Cleanup 2024-12-19 10:14:53 +01:00
Christian
0198ead034 Day 19 2024-12-19 08:48:43 +01:00
Christian
71804973b0 Day 18 2024-12-18 12:37:04 +01:00
Christian
e435a7b160 Day 17 2024-12-17 12:49:00 +01:00
Christian
f703a5f028 Day 16 2024-12-16 12:17:01 +01:00
Christian
51b49018e4 Revert "Day 11 (Make fast when hot)"
This reverts commit 7bd424d1f9.
2024-12-15 12:42:06 +01:00
Christian
558b9f33be More pretty 2024-12-15 12:33:30 +01:00
Christian
7bd424d1f9 Day 11 (Make fast when hot) 2024-12-15 12:31:08 +01:00
Christian
10d9d3452f Day 15 2024-12-15 12:06:12 +01:00
Christian
38927a7889 Day 14 Mathy solution 2024-12-14 21:27:33 +01:00
Christian
54c29d49bf Codegolf it a bit 2024-12-14 19:51:50 +01:00
Christian
2aadf58582 Day 14 2024-12-14 10:40:00 +01:00
Christian
9593204edb Make fast 2024-12-13 14:50:13 +01:00
Christian
c9d89a2b7e Day 13 2024-12-13 08:27:43 +01:00
Christian
b00c5c369e Day 12, at least it works 2024-12-12 21:43:44 +01:00
Christian
2f960f83eb More cleanup 2024-12-11 08:56:38 +01:00
Christian
ca68f92433 Cleanup 2024-12-11 08:53:10 +01:00
Christian
87b67449b2 Day 11 2024-12-11 07:56:37 +01:00
Christian
1715e821fb Use library methods 2024-12-10 14:06:45 +01:00
Christian
ca5831b022 Cheat (by doing all the work in preprocessing) 2024-12-10 07:32:46 +01:00
Christian
9e2aca403f Day 10 2024-12-10 07:13:38 +01:00
Christian
4c675c3ffe Make Day 7 faster 2024-12-09 17:58:13 +01:00
Christian
eee695007d Cleanup 2024-12-09 11:14:11 +01:00
Christian
24e925c27d Fix bad PQ access pattern 2024-12-09 09:58:46 +01:00
Christian
df56303309 .... Add data for Day 9 .... 2024-12-09 09:33:00 +01:00
Christian
ad594016cd Day 09 2024-12-09 09:30:25 +01:00
64 changed files with 17043 additions and 38 deletions

View File

@@ -4,8 +4,8 @@ language: "scala"
dockerfile: "Dockerfile"
code: "/code"
workdir: "/code"
runonce: "./mill aoc.assembly"
cmd: "java -jar ./out/aoc/assembly.dest/out.jar %day% %input%"
runonce: "./mill aoc.nativeImage"
cmd: "./out/aoc/nativeImage.dest/aoc %day% %input%"
environment:
- AOC_BENCH=1
daypath: "aoc/src/dev/ctsk/aoc/days/Day%dayzero%.scala"

View File

@@ -1,9 +1,15 @@
FROM eclipse-temurin:23-jdk-alpine
FROM eclipse-temurin:23-jdk
RUN apk add curl
RUN apt-get update && apt-get install -y curl gzip build-essential libz-dev
RUN curl -fL "https://github.com/coursier/launchers/raw/master/cs-x86_64-pc-linux.gz" | gzip -d > cs
RUN chmod +x cs
RUN cp cs /usr/local/bin
RUN ./cs setup --yes
COPY . /build
WORKDIR /build
RUN ./mill aoc.assembly
RUN ./mill aoc.nativeImage

View File

@@ -0,0 +1,27 @@
package dev.ctsk.aoc
import scala.collection.mutable
case class DisjointSets[A](members: Seq[A]):
private val parent = mutable.Map.from(members.zip(members))
private val rank = mutable.Map.from(members.map(_ -> 1))
def joint(m1: A, m2: A): Boolean = find(m1) == find(m2)
def find(member: A): A =
val up = parent(member)
if up == member then up
else {
val root = find(up); parent(member) = root; root
}
def union(m1: A, m2: A): Unit =
val p1 = find(m1);
val p2 = find(m2)
if p1 == p2 then return
val r1 = rank(p1);
val r2 = rank(p2)
r1.compare(r2) match
case k if k < 0 => parent(p1) = p2
case 0 => parent(p1) = p2; rank(p2) += 1
case k if k > 0 => parent(p2) = p1

View File

@@ -1,14 +1,31 @@
package dev.ctsk.aoc
import scala.reflect.ClassTag
object Point:
def of(x: Long, y: Long): Point = Point(x.toInt, y.toInt)
case class Point(x: Int, y: Int):
def +(o: Point): Point = Point(x + o.x, y + o.y)
def -(o: Point): Point = Point(x - o.x, y - o.y)
def *(n: Int): Point = Point(n * x, n * y)
def reduce: Point = { val g = gcd(x.abs, y.abs); Point(x / g, y / g) }
def manhattan: Int = x.abs + y.abs
val DIRS = Seq(Direction.Up, Direction.Right, Direction.Down, Direction.Left)
object Direction:
def from(c: Char): Direction =
c match
case '>' => Direction.Right
case '<' => Direction.Left
case '^' => Direction.Up
case 'v' => Direction.Down
enum Direction:
case Up, Right, Down, Left
def turnRight: Direction = Direction.fromOrdinal((ordinal + 1) % 4)
def turnLeft: Direction = Direction.fromOrdinal((ordinal - 1 + 4) % 4)
def toPoint: Point =
this match
@@ -29,6 +46,7 @@ enum Direction:
case Left => Right
case class Pose(pos: Point, dir: Direction):
def turnLeft: Pose = Pose(pos, dir.turnLeft)
def turnRight: Pose = Pose(pos, dir.turnRight)
def step: Pose = Pose(dir(pos), dir)
def step(n: Int): Pose = Pose(dir.applyN(pos, n), dir)
@@ -61,3 +79,18 @@ class Grid[A](val data: Array[Array[A]]):
def contains(p: Point): Boolean =
p.x >= 0 && p.y >= 0 && p.x < height && p.y < width
def points: Seq[Point] =
for
x <- data.indices
y <- data(x).indices
yield Point(x, y)
def fill(value: A): Unit =
for
row <- 0 until height
col <- 0 until width
do data(row)(col) = value
def sameSizeWith[B: ClassTag](value: B) =
Grid(Array.fill(height, width)(value))

View File

@@ -10,7 +10,24 @@ val solvers = Map[Int, Solver](
5 -> Day05,
6 -> Day06,
7 -> Day07,
8 -> Day08
8 -> Day08,
9 -> Day09,
10 -> Day10,
11 -> Day11,
12 -> Day12,
13 -> Day13,
14 -> Day14,
15 -> Day15,
16 -> Day16,
17 -> Day17,
18 -> Day18,
19 -> Day19,
20 -> Day20,
21 -> Day21,
22 -> Day22,
23 -> Day23,
24 -> Day24,
25 -> Day25
)
def runSolver(solver: Solver, input: os.Path): Unit =
@@ -20,15 +37,22 @@ def runSolver(solver: Solver, input: os.Path): Unit =
println(solution.p1)
println(solution.p2)
case None =>
println(f"Preprocessing: ${timings.prep}%24s μs")
println(f"Part 1: ${solution.p1}%15s ${timings.p1}%15s μs")
println(f"Part 2: ${solution.p2}%15s ${timings.p2}%15s μs")
println(f"=============================================================")
println(
f"Day ${solver.day}%02d ------------------------------------------------------"
)
println(f"Prep ${timings.prep}%53s μs")
println(f"Part 1 ${solution.p1}%40s ${timings.p1}%10s μs")
println(f"Part 2 ${solution.p2}%40s ${timings.p2}%10s μs")
println(f"-------------------------------------------------------------")
println(f"Total ${timings.total}%52s μs")
println(f"=============================================================")
@main def main(day: String, input: String): Unit =
val num = """(\d+)""".r
day match
case "all" =>
solvers.foreach { case (day, solver) =>
solvers.toList.sortBy(_._1).foreach { case (day, solver) =>
runSolver(solver, os.Path(input, os.pwd) / f"$day%02d.in")
}
case num(_) =>

View File

@@ -0,0 +1,11 @@
package dev.ctsk.aoc
import scala.collection.mutable
object Memo:
def Y[I, O](f: (I, I => O) => O): I => O =
lazy val yf: I => O = Memo(f(_, yf(_))); yf
class Memo[-I, +O](f: I => O) extends (I => O):
private[this] val memo = mutable.Map.empty[I, O]
def apply(i: I): O = { lazy val o = f(i); memo.getOrElseUpdate(i, o) }

View File

@@ -1,6 +1,6 @@
package dev.ctsk.aoc
def NAT_REGEX = """(\d+)""".r
def NAT_REGEX = """(-?\d+)""".r
def longs(string: String): Vector[Long] =
NAT_REGEX.findAllIn(string).map(_.toLong).toVector

View File

@@ -1,10 +1,11 @@
package dev.ctsk.aoc
case class Timings(prep: Long, p1: Long, p2: Long)
case class Timings(prep: Long, p1: Long, p2: Long):
def total: Long = prep + p1 + p2
case class Solution(p1: Object, p2: Object)
abstract class Solver(day: Int):
abstract class Solver(val day: Int):
def run(input: os.ReadablePath): (Timings, Solution)
def timed[A](solution: => A): (Long, A) =

View File

@@ -0,0 +1,25 @@
package dev.ctsk.aoc
import scala.collection.mutable
class Trie(
var isPrefix: Boolean = false,
var children: mutable.Map[Char, Trie] = mutable.Map.empty
):
def insert(w: String, pos: Int = 0): Unit =
if pos == w.length
then isPrefix = true
else
children.get(w(pos)) match
case Some(child) => child.insert(w, pos + 1)
case None =>
val child = Trie()
children(w(pos)) = child
child.insert(w, pos + 1)
def prefixes(w: String, pos: Int = 0, acc: List[Int] = Nil): List[Int] =
val newAcc = if isPrefix then pos +: acc else acc
if pos >= w.length then return newAcc
children.get(w(pos)) match
case None => newAcc
case Some(child) => child.prefixes(w, pos + 1, newAcc)

View File

@@ -2,3 +2,12 @@ package dev.ctsk.aoc
def gcd(a: Int, b: Int): Int =
if b == 0 then a else gcd(b, a % b)
extension [A](xs: Seq[A])
def pairs: Iterator[(A, A)] =
xs.combinations(2).map(xs => (xs(0), xs(1)))
def eea(a: Int, b: Int): (Int, Int, Int) =
if b == 0 then return (a, 1, 0)
val (d, x, y) = eea(b, a % b)
(d, y, x - y * (a / b))

View File

@@ -24,9 +24,7 @@ object Day05 extends Solver(5):
@nowarn("msg=match may not be exhaustive")
def isOrdered(u: Vector[Int]): Boolean =
!u.combinations(2).exists { case Seq(a, b) =>
rules.contains((b, a))
}
!u.pairs.exists((a, b) => rules.contains((b, a)))
def findMiddle(u: Vector[Int]): Int =
u.find(e =>

View File

@@ -8,33 +8,47 @@ object Day07 extends Solver(7):
while m * 10 <= b do m *= 10
a * (m * 10) + b
def deconcat(a: Long, b: Long): Option[Long] =
val b_len = Math.log10(b).floor.toLong + 1
if (a % Math.pow(10, b_len).toLong == b)
then Some(a / Math.pow(10, b_len).toLong)
else None
class Searcher(target: Long, nums: Vector[Long], elephants: Boolean):
def search(acc: Long = nums(0), pos: Int = 1): Boolean =
if (pos >= nums.length) return acc == target
if (acc > target) return false
search(acc + nums(pos), pos + 1)
|| search(acc * nums(pos), pos + 1)
|| (elephants && search(concat(acc, nums(pos)), pos + 1))
|| search(acc * nums(pos), pos + 1)
|| (elephants && search(concat(acc, nums(pos)), pos + 1))
class Tester(nums: Vector[Long], elephants: Boolean):
def test(target: Long, pos: Int = nums.length - 1): Boolean =
if pos == 0 then return target == nums(0)
if target <= 0 then return false
test(target - nums(pos), pos - 1)
|| (target % nums(pos) == 0 && test(target / nums(pos), pos - 1))
|| (elephants && deconcat(target, nums(pos)).exists(test(_, pos - 1)))
def check(target: Long, nums: Vector[Long], thirdElephant: Boolean): Boolean =
if nums.contains(0)
then Searcher(target, nums, thirdElephant).search()
else Tester(nums, thirdElephant).test(target)
def run(input: os.ReadablePath): (Timings, Solution) =
val REGEX = """(\d+): (.*)""".r
val (pre_time, in) = timed {
os.read.lines(input).map {
case REGEX(value, rest) => (value.toLong, longs(rest))
}.toVector
os.read
.lines(input)
.map { case REGEX(value, rest) => (value.toLong, longs(rest)) }
.toVector
}
val (p1_time, p1_solution) = timed {
in
.filter((target, nums) => Searcher(target, nums, false).search())
.map(_.head)
.sum
in.filter(p => check(p._1, p._2, false)).map(_.head).sum
}
val (p2_time, p2_solution) = timed {
in
.filter((target, nums) => Searcher(target, nums, true).search())
.map(_.head)
.sum
in.filter(p => check(p._1, p._2, true)).map(_.head).sum
}
(

View File

@@ -2,16 +2,12 @@ package dev.ctsk.aoc.days
import dev.ctsk.aoc._
extension [A](xs: Seq[A])
def pairs: Iterator[(A, A)] =
xs.combinations(2).map(xs => (xs(0), xs(1)))
object Day08 extends Solver(8):
type Input = (Vector[Vector[Point]], Grid[Char])
case class Ctx(f: os.ReadablePath):
val grid = Grid(os.read.lines(f).map(_.toArray).toArray)
val antennae =
private val grid = Grid(os.read.lines(f).map(_.toArray).toArray)
private val antennae =
grid.find(_ != '.').groupBy(grid(_)).map(_._2.toVector).toVector
def antinodes(a: Point, b: Point): Iterator[Point] =
@@ -26,13 +22,13 @@ object Day08 extends Solver(8):
.flatMap((a, b) => Iterator(a + a - b, b + b - a))
.filter(grid.contains)
)
.toSet
.distinct
.size
def part2: Int =
antennae
.flatMap(_.pairs.flatMap(p => antinodes(p._1, p._2)))
.toSet
.distinct
.size
def run(input: os.ReadablePath): (Timings, Solution) =
val (pre_time, ctx) = timed { Ctx(input) }

View File

@@ -0,0 +1,70 @@
package dev.ctsk.aoc.days
import dev.ctsk.aoc.*
import scala.annotation.tailrec
import scala.collection.mutable
object Day09 extends Solver(9):
implicit def ord: Ordering[Record] = Ordering.by(-1 * _.offset)
case class Record(offset: Int, size: Int, id: Int):
def checksum: Long = id.toLong * (size * offset + size * (size - 1) / 2)
case class GapMap(data: Map[Int, mutable.PriorityQueue[Record]]):
def relocate(record: Record): Record =
val bucket = data.view
.filter((gapSize, gaps) => gapSize >= record.size && gaps.nonEmpty)
.maxByOption(_._2.head)
bucket match
case None => record
case Some((gapSize, gaps)) =>
val gap = gaps.dequeue()
if gap.offset >= record.offset then return record
val rest = gapSize - record.size
if rest > 0 then
data(rest).enqueue(Record(gap.offset + record.size, rest, -1))
Record(gap.offset, record.size, record.id)
def part1(input: Array[Int]): Long =
val materialized = input.zipWithIndex.flatMap((x, i) =>
if i % 2 == 0
then Iterator.fill(x)(i / 2)
else Iterator.fill(x)(-1)
)
@tailrec
def compact(l: Int = 0, r: Int = materialized.length - 1): Unit =
if l >= r then return ()
if materialized(l) != -1 then return compact(l + 1, r)
if materialized(r) == -1 then return compact(l, r - 1)
materialized(l) = materialized(r); materialized(r) = -1
compact(l + 1, r - 1)
compact()
materialized.zipWithIndex.filter(_._1 != -1).map(_.toLong * _.toLong).sum
def part2(input: Array[Int]): Long =
val offsets = input.scanLeft(0)(_ + _).toArray
val (gaps, files) = input.zip(offsets).zipWithIndex.partitionMap {
case ((value, offset), index) =>
if index % 2 == 0
then Right(Record(offset, value, index / 2))
else Left(Record(offset, value, -1))
}
val gapMap = GapMap(
gaps.groupBy(_.size).view.mapValues(mutable.PriorityQueue.from).toMap
)
files.reverse.map(gapMap.relocate).map(_.checksum).sum
def run(input: os.ReadablePath): (Timings, Solution) =
val disk = os.read.lines(input)(0).map(_.asDigit).toArray
val (p1_time, p1_solution) = timed { part1(disk) }
val (p2_time, p2_solution) = timed { part2(disk) }
(
Timings(0, p1_time, p2_time),
Solution(Long.box(p1_solution), Long.box(p2_solution))
)

View File

@@ -0,0 +1,34 @@
package dev.ctsk.aoc.days
import dev.ctsk.aoc._
import dev.ctsk.aoc.Direction._
object Day10 extends Solver(10):
type Input = Vector[(Point, Point)]
def pre(input: os.ReadablePath): Input =
val grid = Grid(os.read.lines(input).map(_.toArray).toArray)
def step(seq: Input, height: Int): Input =
(for
(p, origin) <- seq
a <- Seq(Up, Down, Left, Right)
if grid(a(p)).exists(_.asDigit == height)
yield (a(p), origin)).toVector
val zero = grid.find(_ == '0').toVector
(1 to 9).foldLeft(zero.zip(zero)) { case (acc, h) => step(acc, h) }
def part1(input: Input): Int = input.distinct.size
def part2(input: Input): Int = input.size
def run(input: os.ReadablePath): (Timings, Solution) =
val (pre_time, pre_input) = timed { pre(input) }
val (p1_time, p1_solution) = timed { part1(pre_input) }
val (p2_time, p2_solution) = timed { part2(pre_input) }
(
Timings(pre_time, p1_time, p2_time),
Solution(Int.box(p1_solution), Int.box(p2_solution))
)

View File

@@ -0,0 +1,40 @@
package dev.ctsk.aoc.days
import dev.ctsk.aoc._
import scala.collection.mutable.{Map => MuMap}
object Day11 extends Solver(11):
private def halves(n: Long): Option[(Long, Long)] =
val numDigits = (Math.log10(n) + 1).toLong
if numDigits % 2 == 1 then None
else
val mod = Math.pow(10, numDigits / 2).toLong
Some(n % mod, n / mod)
private def count(initial: Seq[Long], depth: Int): Long =
def step(stones: MuMap[Long, Long]): MuMap[Long, Long] =
val next = MuMap.empty[Long, Long].withDefaultValue(0L)
for ((stone, count) <- stones) {
if stone == 0 then next(1) += count
else
halves(stone) match
case Some((a, b)) =>
next(a) += count
next(b) += count
case None =>
next(stone * 2024) += count
}
next
val initMap = MuMap.from(initial.map((_, 1L)))
Seq.iterate(initMap, depth + 1)(step).last.values.sum
def run(input: os.ReadablePath): (Timings, Solution) =
val (pre_time, in) = timed { longs(os.read.lines(input).head) }
val (p1_time, p1_solution) = timed { count(in, 25) }
val (p2_time, p2_solution) = timed { count(in, 75) }
(
Timings(pre_time, p1_time, p2_time),
Solution(Long.box(p1_solution), Long.box(p2_solution))
)

View File

@@ -0,0 +1,77 @@
package dev.ctsk.aoc.days
import dev.ctsk.aoc.*
import dev.ctsk.aoc.Direction.*
import collection.mutable
import scala.collection.mutable.ArrayBuffer
object Day12 extends Solver(12):
case class Plots(
layout: Grid[Int],
edges: Map[Int, Array[(Point, Direction)]],
sizes: Map[Int, Int]
)
def mapPlots(grid: Grid[Char]): Plots =
val layout = Grid(Array.fill(grid.height, grid.width)(-1))
val edges = mutable.Map.empty[Int, Array[(Point, Direction)]]
val sizes = mutable.Map.empty[Int, Int]
def fill(start: Point, label: Int): Unit =
layout(start) = label
val edge = ArrayBuffer.empty[(Point, Direction)]
val plant = grid(start).get
var size = 1
def rec(current: Point): Unit =
for
dir <- Seq(Up, Down, Left, Right)
next = dir(current)
do
grid(next) match
case Some(p) if p == plant =>
if layout(next).contains(-1) then {
layout(next) = label
size += 1
rec(next)
}
case Some(_) => edge += ((current, dir))
case None => edge += ((current, dir))
rec(start)
edges(label) = edge.toArray
sizes(label) = size
for
p <- grid.points
if layout(p).contains(-1)
do fill(p, sizes.size)
// grid.points.zipWithIndex.foreach(fill)
Plots(layout, edges.toMap, sizes.toMap)
def part1(plots: Plots): Int =
plots.sizes.map((k, v) => v * plots.edges(k).length).sum
def part2(plots: Plots): Int =
def is(pt: Point, id: Int): Boolean = plots.layout(pt).contains(id)
def cost(id: Int, size: Int): Int =
size * plots
.edges(id)
.map((pt, dir) =>
Seq(dir.turnLeft(pt), dir.turnRight(pt))
.count(adj => is(dir(adj), id) || !is(adj, id))
)
.sum / 2
plots.sizes.map(cost).sum
override def run(input: os.ReadablePath): (Timings, Solution) =
val grid = Grid(os.read.lines(input).map(_.toArray).toArray)
val (pre_time, plots) = timed { mapPlots(grid) }
val (p1_time, p1_solution) = timed { part1(plots) }
val (p2_time, p2_solution) = timed { part2(plots) }
(
Timings(pre_time, p1_time, p2_time),
Solution(Int.box(p1_solution), Int.box(p2_solution))
)

View File

@@ -0,0 +1,32 @@
package dev.ctsk.aoc.days
import dev.ctsk.aoc.*
import os.ReadablePath
object Day13 extends Solver(13):
def solve(machine: Vector[Long], error: Long = 0): Option[(Long, Long)] =
val Vector(ax, ay, bx, by, px_, py_) = machine
val (px, py) = (px_ + error, py_ + error)
val j = (py * ax - px * ay) / (ax * by - bx * ay)
val i = (px * by - py * bx) / (ax * by - bx * ay)
Option.when(i * ax + j * bx == px && i * ay + j * by == py)((i, j))
override def run(input: ReadablePath): (Timings, Solution) =
def inRange(i: Long, j: Long) =
(0 to 100 contains i) && (0 to 100 contains j)
val (pre_time, machines) = timed { os.read(input).split("\n\n").map(longs) }
val (p1_time, p1) = timed {
machines
.map(solve(_))
.collect { case Some(i, j) if inRange(i, j) => i * 3 + j }
.sum
}
val ERR = 10000000000000L
val (p2_time, p2) = timed {
machines.map(solve(_, ERR)).collect { case Some(i, j) => i * 3 + j }.sum
}
(Timings(pre_time, p1_time, p2_time), Solution(Long.box(p1), Long.box(p2)))

View File

@@ -0,0 +1,44 @@
package dev.ctsk.aoc.days
import dev.ctsk.aoc._
import os.ReadablePath
def mu(arr: Seq[Int]) = arr.sum * 1.0 / arr.length
def va(arr: Seq[Int]) = { val m = mu(arr); arr.map(v => (v - m) * (v - m)).sum }
object Day14 extends Solver(14):
private val Y = 101
private val X = 103
def go(robot: (Point, Point), time: Int): Point =
val dst = robot._1 + robot._2 * time
Point((dst.x % X + X) % X, (dst.y % Y + Y) % Y)
def part1(robots: Array[(Point, Point)]): Int =
val end = robots.map(go(_, 100))
val ul = end.count(v => v._1 < X / 2 && v._2 < Y / 2)
val ur = end.count(v => v._1 < X / 2 && v._2 > Y / 2)
val dl = end.count(v => v._1 > X / 2 && v._2 < Y / 2)
val dr = end.count(v => v._1 > X / 2 && v._2 > Y / 2)
ul * ur * dl * dr
def part2(robots: Array[(Point, Point)]): Int =
val xo = (0 to 103).minBy(t => va(robots.map(go(_, t).x).take(50)))
val yo = (0 to 103).minBy(t => va(robots.map(go(_, t).y).take(50)))
val (_, iX, iY) = eea(X, Y)
(xo * iY * Y + yo * iX * X) % (X * Y)
override def run(input: ReadablePath): (Timings, Solution) =
def parse(line: String): (Point, Point) =
longs(line) match {
case Vector(y, x, dy, dx) => (Point.of(x, y), Point.of(dx, dy))
}
val (pre_time, robots) = timed { os.read.lines(input).map(parse).toArray }
val (p1_time, p1) = timed { part1(robots) }
val (p2_time, p2) = timed { part2(robots) }
(
Timings(pre_time, p1_time, p2_time),
Solution(Int.box(p1), Int.box(p2))
)

View File

@@ -0,0 +1,88 @@
package dev.ctsk.aoc.days
import dev.ctsk.aoc._
import dev.ctsk.aoc.Direction._
object Day15 extends Solver(15):
case class Input(grid: Grid[Char], moves: Seq[Direction])
def pre(input: os.ReadablePath): Input =
val Array(map_, moves_) = os.read(input).split("\n\n")
Input(
Grid(map_.linesIterator.map(_.toArray).toArray),
moves_.filter(_ != '\n').map(Direction.from)
)
def part1(input: Input): Int =
val grid = Grid(input.grid.data.map(_.clone))
var cur = grid.findFirst(_ == '@').get
for move <- input.moves do
val dst = Iterator
.iterate(cur)(move(_))
.takeWhile(!grid(_).contains('#'))
.find(grid(_).contains('.'))
dst match
case Some(dst) =>
grid(dst) = grid(move(cur)).get
grid(move(cur)) = grid(cur).get
grid(cur) = '.'; cur = move(cur)
case None => ()
grid.find(_ == 'O').map(p => 100 * p.x + p.y).sum
def part2(input: Input): Int =
val Input(grid_, moves) = input
val grid = Grid(
grid_.data.map(
_.flatMap {
case 'O' => "[]"
case '.' => ".."
case '@' => "@."
case '#' => "##"
}
)
)
def blocked(p: Point): Boolean = grid(p).contains('#')
def free(p: Point): Boolean = grid(p).contains('.')
def clear(p: Point): Unit = { grid(p) = '.' }
def shift(d: Direction, p: Point): Unit = { grid(d(p)) = grid(p).get; clear(p) }
def extend(p: Point): Seq[Point] =
grid(p).get match {
case '[' => Seq(p, Right(p))
case ']' => Seq(Left(p), p)
case c => Seq(p)
}
def push(move: Direction, cur: Point): Boolean =
move match
case Left | Right =>
def step(cur: Point): Boolean =
if free(cur) then return true
if blocked(cur) then return false
if step(move(cur)) then { shift(move, cur); true }
else false
step(cur)
case Up | Down =>
def step(cur: Set[Point]): Boolean =
if cur.isEmpty then return true
if cur.exists(blocked) then return false
val next = cur.map(move(_)).filterNot(free).flatMap(extend)
if step(next) then { cur.foreach { shift(move, _) }; true }
else false
step(Set(cur))
var cur = grid.findFirst(_ == '@').get
for (move <- moves) do if push(move, cur) then { cur = move(cur) }
grid.find(_ == '[').map(p => 100 * p.x + p.y).sum
override def run(input_ : os.ReadablePath): (Timings, Solution) =
val (pre_time, input) = timed { pre(input_) }
val (p1_time, p1_solution) = timed { part1(input) }
val (p2_time, p2_solution) = timed { part2(input) }
(
Timings(pre_time, p1_time, p2_time),
Solution(Int.box(p1_solution), Int.box(p2_solution))
)

View File

@@ -0,0 +1,78 @@
package dev.ctsk.aoc.days
import dev.ctsk.aoc.{Direction, *}
import scala.collection.mutable
import scala.util.boundary
import scala.util.boundary.break
object Day16 extends Solver(16):
override def run(input_ : os.ReadablePath): (Timings, Solution) =
val (pre_time, grid) = timed {
Grid(os.read.lines(input_).map(_.toArray).toArray)
}
val start = grid.findFirst(_ == 'S').get
val end = grid.findFirst(_ == 'E').get
case class State(distance: Int, pose: Pose)
def search(start: Pose): (Map[Pose, Int], Map[Pose, List[Pose]]) =
val distance = mutable.Map(start -> 0)
val ancestor = mutable.Map.empty[Pose, List[Pose]]
var near = mutable.Stack(State(0, start))
var far = mutable.Stack.empty[State]
inline def relax(u: Pose, v: Pose, vDist: Int, isFar: Boolean): Unit =
val oldDist = distance.getOrElse(v, 1_000_000)
if vDist == oldDist then ancestor(v) +:= u
if vDist < oldDist then
ancestor(v) = List(u)
distance(v) = vDist
if isFar
then far.push(State(vDist, v))
else near.push(State(vDist, v))
boundary:
while near.nonEmpty do
var atEnd = false;
while near.nonEmpty do
val State(uDist, u) = near.pop()
atEnd |= u.pos == end
if uDist == distance(u) then
if !grid(u.step.pos).contains('#') then
relax(u, u.step, uDist + 1, false)
for (v <- Seq(u.turnLeft, u.turnRight)) do
relax(u, v, uDist + 1000, true)
if atEnd then break()
val tmp = near
near = far
far = tmp
(distance.toMap, ancestor.toMap)
val (p1_time, (distance, ancestor)) = timed {
search(Pose(start, Direction.Right))
}
val endPose = DIRS.map(Pose(end, _)).minBy(distance.getOrElse(_, 1_000_000))
val p1 = distance(endPose)
val (p2_time, p2) = timed {
val all = mutable.Set(endPose)
var cur = Set(endPose)
while cur.nonEmpty do
cur = cur.filter(_ != Pose(start, Direction.Right)).flatMap(ancestor(_))
all.addAll(cur)
all.map(_.pos).size
}
(
Timings(0, p1_time, p2_time),
Solution(Int.box(p1), Int.box(p2))
)

View File

@@ -0,0 +1,75 @@
package dev.ctsk.aoc.days
import dev.ctsk.aoc.*
import scala.util.boundary
import scala.util.boundary.break
object Day17 extends Solver(17):
case class Machine(var code: IndexedSeq[Long]):
def execute(
registers: Map[Char, Long],
output: Option[Int] = None
): Vector[Long] =
val reg = Array.from(registers).sorted.map(_._2)
var pc = 0
def combo(i: Long): Long =
i match
case i if i <= 3 => i
case i if i > 3 && i <= 6 => reg(i.toInt - 4)
var out = Vector.empty[Long]
boundary:
while pc < code.length do
code(pc) match
case 0 => reg(0) >>= combo(code(pc + 1)); pc += 2
case 1 => reg(1) ^= code(pc + 1); pc += 2
case 2 => reg(1) = combo(code(pc + 1)) % 8; pc += 2
case 3 => if reg(0) != 0 then pc = code(pc + 1).toInt else pc += 2
case 4 => reg(1) = reg(1) ^ reg(2); pc += 2
case 5 =>
out :+= combo(code(pc + 1)) % 8;
if output.exists(_ >= out.length) then break()
pc += 2
case 6 => reg(1) = reg(0) >> combo(code(pc + 1)); pc += 2
case 7 => reg(2) = reg(0) >> combo(code(pc + 1)); pc += 2
out
def part1(machine: Machine, initialRegs: Map[Char, Long]): String =
machine.execute(initialRegs).mkString(",")
def part2(machine: Machine, initialRegs: Map[Char, Long]): Long =
val target = machine.code.reverse
def rec(pos: Int = 0, acc: Long = 0): Option[Long] =
if pos >= target.length then return Some(acc)
def check(aVal: Long): Boolean =
machine.execute(initialRegs.updated('A', aVal), Some(1)).head
== target(pos)
(0 until 8)
.map((acc << 3) + _)
.filter(check)
.flatMap(rec(pos + 1, _))
.headOption
rec().get
override def run(input: os.ReadablePath): (Timings, Solution) =
val Array(initial_, code_) = os.read(input).split("\n\n")
val initialRegs = initial_.linesIterator
.map(_.split(" "))
.map(a => a(1)(0) -> a(2).toLong)
.toMap
val machine = Machine(longs(code_).toArray)
val (p1_time, p1_solution) = timed { part1(machine, initialRegs) }
val (p2_time, p2_solution) = timed { part2(machine, initialRegs) }
(
Timings(0, p1_time, p2_time),
Solution(p1_solution, Long.box(p2_solution))
)

View File

@@ -0,0 +1,60 @@
package dev.ctsk.aoc.days
import dev.ctsk.aoc.*
import scala.collection.mutable
import scala.util.boundary
import scala.util.boundary.break
object Day18 extends Solver(18):
val SIZE = 70; val P1_COUNT = 1024
def part1(grid: Grid[Char], coords: Seq[Point]): Int =
for coord <- coords.take(P1_COUNT) do grid(coord) = '#'
val dist = Grid(Array.fill(SIZE + 1, SIZE + 1)(-1))
val dq = mutable.ArrayDeque((0, Point(0, 0)))
while dq.nonEmpty do
val (distance, pt) = dq.removeHead()
for
adj <- DIRS.map(_(pt))
if grid(adj).contains('.')
if dist(adj).contains(-1)
do
dist(adj) = (distance + 1)
dq += ((distance + 1, adj))
dist(Point(SIZE, SIZE)).get
def part2(grid: Grid[Char], coords: Seq[Point]): Point =
for coord <- coords do grid(coord) = '#'
val sets = DisjointSets(grid.points)
for
point <- grid.points
adj <- DIRS.map(_(point))
if grid(point).contains('.')
if grid(adj).contains('.')
do sets.union(point, adj)
boundary:
for coord <- coords.reverse do
grid(coord) = '.'
for pt <- DIRS.map(_(coord)) if grid(pt).contains('.') do
sets.union(coord, pt)
if sets.joint(Point(0, 0), Point(SIZE, SIZE)) then break(coord)
coords.head
override def run(input: os.ReadablePath): (Timings, Solution) =
val grid = Grid(Array.fill(SIZE + 1, SIZE + 1)('.'))
val (pre_time, coords) = timed {
os.read.lines(input).map(longs).map(v => Point.of(v(0), v(1)))
}
val (p1_time, p1) = timed { part1(grid, coords) }
val (p2_time, p2) = timed { part2(grid, coords) }
(
Timings(pre_time, p1_time, p2_time),
Solution(Int.box(p1), f"${p2.x},${p2.y}")
)

View File

@@ -0,0 +1,26 @@
package dev.ctsk.aoc.days
import dev.ctsk.aoc.*
object Day19 extends Solver(19):
def pre(input: os.ReadablePath): (Trie, Seq[String]) =
val Array(rules_, words_) = os.read(input).split("\n\n")
val trie = Trie()
for rule <- rules_.split(", ") do trie.insert(rule)
(trie, words_.linesIterator.toSeq)
private def arrangements(trie: Trie, word: String): Long =
def rec(offset: Int, inj: Int => Long): Long =
if offset == word.length then return 1L
trie.prefixes(word, offset).map(inj).sum
Memo.Y(rec)(0)
override def run(input: os.ReadablePath): (Timings, Solution) =
val (pre_time, (trie, words)) = timed { pre(input) }
val (p1_time, p1) = timed { words.count(arrangements(trie, _) > 0) }
val (p2_time, p2) = timed { words.map(arrangements(trie, _)).sum }
(
Timings(pre_time, p1_time, p2_time),
Solution(Int.box(p1), Long.box(p2))
)

View File

@@ -0,0 +1,41 @@
package dev.ctsk.aoc.days
import dev.ctsk.aoc.*
import collection.parallel.CollectionConverters.*
object Day20 extends Solver(20):
override def run(input: os.ReadablePath): (Timings, Solution) =
val grid = Grid(os.read.lines(input).map(_.toArray).toArray)
val start = grid.findFirst(_ == 'S').get
val end = grid.findFirst(_ == 'E').get
val trace = Iterator
.unfold((end, end))((cur, prev) =>
val n = DIRS.map(_(cur)).filter(_ != prev).find(!grid(_).contains('#'))
n.map(nxt => (cur, (nxt, cur)))
)
.concat(Seq(start))
.toArray
def cheats(radius: Int): Int =
trace.indices.par
.map(toDist =>
(toDist + 100 until trace.length)
.count(fromDist =>
val from = trace(toDist)
val to = trace(fromDist)
val dist = (from - to).manhattan
dist <= radius && (fromDist - toDist >= 100 + dist)
)
)
.sum
val p1 = timed { cheats(2) }
val p2 = timed { cheats(20) }
(
Timings(0, p1._1, p2._1),
Solution(Int.box(p1._2), Int.box(p2._2))
)

View File

@@ -0,0 +1,48 @@
package dev.ctsk.aoc.days
import dev.ctsk.aoc.*
object Day21 extends Solver(21):
private val keyPad = Grid(Array("789", "456", "123", " 0A").map(_.toArray))
private val buttonPad = Grid(Array(" ^A", "<v>").map(_.toArray))
private val paths = Memo(paths_)
private def paths_(args: (Char, Char, Grid[Char])): Array[Array[Char]] =
val (from, to, grid) = args
val Point(fx, fy) = grid.findFirst(_ == from).get
val Point(tx, ty) = grid.findFirst(_ == to).get
val ops = Seq((fx, tx, 'v'), (tx, fx, '^'), (fy, ty, '>'), (ty, fy, '<'))
val seq = ops.flatMap((a, b, c) => (a until b).map(_ => c))
def gap(path: Array[Char]): Boolean =
path
.scanLeft(Point(fx, fy))((acc, c) => Direction.from(c)(acc))
.exists(grid(_).contains(' '))
seq.permutations.map(_.toArray).filterNot(gap).toArray
private def countPresses(codes: Array[String], numRobots: Int): Long =
type State = (Char, Char, Int)
def minCost_(state: State, f: State => Long): Long =
val (from, to, robots) = state
if robots == 0 then return 1
paths(from, to, if robots == numRobots then keyPad else buttonPad)
.map('A' +: _ :+ 'A')
.map(path => path.sliding(2).map(w => f(w(0), w(1), robots - 1)).sum)
.min
val minCost = Memo.Y(minCost_)
def evalCode(line: String): Long =
('A' +: line).sliding(2).map(w => minCost(w(0), w(1), numRobots)).sum
codes.map(code => code.init.toInt * evalCode(code)).sum
override def run(input: os.ReadablePath): (Timings, Solution) =
val codes = os.read.lines(input).toArray
val (p1_time, p1_solution) = timed { countPresses(codes, 3) }
val (p2_time, p2_solution) = timed { countPresses(codes, 26) }
(
Timings(0, p1_time, p2_time),
Solution(Long.box(p1_solution), Long.box(p2_solution))
)

View File

@@ -0,0 +1,60 @@
package dev.ctsk.aoc.days
import dev.ctsk.aoc.*
import scala.collection.mutable
object Day22 extends Solver(22):
inline def hash(n: Long): Long =
var secret = n
secret ^= (secret << 6)
secret &= 0xffffff
secret ^= (secret >> 5)
secret &= 0xffffff
secret ^= (secret << 11)
secret &= 0xffffff
secret
def hash(n: Long, count: Int): Long =
Iterator.iterate(n)(hash).drop(count).next()
def part1(initial: Seq[Long]): Long = initial.map(hash(_, 2000)).sum
def part2(initial: Seq[Long]): Long =
inline def update(hash: Int, next: Int): Int =
((hash << 5) & 0xfffff) | (next + 10)
val maxHash = Seq(9, 9, 9, 9).fold(0)(update)
val bananas = Array.fill(maxHash)(0)
val seen = mutable.BitSet(maxHash)
initial.foreach { value =>
seen.clear()
val it = Iterator.iterate(value)(hash).map(_.toInt % 10)
var last = it.next()
var window = 0
for v <- it.take(3) do
val diff = v - last
last = v
window = update(window, diff)
for v <- it.take(2000 - 3) do
val diff = v - last
last = v
window = update(window, diff)
if !seen(window) then
seen += window
bananas(window) += v
}
bananas.max
override def run(input: os.ReadablePath): (Timings, Solution) =
val initial = os.read.lines(input).map(_.toLong)
val (p1_time, p1_solution) = timed { part1(initial) }
val (p2_time, p2_solution) = timed { part2(initial) }
(
Timings(0, p1_time, p2_time),
Solution(Long.box(p1_solution), Long.box(p2_solution))
)

View File

@@ -0,0 +1,59 @@
package dev.ctsk.aoc.days
import dev.ctsk.aoc.*
object Day23 extends Solver(23):
override def run(input: os.ReadablePath): (Timings, Solution) =
val edge = "([^-]*)-([^-]*)".r
def id(s: String): Int = (s(0) - 'a') * 26 + (s(1) - 'a')
val (pre_time, graph) = timed {
os.read
.lines(input)
.flatMap { case edge(from, to) => Seq((from, to), (to, from)) }
.groupMap(_._1)(_._2)
.view
.mapValues(_.toSet)
.toMap
}
val (p1_time, triangles) = timed {
(for
(u, uOut) <- graph
v <- uOut
w <- graph(v).intersect(uOut)
if Seq(u(0), v(0), w(0)).contains('t')
yield Set(u, v, w)).toSet.size
}
type Nodes = Set[String]
def cliques(clique: Nodes, cand_ : Nodes, excl_ : Nodes): Set[Nodes] =
if cand_.isEmpty && excl_.isEmpty then return Set(clique)
if cand_.isEmpty then return Set.empty
val pivot = cand_.maxBy(graph(_).size)
var candidates = cand_
var excluded = excl_
var acc = Set.empty[Set[String]]
for v <- cand_ -- graph(pivot)
do
acc ++= cliques(clique + v, candidates & graph(v), excluded & graph(v))
candidates = candidates - v
excluded = excluded + v
acc
val (p2_time, password) = timed {
cliques(Set.empty, graph.keySet, Set.empty)
.maxBy(_.size)
.toArray
.sorted
.mkString(",")
}
(
Timings(pre_time, p1_time, p2_time),
Solution(Int.box(triangles), password)
)

View File

@@ -0,0 +1,81 @@
package dev.ctsk.aoc.days
import dev.ctsk.aoc.*
import scala.collection.mutable
object Day24 extends Solver(24):
extension (s: String)
def binLong: Long = s.foldLeft(0L)((acc, c) => (acc << 1) + c.asDigit)
enum Op(val f: Int => Int => Int):
case AND extends Op(x => y => x & y)
case OR extends Op(x => y => x | y)
case XOR extends Op(x => y => x ^ y)
case class Gate(op: Op, lhs: String, rhs: String)
object Gate:
def of(op: Op, lhs: String, rhs: String): Gate =
Gate(op, Seq(lhs, rhs).min, Seq(lhs, rhs).max)
override def run(input: os.ReadablePath): (Timings, Solution) =
val Array(inits_, wires_) = os.read(input).split("\n\n")
val inits = inits_.linesIterator
.map(_.split(": "))
.map { case Array(id, value) => (id, value.toInt) }
.toMap
val wires = wires_.linesIterator
.map(_.split(" "))
.map { case Array(in1, op, in2, _, out) =>
(out, Gate.of(Op.valueOf(op), in1, in2))
}
.toArray
val outs = wires.toMap
val ins = mutable.Map.from(wires.map(_.swap))
def tag(t: Char)(i: Int): String = f"$t$i%02d"
val x = tag('x'); val y = tag('y'); val z = tag('z')
def resolve_(id: String, f: String => Int): Int =
outs.get(id) match
case Some(gate) => gate.op.f(f(gate.lhs))(f(gate.rhs))
case _ => inits(id)
val resolve = Memo.Y(resolve_)
val p1 = timed { (0 to 45).reverse.map(z).map(resolve).mkString.binLong }
val p2 = timed {
val renames = mutable.Map.empty[String, String]
def rename(a: String, b: String): Unit =
renames(a) = b
renames(b) = a
def re(a: String): String = renames.getOrElse(a, a)
def lookup(gate: Gate): Option[String] =
ins.get(Gate.of(gate.op, re(gate.lhs), re(gate.rhs)))
var carry = ins(Gate.of(Op.AND, x(0), y(0)))
for i <- 1 to 44
do
val x_ = x(i)
val y_ = y(i)
val x_y_xor = lookup(Gate.of(Op.XOR, x_, y_)).get
val x_y_and = lookup(Gate.of(Op.AND, x_, y_)).get
val out = lookup(Gate.of(Op.XOR, x_y_xor, carry)) match
case Some(out) => out
case None =>
rename(x_y_xor, x_y_and)
lookup(Gate.of(Op.XOR, x_y_xor, carry)).get
if out != z(i) then rename(out, z(i))
val pre_carry = lookup(Gate.of(Op.AND, carry, x_y_xor)).get
carry = lookup(Gate.of(Op.OR, pre_carry, x_y_and)).get
renames.keys.toArray.sorted.mkString(",")
}
(
Timings(0, p1._1, p2._1),
Solution(Long.box(p1._2), p2._2)
)

View File

@@ -0,0 +1,35 @@
package dev.ctsk.aoc.days
import dev.ctsk.aoc.*
import collection.parallel.CollectionConverters.*
object Day25 extends Solver(25):
override def run(input: os.ReadablePath): (Timings, Solution) =
val (pre_time, (locks, keys)) = timed {
os
.read(input)
.split("\n\n")
.map(_.linesIterator.map(_.toArray).toArray.transpose)
.partition(_(0)(0) == '#')
}
def profile(lock: Array[Array[Char]]): (Array[Int], Int) =
(lock.map(_.count(_ == '#')), lock.head.length)
def fits(size: Int, lock: Array[Int], key: Array[Int]): Boolean =
lock.zip(key).forall((l, k) => l + k <= size)
def p1 = timed {
val keyProfiles = keys.map(profile)
locks
.map(profile)
.map((lock, size) =>
keyProfiles.count((key, _) => fits(size, lock, key))
)
.sum
}
(
Timings(pre_time, p1._1, 0),
Solution(Int.box(p1._2), "MERRY CHRISTMAS")
)

2
data/09.ans Normal file
View File

@@ -0,0 +1,2 @@
6401092019345
6431472344710

1
data/09.in Normal file

File diff suppressed because one or more lines are too long

2
data/10.ans Normal file
View File

@@ -0,0 +1,2 @@
638
1289

50
data/10.in Normal file
View File

@@ -0,0 +1,50 @@
14567892107654348943218769016567650154541210421036
03456783298993267654309458122168743243450344323145
12567654456780154327812367433059804012769455410234
03498012349876065016901056544965418765898766708943
12345101212145076545411034545878329658981055899854
09876876705034187632110123656789421047432765988765
67878965896123298901001656743078431236598894012034
50965014387654567650012349856127340012367653213125
41234321298347656543243492347833458903458743404987
30087430178298343650156781016942167812769252985676
21196567069121243761056432679851043212890101679854
33203498451080252852347841589765654301285234521763
14512432347890161943210950432106567610106501430012
01693501036543270856102167645656788943217432567897
32789672321015389987343078938765497654998549879898
45679987410234578101256560129812321067801456734787
03478756500187665432107452121901054328982340125676
12568767891098987013898943030810167017654321010210
21079458910127698123965436945107878988901267124378
30980349821034787654876327876716901210985458095469
45671210136765693454761016329825432345671329186954
12789800345876548763876125419434501654510413277843
03543211238989439012985630308765898746701204567832
14623400141232323101234521678906567239874343236901
25710519850541014143219834567611452108965650145690
76897678769650001054301712106320143210345789036781
87678989678742112363212601235431234321276988325432
90549876349233678478004592347842389123489676710876
21632305256104569589123487656965476016512369856945
52301014107012345670149874565456365017603450747832
65490123458912396501234563432147454328214921632401
86985432167905487654341012563038901039309834521321
97876789001856778761232127678127612398712701100410
89810678012760869890103238999210543125625632234509
76701549013451987217876434785695610034534548765678
05432432174012987301987325654780123435210159854789
12980120985123673458986510783279234987346543123898
43878921976034562567603412892168765679857012010187
34565437852178901070412103601001410012768001921236
45430566543065012181543014580432321003459122876545
50121098767654327892678877698569457654219433468904
23292145678954218983019988087658768894308596567812
14587239010563007654128679112565489765107687656521
05674678323472167659436543203474321087230156785430
96983565401089898748540987654589321098543243896543
87874328992396701037621296562105465407698012565432
78765017687478632128760345673456978312789801478521
29653078596569543019656921087567889213456700329650
12532169430430156010567892193610367804765410418789
03445678321321060123456543012323458912894321001678

2
data/11.ans Normal file
View File

@@ -0,0 +1,2 @@
189167
225253278506288

1
data/11.in Normal file
View File

@@ -0,0 +1 @@
28 4 3179 96938 0 6617406 490 816207

2
data/12.ans Normal file
View File

@@ -0,0 +1,2 @@
1374934
841078

140
data/12.in Normal file
View File

@@ -0,0 +1,140 @@
YYYYYYYYRZIZYYYYYPGPPPPPGGGGGGGGGGGGGKKKKYYYYYYYYYYYFFFFFFFFFFFFFFSSSJOOOJJJJJJJYJJJJJCCCCCCCCCCCCCCFFFFKKKKKKKKKKKRRNNNNNDNNNNNNNNUUUSSSEEE
YYYYYYYYYZZZYYYYYYGGGPPPGGPGGGGGGGGGKKKKKYYYYYYYYYYFFFFFFFFFFFFFFSSSPOOOOJJJJJJYYJJJJJJJJIICCCCCCCCCCKKKKKKKKKKKKKKKKNNNNNNNNNNNNNNUUUSSSSSE
YYYYYYYYYYZZYYYYYYYGGPPPPPPPPPPVGGGKKKKKKYYYYYYYYYYYFFFFFFFFFFFSSSSSSOOOJJNJJJYYYJJJJJJJJIICCCCCCCCCCPKKKKKKKKKKKKKKKKNNNNNWNNNNNNNUUSSSSSSS
YYYYYYYYYYZZYYFYYGGGGGGGPEEPEVVVVVVXKKKKKKYYYYYYYYYYFFFFFFFFFFFSSSSSSOOOONNJJJJYYJJJJJJJIIICCCCCCCCKKKKKKKKKKKKKKKKKKKKNNNWWNNNNNWNUUSSSSSSS
YYYYYYYYYYYYYYYYGGGGGGGGPGEEEVVVVVVKKKKKKVYYYYYYWYFFFFFFSSSSSSSSSSSSSOOOUNNNNNJJJJJJJJJJIIIMMMCCCKKKKKKKKKKKKKKKKKKKKNNNWWWWWNNNNWNUUUSSSSSS
YYYYYYYYYYYYYYYYGGGGGGGGGGVVVVVVVVVVKKKKKVYYYYYYYYYFFFFFSSSSSSSZSSSSSSOONNNNNNJNNJNNJJJQQIIMMMMCCCKKKKKKKKKKKKKKKKKKKYYNWWWWWWWWWWUUUUSSSSSS
YYYYYYYYYYYYYYYGGGGGGGGVGGVVVVVVVVVVVVVKKBYYYYYFFFFFFFFSSSSSSSSSSSSSSSOOGNNNNNJNNNNNJJQQQQQMMMMCCCCCJKKKKKKKKKKKKKKKKYYYYWWWWWWWWWUUUUUSSSSS
YXXXXXXYYYYYYYYGGGGGGGGVVVVVVVVEVVVVVVVKBBYYYYYFFFFFFFFFSSSSSSSSSSSSSSOOGNNNNNNNNNNNJBBQQQQMMMMMCCCJJJJKKKKKKKKKKKKKYYYYYYWWWWWWWUUUUUSSSSSS
XXXXXXXXXYIIYYYGGGGGGGGVGVVUVVVEVVVVVVVBBBBBYYFFFFFFFFFFSSSSSSSSSSSYSSSOONNNNNNNNNNNJBBBQQQMMMMMCCCJJJJJKIKKKKKIIIIIIYYYYYWWWWWPPUUUUSSSISSS
FXXXXXXIIIIIIYYGGGGGGGGGGGEUUUUEEVVVVVBBBBBBYFFFFFRRRFFSSTSSSSSSSSSYYYYOCNNNNNNNNNNBBBBBBBQMMMMMCCCJJJJJJIKIKKIIIIIIIIIIYYWWWWWPPPPUUUSIISSS
FFFXXXIIIIIIGGGGGGGGGGGGGEEEUEEEEVVEERRRBBBBYYFFRFRRRRSSSSSSSSSSSSSSYYYYNNNNNNNNNNNBBBBBBQQQMMMMCCCRJJJJJIKIIKIIIIIIILIIIYWWWWVPPPPPPUUZZSSS
FFFXXXWWWIIIIWWGGGGGGGGGGGEEEEEEEVEEEEEBBBBBBBFRRFFFRRVVSSYYSSSSSSSSYYYYYNNNNNNNNNNBBBBBBQQQMMMMCSCCSJSJJIIIIIIIIIIIIIIIIIBBWPPPPPPPPUZZZZSS
FFFFFWWWWWWIWWWGWGGGGGGGGEEEEEEEEEEEEEEEBBBBBBBBRRRFRRRRYSYYSSSSSSYYYYYYTNNNHNNNNNNNBBBBQQQQMMMSSSSSSSSJJIIIIIIIIIIIIIIBBBBBBBBBPPPPPZZZZISS
FFFFFWWWWWWWWWWWWWGGGGGGGEEEEEEEEEEEBBBBBBBBBBBBRRRFRRRYYYYSSSSYSYYYYYYYTNWNHNNNNNTTBBBQQQQQMMMSSSSSSSSSIIIIIIIIIIIIIIBBBBBBBBBPPPPPPPZZSSSS
FFFFFWWWWWWWWWWWWWWGGGGGEEEEEEEEEEEEVVVBBVBBBBBBRRRRRRRYYYYYYYYYYYYYTTTTTTNNNNTTTTTTTBBBQQQQQMMSSSSSSSSSIIIIIIIIPIIBBBBBBBBBBBBPPPPPPPMZZZZT
AAFFFFWWWWWWWWWWWJJJGNGGGEEEEEEEEEEEVVVVBVVBBBBBBRRRRRRYYYYYYYYYYYYTRTTTTTTTTTTTTTTTTTTBTQQQQQQQQSSSSSSSIIIIIIIPPNIBBBBBBBBBBBBBPPPBPPZZZZZZ
AAFFFFAGWWWWWWWWWJJWWWGGGWEEEEEEEEEEVVVVVVMBBBRRRRRRRRYYYYYYYYYYYYYTTTTTTTTTTTTTTTTTTTTTTQQQQQQQSSSSSSSSIIIIIIIPPNBBBBBBBBBBBBBBBBBBBZZZZZZZ
AAAAAAAGWWWWWWWWJJWFWWGGWWEEEEEEEEEEVVVVBVVBBBRRRRRRRRYYYYYYYYYYYYYTYYTTTTTTTTTTTTTTTTTTTTQQQQQQSSSSSSSSIIIIIIPPPPPBBBPBBBBBBBBBBBBBBZZZZZZZ
AAAAAAAAAWWWWWWWJWWWWWWWWWWWEEEEEEEEEVVVVVVVBBRRRRRRRRYYYYYYYYYYYYYYYYTTTTTTTTTTTTTTTTTTTTTQQQQSSSSSSSSSIIIIIIPPPPPPPPPBWWBBBBBBBBBBKZZZZZZZ
AAAAAAAAAAWWWWJJJWWWWWWWWWWWEEEEEEEEEVVVVVVVVVRRRRRRRRYWWYYYYYEYYYAYYYYTTTTTTTTTTTTTTTTTTTTQQQSSSSSSSSIIIIIIIIPPPPPPPPPBBWWWWBBBBBBBBZZZZZZZ
AAAAAAAAAAWWWGJWWWWWWWWWWWWWEEEEEEEEEEEVVVVVVVRRRRRRRRWWWYYYYEEYAAAAAYTTTTTTTTTTTTTTTTTTTTTQTCCSSSSSSIIIIIISSSPPPPPPPPPBBWWWWBBBBBBBBKZKZZZK
AAAAAAAARYWWWGJJGGWWWWWWWWWWWERRWWEEEGVVVVVVVVVRRRRRRRRWWWEEEEEEEAAAAAAAATTTTTTTTTTTTTTTTTTTTCCCSSSSSSIISSSSSSSPPPPPPPPBBWWWWBFWBBBBBKKKZZZK
AAAAAAAAAYYYWGGGGGWWWWWWWWWWWWWWWWWYWVVVVFLKKVRRRRRRRRRWWFEEEEEEEAAAAAAATTRRRRRRRRTTTTTTTTTTTCCCSSSSSSSSSSSSSSSSPPPPPPPWWWWWWWWWWWBBBBKKKKKK
AAAAAAAAYYYTGGGGGGGGWWWWWWWWWWWWWWWWWWJJLLLKKRRRRRRRRRWWWWWEEEEEEEEEEAAATTRRRRRRRRTTTTTTTTTTTTCCXSSSSSSSSSSSSSFFFPFFPSSSSSWWWWWWWBBBBBKKKKKK
AAAAAAAYYTTTTTGGGGGGGWWJJWWWWWWWWWWWWJJJLLLLLLLLRRRRRWWWDWWWWEEEEAAAAAATTTRRRRRRRRTTTTTTTTQQQQXXXXRRSSSESSSSSSFFFFFFHFSWWWWWWWWBBBBBMMMKKKKK
AAAAAASYYYYTTVGGGGGGWWWWJJJJYYWWWWWWWJJJLLLLLLLLLRRRRRDDDWWWWWWWWAAAAAAATTRRRRRRRRTTSTTTTTTQQQXXXXRRSSSEEESESSEEFFFFFFFWWWWWWWWBBBBBMKKKKJJJ
JAAAASSYYYYYTVGGGGGGGWWWWJJYYYWWWJJJJJJLLLLLLLLLLLLLLDDDDWWWWWWAAAAAAAAAAARRRRRRRRFFSTTTTTTQXXXXXXXREEEEEEEEEEEEFFFFFFFFWWWWWWWWWHBKMKKKJJJJ
JASSSSVVVVVVVVGGGGGWWWWWWJJGYGWWWNNUJJJLLLLLLLLLLLLLLLDDDDDWWWAAAAAAAAAAAARRRRRRRRFFFFPTTTTXXXXXXXXEEEEEEEEEEEEEJFFFFFFWWWWWWWWWZZBZZKKKJJJJ
JJVVSSVVVVVVVGGGGGGWWWWYDJGGGGWWLNNUJJJLLLLLLLLLLLLDDDDDDDDDDWAAARRRRRRRAFRRRRRRRRFFFFPTTPPXXXXXXXXEEEEEEEEEEEEEFFFFFFFFFWWWWWWWWZZZZKZZJJJJ
JJVVVVVVVVVVVVVVVVGWWYYYDDDGGGDLLNUUJJJLLLLLLLLLLLLDDDDDDDDDDWAAARRRRRRRRRRRRRRRRRFFFPPPPPPXXXXXXXEEEEEEEEEEEEEEFFFFFFFFFFFWWWWWZZZZZZZZJJJJ
JJJVVVVVVIIIVVVVVVWWYYYDDDGGDDDDUUUUUUUUILLLLLLLLDDDDDDDDDDDDWWAARRRRRRRRRRRRRRRRRFPFPPPPXXXXXXXXXEEEEEEEEEEEEEEFFFFFFFFFFFWWWWWZZZZZZZLJJJJ
JJJVVVVVIIIIVVVVVVVWYYYDDDDDEDDDDUUUUUULLLLLLLLLLDDDDDDDDDDWWWWWARRRRRRRRRRRRRRRRRFPPPPPPXXXXXXXXXXEEEEEEEEEEEEEFFFFFFFFFOFWWWZZZZZZZZZZZZJJ
JJJVVVDDDIIVVVVVVVVDHDDDDDDDDDDFUIUUUUUULLLLLLLLLLDDDDDAIIDAWWWWARRRRRRRRRRRRRRRRRNNNNPPXXXXXXXXXXEEEEEEEEEEEEEEEEFFFFFFFFFFWWZZZZZZZZZZZVJJ
JJJKKKDDDIIVVVVVVVDDDDDDDDDDFFFFUUUUUUUULLLLLLLLLLDDDDDAAIDAAAAKARRRRRRRRRRRRRRRRRNNPPPPXWXXXXXXXXXEEEEEEEEEEEGGGGFFFFFFFFFFWZZZZZZZZZZZZVZZ
JJKKKDDDDDIVVVVVVVDDDDDDDDDDFFFUUUUEUUUUULLLLLLPLLDDDAAAAAIAAAAKMRRRRRRRRRAAAAANNNNNNNNXXXXXXXXXXXXXEEEEEEEEEFGGGGFFFFFFFFFFWZZZZZZZZZZZVVZZ
KJKKKKKKDDDVVVVVVVDDDDDDDDDDFFFFFUUEEUUUUULLLPPPLQDDDAAAAAIAAAAKMRRRRRRRRRAAAAAANNNNNXXXXXXXXXXXXXXXXEEEEEESFFGGGGFFNNNNFRRRWZZZZZZZZZZZZVZZ
KKKKKKKKDDDVRUSVVVDDDDDDDDDDFFFFFEEEEUUUUULLNNNNQQDDDPAAAAAAAAXMMRRRRRRRRRAAAAANNNNNNNXXXXXXXXXXXXXXNEEEEEEFFFGGGGNNNNNNNRRRRRZZZZZZZZZZZZZZ
KKKKKKDDDDDDUUUVVVDDDDDDDDDDDFFFFEEEEUUNLLLLNNNNNQDDPPAAAAAAAAMMMRRRRRRRRRMMAAAANANNNNNXXXXXXXXXXNNNNNEEEEEFFFGGGGNNNNNNNNNNNNZZZZZZZZZZZZZZ
YKKKKKKKDDDDUUUVVDDDDDDDDDDDDAFFFEEEEUNNNNNNNNNNNNRDPPAAAAAAAAHHMMMMMMMMMMMMAAAAAAMNNNNNXXXXXXNXNNJJJEEEEEEFFFGGGGNNNNNNNNNNNZZZZZZZZZZZZZZZ
KKKKKKKDDDUUUUUUUUUDDQDDDMDDDAAAEEEEEUNFFNFFNNNNRRRRFPPAAAAAAHHHHHMMMMMMMMMMMMAAAAMNNNNXXXNNNNNXNNNJJJJPPJUJFFGGGGGGNNNNNNNNNZZZZZZZZZZZZZZZ
KKKKKKKKKDDDDUUUUUUUQQDDDDDDDAAAAEEEEUFFFFFFNNNNFFFRFAAAAAAAAAHHHMMMMMMMMMMMMMMMMAMMNNNNNNNNNNNNNNNNJJJJJJUGGGGGGGGGNNNNNNNNNZZZZZZZZZEZZZZZ
KKKKKKKKKDDDDUUUUUUUUUUDADDAAAAAEEEEENBFFFFFFFFFFFFFFAAAAAAAAHHHHHHMMMMMMZZMMMMMMMMNNNNNNNHHHHNNNNJNNJJJJUUGGGGNNGGGNNNNNNNSNNVVZZZZZEEEZZZZ
KKKKKKKKKDUUUUUUUUUUUUUUAAAAAAAAEEEEEEBFFFFFFFFFFFFFFFAAAAAAAAHHHHHMMMMMMMZZZMMMMMMJHHHHHHHHHHNNNNJJNJJJJJUGGGGLLLLLLNNNNNNNNVVZZZZZEEEEEZZZ
KKKKKKKKKKKUUUUUUUUUUUUUAAAAAAABBEEEEBBBFFFFFFFFFFFFFFAAAAAAAAHHHHHHHHMMMMMMMMMMMMJJHHHHHHHHHHNNNJJJUJJJJJJGGGGLLLLLLNNNNNNNNVVVVZZZEEEEEEZZ
KKKKKKKKKKKUUUUUUUUUUUUUAAAAAAABBBBBBBBBBFFFFFFFFFFEFAALAAAAAAHHHHHHHHMMMMMMMMMMMMMJHHHHHHHHHBBNNJJJJJJJJJJGGGGLLLLLLNNNNNNNVVVVVVZZZEEEEEEE
KKKEEEKKKKKUUEUUUUUUUUUHHHAAAAABBBBKBBBBBBBFFFFFFFFFFVALAKAAAHHHHHHHHHHHCCCMMMMMMMMJHHHHHHHHHBBNNJVJJJJJJJJGGGGLLLLLLVNVVVVVVVVVVZZZEEEEEEEE
KEEEEEKEEEEUUEEUUUUUUUUHHHHAAAABBBBBBBBBBBBFFFFFFFFFFVVXXKXHHHHHCHCCHHHHHHCMMMMMMMMJHHHHHHHHHBBNNFVJJJJJJJJGGGGLLLLLLVVVVVVVVVVVZZEEEEEEEEEE
KEEEEEEEEEEEEEEEUUUUUUHHHHHHAABBBBBBBBBBBBBFFFFFFFFFFFFXXXXXHHHHCCCCCHHHHCCCMMMMMMMMHHHHHHHHHBBNFFFFJJJJJJJLLLLLLLLLLVVVVVVVVVVVVZEEEEEEEEEE
KEKKEEEEEEEEEEEBUBBBBUJJHHHAAABBOBBBBBBBBBBBFFFFFFFFFFSXXXXXHHHCCCCCICCHHHCCMCCMMMMMMMQJBBBBBBFFFFFFFJJJJJJLLLLLLLLLLVVVVVVVVVVVVVEEEEEEEEEE
KKKKEEEEEEEEEEBBBBBBNIIIHHAAAABBBBBBBBBBBBBFFFFFFFFFFFFXXXXCCCCCCCCCCCCCHCCCCCMMMMMMMMCCCCBBBBBBFFFFFJJJJJJLLLLLLLLLLLLLVVVVVVVVEEEEEEEEEEEE
KKKEEEEEEEEEEEBBBBZZIIIIIIIAAABBBBBBBBBBBBHHHWFOOFFFFXXXXXCCCCCCCCCCCCCCCCCCCCCCCMMMMMCCCCBCBBBFFFFFFJJJUJJLLLLLLLLLLLLLLLLLLVEEEEEEEEEEEEEK
KKKEEEEEEEEEEEBFBBIIIIIIIIAAIAABBBBBBBBBBBHHHHHHOOOOFXXXXXXXYYCCCCCCCCCCCCCCCCCCCMMMMCCCCCCCCBCUFFFUUUUJUUJLLLLLLLLLLLLLLLLLLNEENNEEEEEEEEEI
KKEEEEEEEEEEEBBBBBIZIIIIIIIIIAAABBBBBBQBBBBHHHHHHHOOFXXXXXXXXXCCCCCCCCCCCCQQQQQCCCMMCCCCCCCCCCCUUUUUUUUUUUJLLLLLPLLLLLLLLLLLLNNNNNEEEEEEIIEI
EEEEEEEEEEOEEEBBBBBIIIIIIIIIAAAABBBBBQQQMMMHHHHHHHHHHXXXXXXXXCCCCCCCCCCCCCCQQQQQCMMCCCCCCCCCCCCCCUUUUUUUUUULLLLLPLLLLLLLLLLLLNNNNNNENEIIIIII
HEEEEEEEEEOBEBBBBIIIIIIIIIIAAAAAAABBQQQQMMYHHHHHHHHHHHHXXXXXXCCCCCCCCCCCCUQQQQQQCCCCCCCCCCCCCCCCCUUUUUUUUUULLLLLPLLLLLLLLLLLLNNNNNNNNNIIIIII
EEEEEEEEEEEBBBBBIIXIIIIIIIIIXXXAAAABQQQQMMMHHHHHHHHHUUHXXXXXXXCCCCCCCCCCIIIIIQQQCCCCCCCCCCCCCCCUUUUUUUUUUUULLLLLUUPLLLLLLLLLLNNNNNNNNIIIIIII
VEEEEEEVBBBBBBBBIBIIIIIIIIINXXXXXAAAMMMMMJMHHHHHHHHHUUXXXXXXXXXCCCCCCCCCIIIIIQQQCCCCCCCCCCCCCMMMMMUUUUUUUUULLLLLUUTLLLLLLLLLLNNNNNNNNIIIIIII
EEEEVEEVBBBBBBBBIBBIIIIIIIIXXXAXAAAAMMMMMMMTTHHHHHHHHXXXXXXXXCXCCCCCCWZZIIIIIIIIIIICCCCCCCCCCCMMMMMUUUUUUUULLLLLFUPPUUUVVNNNNNNNNNNNNIIIIIII
VVVVVVVVBBBBBBBBBBBBIIIMIIIXXXAAAAAAMMMMMMMMMHHHHXXXHCXXAXXXXCCIIIIIIIIIIIIIIIIIIIICCCCCCCCCCCMMMMMUUUUUUFFFFFFFFUPUUUUUNNNNNNNNNNNNNNNIIIII
VVLVVVVVBBBBBBBBBBBIIIIMMMXXXXXXAAAMMMMMMMMMHHHHXXXXCCXCCXXXCCCIIIIIIIIIIIIIIIIIIIICCCCCCMCCMMMMMMMMUUUUFFFFFFFFFUUUUUUUNNNNNNNNNNNNNLNIIIII
VVVVVVBBBBBBBBBBBBBBBIIIXXXXXXXXAAAMMMMMMMDDDHHXXXXXCCCCCCCCCCCIIIIIIIIIIIIIIIIIIIICCCCMMMMMMMMMMMMMUPUUFFFFFFFFFUUUUUUCNNNNNNNNNNNNNLNIIIII
VVVVVVBBBBBBPPBBBBBBBBIIXXXXXXXXXAMMMMMMMMMDDDXXXXXXCCCCCCCCCCCIIIIIIIIIIIIIIIIIIIICCCSMAMMMMMMMMMMMUPPUFFFFFFFFFUUUUUUNNNJJNJNNUNNLLLNIINNI
VVVVIIRBBBPPPPPBBBBBBBIAXXXXXXXIAAAMMMMMMMDDDDXXXXXXXXCCCCCCCCFIIIIIIIIIIIIIIIIKCCCPCMMMMMMMMMMMMMMMPPPPPFFFFFFFFFFFUUUUAJJJYJNNUNLLLLLLLNNI
VVVVIRRBBPPPPPPPPBPPPPPAXXXXXXXIIIINMXDDDDDDDDXXXXXXXXXXCCCFFFFIIIIIIIIIIFZZZKKCCKKCCKMMMMMMMMMMMMMMPPIPPFFFFFFFFAFAAAUAAJJJJJJJJLLLLLLLLNNN
VIIIIIIFFPPPPPPPPPPPPPPPXXXXXXXXXIIIIXXDDDDDDDXXXXXXXXXXXCFFFFFIIIIIIIIIIFZZZKKKKKKKOOOMMJMMMMMMMEEMPPIPPPPFFFFFFAAAAAAAAJJJJJJJJLLLLLLLLNNN
IIIIIIIFFPPPPPPPPPPPPPHHMMMMXXXXIIIXXXDDDDDDXXXXXXXXXXXXXFFFFFFIIIIIIIIIIFYYZZKKKKOOOOOOOJMMMMMMMMMMIIIIPFFFFFFFFFAAAAJJJJJJJJJJJLLLLLLNNNNN
IIIIIIIIFPPPPPPPPPPPPPPHMMMXXXXXIXXXXXDDDDDDXXXXXXXXXXXXFFFFFFFIIIIIIIIIIYYYYKKKKOOOOOOOOOQMMMMMMMMMMIIIIIIFFFFFFFAAAJJVVVVVVVVVJLLLLLLNNNNN
IIIIIIIIFPPPPPPPPPPPPMHHMMMMMXXXXXXXXXXCCDDDDXXXXXXXXXXXXFFFEFFIIIIIIIIIIFYYYYYYYOOYOOOOOOOMMMMMMMMMIIIIIIIFFFFFFFAAJDJVVVVVVVVVJJJLLLYLLNNN
IIIIIIFIFPPPPPPPPPPPPMMMMMMMMXXXXXXXQQCCCCDDDDDXXXXXXXXXXXEEEEFFFFFFFFUFFFYYYYYZZOOOOOOOOOOMCMMMMMMMMIIIIFFFFFFFFAAAJDJVVVVVVVVVJLLLLLLLLNNN
IIIVVVFFFPPPPPPPPPPPMMMMMMMMMMXAAXXXXXXJCCDDDDDXXXXXXDXXXXEEEFFFWWWWFFYYYYYYYYYZZZOOOOOOOOOZCMMMMEEEZZIIIIFFFFSSFBBJJJJVVVVVVVVVJLLLLLLLNNNN
VVVVVVVVVTTTPPPPPPMMMMMMMMMMMAAAAXXXXXXJCCCCDDDDXXXXXDXXXEEEEKWWWKKWWWYYYYYYYYZZZZOOOOOOOOZZZZMZMEZZZZIIIIFSSSSSPPBBLJJVVVVVVVVVJJLLLLLNNNNN
VVVVVVVVVTYTPPYPPMMMMMMMMMMMMMMAAXXXXACCCCCCCDDDDDDDDDEEEEEKKKWWKKKKWWYYYYYYYYYYYZZZOOZOOOZZZZMZZZZZZZVVISSSSSCCPPBPJJJVVVVVVVVVJJLLNNNNFNNN
VVVVVVVVVYYTYYYYPPMMMMMMMMMMMMAAAAXXCCCCCCCCCDDDDDDDDDEEEEEKKKWWWKKKWWWWWYYOOYYYZZZZZZZZOOZZZZZZZZZZZJVVIIVSSCCCCPPPPPJVVVVVVVVVVVVLNNNNFNNN
VVVVVVVVVYYYYYYPPMMMMMMMMMMMMMMMAAAAACCCCCCCDDDDDDDDDDDEEEEEEKKKKKKKKKWWOOEOOYYZZZZZQQQZZZZZZZZZZZZZZZGVVVVVSCCCCPPPPPJVVVVVVVVVVVVFNFFFFNFF
VVVVVVVVVEYYYYYMMMMMEMMMMMVAVAAAAAAAAACUCCCCCDDDDDDDDDEEEEEEKKIKKKKKKWWOROOOOOZZZZZZZQQQZQQZZZZZZZZZFFVVVVVVVVCCCCPPPPPJJVVVVVVVVVVFFFFFFFFF
VVVVVVVVVVYYYAYYMMMEEMMMMMVAVVVVVAAAAACUCCCCCDDDDDDDDDEEEEEEPZPPKKKKKKOOROYOZZZZZQQQQQQQQQQQQZZZZZZZZVVVVVVVVCCCCCCPPRVVVVVVVVVVVVVFFFFFFFFF
VVVVVVVVVVVYYAAAMMMEEEMVVVVVVVVVVVVAAOUUCCCCCCDDDDDDDREEEEPPPZZPPKKKKKOOOOOZZZZZZZQQQQQQQQQQQZZZZZYZMMMVVVVVVVCCCCCCCRVVVVVVVVVVVVVFFFFFFFFF
VVVVVVVIIIIPPPPAMAAEEEMEVVVVVVVVVVAAOOOOCCCCODDDDDDDDREEEEPPPPPPPPPKKZZOOOOOOOOOZZQQQQQQQQNQQZZZZZZMMMMMMVVVVVCCCCCRRRVVVVVVVVVVVVVFFFFFFFFF
VVVVVVVIPPIPPPAAAAAEEEEEOEVVVVVVVVVAAOOLCOCCOODDDDDDDRRREEPPPPPPPPPZZZOOOOOOOOOOZZZQQQQQQQQQQQGGZGMMMMMMVVVLVCCCRRRRRRVVVVVVVVVVVVVFFFFFFFFF
VVVVVVVPPPPPPPAAAAEEEEEEEEEVVVVVVVAAAOOOOOOOOOODDDDRRRRRPPPPPPPPPPPZZZZOOOOOOOOOZZZZQQQQQQQQIIGGGGGGMMMVVVVVULPCRRRRCCVVVVVCVVVVVVVFFFFFFFFH
VVVVVVKPPPPPPAAAAAEAEEEEEEEVVVVVVVAAAAOOOOOOOOODDDRRRRRPPPPPPPPPPPPPPOOOOOOOOOOOOZZZQQQQQQQGGGGGGGGGGMMMMCZCCLLRRRLLXCVVVVVCVVVVVVVFFFFFFFHH
VVVVYYPPPPPPPPPAAAAAEEEEEEEEVVVVVVAAAAOOOOOOOODDDRRRRRRRRPPPPPPPPPPZZZZOOOOOOOOAOZZQQQQQQQGGGGGGGGGGGMMMMCCCHLLLLLLLCCTCCCCFVVVVVVVFFFFFFFKK
UUUVYYPYYPPPPPAAAAAAAEEEEEEEVVVVVVVAAOOOOOOOOOODDORRRRRRRPPPPPPPPPZZZZZOOOOOOOOOOQQQQQQQQQQGGGGGGGGGGGMCCCLHHLLLLLLLVCCCCXXFFFFFFFFFFFFFFKKK
UUUYYYYYYPPPPPPAAAAEEEEEEEAAVVVVVVVAAOAOOOOOOOOOOORRRRRRRRPPPFFPPZZZZZZZZOOOOOOOOQQQQQQQQQQQGGGGGGGGGGHAACLLLLLLLLLLLLCICXXFFFSFFFFFKKKKKKKK
UUUUYYYYPPPPPPAAAAAAEEECEAAAAAAVVVVVAAAOOOOOOOOOORRRRRRRURVPPFFFPFFZZZZZZZOOOOOCCQQQQQQQQQQGGGGGGGGGGGHALLLLLLLLLLLLIIIICXXXXFSSFKKKKKKKKKKK
UUUUUYYYDPAPPAAAAAAAAEEEAAAAAAAVVVVVAAAOOOOOOORROORRRRRAOPVVVFFFFFFZZZZZZOOOOOQQQQQQQQQQQQQQQGGGGGGGAAHALLLLLLLLLLLLIXXXXXXXFFSSFKKKKKKKKKKK
UUUUUUUUDDDAAAAAUAAAAEEAAAAAAAAVVVVAAAAPOOOORORROOOORRROOOVVFFFFNNFZZZZZZZOOOOOQQQQQQQQQQQQQQQAGGYAAAHHAALLLLLLLLLLLILIXXXXXFFFSFFKKKKKKKKKK
UUDUUDUDDEAAAAAAUUAAAAAAAAAAAAAVVVAAAAPPPPORRRRRROOORRROJOVOFFFFFFFFZZZZZZOOOZQQQQQQQQQQQQQQQQQGGYAAAAHAALLLLLLLLLLLLLXXXXXXXXFFFFFKKKKKKKKK
DDDDDDDDDEEAAAAUUUUUUUAAAAAAAAAAAVAAAAPWWPRRRRRRROOOOOOOOMMFFFFFFFFFFFFZZZZZZZZQQQQQQQQQQQQQQQUUUYAAAAAAAGGLLLLLLLLLLAAXXXXXXXXXLFFFKKMKKKKK
DDDDDDDDDEEAEAAAUUUUUUUUUAAAAUAAAAAAAAARRRRRRRRRZOOOOOOOOMMMFFFFFFFFFFFZZZZZZZZQQQQQQQQQQQQQUUUYYYAYYAAAGGWGLLLLLLLLAAXXXXXXXXXXLLLFKKKKKKKK
DDDDDDKKKKEEEAAAUUUUUYUUUUUAUUUUAAAAAAAARRRRRRZZZOOOOOOOOFFMFFFFFFFFFFFZZZZZZZQQQQQQQQQQQQQQQYYYYYYYYYAGGGGGGLLLLLLLAAXLXXXXXLLLLLEEEVVVVKKK
DDDDDDDKKEEEEAAAUBUUUUUUUUUUUUUUUAAAOOORRRRRRRRZZKOOOOZZZFFFFFFFFFFFFFFZZZZZZZZZQQQQQHQFQQFQQYYYYYYYYYYGGGGGGGLLLLLLLAXLLXLXLLLLLLEEEEVVVKVK
DDDDDDDDDEEEEEAAAUUUUUUUUUUUUUUUFAAAOORKRRRRRRRZKKKOOOZWWFFFFSFFFFFFFFFZZZZZZZVVVVZQFFQFFFFQFYYYYYYYYYYYYGGGGGGLGLAGMLLLLLLXLLLLLLEEEVVVKKKV
DDDDDDDDDEEEEWAAAUUUUUUUUUUUUKUUOOOOOORRRRRRRRRZZKKOOOZWWWWWFSFFFFXFFFFZZZZZZZZVVVFFFFFFFXFFFFYYYYYYYYYGGGGGGGGLGIGGLLLLLLLLLLLLEEEEEEVVVVVV
DDDDDDEEEEEEUWWUUUUUUUUUUUUUUKKKKOOOOORRRRRRRRRRKKKKKWWWWWWWWWEFFFBFBBFZZZZZZZZVVVSFFFFFFXFFFFYYYYYYYYYYYGGGGGGGGGGGGLLLLLLLLLLEEEEEEEEVVVVV
DDEEEDDDEKEEWWWWFUUUUUUUUUUUUUKKOOOOOOPRRZZZZZZZKKKKKZZZZWWWWWEEFFBBBBZZZZZZZZCSSSSFFFFFFXXXFFFFYYYYYYYYYYGGGGGGGGGPPLLLLLLLLLLEEEEEEEEVVVVV
DEEEEEEDDDDDIWWFFFWWWWUUUUUUUUKKOOOOOPPRRZZZZZZZZZZZZZZZZWWWWWBBFBBBBBBBZZZZZZCCCSSFSSSFFOXXXXXXXXXYYYYYYYGGGGGGGGGGPLLLLLHLLLLEEEEEEEEVVVVV
DEEEEEEEDDDDWEWWWWWWWWKUUUUUWWWKOOOOOOPPRZZZZZZZZZZZZZZZZWWWTWBBBBBBBBBBZZSSZZZCSSSSSSSFFOXXXXXXXXXXYYYYYYYYYGGGGGTTTTLLLLLLLLLLEOEEEEVVVVVV
DEEEEEEEDDDWWWWWWWWWWWKKUIWWWWKKOOPOPPPPXZZZZZZZZZZZZZZZZKWWWWBBBBBBBBBBZZZSSSSSSSSSSSSSXOXXXXXXXXXXYYYYYYYYYGGYTTTTTTTTLLLLLLLLLLEEEEVVVVVV
EEEEEEEEEDTWWWWWWWWWWIIIIIIWWWWWPPPPPPXXXZZZZZZZZZZZZZZZZKKWBBBBBBBBBBBBZZZSWSWSSSSWWSSSXXXXXXXXXXXXXYYYYYYYYYYYTTTTTTTTTTOLLLLLLLEVVVVVVVVV
IEEEEEEEVWWWWWWWWWWPWIIIIIIWIIPPPPPPPPPXXZZZZZZZZZZZZZZZZZKKBBBBBBBBBBBBBBBBWSWSSWWWWWWXXXXXXXXXXXXXXYYYYYYYYYYTTTTTTTTTTTTLLLLLLVVVVVVVVVVV
IEEEEEEEEEELWWWPWWPPWIIIIIIIIIPPPPPPPXXXXZZZZZZZZZZZZZZZZZPPBTBBBBBBBBBBBBMMWWWWWWWWWWWWXXXXXXXXXZYYYYYYYWYYYYYTTXTTTTTKKTTLLLLLLVVVVVVVVVVV
IIIIIEEEEEEEPWWPPPPPPAIIIIIIIIPPPPPPPXXXXZZZZZZZZZZZZZZZZZPPPBBXNBBBBBBBBBMMWMWWWWWWWQQQXXXXXXXXXZZYYYYYYWWYYYYTTTTTTTTTTTTTLLLLVVVVVZZZZZZV
IIIIEEEEEECCCNWPPAPPAAIIIIIIIPPPGPGPGGXXXXXZZZZZZZZZZZZZZZPPPPBXXVBBBBBBBMMMMMMWWWWWWWWXXXXXXXXXXZYYYYYYWWWYWWYTTWTWWWWWWTTTLPPLLVVVZZZZZZZV
IIIIEEEEECCCCNNAAAPAAAIIIIIIIPPPGGGGGGXXXXXHHHWWZZZZZZZZZZPPPXXXXXXZXBBMMMMQQMMWWWWWWWWHXXXXXHXHHYYYEYYYWWWYWWWWWWWWWWWKKKKLLPVVVVVVVZZZZZZZ
IVVVVGGEECCCNNNAAAPAAAAAIIIIIPPGGGGGGGGGXXXHWWWWZZZZZZZZZZPPPXXXXXXXXAAAMMMQQQMWWWWWWWWHHHXXHHXHEEEEEYEYWWWWWWWWWWCWWWWKKKKWHVVVOOVVVZQZZZZZ
IVVVVGGEJJJJANAAAAAAAAAAYIPPPPPPGGGGGGGKXXXHWWWWWWWKPKPPPPPPXXXXXXXXXAAAMMMQQQQWWWWWWWWHHHHHHHHHHEEEEEEWWWWWFWWWWCCCCCCKKKKWHVVOOOOOVOQQZZZZ
VVVVVVVJJJJAAAAAAAAAAAAAAPPPRPPPGPGGGGGKKHHHHWWWWWWWPPPPPPXXXXXXXXXXAAAAAMQQXQQVVVWWWWHHHHHHHHHHHEEEEEEWEWWFFWWWWICCCCCKKKKHHNNOOOOOOOQZZZZZ
VVVVVVJJJJJJAAAAAAAAAAAAAAPPRRRPPPGGGGGKKKKHWWWWWWWWPPPPPPPPPXXXXXXXAAARAARQQRVVVVWWHHHHHHHHHHHEEEEEEEEEEFFFFFWWCCCCCCCKKKKHHHOOOOOOOOZZZZZZ
VVVVVVJJJLJJAAAAAAAAAAAAAAAPPRRGGGGGGGGKKKKKFWWWWWWPPPPPPOOPXXXXXXXAAARRRRRQRRVVVVWWHHHOOOOOOOEEEEEEEEEEEFFFFFWWCCCCCCHKKKKHHHHHOJOOOOOOZZZZ
VVVVVVJJJLLJJAAAAAAAAAAAWTPPRRRRRRGTGKKKKKKKFWWWWWWPPPPPPOOOOOXPPPCCAAARRRRRRRVVVVLSHHSCCOOOOOEEEEEEEEEEFFFFFFFCCCCCCCHKKKKKKKHOOOOOOOOOZZZO
VVVVVVJJJLMJJUAAAAAAAAAAWTPRRRRRRRRRKKKKKKKKKWWWWWPPPPPPPOOOOOPPPCCCAAARRRRRRVVVVVVSSSSOOOOOOOOOEEEEEEEEAAAFFFFCCCCCCCHKKKKKKKHVVOOOOOOOOZOO
VVVVVVJJJLMMUUUUAAAAAAAAATTRRRRRRRRKKKKKHKKOKWWWWWPPPPPPPPOOOOWWJOOOORRRRRRRRGVRVSSSSSSOOOOOOOJEEEEEEEEJJAAAFFFCCCCHHHHKKKKKKKGGVOOOOOOOOZOO
VVAVVMMMMMMMHUUUUUAAAAATATTTRRRRRRRRKKKKKKKRRRWWWIIPPPPPPOOAOOWWWOOOORRRRRRRRRRRSSVSSSSOEOOOOOOEEEEEEEJJJAAFFFFCFCCHHHHHGKKKKKGGOOOOOOOOOOOO
VVAVVMMMMMMMMUUUUUUAAAATTTTTTRRRRRTTKKKKKRRRRTTTTUIPPPPPPPMOOWWWWAOOOOXXRXRRRRRSSSSSSSSOOOOOOOUUUEEEEEJJJAAAFFFFFIIHHHHHHKKKKKGOOOOOOOOOOOOO
VVXXXMMMMMMMMUUUUUUUUTTTTTTTRRRRRRRRRRNKGRRRRXTUUUPPPPPPPUWWWWWWWWOOOXXXXXXXERRRSSSSSSSSSSOOOOOOEEHEEEJKKKKKKKKKKIHHHHHHHKKKKKGGGOOOOOOOOOOO
XXXXXMMMMMMMMUUUUUUUTTTTTTTTTBBRRRQRRQKKGXRRRXTUUUUUPPPUUUWWWWWWWWOWOXXXXXXOERERSSSSSSSSSHOHHHHHHHHEEJJKKKKKKKKKKKKKKKKKKKKKKKLGGGGOOOOOOOOO
XXXXXMMMMMMMMMOUUUTTTTTTTTBBBBBQQQQQRRGXGXXXXXXXXXUUPPPPUUTWWWWWWWWWXXXXXXXXEEEESSSSSSSHSHHHHHHHHHHHJJJKKKKKKKKKKKKKKKKKKKLSSLGGGGGGOOOOOOOO
XEEXEEEEEMMMMMOUWUTTTTTTTTTZBBZQZZZQQQXXXXXXXXXXXXUUUUUUUUUWWWWWWWWWXXXXXXXEEEEESSSSSSSHHHHHHHHHHHHHJJIKKKKKKKKKKKKKKKKKKKLLLLGGGGGWOOOOOOOO
EEEEEEEEEEKKMMOKKKJJTTTTTTTZZZZZZZZXXXXXXXXXXXXXXXUUUUUUUUUWWWWWWWWWXXXXXXXXEEEEEESSSSSHHHHHHHHHHHHHHJIKKKKKKKKKKIIIQQLLLLLLLLGGVVVOOVVVGGOO
EEEEEEEEEEKKKKKKKKRJJTTTTTTZZZZQQZZZXKXXXDXXXXXXUUUUUEUUUNNNNWWWWWWWXXXWXXEEEEEEEESSSSSKQQQKKHHHHHHHHIIJIIIIIIIIIIIQQQLLLLLLLLLLVVVVOVVVVGGG
EEEEEEEEEEEKKKKKKJJJJJTTTTTZZZZZZZZZZZXXXDDDXXDXUUUUUENEENNNNNWWWWWWXXXWEEEEEEEEESSSSSSKKKKKKHHHHFKNNIIIIIIIIIIIIQQQQQLLLLLLLLLVVVVVVVVGGGGG
EEEEEEEEEEEEKKKJJJJJJJTTTTTTZZZZZZZZZXXDDDDDXDDXUUBUUEEEEENNNWWWWGWWWWWWOEEEEEEEEESSSSKKKKKKKKKKKKKNKKKIIIIIIIIIIIQQQQLLLLLLLLLVVVVVVVGGGGGG
EEEMMEEEEEEEKKKJJJJJJJJTTTTBZZZZZZWZZZDDDDDDDDDDUUBBEEEEEENNNWWWIWWWWWWWWETTEEEEEESSSSSKKKKKKKKKKKKKKKKKIIIIIIIIIIQQQLLLLLLLVAAVVVVVVJJJJJJG
EEMMMMMEEKKKKKKKJJJJJJJJTTTTZZZZZZWZGZDDDDDDDDDDDDBBEEEEEENNWWWWWWWWWWWWWETTEEEEEHSSSKKKKKKKKKKKKKKKKKKKIIIIIIIIIQQQQQQLLLVVVVVVVVVVVVAJJJJJ
EEMMMMMEEKKKKKKKJJJJJJJZZZZZZZZZZWWGGZDDDDDDDDDDDDBBBEEBBBNNBIIWWWWWWWWWWTTTEXEEEETSSSBBBBKKKKKKKKKKKKKIIIILLLIIQQQQQQQQLVVVVVVVVVVVVVAAJJJP
AAMMMMMKEKKKKKKJJJJJJJJZZZZZZZZZZWWWGDDDDDDDDDDDDDBBBBBBBBBBBIWWWWWWWWWJWTTTTEEETTTBBBBBBBKKKKKKKKKKKKKIBBLLLIIIIQQQQQQQQQVVVVVVVVVVVVAAJJJP
AAAMMMMKKKKKKJKJJJJJJJJZZZZZZZZZZWWWWDDDDDDDDDDDDDDBBBBBBBBBBIWWWWWWWWWWWTTTTEETTTTTBBBBBBBBKKKKKKKKKKKBBBBLLLLLQQQQQQQQQVVVVVVVVVVVVVVAJJJJ
AAAAAAMKKKKKJJKJJJJJJJJJZZZZZZZZZWWDDDDDDDDDDDDDDDBBBBBBBBBBBBJNWWWWWWWWWPTTTTTTTUTBBBBBBBBBBKKKKKKKKKKKBBBLLLLLQQQQQQTQQQQVVVVVVVVVVVAAAAJI
AATTTATKKKKKKJJJJJJJJJJJJJFZZZZZZWWWDDDDDDDDDDDDDBBBBBBBBBBBBNNNWWWWWWWWWPTTTTTTTUUBBBBBBBBBBKKKKKKKKKKKKBBLLLLLQQQQQQTQQQQVVVVVVVVVVRRAARRR
AATTTTTKTKKKJLJJJJJJJJJZZZZZZZZZZZZZDDDDDDDDDDDDBBBBBBBBBBBBBNNNWWNWWWWWPPPTTTTTTUUUABBBBBBBBBKBKKPPKKKKBBFLLLLLQQQQQQTTTTTYYVVVVVVVVRRRRRRR
TTTTTTTTTTKKJLJJJJJJJJJJJZZZWWZZZZZZDGDDDDDDDDBBBBBBBBBBBBBBBNNNNNNWWNJWEPPTPUUUUUUUUBBBBBBBBBBBBBBPKKKFBFFLLLTQQQQQTQOTTTTTYVVVVVVVVRRRRRRR
TTTTTTTTTTTJJJJJJJJJJJJJJWWZWWZZZZIIIIODDDDDDXSXBBBBBBBBBBBBBFNNNNNNNNNQPPPPPKURRRUUUBBBBBBBBBBBBBPPZKFFFFFLFTTQQQQQTTTTTTTTTTTTVVVVVVRRRRRR
TTTTTTTTTTTJJJJJRJJJJJJWWWWWWZZZZIIIIIDDDDDMMXXXBBBBBBBBBBNNNFNNNNNNNNNQQPPPPCRRRUUUBBBBBBBBBBBBBBBZZKFFFFFFFTQQQQTTTTTTTTTTTTTVVVVVVVVRRRRV
ETTTTTTTVTTJJWJJJJJJJWWWWWWWWZZZPIIIIIIDDDMMMMXXXXXBBBBBBBNNNNNNNNNNNNNNQPPPCCRRRRUUBBBBBBYBBBBBBZZZZZZFFFFFFFQQQEETTTTTTTTTTTTVVVVVVVVRRVVV
ETTTTTTTVVVVWWWJWWWJWWWWWWWWZZZZZIIIPIMMMDMMMXXXXXXXXBTBTNNNNNNNNNNNNNNNNPPPCCRCRCFFBBBBBBBBBTTTBZZZZZFFFFFFFGGQQETTTTTTTTTVTTPVVVVVVVVVVVVV
ETTTTTTTTVWWWWWWWWWWWWWWWWWWWWZZZWWWWWMMMMMMXXXXXXXXXTTTTTNNNNNNNNNNNNNNPPPPCCCCCCCBBBBBBTBBBTTTTTTZZZZFFFFFFGGGQQGTTTTTTBVVPPPPVVVVVVVVVVVV
EEETTTTTVVWXWWWWWWWWWWWWWWWWWZZZZWWWWMMMMMMMXXXXXXXXXXTTTTTTNNNNNNNNNNNNPPPPCCCCCCCBBBBTTTTTTTTTTTTZZZTTMTTFFGGGGGGTTBTTBBVVPVPPVVVVVVVVVVVV
EEETTTTMWWWWWWWWWWWWWWWWWWWWWWZZWWWWMMMMMMMMMMXXXXXXTTTTTTTTNNNNNNNNNNNNNAPPCCCCCCCCCXXTTTTTTTTTTTTZTTTTTTTGGGGGGGGGGTTTBVVVVVVVVVVVVVVVVVVV
EEETTTMMWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWMMMMMMXXXXXXXXXXXTTTTTTNNNNNNNNNNNNAPPCACXXXXXXXXTTTTTTTTTTTTTTTTTTTTGGGGGGGGGGGGTBVVVVVVVVVVVVVVVVVVV

2
data/13.ans Normal file
View File

@@ -0,0 +1,2 @@
35574
80882098756071

1279
data/13.in Normal file

File diff suppressed because it is too large Load Diff

2
data/14.ans Normal file
View File

@@ -0,0 +1,2 @@
228690000
7093

500
data/14.in Normal file
View File

@@ -0,0 +1,500 @@
p=26,88 v=80,92
p=2,90 v=77,99
p=43,54 v=-92,-36
p=96,14 v=-15,13
p=33,54 v=97,-64
p=94,53 v=55,67
p=45,28 v=79,6
p=64,90 v=-49,54
p=71,41 v=-9,67
p=15,37 v=58,-14
p=43,53 v=9,8
p=57,88 v=43,-55
p=37,96 v=-30,-69
p=35,54 v=-57,22
p=56,35 v=23,53
p=84,66 v=-94,75
p=15,30 v=-43,21
p=10,97 v=24,-99
p=88,63 v=21,-54
p=77,56 v=47,75
p=83,30 v=38,-38
p=95,97 v=-2,-91
p=7,32 v=-1,-42
p=62,84 v=-66,69
p=79,66 v=-48,-34
p=54,39 v=-12,21
p=87,9 v=-6,-39
p=66,101 v=-57,-87
p=47,83 v=-48,69
p=48,24 v=2,28
p=71,48 v=-14,-73
p=25,36 v=40,-66
p=10,12 v=-29,5
p=44,10 v=-79,-17
p=9,65 v=-7,-65
p=12,83 v=77,-85
p=70,38 v=-69,-19
p=60,38 v=-31,-15
p=98,20 v=7,-38
p=38,73 v=-61,33
p=34,32 v=-21,-96
p=48,44 v=-19,-34
p=26,49 v=-50,29
p=79,84 v=82,-93
p=50,43 v=41,57
p=9,76 v=-19,-80
p=81,20 v=25,36
p=18,19 v=45,-2
p=36,85 v=-34,89
p=38,16 v=63,75
p=45,31 v=-18,-78
p=7,42 v=-16,66
p=55,57 v=-77,-11
p=30,28 v=-43,-23
p=57,58 v=43,-49
p=36,57 v=97,-58
p=7,47 v=-64,-14
p=73,33 v=26,-48
p=52,48 v=7,-48
p=42,66 v=23,75
p=77,8 v=-28,-82
p=52,99 v=44,4
p=27,15 v=37,-3
p=72,57 v=65,53
p=59,85 v=69,-54
p=58,50 v=57,-95
p=54,73 v=-66,-19
p=54,64 v=31,-95
p=91,33 v=53,-43
p=67,2 v=-5,34
p=58,65 v=-31,38
p=65,93 v=62,17
p=68,59 v=-44,-42
p=9,27 v=-60,-99
p=4,73 v=77,-87
p=88,60 v=18,-20
p=82,9 v=-96,-9
p=99,39 v=-11,-24
p=23,18 v=-56,28
p=63,101 v=66,-48
p=4,63 v=-46,97
p=41,80 v=31,-49
p=21,25 v=45,36
p=89,43 v=-2,63
p=37,78 v=11,86
p=37,100 v=32,93
p=77,33 v=-94,29
p=25,34 v=-12,-81
p=31,87 v=-30,70
p=40,37 v=62,7
p=16,102 v=-82,4
p=98,45 v=-8,95
p=60,23 v=-53,-60
p=12,83 v=-8,19
p=49,8 v=-70,-39
p=38,27 v=25,-49
p=95,25 v=-59,28
p=42,56 v=18,-51
p=5,28 v=24,-73
p=92,73 v=7,33
p=41,27 v=88,80
p=78,16 v=18,3
p=11,80 v=99,62
p=100,56 v=46,98
p=97,47 v=20,8
p=27,6 v=-78,78
p=45,12 v=-48,-98
p=41,29 v=-44,-46
p=84,69 v=-76,-94
p=89,4 v=-70,-52
p=40,62 v=-60,72
p=62,26 v=40,-48
p=21,55 v=23,-87
p=80,45 v=-49,-82
p=28,100 v=23,49
p=67,38 v=6,-2
p=66,40 v=17,-44
p=72,32 v=-85,-28
p=53,60 v=35,-14
p=11,14 v=45,72
p=86,13 v=-36,49
p=65,88 v=-58,3
p=97,79 v=72,17
p=51,55 v=27,24
p=2,83 v=33,91
p=78,76 v=-31,-89
p=83,12 v=86,49
p=56,93 v=13,19
p=20,50 v=-38,45
p=46,6 v=58,17
p=48,40 v=66,-8
p=40,26 v=40,14
p=71,21 v=92,-59
p=5,67 v=59,-27
p=65,53 v=-62,44
p=14,83 v=69,75
p=95,35 v=-37,58
p=36,71 v=-57,-43
p=68,58 v=-97,37
p=45,75 v=66,61
p=25,22 v=-75,-66
p=38,8 v=-17,-83
p=32,8 v=-8,71
p=85,78 v=-44,54
p=48,64 v=53,-65
p=97,82 v=77,-78
p=10,32 v=99,-27
p=84,39 v=8,-21
p=83,58 v=74,75
p=67,65 v=48,-6
p=78,43 v=25,59
p=22,83 v=23,19
p=36,45 v=-65,-95
p=95,51 v=-32,-59
p=66,5 v=74,78
p=76,27 v=-42,52
p=99,64 v=75,-46
p=51,102 v=44,-25
p=97,14 v=-41,78
p=78,56 v=-76,1
p=77,12 v=-1,-97
p=58,1 v=13,34
p=5,28 v=68,-8
p=30,6 v=31,-83
p=11,91 v=78,-82
p=15,39 v=78,-26
p=32,58 v=84,-36
p=16,55 v=-36,75
p=100,96 v=16,42
p=89,28 v=-6,87
p=48,19 v=-57,21
p=42,50 v=-31,15
p=54,11 v=92,-24
p=77,98 v=-9,-33
p=71,36 v=2,60
p=18,44 v=-55,-66
p=26,16 v=-62,79
p=35,80 v=93,-41
p=90,30 v=29,-96
p=44,59 v=-26,-4
p=87,52 v=-43,89
p=91,39 v=3,-52
p=35,52 v=49,8
p=27,60 v=-12,-35
p=7,18 v=-53,-14
p=65,67 v=-32,91
p=13,6 v=19,93
p=94,28 v=35,33
p=22,29 v=-38,-78
p=91,59 v=26,-39
p=84,43 v=-76,67
p=29,102 v=-8,-99
p=84,92 v=-46,-36
p=56,10 v=-88,20
p=88,81 v=16,63
p=19,20 v=-41,79
p=43,54 v=48,59
p=11,0 v=28,-61
p=4,40 v=-94,-82
p=38,101 v=-18,55
p=88,18 v=-2,8
p=13,19 v=28,21
p=29,11 v=6,-69
p=76,91 v=16,49
p=74,29 v=78,74
p=45,53 v=58,-80
p=86,11 v=94,1
p=65,59 v=-14,-6
p=60,62 v=98,64
p=57,3 v=48,-32
p=46,48 v=83,15
p=54,78 v=58,-63
p=91,35 v=-19,-74
p=36,83 v=55,-11
p=67,53 v=63,-20
p=20,86 v=-25,63
p=37,7 v=-30,79
p=42,7 v=75,-54
p=76,73 v=14,1
p=34,57 v=1,-21
p=31,76 v=79,-44
p=53,93 v=26,35
p=60,65 v=-97,-42
p=99,102 v=-46,-55
p=65,1 v=-32,-25
p=86,14 v=60,-61
p=9,95 v=85,-39
p=63,86 v=-95,95
p=4,93 v=94,92
p=7,81 v=99,-40
p=28,0 v=28,5
p=52,41 v=-2,7
p=14,64 v=-16,-57
p=22,78 v=-56,54
p=44,98 v=-88,45
p=52,72 v=22,-79
p=63,35 v=13,-52
p=62,64 v=-62,39
p=10,53 v=67,31
p=16,100 v=-69,-63
p=17,47 v=92,-56
p=86,22 v=69,94
p=49,37 v=-79,95
p=92,96 v=-50,48
p=54,5 v=-48,70
p=67,12 v=-76,34
p=10,10 v=73,34
p=100,4 v=6,72
p=1,32 v=-90,37
p=33,22 v=-8,14
p=10,96 v=94,-9
p=84,95 v=-19,-25
p=42,27 v=66,-60
p=67,91 v=-76,11
p=21,23 v=-95,50
p=53,24 v=-57,-97
p=19,1 v=47,-62
p=84,59 v=-5,-2
p=10,35 v=37,-88
p=56,76 v=-92,-33
p=92,83 v=16,62
p=6,97 v=72,11
p=65,29 v=4,-82
p=37,52 v=4,29
p=78,53 v=39,74
p=100,50 v=83,-3
p=43,48 v=-61,8
p=78,102 v=-22,-99
p=89,73 v=25,2
p=91,86 v=7,48
p=88,37 v=-45,20
p=80,91 v=81,32
p=6,6 v=24,-83
p=86,57 v=3,-14
p=16,12 v=32,-76
p=46,53 v=-67,47
p=79,11 v=-54,64
p=87,99 v=-35,-7
p=8,34 v=-37,-75
p=73,61 v=-70,13
p=38,2 v=-84,40
p=92,23 v=9,25
p=35,60 v=-25,31
p=72,9 v=16,27
p=9,33 v=-7,-31
p=98,17 v=50,28
p=62,15 v=34,-54
p=72,4 v=21,86
p=46,53 v=-39,61
p=80,58 v=84,-86
p=83,88 v=-86,29
p=2,38 v=62,-38
p=70,61 v=23,-97
p=100,77 v=-64,-72
p=27,45 v=58,-14
p=25,3 v=40,72
p=73,102 v=-74,34
p=80,63 v=-58,-56
p=50,52 v=53,-7
p=33,82 v=19,99
p=28,15 v=-52,57
p=66,43 v=-54,-6
p=44,40 v=-56,63
p=31,12 v=36,65
p=3,41 v=-99,52
p=35,87 v=-4,-86
p=79,84 v=-67,99
p=88,22 v=16,-2
p=71,85 v=92,70
p=96,60 v=76,98
p=38,48 v=14,-7
p=86,15 v=-33,-75
p=75,57 v=66,-85
p=85,68 v=-19,-27
p=46,95 v=75,48
p=14,71 v=32,1
p=74,71 v=-54,-95
p=11,12 v=-64,13
p=17,37 v=81,53
p=2,15 v=23,-3
p=9,75 v=-39,47
p=46,70 v=44,-34
p=86,48 v=-15,-98
p=32,45 v=62,81
p=22,3 v=59,94
p=24,81 v=-82,25
p=85,11 v=-3,-32
p=96,86 v=20,39
p=43,2 v=62,42
p=45,98 v=-26,-54
p=51,16 v=92,-53
p=77,13 v=-45,-61
p=58,54 v=-44,30
p=52,3 v=-49,-33
p=28,76 v=-12,-64
p=45,38 v=-53,34
p=11,28 v=85,-67
p=29,88 v=90,4
p=44,102 v=-21,17
p=15,37 v=94,66
p=73,32 v=30,80
p=65,86 v=-19,-21
p=34,64 v=-26,16
p=60,2 v=-18,78
p=39,0 v=-34,94
p=28,15 v=32,-93
p=8,100 v=98,40
p=62,62 v=48,60
p=37,44 v=25,10
p=39,72 v=-96,91
p=84,33 v=93,18
p=81,44 v=69,52
p=37,22 v=89,-48
p=0,42 v=-63,-36
p=35,42 v=-17,-22
p=90,39 v=-76,-30
p=55,74 v=-22,-92
p=1,55 v=-64,-86
p=60,23 v=-9,-97
p=21,4 v=-91,64
p=90,72 v=56,95
p=35,41 v=58,22
p=57,81 v=-9,-96
p=11,102 v=-73,-17
p=45,58 v=-43,52
p=43,25 v=48,-37
p=78,12 v=12,42
p=48,43 v=79,-29
p=31,100 v=-30,-54
p=24,63 v=-61,28
p=44,67 v=-35,-94
p=100,49 v=-98,-52
p=29,54 v=41,-64
p=29,33 v=50,44
p=22,40 v=-47,8
p=56,67 v=-5,75
p=78,95 v=78,-48
p=58,72 v=-48,-65
p=6,94 v=90,9
p=76,58 v=12,-80
p=68,62 v=-58,61
p=62,85 v=57,91
p=16,88 v=94,-5
p=72,0 v=-74,-91
p=0,75 v=11,-93
p=48,42 v=92,-6
p=24,102 v=68,-78
p=21,86 v=-56,25
p=3,63 v=-11,-43
p=36,102 v=14,-4
p=56,52 v=4,-58
p=5,55 v=-1,84
p=92,1 v=-94,-84
p=27,50 v=54,-88
p=80,91 v=-76,33
p=50,19 v=9,87
p=69,37 v=-58,-8
p=34,63 v=14,61
p=17,52 v=19,37
p=93,65 v=-15,46
p=37,15 v=-13,56
p=100,63 v=-68,17
p=41,81 v=97,-92
p=62,17 v=-72,13
p=0,16 v=-77,-31
p=14,17 v=41,28
p=27,34 v=58,-74
p=35,40 v=14,21
p=8,88 v=-24,98
p=35,28 v=-94,46
p=93,42 v=-59,22
p=83,26 v=-11,1
p=2,22 v=-42,65
p=35,102 v=-25,-4
p=21,22 v=41,-81
p=35,0 v=5,41
p=70,99 v=74,34
p=75,28 v=4,81
p=11,91 v=-56,33
p=16,52 v=65,-38
p=55,14 v=-66,78
p=39,68 v=-71,7
p=25,53 v=-56,-29
p=70,42 v=-33,-35
p=40,81 v=-70,47
p=15,78 v=-82,26
p=85,97 v=51,-33
p=78,72 v=43,-48
p=92,60 v=-77,10
p=55,65 v=-14,-79
p=46,45 v=92,-72
p=15,54 v=-3,-51
p=65,2 v=-80,-70
p=73,30 v=78,-74
p=23,12 v=-64,-98
p=85,3 v=-68,-11
p=30,69 v=-21,69
p=57,38 v=-18,37
p=11,88 v=-82,-19
p=55,101 v=-54,44
p=68,56 v=57,-65
p=4,81 v=-12,92
p=43,70 v=62,-27
p=42,25 v=-31,13
p=0,61 v=-16,-64
p=45,25 v=31,-82
p=23,75 v=-47,92
p=57,33 v=-30,25
p=0,34 v=-94,-36
p=78,57 v=34,-43
p=67,99 v=-22,4
p=3,46 v=-99,8
p=44,28 v=80,-66
p=84,60 v=72,18
p=51,66 v=-88,67
p=38,7 v=-61,-47
p=34,23 v=40,-88
p=66,46 v=83,-81
p=73,98 v=51,33
p=37,56 v=62,81
p=30,98 v=28,58
p=71,99 v=38,62
p=64,7 v=52,86
p=26,53 v=-12,89
p=87,50 v=43,-29
p=65,101 v=87,-96
p=34,52 v=-21,66
p=14,84 v=-60,3
p=4,7 v=-50,49
p=45,73 v=-17,-64
p=18,92 v=-29,40
p=83,54 v=2,-64
p=95,26 v=60,50
p=86,80 v=95,25
p=5,52 v=-25,15
p=99,98 v=-46,77
p=81,52 v=25,9
p=53,89 v=-54,-83
p=60,36 v=92,73
p=78,27 v=7,15
p=55,51 v=-63,-74
p=5,85 v=-56,-97
p=26,17 v=6,46
p=37,36 v=-67,51
p=69,52 v=96,67
p=24,86 v=-11,35
p=44,1 v=-21,26
p=55,95 v=61,-33
p=75,101 v=65,-3
p=16,17 v=-29,29
p=80,69 v=12,68
p=78,61 v=-11,-7
p=99,99 v=11,-62
p=41,47 v=47,-86
p=52,81 v=31,54
p=86,60 v=-37,16
p=15,89 v=-43,-18
p=72,99 v=12,26
p=42,15 v=-13,-47
p=37,79 v=-41,70

2
data/15.ans Normal file
View File

@@ -0,0 +1,2 @@
1294459
1319212

71
data/15.in Normal file
View File

@@ -0,0 +1,71 @@
##################################################
#O..OOO.O.....#O...OO.O...#O...##....O.O..OOO#.O.#
#....O.O..O.........O...O.......O....#.O.O.#...O##
#O..O..OO.O.O.........#O..O...O.....#...OO...O...#
#...O.#.O..#.O..OO...OO..O....O#......O...O......#
#...........OO....OOOOO.OO.OOOO...O...OO....#.O.O#
#..O.#..OO...O.O#OOOO.O.O....OO.....O.O......#.OO#
#O........O...O.....O.....#.O..O.......#..O.#...O#
#...........O..#.#.....#......O.....O..O....OOO..#
#O...O...OO...O.OO....O#O...OO.O......OO..OO...O.#
#...O#...OO....OO..........OOOO.O.OO.O#.O....OO..#
#..O..O.OO.OO.OOOOO....O..O..OO....O..OO....#..#.#
#..O.O.O#..OOO....#..O.O.#O#..O.O.....OO#O.O.OO###
#....O..#.....OO.O.O......O.....O..OO.O...O.....O#
#O.#O..........O..O.....O....O.OO...O....O..#..#.#
#........OO...........O#O...O...O.O.......O.....O#
#.........#....OOO...O.......OOO#.......OO....O.O#
#OO..........O.O....O..O....O...#O.O....O.....O#.#
#.....O.O.#O#..#.OOO.O..#OO..OO.....#.O......O...#
##.O.O.OO.OOO....#OOO.#...O...O.O...OO.......O.O##
#O..OO..#..O...OO.OO..O..#.#.O..O.#O..O.O....OO..#
#.O.O...O.....O.....OOO.......OO.O...O.#.#O..O.OO#
#OO.O.OOO..O.O..O.O..O..O....O...O...#OO.O.......#
#.O.....O.....O#O.#..O.......OOO.....#...O.O.....#
#O..O.......#.#..#...O..@.O..OOOO..O.....O.OOO...#
#OO........#OO.....O.O.#...O..O..#.O...O#.O#.....#
#.OO..#...OO..O........#.#.O#..O........OO.O..O.O#
#.O....#.O.O.#....OO.....#.O.O.O#.O.O..##.....O.##
#......O..O....O.....O.O.#O.O......#O...O#OO.#..##
#....OOO.O.OO..............O##...O#O......O....O.#
#O.....#.O......#..#....O#O.....O..O.#.O..#O.....#
#...........OO....O.....O#......OO.#OO..O........#
#O..#OO.....OO.....OO.....O........O.............#
#...O.O.O.....O...O.O.O.........O.#...O....O.O.#.#
#OOO.O#..#......O...O.O##O..O......#.#O..O.......#
#................O.#.......O.O.#....#.OO...#.....#
#....O....O#OO...O..O...#O...O....O.O###O#O.OO...#
#OO..O.O...O.......O#.O....OO.......#O#.O..OO..#O#
#...O.O...OOO..O......O....O......##.#.O.......O.#
#....O..O..O.........O#...........O.O.O...O.#....#
#..#..O.#.....#..O...#.#...O..OO...............OO#
#......OO#O.OO.......#......OO........O#.....OOOO#
#..OO.#.....#.O.O.O..OO.O#O.O..OOO#O....O....#...#
#...O......O.......O..O.OO...#........O..........#
#...O....O....O...........OO#.O......#..#O..O...O#
#....O#..O#.#....O....#.O...OO.O..#...O#........O#
#...O.##....O.O..O..........O.O..OO.#O#...#O..O..#
#.O.O#O##.O.O.....OOOO..##.O..#...O.O..O........O#
#.....O..#....#.........OO...........#.#.O....O.##
##################################################
v><<vv^^v<vv>^<<>v>^<<>v>^<^<><<>><<>v^>><<<v>^<^v<>^v^>>v^v><>>^v<^>^^^^<vv^<>^^>v<^<>^<^>^v<<v>v^>vv<v^^<^>^^^<^>>>^>v^^^v<>>><>vv^<><vv<v><>v>^^>>>>^>><<v<><<<<^^>><^v<^^>v<>^>^v<>>>v>^<<^>^vv^<<vv<^^^v^>^>v>^<>vv<<^>v^v<>v^v>>^^v>^^v^v<<<v^>>><>>>v^v>vv>>^^<^^vv<^<>>>vv<<^<>v><^<vvv>^^^><vv<<vvv<<^>v<<<v>v^>>>^<>v><v<v^^>>^^<^v<>>><<<^><v<^v>><<>^^<v>><<^<>v<>^^^<>^<v<<<^<v>v>v<vvv>>v<v^>>^>v><<>>vv^>^v>><v^>><<<^>>>>><>^<v<<><<<<<<v>^><>>>^^>v<^<v<<vvv^>^<>^>>>v><><v<<<v<<><v<v<<>^^<v^v^>^vv^v>v<v^^^^v^<<>>^^^v>>>^v<^v<<<<v<>^<>^>>^v<^>><>^>^>>v^>vvvvv><<vv^>^v><<><v<^v^<^<v><v<<^<>^<<v<>v^^<<>>><<<v^^^^<^>^^vv>^><^<^>v^^v^^<v^>vv^vv>v>^v^^<v><^<<<v<v^v><>v<>^<<v<<<^>vv<v^^>>vv<<^<>>>^^>>>^vv<v><>v<<>^>v<v<>^v^^^v>^v^v<^<><^v^><>v^>^<v>>>><<<^<vv><<><v<v<^<v<>v>^v<^v<<v>>v^^^^>^v<v<^>><>><v>>>^<^<<><<v^<^v<>^vv>>><^<>v^<v^vv^>v<><^^^^<<^<><v>v^>>>^^v^v^<<<^><^^vv^<^>^vvv>>^<<^^<^v>><><^>vvv>>><^>>^<v<<<v^<^v<^><>vvvv<>vv<^<v^<>^v>^^v<>v><>>^<<v><v<vv^^<<<>>v^<v<<>><^>vv^>^^>v^v^v<
>v^^<<>^^><<v<<vvv^>^^^v^v<>v<v>^v^^vv^v>>v<>>^><<^<v>>>^^^^vv<v<<<<>^<<<^vv>vv^><><vv>v>v>>v>^v>>v^v>v><^>>v><><v<>^v<^>^>><>^>vv>^<<v<>^<^^<<>^><<<<^>>v<^>^v<<<^^v^><v<^>><v><>^^>v<^v<v>^>><<<<^<<^^vv<^<v<<>>v>v<^^<<v^vv<<>v^>^<^>vvv<^^^v<<^<v><>>>vv^>>vv<v^>^^>>>v>^vvv^><v<>>>^><^>^>v>^v<v<<<v><^vv>^v<v^>v<v^^v<v<>^vv^<<^^v<<v>vvvvv<>^^<v>v<^vv^v^>^vv^>>><vv^<<^>v^vvvv<<><<<vv<><<v<vv<v^v<^>>^><><^>^v<<^v>^<<>^^vv><<v>>v>v<v>^<v^>^<^v>v^>v>v^^><v<^<^v<<v>vv>v<><>^<<^>v<^>><<><vvvvv^v^<>><<^v<>v<v^^v><<>^^v<<>v^>^<v>>^v^^><<^>>><<^<><v^^<^><<<><vv>^v>v<vv<>^v<^<vv^>^v<<v>v<v<v>^><^<<<<<<v><v^<v^>v<<vvv>>><<^v^^><>><<<<<^<>^^vv^>>>vv^vv^^<^^<vv^<^>>^>>vv<v^^<<><^v^<<>vvv^^v<vv<^^><^><>>v>v><>>><>^v<<vv^><^>>^v<^v<<^^vv<>><v>v<<>vv>>>><>><^^^v<^v^^vv<v>>^>^<v>><>vvvv<v>^^<^^v<<<>^>^vv>v<<<v^><<v^v^>v>><v^>^v^>v<>^^<<>><<>v>>^>>^v>^>^vv>>^<><v<<v^<v^<^<>^v<^^<v>>^>v^v<vvvvv^v>>>^^<v^>^<<v^^v>^v^<><>vv<^>vvv<^><^>v^v<^><^^<^v>^<v^v<><>v^>v<v<>^>v<v^^<v^^>^><>^>>>><^<>vv<>vvvv><^v^^<^<<vv
^^^>vv><>>v<><v^>v>v^v<<<^v<^^><><>v><^>v>v^<<<^>^^^^<^^>^^v>v<>^>^>><^>>>v>v<<<<>v><^^^vv><><<^vvv<<<^<v^^<>^v><><^>v^v^vv<<v^v^^^^^^^>>><v><v<v<v^<<v^v<><vvvv^><>>^><^<v>vv^v<>^vv^^v^^^vv>>v<v<^v<^^v>^^<>^<^<^<>^<v><><<>vv<<v^><^^vv<v<<<^<^>^><vv<>^<>vvv<><vv>^^^v^<><^^^vv^v^<<<v><^^v^<>^^<<<^<><>^^^^>^^<^>^vvv^^<<^>v^^^>>>^>>v<v^^^>>v>>v>^><vv^<v>vv<^><<<>vv^^^<^^^^^><<>>^>^v<>>^>vv>>v><v^^vv>^^<>^<<<v>^^<<<<>>^>vv<v>><><^v<^>^>^v>^v^>>>v<v<<^>v<><v^v>>vvv<>>v<v^^^>^<><vvv<<<vv<^v^<^vvv<^^<^^>v^>^<v<>>^v^>v>>><v^^><<v>v<>^v><<^><>v<>>^^^>v<<<^>>><>v>v<>>>v>^>v<^>^>^^^<^>v>^^>^v>vv<<<v><^v^^>^><>^><^><>><<>>>^<<>v<v><>^v^^v^><v>><v<^<<v>><<<^^<<v<v<>^v^<<<v^^^<<>^<<><vv<v>>^vv>^vv^><<^><v>^vvv^<^v>^>^<v<<<^vv<<v<v^^v^^^v^vv><<^^vvv<><>vvv>v<^v^<vvv<<<^^v><v^^<>vvv<>>v^<v^<^^^v>^^v<<vv^>^<v>^<^^>^>^v>>><v<^>><^<^v>v^>v^>>>v><vv<<<v<^>v>>^<<><>^<vvv>^^<^^>v>^><>>>>><<v>>v<vv<<><^<><^<>^v>^>^>v^v>v>^<^v><<v>>v^>v<><^<^^^><>v^><<<v^^><^>v<^>>>^><<>v<^>^vv<<>>v^v><>v<>^<<>^vv>^>v^<^vv<<<>
<<v^v>>>^<v^^>>>^><^^>v>>>^v><v<<v>><^<<v><<^<><v^><<^vv<<>>>^v<v<^v^^>v>v^v^<^>><<<><><^>>><v<<<<>^>>^<<<<<>^v<>v<^v^>>>><>v<^^v^^v<<>>^^>^^^<^<<^<v><<v<v><v<>><v>^^^^vv^v>v<vv>v<v^>v^<<><>vv^^^^>v^><<^^^^v<>>^<vvvv^vv^>v^^^<^>v<v^<<<^>^<^^><>v>><v>^<v<>v<^^v^v^^<>>><<<<v<v<^^vv^v^<>v>^<v>vv>vvv^^<<^>v<<v><^<v^^<<v><^^<<>^^^v^v>^^^v^v>v^<>^<^^vv>^^^>^^^<^>^v^vv><^v^<^v><<>>>vvv>^vv<>^>>v^^^vv<^<>v^^^v>><>>vvv^v<vv^^><^^vv<v<v>v><^^><<v^><^>><vv>v>^v^v<>^vv>^><<v^>^>^>^>^>^<<>><^>v<^>^v>v^>v^v<<<<^>^>^v<<<<><v><>^>v>v>vvv>>><>vv<<<<<vv<v>v>vv^<<^v><><^>>><<>v>v<^<<>>^><<><>^><^v^^<vvvv^^^>v><<vvv<<>v^^^^vv><<<<><>^>^<>^><^<<^>>>^^^>^^^v^^>v^^vv><^<>>v^>v^^v^^^^<>^v><>>^v^>>^^>^>><v^>^v^v^>>>^^^<>><v<<^<^v<v<vvvv<v>^<v<^vv^<^>^^>v<><^>><>^v>>v>>^>^v^v><>>>v>^>^^vv^<v^>v^v>^>^<><v<v^<v>vv<^<^><^v>^^^<>v<>><<>><><>^^<><<<<<vvvvv^v<^v^>v<><<vvv>>^<<<vv^<<v<<v>>^^^<<vv<>>^<><>vv>v^^^^^><^<<v<^>>^^v<>^v^v^<>v^><v^<^<vv<vv<<v><<^vv^v<<^^>>^^><vvv<><><^v>>v^^<<v<><<>^^<^^<>^v<v^<^^^>vvvv><v<^>
vv>^<>>^<^v^^^v>vvvv<<^^<v>v>^v^v<<>>^>>vvv^^<v^vv^v^v^v><vv^^^<>v>^^>><^><v><^^<^v^v^^<>>v^>v>>^^^^<<<^vv>>v>>v<v^^<>^vv>>v^^v><<^^^>vvv<>v<^^>^>^^><<>><<<<>v<><v^v>><^<^><^v^<v^>>v><^><>v^^<><^^<v<vv<>^<<<<>^<^<vv>><^><<<v>>>^<<>>v<<<<><>^<^^v><<v<vv^>^>vv^v<>>v>v^>>^v<^v>><v<>v<^^^^^<^^^^<v^vv<^<><>v<v^v>v>v^>^^>^^<>>v^v^><>vv<^^^^v^^^><^vv>v^<^><>^^v^>>^^>>v<<v^v><vv^>^vvv<><v>><vvv^>><<>><<v<v^^>v>><^>vvv^^^^<>vvvv^v<^>^<>^><<<<<>^<^v>vv^^>>v>>>>>>v^>v<>>v>v>^v>v<v>^^>>v>>>>v<^<^v<v><vv<<^^<><vv^v<v>^^^>>>>vv<>^v<<><>>^v^>vvv<<>>v<v>>v<>^<>^<vvv>><<<v>^>><<^<vv^>>>>^^v^>>><^<vv<<<v^><<v<>v^^vvvvv^>v^v<^^^v^^<<v<v^v^>^<<>v^^^v^>vv>^>^<><<^><^<>v>v^^<<<^v>v<^<>^<<v>>^<>v<^>>><vvvv^>vv><>>v><>^<<>>v<v<<v^>><^<^^vv><<>v><^<><^v<>^>^^^<vv>^v<^v^^vv<v>^^>^><v^^>^<^<^v<<^<vvv^<v>>^<<v<<<><<<v><>^<>^<^v<^^<>vv>vv^<>vv<^v<^<^^><vv>v>^><^>>^v><^v^><>v>^>^^vv>vv<<<<<v^v^v^>>^>^<<v<^v^<v>v>>>v>>vv>>^<<>^v><<><vv><>v>>><<v^><<>>^>v<<<^<><<v<v>^>v^v^>><<<v>^^>^>v^^>>^v>><^^v>vv^>v>v>v>^^<^>v>><
>v^>vv<^vv<v>vv><>^<>>>>v<v<><v>>v>>^<v^><>^^^v^>vv^^>^v<<^vvv^<>>^vv<>^v<v^>^vv>>^>>^>><^vv>vv<<<v><>v<^^<v>^<^v<<^v<^>><^^vv<vv><><^^<>^^v<><^>>><><<^<^<^<>>vvvv<>^>v<^<>^>>v^><v^><<>><>v<v^<vv>><^<v><^<<>>><>vv>^v<<><v<>^>>>v<^^><^v<v<^>^v><<^^<v>>^v>v<v>^>^>^vv<^^v^^<^^>><^>>^<<vv<>^><v^>^^>>>^<>><^^<^<<v>v<^^^v<>>vv>vv<v^v>^<^>>v>>^<<^<<<<v<<>^v<>>v<<^^v>><^<<^>>v^<^v><<>^v<>v>^>>^v<>>^>^<<^><>>>^<>^v>^v^<v>>^<^^^v>><><v^v>>^^>>vv>v><^>^^^v><vv<^>>^v^<^>v><^>v<<^^<<v>>v>v^^v^<v<v><^>>><v^>>^v>>v>v<^<>^<<>v<vv<^^v<>v<vv><<<><^^<v><>vv<>>vv^<^<>>v^>v<>^>><<^v<><^>>><><^>^><>>>v<^<^v>>><^>v<v<v^>^^v>v^<v>^><^^>^>v<v^>>v><>><^v^>v>>>><>^^v>><^<>v>^<>>vv^v>^v^><v^v^>^v><>v>>><^^>v^<^v<^>>^>^><><^<^>^><<>><^v><v>^>>>v><<><^v>^<vv><v<v>^>v<v<v^^^>v^><>v>v>v><^v>>^v>>><^^^<^<<>v^^>vv^<<><vv^<><>>^vv>v<><v>vv<><^>^>><><v>v<>v>^v^<vv>^>>><>v<<^<vv>v^<<^><>^v<v>v^>>^>^>^<<<v^v^v<vv<^^>^<>v<v^>>>><<^<v>^v<^>^>v^v<<<<<>>>^>v^>>><<>>^^^>v><><vvv><^>>^vv<<>^<^^v^^vv>v><v><v>^<>^>>>v<^^<vvvv>>>^<
v<<^<v><^v<v>vvvv>v<<v<^v><vvvv>^<^<^>vvv<>^^<><^<^^>vv^<v^<<^<^^v<v>>v>^>>^v<^vv^v^>^v^v>vv><><vvv<><^v>>v<<^v<v>v<<v^<^<<^>v^v>>^>>^v^<^><^<v<<v<>vvvvv<>^<^<>>>^^>vv^<<<^>><^<^>^^<<<<v^><<<<^>^^<<<>>>^>><>v>^v^^<^^>vv><vvv>^v<<<>>v<>v^v>><^^<vv<>^^<>>>>^v<<v^^^^vv^><<^^^>^v^<<v>^^v>vv><<v>>>v^v>>v<^v<v><vv<^vv><<>>^>^^><>^>><>>v^vv<vv^<<<vv<v>><v^^>vv<^>^<^<<<>^<^>^^>vv<v<v<<^<>v^v<><vv<<^vv<<v>^v>v^v><v^vv^<>v<^<<v<<><>^^<<<>v^<<>v<^vv^>^^<v^><>v>v<<v>v<<v>^<vv<^v^>>>>v^v<v^^<v>>>>v><^>v^vv><v^^>v<^>>^^vv<v^><v<>>^v^<<<vvvv^>v<<^<<^^v^v>vv>v>^>v<v^>vvv<<<>^vvvv<^vvv>^<v^><<>vvv<>v^>v^<>^>><^v<v^^vvvv>>^v><^^v>v<><vvv><<>^v^<>><^><^>^<<vv^<<<vv<v<>v^^^v><^><^v<<v><>v<^><<v^><><>^v>vvv<<v>><<v>>v<<v<<>v^<v^<>v>vv><>v<v<>^^^<<<>^><<v>v>><^v>>>^>v<v^<<^>^<<>^v^^vv<<<>vv>>^><v<<>><vv^>>^<^<>v^^<v<<^>^<><>v>>^v>^vv^>><>>>^^v^>>>^>^><<v>>^>v^>>><v^>>vv^v^>>vv<><>^>vv^^>vv>>v^><>>v^><>^^<vv^^^>vvv^>v<>><<>^v<<>^v^>><<<^v>^v>^vv<>><^v<><v^vv<>^v<<<v>>v>^<v^v>v<<^v<><^^<^vv^<>^<^^<^<<>><vv<^<
^>>^>>^<<<^>^><<v^>>^>v>><v>v<v>v<^<^v<<^<>v<>>>><<<vv^v^^^^>^v>>^<<<^^><>v<><>v>v<>^<v<<^v>>>><vvvvvv<><<><vv>>><^vv>^^vv>v><^^^v^>><>^<v^v>v>>v>><>>v<^^vvvvv^^v^<>^v><v^>><<^>^v^<<>>>>>v>>>>^^^^^^v<^<v^<vv^><vv^^^>v><v^<><<^^>^^v^<<v>v^vv<^<<<>^^>v>><^>><<^>^v<<><^<<>v^v<^^^<^<>^<v<^^>^v><>vv>>v^^>>>^<v>>v<>><^v^><<>>><<>^^^<v<<<><<<v<^v^<<v<^>^v^^<^v>^vv<>>v><^v^>^>><>>^v>^>v^<<>>^<<<<><>^>^vvv<<^^^^v<<v^v<^<<><v<v^>><>^<^^<<<><>^^^^^v>>vv^v<^^<^<v<<v^<>vv^<<<^>v<>v>v>>>^<>^vv>^v<<<^^>^<^^vv<>>>v<vv<vv<>^>^>>>v>>^^<<vv^<<^vv<^><>^><^<<v<><^<<<>^v^<>v^<vvv>^<^^<<v<v^<>^<>v^^>^>vvv<>><<^>^>>vvv<v><^<^<>><>^^<v>^v^vv>vv^>vvvv>>vvv^><>v^v<<>>>^^>^vv<^^<<>v><v><<^>>v>><vv>^>vv>v^^>^><<<<><v>^^<v<>^<^>>>>>^<>^<<<v>^<<<v<^<<<>>v>^v>>v><<^^<v>v>v^><v>^>v<^<<v<^<^<vvvv>>vv<v<v>v<^>v<^v<>v^>v^v^^<>^>^^<>>>^<>^>vv><>>^<^<v^v^>^<^v><<<>>v>v^^^><>>v>^v>><v><^v^v>v<vv><v<<>v^>>v^><^<<^v<^>^<v>>vv<><<^<<vv^>^<<>><>v^<v<<<>vvv^^vv><>><<>^>v^><<>^^><^v<>><<<>><>^vv<^><vvv>v>v<v<^^v>^vv^<<^>^>v>v>vv>
>^<v>^^^^>>>>^<<>v^^^v<><>>v^^<<<<^>v^>>v^<>^<>><<v^<v^>^^vv<>^<^>>v><>^v^^><^>>^<<<^^>^v<^^><v<>v>^>vv<^vv>>vv<^v>^<><v^v<<>>>^^<>><^<<v^v^v>^><^<>><v^v>^vvvv><<v<^<><^^^v^>>v<><<<><vv>vvvvvv^><<><^<vv<^>>>v<<v<^^>>vv<<<^>^>v<^v<^><^vvv<^v^v^^v^<<><<><<v^<^>vvv^v<>^^v^v^^v>>>^v<vv>^^>^>^^^>v^<^v^^<>vv^v^^v>^><v^^v<vv>vv><v^v>v<>vv^<^<^^v^<v>v>>v<^><<<v<><<^>^><v^<^vvv>^v>v>v<v<vv^<v>><v^vv>><<^^<<<v<v>^v^><^>>>><^>vv^>><>vv><<^>vvv>^>vv>>^^>vvvv><><<><^vv<>v^><v^v<vv>>vv<<<<<^^^<^>^<><v>^<^^v><>^v><>><>v<>>>v<v^<><>^<><<^v^^>^>><><<^<>>>vv<>^^vv^<v><v<<^^<^>^^<>^>>>v>v^^^>^v<><<>v^>v>^>vv^v>v>v>^^v<<<<^<^><^<<><^^^^^^>v^<^>v><>v><^^>><^><>v<<vv>^>^vv>><<<>v>><^^v<<><>^v<>vv^^<><<v<>>^v<^><<^v^vv^v>^^>>>^<^v><^^><^^v>v>><<><^v^^>><^v>v>v^<<<v<v<<vv^v<^><v>>vv><<>^^>^<^<^<>v<>v<vvvvvv<<^<>>v^^>^>>^><><><v>^>v^<^v<>>v<>v^<>v>>^>^v^<^^<v^^v^^v>^<^v>>>>vv^<v<^>^^vvv>>^<<v>^<><>>v>^>>^v^^>^v><>^<<^^<v^<<^>^<^v^>><><^>^>v^v^>^>^<<<^<^v>v<>v<v<^<>>^<><<^<v<v<v^<>^^>v<^^v^>^vvvv>vv<^>^v^<v^<><
>^^v>v<>>v^v><^<vv<>>v>><><>v<^^><>v^^<>v^<><v>>^<v^<>v^<>>^<><^<><v^^^^^<<^v>^><^>^v>v<<>>>><v>^><vv^<^v^^<<<<v><<><v>>>><>^<v<<<v<>^<^v><^^^^v^vv<^<>^<<><v^>^<<^v^v<^<<<vv^<>v<^><>v^>>v^v^>>^^^>^>^>^<<><>^v^v>^^v<v<<v<>^v>v<vv^vv^<^<v<<>>vv^<vv<^<^v<v<>>^>^^^v>^>><^<^^<^<<^<vv<^vv><<<^v<^><>^>^vv<<>vv<<v<<><<vv<^><^v^^<v<>^v>>v<v^<v<v>^^v<^^^^^>v>^v>^<v>vv^><><^>>v^v><<v<^v<><^v<^<^>vvv^><^^v>vvv>v<v<^vvvv>>>^><>>^^^>^v^^^vvvv<vv>v<v>^^^^v<v^vv>v<v^<^<<^<^^vv^<^v<>^v<<>^>^v<v<><vv<v^v<v<v<<^<<>^^<v<^><>v>^^^^v>^<v^v^v<^><>^><<^>><^><v^>v<^>v>^v<^^>^<^><^>>v<v>^^<^^vv<>vv<<>v<<^<><>^v>^>^^>v<v>v^^v>><>v<<vv<v^^^>^v>v<>^<v><<^<<vv>vv>v<v^^>^>>vv<v^v^><^>^^>v>>v^>^<v>^^<v<><^v<>>^<<>><^<^^vvvv^><<^^^^<v^v>v>>vv>v<>^vvvvvv<^>^>>>vv>vv<<<<<>>>^<^>v<^^^v<v>v^v^v>v^<^<v>vvv^><>vv>>vv>^^>^>^>v^^^^v^v>><v^v<<v<v<<^vv^<>^^<><<^vv^>>v^^^>>v><><>^<^^^v<v<^v<>^<<^>vv^>^^>v^<<v^v^v<vv>v>vv^^v^^>>>><<<<v<v^<>vvv><><<<>v<<^>v<^vv<<vv<><^v<>v^><>>>^^^v>^<<<>>>^<<^v><<<>>>><^^<<<<<v><<v><vvv^^>^>vv^vv
v><><vv><><^v<^<>v>^v>><<^^^<<>^<^^<v<>>v<<<>><<><v><>vv<<^<^^v^^^^<<^^^v^v^^v>^v<^^<<^^>vvv>>^<>>>^^^><v>^v>v><>^^>vv^<v^<<><>v>v<<^^>^^><vv<v^<>>><>>^^vv<><<<^<v^<vv^<<<>vvvvvvv>^<<v<^><^<>vv>>vvv^v^vv<><>v^<^<v^>>vvv>^<v<^v<<^v^<v<^<v<vv<v><v^<^>vv><<<<><>^^><<><<><<v<>vv>^^><<<<<^^^<>v<^>^v^v>vv^v<v^>>v<<^v<>>^>^<><<<^><>><v><>v^>v>^v^v^v><^<v<v^<><>v^vv^><vv^>vv>^^>^^<<<v<^^<>^<v^>>^><v>v>^v^>v><^>v><>^>v^vv><<^v<>>vvv>vv<>^v<<^vv<v^^<v<v^vvvv>vv^^<v>v^v<><<vv^vvv><<>^^>vv<<vv<^<<><<^<<<^^<v^>v^>^^><>^^v><><>v^v<v>>><v>>^vv<<^^>v<^^<<v>^><>>>>v<<<v>^>^^v><<^v>>v^>>^>>><<v<^v<<^^v<<^<^>><v>>><^>^<<^<<>^^>^^<^<<v^<^^<v>^v>v>v^>^vv^<>v>^^v^<^vv<^>v^><<>^<v<vv>v^<<<^<v<<>>>^v>>vv>>^>v^^>v>><>^<<<^^v<^><><>^>^>v>>v<<>v><vv>v^^v>>v<^^^vv^vv<<^<v^^<v^>^v>^vvv^>>v<<><<v^>^v^>>^<v<>>v<<>>^<>>v>v^v<^>>><v>^<<^<<<<v>vvv>^><<>>>v^^^>>><<vv<^>v><<<^^v^v>>>>^<<v<>^>>v^><<>v<<^^^vv<^<<^v<><v><<<^v>v<>^^<v><>v<<<^vv^>v>v^^^v^vvv>^^<v><v^>>>v^v><^>^<<^><v<^^<^v>^>>>><v^>><>v^>>^^^^v^<>><><<<><<v>>
<<vv^v><<v<^v<v^<<><^v<^<<<v<>^<vvv<<>v<>v^><vv>v^^<v^>>^^^^^>^<><<^^v^<>v><>^v<^<v<v<<<v<><<^>^^><vv>^v^^>v^^<<v>>v^vv<v^<v><^v>^^^v^^>^<><>^^<v<^v<>>vv>v<vv<<>^>>>v>v>v<v^^v<^<<^v>vv^>v^^^>>>^v^v><^^<><<><<^v<v><^v<>v^v>^^>^^>^^v^>^^v>^^<vv<<<^^v>^v<><v<v<v>^v^^^vv>><^^^^v>v<>vvvv<<><^v<<>^v^<^v<<><v^v><><v^<<^>>><>^v^<>^<^v^vvv<><<>^^^v<^v<>>^v^><<>v>v>^v>><^>><^<^vv>>vvv^><^v<<>^vvv^><vvvv^<<<v>><<<<><^v<>^v^<>^<<<<>v><>^v>^><^^^v^^>^^<v<<>^<^^>vv>^v>v>>>v^<>>>v>>>>^v>>^<v<<<<v^><><>^<^v>^<<>^<^^>^<^><>vvvv>^<^><<<^^^><v^<^>v><^>v<v^<vvv^^>^><vv>^>>v^<<><vvvv>>v<<v<v^v<>v^v<<vv^v^v><>v^^<^v<<^<v^>>v^v^<>v><vv<><v>^v<<<>><<v<<^^v<v^<v<v>><v<^>^<>v>v<<v^<v<v<<v><^<><>v<^v^<^^v>v><v<v<vv^<<><<>^>>>>>^v><^v<<^<v^^v^<<^<v><v<<^>>v^^>v<>v^^><v><v><<^>>v<<^v>^v^>^>vv<<<>>^<^>v>>^><<^^<<vv^^>>vv^<>^^<<<^<^^v^v>^<vv>>^>^><<^>^><>^v^>>>^<>^v^<vv>^^^<vv^^<<>^^>v^><<>vv^vv^<^v>^^<>^^>>^<^v><<^^>v^<^^<vv^v>>v<vv<v^>^v>>>v^<><<>>v>>>v^>>v^>^^v><<^<v><^v^<><>v><<><<^<><<><<^^v^<v<>^>>v<><^>v><><>
^>^>vv^^v^>>v<^<v>vv>v<v^v<v^^^^v^^<<v<>>^<^><<^v>^v>v^><><^^v<^^^>vv>v<<^<>>v^<>^v<^^^><v^<^vvv^v^v<v<v>^^vv>^v^^>v<><>>v<<^v<<<vvv>><>><<v>v^^vv^^><<<^>^v<vvv<v<vv<^v<v>vvvv^<^><vv><^>^^v>>vvv<>v>>^>^<<^<^^<^^>>^>v^<>>v><^>v>^<v<<^>v^<>^v><v>v<^<^v<vv>v>v^<v<vv<^v^^vv<v<<^><v>v<v>><^>^<vv^<^>>><^<^vv^^>v^^<><<v<<<<v^^<v>^vvvvv>>^^>v<v<^><^^^<^<>^><^<vvvv<<v^><v>^>vv<>v<><>>>><^^^>v^><<vvvv^^v<>^>v<>>^vv>>v<<^v^<><<^^><v^^vv<<>><<<>v<>vv>>>v<><>>v>vvv<>>^^<^^>><^^^^><<<>^^<^<^><^^<v>^^^>^<v<^^>>v<<<>vv^<v<^^>>>^vv^vv^v^^^vv<>^>^<<<><><<<<^^^^>^v>>v<<^^<^>^^>^v>v<>^^v^>v>^>v<<<v<<>^><vv^v<^^v>><vvv>v>^>>>>^>^>>>v^<^v^vv<v^v<^v>^v^v<vv<>vv>>><<^^>>v<<v>v^>>^>v^>^><^^>vv<^>v><vv<^><v><^^^<v^>vv><v>>v<>v<^vv<v<<>^<>v<<^<v^<<v><^v^<<<>><<>v^v^v^><<>^^vv>v>vv^<v>^>><>^>^vv^^^>>>^^><>v^^v><<>>^v<^>><<<><^<v^v^^^^^<<^^><>^>v<<^><v<^v<>^><^>>>><<vvvv<><^><v<^>vv^^<v><<>>v^v^>>v><^><>^>^vvv><^><><>vvv<v<^^^^vv^^v^<<^vv^<^<^v<^v<<>v<v><v<<^><vvv^<^v<>v>v^<<<<^>^><<v<vv><^<<v<<<>>v<>^vv<>>>^vv^^^
vv<<>v>v>^^>v>^<^<v>v><>v^<^<>^<^<^<>>^^v<><><<^<v^v^<^^<^vvv^v>vv^><^>>>^^>>>^^>v<><<v^v^>><v>^vv>v^^><>v<^<vv<<^^>><<v>>^^><<><v<v><v<<v>^^^v^>^vvv<v>^<^vv<^<v^vv><>vv><<>>v^>>>^^>^<<>v>^^>^v<^>><<>>>^^v^<v^>>>^<>^><^v>vv>^vvvvv>><v^^<v^vv<v^v^^>v>>><<^^<><^vv^v>^^><<<<v>>v^<<<^v>>v>^^v<<vv^v><>^<^<v>>><<<<v>v<>>v<>^><>><><^^>^<v>v^v>><><>>^^^>^^vv^v>vv>^<vv^^v<<^>^<v<^v>>vv^><>>v>^^vv>^^><<<^v<^v^<>>>^^>vv<^>>>^v^^>>><v<vv<<<<<<<v<vv><^<v^><<vvv<^><^^vv><<>^><<<<<^v<<>^^^<>>v^<^v><^^v><v^><^<><vvv>^<^>>^<<v><<v<<^>v>>>v<v<<<>vv<^v>v>>>^<<>>>^v<<v^><vv><v>><v>><v<<>v<v<<<v<vv>>^>^^<v>^v<<v<>>>v<<^^^>^<^<^^^>>^^<<<^^^<><<>v^>v>^^<v<v>^<>^><vv^><^v>^<>^^<<>>^v><<<><^^v<^vv^^^v><<<^vv^>v^>^^^vvv^v>v><>><v<>^^v<<v^v>>v<<v><>v^v^v<^<<^v>vv<vv>><vv<<vv^vvvv<>^>vv^v<<v<>v>><<<<v^><v>^^v>>>v><vv>v>>>>>>><><vv<v<<<^<><<<^<>vv^><<<>^^>v<^<<>>>>^v^>>^^>^><vvv>^><^^<v^<^^^vv>>>^^vv<^>v>^^v<<<>v>>v^^<<v><^^v<>>>^><v><^<vvv<^v<^v^^<>>^v><^v>^v>^<^vvvv<<v>^>>^>^<<^^v<v^v<>^^>>>^^>^vvv<<v<^^v>v^<^>>
^v^<>v>v^^v^^<<<<v<^v>^<^^^^v<<v>v^>v>v<<v<<^>vvv<>v<<v>^<^>vv^vv><<v>v>^>^^vv<<vv<>v^^<>v^^v><v>v>v><vv<><>^v^>v><v^<<vv<^>v^>>><^>>v<v<>^^v^^v^vv<^<vv>><^<>v^^>^v>vv^<vv^v><>><vv<<><vv>v<v<>v^<v^v<vv>>^><v^<^>>^>^<<><vv<v<vv<v<v<vvv>><><>v^><>>v>^^<^<<>v>><v>>^^^^>>><<>^v<<^<>>>^^^^vv<v<^<<<>v<v^^>^^>^^<<>^^v^<v^v><v>vv>><>>>>^v><v^><<^>^^<>vv^vvv^^^>^v^^<vv^><<v^><>>>^^>v<<>v^^^vvv^<<^vv^^><^>^v<<v^^v^>^vv<v^^v>^v<^<vvv^^>>><<<>>>><vv>^vv<><<v>v<>>>v>^^>^vvv><^<><^<<<<><v<>v>v>v<><<v<^v>v>v>^><v>>>>>>^^<<v<<^>^>^^^v<v<<v>^<^^<>^<v>^v>>^>>^><^^vv<<vv<<<vv>^^>>>^v<^v>vv<vv^>vvvv<<><<^^v>>>>^^^^vvvv^>v^><^><<>v>^v^>^>vv^>vvvvv^^^><<>><v><>^^<><^^v<>^^<><^^^^<<<v^^<^<><<<v^<>vv>v^^<<v^^^^<<v^<vv^v><<>><^^^v><<v<^^<vv>vv>v<>^<v^<<v^>^^vvv>v><>>v^v^>^^^^v>v>>^^v>^>v>^<v<v<^>vvvvv>^<^vv>^v>vv><<<>><>^>v<<>><^><vv>^v<<vv<><<>v<^v>>^>^v^vv><<<vv><^><>>><v^^>vv>v>^^>^^v>><^>^vvv>>>^><v^<<vvv><<<vv>^>>><v<v<>^>^<^<>>^v<^vv>v^^^v^<v><>>^><>v^^<<v^<><>>^><<vv<vvvv>>><^<<^<<vv>v^v^v^<vvvvv^vv<vvv
^vvv<<>>>^^vv^^><v^<><<^>><<^v^vv<v>>^v^>><vv^>^<<v^v^vvv^^<vv<v^v><v>>>>^v>^v><^^>v^^v^v<^>v^vv<^v<<^^^>^>><v><v^<>v<v<v>^>vv>>v>^v<^>v<^<>^>vv><^>v<<<<vvvv<>^<v^v<^<<>^>v>><v>>v^<^vvv^v<>^v<^<^vv<^<^vv>^><>v<<>v<><<>><>vvv^v<<^v^v<vv><<>v<vv^vvv<><<v>^>^>^<vvv><<>>vvv^^^<^>v^v>>^<^>v><v^vv<vv<<<<v^>>v>>>>^>>^>v>vv^<v>>^v><^>v^v>><v^v^<v>v^v<^<v<^^^^<v<v^^^<v>>^v><><<v<><><v<>^>>v><><>>><^>>>v^^v<<<>v^<vv>>><^<^v>v^v<>v>^^vvv<vvv^>^<>^<<>>vv^^<<vv<>>v>vvv>^>^vv^<<><<^v^v>v>>v^^^^^v<<<v>>>v>^>vv<^>^v<^><^<<^vv<>v><>>^><>^<^<>v>>v>>>v<^<v>^^<vv<v<^><^^^>v>vv^<<>>^^^<<^<vv^>>vv^^>v^>v<^<<>^<^<v><^^<<<^><<<<vv>>vv<<v^<^><<<<^<<v<>v^^^<>>>>><>v^^v<>^vv>^>vv<<<>><v^v>v>><v>v>vv^^v^v>>v<v<<<><^v<>>vvv^>vv^^vv>>vv<^^>><><<v><^<^v^<v^^<v^vvv^>>v^^<v^^>v^>>v>v^^<v<<>^v><v^^v>><<<^>v<vv>>vvv>^v<>^<^^<^v<>>^v^^>><><<<v^^<^^^<^vvvvv>vv>^>v^^v^vv^>>><vvvv<v><><vv^>^^vv<<>^<v^^>vv^>^^<>v^<<v><<v^>>^^v^><<<>>v>>v<<v^<>^v>vv<^^>><^<<>^vvv>^^<^<v^v<<<<^<vv>><<>vv>^>^^<<>>^^vv><^^>v^<>v><>^^<^^v><<^>>^>
<><<^<<>^>^^^^>vv^v><^>^><<><^><^v<vv^<^v><>^^^><>^v^v<><<<>>v<>v>^^<^v^^^><>v^^^^<<^v>^<><<^vv<<<<^>>>^<v>>v^>^>^<><v>^><>v>^>^<^<^v^vv<vv^^>^<v^><<>>>>v>^>^v^vvvv>^v<<>v>><>><v>^>^^^>vv<^vvv<^<v^vv<v^vvv><v<>>v><<vv<>^vvvv^v>v>>>^v>><<v<>^>>>^v>vv^v<<>^^^<^v<<^^<<^^^<<^v^^v>>^^^><>^<^<v>v>><<^<<v^vv^^>v>vv<<v><<^^<<<<v^^<^v^<><v^^v><v<>><v<^v>vvv^><^^v>^^^>><v>>>^^v>>>><>>^<>>^^^v<><^^v<v<>v<^<vv>v^^vv^v^<>><v<<<<^vv<<<^v<^v>^^^^><vv<v><<<>^v^>v<v<v^>>v<>^^>v>^>>^>^>v>>>^^>^<><<>^^vv>^^v^^^vv<^>^^^v<<>v<>^<<v^v<<^<>>^>^>><><v<><^<v<^>^^>^<<>^v>^v<<^^>v><><<v^<v<^^<<<vv<>>v^vvvvv<^^^vv>^>vv>^^^>v><<<^<>v>>^^^<<<>^><v^^<><>^<v<<>><v<<v^^^><v^^>>v>><vv^>v^v<v<<^vv^v^><^>^>vv^>vv>>^<^<vv^<v<v<v>>^><^<vvvv<<<v<>>>><><vv<><<^vv<^^^v<><^vvv>>^^<^<^^^vvvv^^^v<v>>^v<<v^>^^>v>>^<^v^<<^v<vv^<v><vvv^v>v><^<^v<<v>^^>^v>vvv<^vv>^^>^<>^>v^><<<>v^v<v>^^v<><^vvv^^v<>v^^<^>^<><^^<<<^<>vv^<^<>^^^><>v<<<v^^^^v>>^>vv^^^v<>vv><vvv>^<<>^<><v>v<>>>>v^<<<>v<>v<v<>v^><v<v^><vvv^<^v>^><<>vvv><<>><<<^<v^v><^^<^
v<<v^v^<^>>>vvv>^^>^>v<>><v^vv><<^v>^v^><v<v<<<<>><^v^<<>^>>>vv^<<^<<>v>vv<>>>>v<<>^vv><<v<vvvv^<^>^>>>><v>^<vv<^<^><^><>>vv><v>^>v^<<><<vv^^^<^^<^>^><<^^>v^v^^>^^><^<^>^vvv^<v<<><^^>^<<^>^^>>^<><<^vv>^>v>v>v<^^<>>^^><v><<<^v>^^vv^v^^^^>vv>>^>vvv^vv>^v^<<>><>><<<<>>>^^<<v<^>>v<>v<>v^<^vv^v^v>>v<v<>^^v><<>>>v>vv<^<v<^^<vvv^>^v^<^<<v^>>>v<^vvvv><vvv<^>>^v<v><vv^vv>^v<vvv>^<v>v>^>><>vv<^^v<<<^>>v<>v^><vv>^^vv^v><v>><v<>^v><>^^^>v<^^v>>v^v<<v^>^vvv<^<v^<<<^^^v^>v>>vv><^^v><<<<v^>^v^vv><^><><><vv^v^^>>>^<^^^<<>v^>v<<><v^>>vvv>>><<^^v>^^<^^v<v^>v<v>^v^^v^vv><^<^^<^vv>>v<v^<^<^v^>^>^^^<<v>>^vvv<^<>^^^^<^<<<>^>vv^v<><^<<v^><v><><^v<^>^<^>^v><>vv>>^v<^^>>^<<>>><>vv<vv^^>^v<>^^<<^v^^^v^v^vv>vv<^<>>v<>>vvv^v<^v>vv><<>^<<<v^<<>v^^><^<>>^>>v>v<^><^<^vv<<<^v^<>v^^^^v^v^vv<>>v<<<vv<v><<^>>v^^>vv>>>^<>>>><<>^^^<>v>^>vv^<vvv<vv>>^<v^<vv<^>>>v^^^>>v<>^<><v<v>^>^v^v<>^<^^>^^vv>><>^>vv><^v>^^v^^<^v><v^v>>^v<>><>v<<^v^v>^<^v><vv>^>><^>v<>^<v<^>^>^<>^>v>^v>^<v>>>><<>^<^v<^<<v^>>^^^><v>^^<<v^<^><><>^^>><<<<>
^>v<^>>vvv>^v^v>^><^>><^>vv^<^^^<<>^<>>^<>v>><><<<^>^^>^^^<^><<v<>><><>>^^^^^<<^<v<^^>v>><>vvv^>><>><vvv<^>^>^>vv^<<v>vv^>^v>^<v<^<<>vv<<^v<<>>v<><v>><^>v<^^^>v^^v>v>v<><^><<vv>>vv^v<>^v<v<^<v<v>>><v>^>>v><>>vv>^^<v^^vv>><<<<v^><<^<>v<><<^>>^<^><^vv>^<v^>^^^vv^v<v>>>^^^^vv^><>v<<><><>^vvvv><>v>vv^^>>^^<^v<^>^><^^<<^>><^>>><>^v<^^<>><<><^v^v^v<^<^><>><>^><<^^>^^><v<^v>>^vv^>>>v><<<>vvv<>>v<^v^<<<v^v^^>vv>v^<<v^>vv<>><^>>vvv^^<^<v>v>>^^v<^v>vv^v>><>v^<^^<<>^<v><^v^v<<^<v^>v<<^^>>v<>^v<v^>>>><v><<v^<^^v><<v<<<<v<<><^<>>^>^vv^v^v>v>>^<>vv<^^v<^>>>>v<>v>>>>vvv>>>vvv^>^>>>vv^vv>^v^v>v>>^^<<vv>><<v<>><vv<^v><<>^v<v^^><^><<<v^^<<v^>^>^<><v>><v>v^<v<v>>v<>v^^<<vv>v<><v><>vv<><>>^v<<v>^><v^<v^vv<^<><^><>v<>^>><<<>>^^<<<><^v<v>v^v<<^v^^vv^v>v<>^>><^v><^v^vv>>>v<v<<<^^>^<<>v>vv>>^^<v>><<<>^^v>^<<v<^<^<>>v<<<v<<v<v<>>><>v<^<>v^>>>vv^^<v^>>>>><>v^vvv><^>v<v>v<>^>vvvv>>^<<>><>v<^>>v<<<<>^^v>^^<>^<v<<^v<><^vv^v>>>^>vv^v<vv^v>v>^<v^^^^v<v>^v^v>^v><>v^^><vvv>^v^v^v^^^vv><v<<><><<>>^<<><vvv^<vv^^>><v>^vv
><>v>^v<v>><^<>v>^vvv<v^^v^v<<^^vvv<^>v><>v<^v<v^^^>>^<v>^v<<<^<<><><^vv>vv><>vvv<^<<<<vv<^<>><<^<v<^^v^<><^<v>>v<vv<^v^^><<<^>v<>v<v>v<>v^><>v^^<<^<><^<<^>^v>>><^<<^v<<^^><<vvv>><v>^>>>^vv><^v<^v^v^vv>>vvvv<>>>v<<^>^^^>vv^><><>^<v<^<><>><<<v<v^<v<^v^>^v^>v<>^^><vv<>vv>^<<^^^^<^>>^>vv>^v<^><vvv>>^<<v^^><^^^^>vv><>v>vv>><<^vv^><><^vv^<>v>v^v<vvv>>^v^v<vv^>^^^^vv><<vvv^v^v>vvv><^v^^<v^<>^v<vv><>><<<<><>v<<^v<><<<<v<<^^^>>v><>^vv><^>^>><>^^><v<^^v><^^v><^^^v><v^>><vv<>^vv<^^v^<^<v^>^^<<<vv<<>^^>><v<v>v<vv>><<v^^<v<><v>><>^><vvv^vv^^v^v><>v><^v>>>vv<^v^v>>vv^<^<vv>>v^<>v<^><>>^v^<vvv^<>^<>><^^>v<<<>^<><^<<^vvvv>v<^<^vv^><<vv<>v><^v<>^^<><<v>>><>^>>v^v><vvv>vv>><^^v<^v^<^>^<>vv>><<<<v>^><><v<>>^v><>v<v^^<^^<<^><vv^^<<><>>>^^<v><<>v^<v>v^v^v<<<>^v<<<<v^<vv^<>>>vv^^^^>^>v^<^^<v>><<<v<<<><<>vvv^><v>>^vv>v<>>^v<^vv>^v><^v>><vvvv^v<<^^^^><>v^><v<vv>>^<>>^v<^vv^^<<>vv<>v<>vv>>>v>v^v><vv^v^^v<>>>^v^<>v>^^>v^v<^v<vv<<>>^^v^^<<<>><<<<v>^>^<vv><^>><>v<^<>^<>v^>vvvv>v^><<>>><^^<<><^<^vv^<>><>^^^v>>^^>

2
data/16.ans Normal file
View File

@@ -0,0 +1,2 @@
106512
563

141
data/16.in Normal file
View File

@@ -0,0 +1,141 @@
#############################################################################################################################################
#.....#.....#.....#.........#.....#.......#...#.........#.....#.....#...........#...#.............#.....#.....#...........#.....#..........E#
#.###.#.###.#.###.#####.#.#.#.###.#.#####.#.#.#.###.###.#.#.###.###.#.#######.###.#.#.###.#######.###.#.###.###.###.#####.#.###.#.#####.###.#
#.#.....#.#.#.#.....................#.....#.....#...#...#.#.......#.#...#...#.....#.#.#.#.....#.#.....#...#...#.#.#...#.....#...#...#...#...#
#.#######.#.#.#######.###.#.###.###.#.#.###.#####.#.#.###.#######.#.###.#.#.#######.#.#.#####.#.#########.###.#.#.###.#######.###.###.###.###
#...........................#...#...#.#.#...........#.#...#.#...#.#.#...#.#.....#...........................#.......#...#...#...#.#...#.....#
#.###.#.#.#.###.#.#.#######.#####.#.#.#.#.###.###.#.#.#.###.#.#.###.#.###.#####.#.#.#####.#.###.###.#######.###########.#.#.###.#.#.###.#####
#.#...#.#.#.#...#.#...#...........#.........................#.#...#.#.#...#...#.#.#...#...#.#.......#.#...#.........#...#.#.#...#.#.#...#...#
#.#.###.#.#.#.###.#####.#####.#####.#.###.###.#.#.#.#########.###.#.#.#####.#.#.#.###.#.###.#.#######.#.#.#########.#.#####.#.###.#.#####.#.#
#.#...#.#...#.#.......#.#.....#...#.#...#.....#...#...........#.#.#.........#...#...............................#...#...#...#.#...#...#...#.#
#.###.#.#####.#######.#.#.#######.#.#.#.#######.#.#.#.###.#####.#.###.#.#######.#######.#.#.#####.###.#.#.#.#.#.#.#####.#.###.#######.#.###.#
#.#.#.#.......#.......#...#.#.....#.#.#.......#.#.#.#.#...#...#.....#.#.....#...#.........#.#...#.....#.................#.......#...#...#...#
#.#.#.#########.#####.#####.#.#.###.#.#.#######.#.#.#.#.###.#.#####.#.#####.#.#########.#.#.###.###.###.#.#.###.#.#.#.#########.#.#.#####.#.#
#...#.#.........#.......#...#.#.....#.#.....#...#...........................#.........#...#.............#.#...#...#.#.....#...#...#.......#.#
###.#.#.#####.###.###.#.#.#.#.#######.#####.#.###.###.###.#.#####.#.#.###########.###.#.#####.#.#.###.###.###.#####.#####.#.#.#############.#
#...#.#.....#.....#...#...#.......#.....#...#.#.....#.#...#.#...#.#...#.............#.#...#...#.....#...#...#.#...#.#...#...#.#.............#
#.#.#.#####.#######.#.###########.#.#####.#.#.#.###.#.#####.#.###.###.#######.#.#.###.###.#.#######.#.#####.#.#.#.#.#.#.#####.###.#.#######.#
#...#...#.#...#.....#.........#...#...#...#.#.#.#...#.......#...#.#.#.#.....#.#...#.......#.......#.#.#.....#.#.#.....#.....#...#.#.....#...#
#.#####.#.###.#####.#########.#.###.#.#.###.#.###.#############.#.#.#.#.###.#.#.###.###########.#.#.#.#.#####.#.###########.###.#####.#.#.###
#.#.....#...#.....#.........#...#.#...#...#.#...#...#...........#.#...#.#.#.#.#.....#.#.......#.#.....#.#...#.#...#...#.....#.#.....#.#...#.#
#.#.#.#####.###.#.#####.#########.###.###.#.###.#.#.#.###.#####.#.#.###.#.#.#####.###.#.#####.#########.#.#.#.#.###.#.#.#####.#####.#.#####.#
#.#.#.#...#.....#.....#...............#...#.#.#.#...#.#.#...#.#.#.#.#...#.#.....#.....#.#...#.....#.....#.#.#.#.#...#.#.#.....#.....#.#.....#
#.#.###.#.#.#########.#.###############.###.#.#.#.###.#.###.#.#.#.#.#.###.#####.#######.#.#######.#.#######.#.###.###.#.#.#.###.#####.#.###.#
#.#.....#.#.......#...#...#...........#...#...#.#...#.#...#.#.#.#.#...#.........#.......#.......#.#.#.......#.....#.#.#.#.#.#.......#.#.#...#
#.#######.#####.###.#####.#.#.#######.###.#####.###.#.#.#.#.#.#.#.#############.#.#########.###.#.#.###.###########.#.#.#.###.###.#.#.#.###.#
#.#.....#.#...#.#...#...#.#.#.#.....#.#.#.....#...#.....#...#.#.#...#.........#...........#...#.....#...#.........#...#.#...#.#...#.#.#...#.#
#.#.#####.#.#.#.#.###.###.###.#.###.#.#.#####.###.###.#####.#.#.###.#.#######.#.#######.#.###########.###.#######.#.###.#.#.#.###.###.###.#.#
#...#.....#.#...#...#...#.....#...#.........#.......#.#...#.#.....#.........#.#.#.....#.#.......#.....#.....#...#.#.#...#.#.#...#...#.....#.#
###.#.#####.###.###.###.#.###############.#######.#.###.#.#.#.#############.#.#.#.###.#########.#.#####.#####.#.#.#.###.###.###.#.#.#######.#
#.#.#.#.......#.#.#...#...#.............#.#.......#...#.#...#.#...........#.#.#...#.#...........#.........#...#...#...#.....#...#...........#
#.#.#.#.#.#.#.#.#.###.#.#.#.#####.#.###.###.#####.###.#.#####.#.#.#######.###.#.###.#############.#########.#.#######.#.#####.###.#.###.#####
#...#.#.#...#.#.....#.#...#.......#.#...#...#...#...#...#...#.#...#.....#.#...#...........#.....#...#.......#.#.....#...#.....#...#...#.#...#
#.###.#.#####.###.###.#.#######.#.#.#.###.###.#####.#####.###.#.#.#.###.#.#.###.###.#######.###.###.#.#######.#.###.#.#.#.###.#####.#.#.###.#
#...#.#.#...#.#.#.#...#...#.#...#...#.#...#...........#.....#...#.#...#.#...#...#.#.#.......#.#...#.#.......#.....#...#.#...#.#.....#.#...#.#
###.#.###.#.#.#.#.#.#####.#.#.#######.#.###.#########.#####.###.#.###.#.#####.###.#.#.#######.###.#.#######.#####.#########.###.###.#.###.#.#
#...#.#...#...#...#...#.....#...#...#.#...#.....#...#.....#.....#...#.#...#.......#.#.....#...#...#.#.....#.......#...........#...#.#.......#
#####.#.#.###.#######.#.#######.#.###.#.#.#######.#.#####.#######.#.###.#.#.#######.#####.#.#.#.###.#####.#########.#.###.#.#.#.###.#######.#
#...#.#.#.....#...#...#.#.......#.....#.#.......#.#...#...#.....#.#...#.#.#...........#.#.#.#.#...#.#.....#...#.....#.#.#.#.#.......#...#...#
#.#.#.#.#.#####.#.#.#####.###.###.#####.#.#####.#.###.###.#.###.#####.#.#####.#.#####.#.#.###.###.#.#.###.###.#.###.#.#.#.#######.#.#.#.#.###
#...............#.........#...........#.#.....#.#...#...#...#...#.....#.......#.#...#.#.#...#...#.....#...#...#.#.....#.#...#.....#...#.#...#
#.#####.#.#################.#########.###.###.#.###.###.#####.###.###.#.#.#####.#.#.#.#.###.#.#.#####.#.###.#.#.#.#####.###.#.###.#.###.###.#
#...#.#...#...#...#.....#...#.......#...#...#...#...#.#.....#.#...#.#.........#.#...#.......#.#.......#.#...#.#.#.........#.#.............#.#
###.#.###.#.#.#.#.###.###.###.#####.###.###.###.#.###.#####.#.#.###.#.#.#######.#.###.#####.###.#######.###.###.#.#####.###.#.#####.#.###.#.#
#...#...#...#.#.#...#.......#.#...#.#...#.....#.#.#...#.....#...#.....#.........#.....#.....#...#.....#...#.....#.....#.....#.#.......#.#.#.#
#.###.#.#.###.#.###.#.#.#####.#.#.#.###.#.#.#.#.#.#.#.#.#########.#####.#########.#####.#####.###.###.###.#.#########.#.#####.#.###.###.#.###
#...#.#.......#...#...#.#.....#.#.#...#...#.....#.#.#.#.#...#.......#...#.........#.....#.....#...#.#...#.#.......#.#.#...#.....#.......#...#
#.#.#####.#.#.#.#.###.###.#####.#.###.#####.#####.#.#.#.#.###.#######.###.###.#.###.#######.#.#.###.###.#.#######.#.#.###.#.#######.#.#.###.#
#.#.......#...#...#.#...#.....#.....#.#...#...#...#.#.#.#.....#.......#...#...#...#.#.......#...#.....#...#.#.......#.#...#.#.......#.#.#.#.#
#.#######.###.#.###.###.#####.#.###.#.#.#.###.#.#####.#.#######.###########.#.#####.###.#####.#.#.#.#######.#.#####.#.#.###.#####.#.#.#.#.#.#
#.....#.#.............#.#...#...#...#.#.#...#.#...#...#.#.....#...#...#...#...#...#.....#.....#.#.#.#...#...#.#...#.#.#.#...#.....#.#.#...#.#
#.###.#.#.###.#######.#.#.#.#.#.#####.#.###.#.###.#.#.#.#.###.###.#.#.#.#.#.#.#.#.#######.#####.#.###.#.#.#.#.#.#.###.#.#.#.#.#####.#.#####.#
#.............#...#...#...#.....#.....#...#.........#.#...#.#.#...#.#...#...#...#...#.....#.....#.....#...#.#.#.#...#.#...#...#...#...#.....#
#.###########.#.#.###############.#######.#############.###.#.#.#.#.###############.#.#.#.#.#####.#########.#.#.#.#.#.###.#####.###.#.#.###.#
#.#.....#.....#.#...........#...#.......#.#...#.......#.....#.#.#.#.#...#.....#...#...#.#.#.....#.........#...#.#.#...#.........#.....#.#.#.#
###.###.#.#.#.#.###.#######.#.#.#######.#.#.###.#####.#####.#.#.#.#.###.#.#.#.#.#.#####.#.#####.#########.#####.#.#####.###.###.#.#####.#.#.#
#...#...#.#.....#.......#.#...#...#...#.#.....#.#...#.....#.#.#.#.#...#.#.#.#...#.#...#.#.#.....#...#...........#...#...#.....#.#.#.....#.#.#
#.#####.#.###.###.#####.#.#######.#.#.#.#.#.#.#.#.#.#####.###.#.#####.#.#.#.#####.###.#.#.#.#####.#.#######.#######.#.###.#####.#.#.#####.#.#
#.....#.#.......#.#...#.....#...#...#.#.#.#...#.#.#.....#...#.#.......#...#.#.........#.#.#.#.....#...#...#.#.....#...#...#...#...#...#.#...#
#.###.#.#######.#.#.#.#.#####.#.###.#.#.#.#.###.#.#####.#.#.#.###.#########.#.#######.#.#.#.###.#.###.#.#.#.#.###.#.#####.#.#.#.#####.#.#.###
#...#.#.#...#...#.#.#...#...#.#.............#...#.#...#.....#...#...........#...#.....#.#.#...#.#...#...#.#.....#.#.#...#.#.#.#.....#.#.....#
#####.#.#.#.#.###.#######.#.#.#############.#.###.###.#########.###############.#.#####.#.###.#.###.###.#.#####.#.#.#.#.###.#.###.###.#####.#
#.....#...#.#.#.#.........#...#.#...#.......#...#...#.....#.....#.........#...#.#.#.....#.#...#.#...#...#...#.#.#.#...#.....#...#.#...#...#.#
#.#####.###.#.#.#.#.###########.#.#.#.#########.###.#.###.#.#.###.#######.#.#.#.#.#.#####.#.#####.###.#.###.#.#.#.#############.#.#.#.#.#.#.#
#.............#.#.....#.........#.#...#.....#.#...#...#.#.#.#...#...#...#...#.#.........#.#.......#.........#...#.....#.........#.#.#.#.#.#.#
#.###########.#.#####.###.#####.#.#####.#.#.#.###.#####.#.#.###.#.###.#.#.###.#.#######.#######.#.#########.#.#######.#########.###.###.#.#.#
#.#.......#...#.....#.#...#.#...#.#...#.#.......#.#...#...#.#...#.#...#.#.#...#.#.....#.......#.#.#...#...#.#.......#...#.....#.....#...#.#.#
#.#.#####.#.#.#.#.#.#.#.###.#.#.#.#.#.#.#.#.#####.#.#.#.#####.###.#.###.###.###.###.#####.#####.#.#.#.#.#.#.###########.#.###.#.#####.###.#.#
#...#...#.#.#.#.#.#.#.#.#.......#...#.#.#.#.#.....#.#.#.......#...#.#.....#.#.......#.....#.....#...#...#.#...........#...#...#.#.....#.#.#.#
#.###.#.#.###.#.#.###.#.#.###########.#.#.###.#####.#.#######.#.###.#####.#.#########.###.#.#########.###.###########.###.#.###.#.#####.#.###
#.....#.#...#...#.....#.#.#.........#.#.#.#...#.....#.....#...#.........#.#.........#...#...........#...#.#.........#...#.#.#.#.#.#.........#
#######.###.#.#####.###.###.#######.#.###.#.###.#######.#.#.#####.#####.#.#.#######.#.#.###########.#####.#.###.#######.#.#.#.#.#.#.###.###.#
#.....#.#...#...#...#.#.............#.....#.#.....#...#.#.#.....#.#...#.#.#.#.#...#.#.....................#...#...#.....#.#.#...#.#.#...#.#.#
#.###.###.#.###.#.#.#.#.###########.#####.#.#####.#.###.#.#####.#.###.###.#.#.#.#.#.#########.###########.#######.#.#####.#.#.###.###.#.#.#.#
#.#.#...#.....#...#.#...#...........#.....#...#...#...#.#.....#.#.....#...#...#.#.#.....#...#...#...#.....#.....#.#.....#.#.#.#...#...#.#.#.#
#.#.###.###.#.#####.#####.#######.###.#.#.###.#.#####.#.#######.###.#.#.#######.#.###.#.#.#.###.#.#.#######.###.#.#####.###.#.#.###.###.#.#.#
#.#.........#...#.#...#...#.....#.#...#.....#.#.......#...#...#.#.#.#.#.........#...#.#.#.#.#...#.#...#.....#...#...#...#...#.#...#.#...#.#.#
#.#########.###.#.###.#.#.#.###.###.#########.###########.#.#.#.#.#.#.###########.#.#.#.#.#.###.#.###.#.#####.#####.#.###.###.###.#.#.###.#.#
#.#.....#.#.#...#.....#.#.#...#...#.....#...#.#.........#.....#...#...#.......#...#.#.#.......#.#.#.#...#.....#...#...#...#.....#...#.#...#.#
#.#.###.#.#.#.###.#.###.#.###.###.###.#.#.#.#.#.#######.#####.#.#.###.#.#####.#.#.#.###.#####.###.#.#####.#####.#.#.###.#####.#######.#.#.#.#
#...#...#...#...#...#...#...#.#.#.......#.#.#.#.#.....#.#.....#.#.#.#.#.....#...#.#...#.#...............#.....#.#.#.....#...................#
#####.###.#.#.#.#.#####.#.###.#.#####.#.#.#.#.#.#.###.#.#.###.#.#.#.#.#.###.###.#####.###.#.###########.#####.#.#.#######.###############.#.#
#.....#.#...#.#...#.....#.#...#.........#.#...#.......#...#.#...#...#.#...#...#.#...#.....#.....#...#...#.#...#.#...#.....#.......#...#...#.#
#.#####.###.#.#.###.#.#####.###.#####.###.#####.#.#.###.###.###.#.###.###.###.###.#.###########.#.#.#.###.#.###.#.#.#.###########.#.#.###.#.#
#.#...#...#...#.#.#.#.....#.#...#.......#.#.....#.#.......#.....#.....#.#...#.....#.......#.....#.#.........#.....#...............#.#...#.#.#
#.#.#.#.#.#.###.#.#.#####.#.###.#.#####.#.#.#####.#.###.###.#####.#.###.###.#############.#.#############.#.#.#####.#########.#.###.###.###.#
#...#.#.#.....#.#...#.....#...#.....#...#.#.#.#...#.#.#.....#.....#.#.........#.......#.............#...#.#...#.........#...#.#.#...#.#.....#
#.###.#####.###.#.###.#######.#######.#.#.#.#.#.###.#.#######.#####.#.#######.#.#####.#.#.#########.#.#.#.###.#.###.#####.#.#.#.#.###.#######
#.#.#.....#.....#...#.......#.#.....#...#.#...#...#...#.......#.#...#...#...#.#...#.....#.......#...#.#.#.#...#.....#.....#.#.#.#...#.......#
#.#.#####.#.#.###.#########.#.#.###.###.#.###.###.###.#.#######.#.#######.#.#####.###############.###.#.#.#.#####.#.#.#####.#.#.###.#.###.#.#
#.#.....#...#.#...#.......#.#.#.#.#...#.#.#.....#...............#.#.....#.#.......#.....#.......#.#...#.....#...#.#.#.#.#...#.#.#...#...#.#.#
#.#.#.#.###.#.###.#.#####.#.#.#.#.###.#.#.###.#####.#####.#####.#.###.#.#.#.#####.#.###.#.#####.#.#.#########.#.#.#.#.#.#.#.#.#.#.###.#.#.###
#.#.#.#.........#.#...#.....#.#.#...#.#.#...#.#...#.#...#.#...#.#.#...#...#.....#.#...#...#.#...#.#.#.....#...#.#.#.#.#.#.......#...#...#...#
#.#.###.#######.#####.#######.#.#.#.#.#.###.###.#.###.#.###.#.#.#.#.#######.###.#####.#####.#.###.#.#.###.#.###.#.#.#.#.###########.#.#####.#
#...........#.#.......#.....#.#.#.#.#.#...#.....#...#...#...#.#.#.#.#...#...#.#.....#.....#.#...#.....#.#.#.#.......#.#.#...........#...#...#
#.###.#.###.#.#.#.###.#.###.#.#.#.#.#.#.###########.#.#.#.#.#.###.#.#.#.#.###.#####.#####.#.###.#######.#.#.#######.#.#.#.###########.#.#.#.#
#...............#.#...#.#.#...#.#.#...#.........#.#...#...#.#.....#.#.#...#.......#.......#...#.......#...#.......#.#...#.......#.....#...#.#
#####.#.#####.###.#.###.#.#####.###.#####.#####.#.#########.#######.#.#######.#.#.###########.#.#######.#########.###.###.#.###.#.###.#####.#
#...#.#...#.......#.#...#.........#.....#...#.#...#...........#.....#.....#...#.#.#...........#...#...#.#.......#.....#...#.#.....#.......#.#
#.###.#.#.#######.###.###.#######.#.###.###.#.###.#.#####.#.#.###.#.#####.#.###.#.#.###.#.#######.#.#.#.#.#####.#####.#.###.#######.#.###.#.#
#...#...#.......#.#...#.......#...#...#.....#.#...#...#.#...#...#.#.....#.#...#.#.#.#.#.#.......#...#.#...#...#.......#.......#.......#.#.#.#
#.#.###.#######.#.#.#####.#####.###.#########.#.#####.#.###.###.#.###.###.#.#.#.#.#.#.#.#.#####.#####.#####.#.#####.#.#.#####.#.#####.#.#.###
#.#...#.....#...#.#.....#.......#.....#.......#.#...#.....#.#...#...#.....#.#...#.....#.......#.#.........#.#.......#.#.....#...........#...#
#.#.#.#.###.#.###.#####.###.#####.###.#.#####.#.#.#####.###.#.###.#####.#.#.#.#.#.###########.#.#.#######.#.###.#.###.#####.###.#.#.#.#####.#
#.#.#.#.....#...#.....#.#...#.....#...#.#...#...#.....#.#...#...#.#.....#.#.#.#.#...#.....#.#.#.#.......#.#...#.#.#.......#.................#
#.#.###.#######.#.#####.#.###.#####.#.#.#.###########.#.#.#####.###.#####.###.#.#####.###.#.#.#.#######.#.#.#.#.#.###########.#.#.#####.#.#.#
#.#...#.......#.#.#.........#.#...#.#.#.#...........#.#.#.#...#...#.....#.....#.......#.......#...#.....#.#.#.#.#.............#.#.#...#...#.#
#.###.#.###.#.#.###.#######.#.#.###.#.#.#.#####.###.#.#.#.###.###.#.###.#####.#########.#########.#.#####.###.#.###############.#.#.#.#####.#
#...#...#.....#...#...#.....#...#...#.#.#.#.#...#.......#...#.....#.#.#.......#...#...#.#.....#...#.#...#.....#.....#.......#...#...#.#.#...#
###.#.###.#.#####.###.#.#######.#.#####.#.#.#.#########.###.#.#####.#.#########.#.#.#.#.#.###.#.###.#.#.#######.#.#.#.#####.#.#####.#.#.#.###
#...#.#...#.........#...#.....#.#...#...#.#.#.............#.#.....#.....#.......#...#.#...#.#.#.#...#.#.......#.#.#.#.....#.......#.#.......#
#.###.#.###.#######.#######.#.#####.#.###.#.#############.#.#####.#######.###########.#####.#.#.#.###.#####.###.#.#.###.#########.#.#.#.#.#.#
#.................#...#.....#.....#.#.#.#...#.......#...#.#.....#.....#...#.........#...#...#...#...#...#...#...#.#.....#.....#.#...#.#.#.#.#
###.#####.#.#.###.###.###.#######.#.#.#.#.###.#####.#.#.#.#####.#####.#.###.###.#######.#.#.#.#.###.###.#.###.###.#######.###.#.###.#.#.#.#.#
#.#.......#.....#...#...#.#.....#...#.....#...#...#.#...#.....#...#.....#.#.#.#.........#.#...#...#.#...#.#...#...#...#...#...#.....#.#.....#
#.###.#####.###.###.###.#.#.###.###.#.#####.###.#.#.#.#.#####.###.#######.#.#.###########.#.#####.#.#.###.#.###.###.#.#.###.###.###.#.#.#####
#...#.#...........#.#.....#...#.#...#.......#.....#...#.#.....#...#...#...............#...#.......#.#.#.#.#.#.#...#.#...#.#...#.#.....#.#...#
#.###.#.###.#######.#######.###.#.#############.#.#####.#######.#.#.#.#######.#######.#.###########.#.#.#.#.#.#.###.#####.###.###.#.#####.#.#
#.....#...#.....#...#.......#...#.....#.........#.....#.#.......#.#.#.....#.....#.....#.....#.......#.#.#...#...#.....#.....#...#...#.....#.#
#########.#.#.#.#.###.#.#.###.###.#####.#.#####.#######.#.#########.#####.#.#.###.#######.###.#####.#.#.#########.#.#.#.###.###.###.#.#####.#
#.........#...#.#.....#.#...#...#.#.....#...........#...#.#...#...#.#...#.#.#.......#.....#...#...#...#.........#...#.....#...#...#.....#...#
#.#########.#.#.#.#####.###.###.#.#.#.#############.#.###.#.#.#.#.#.###.#.#########.#.#.###.#.#.#.###.#####.###.#.#.#.###.###.###.#.#.###.#.#
#.#.........#...#.....#.#...#.#...#...#.........#.....#.#...#.#.#...#...#.........#...#...#.#.#.#...#.#.....#...#.#.#.......#...#.........#.#
#.###.#####.#.#########.###.#.#######.#.#######.#.###.#.#.###.#.#####.#######.###.#######.#.###.###.#.#.#####.#####.#######.#.#.###.#######.#
#...#.#.....#...#.....#...#...#.....#.#.......#.#.....#...#...#...#...#.......#.#...#.#.....#...#...#.#...#.#.....#.......#.#.#.........#.#.#
###.###.###.###.#.###.###.###.#####.#.#########.#######.###.#####.###.#.#.###.#.###.#.#.#####.###.###.###.#.#####.#.#####.###.#.###.###.#.#.#
#...#...#.#...#...#.#.....#...#.....#.........#.......#.#.#.....#...#...#...#...#...#.....#...#...#.#.....#...#...#.#.....#...#.#.....#...#.#
#.###.###.###.#####.#######.###.###.#######.#.#.###.###.#.#####.###.###.###.#####.#.#####.#.###.###.#######.###.###.#.#####.###.#.#.#.#####.#
#...........#.#.....#.#.....#...#.#.#.#.......#.......#.#.....#...........#.....#.#.#.........#...#...#.....#...#...#.......................#
#.#####.###.#.#.###.#.#.#######.#.#.#.#.#######.#####.#.#####.#########.#.#####.#.###.###.#######.#.#.#.###.#.#.#####.#.#.#.#####.#.###.#.###
#.......#...#.#.#.....#...#.....#.#...#.#.....#...#.#.......#...#...#...#.#.....#...........#...#.#.#.#.#.#...#.......#.#.#.......#...#.#.#.#
#########.###.#.#####.###.#.#####.###.#.###.#.###.#.#######.###.#.#.#.#.#.#.###.###########.#.#.#.#.#.#.#.#####.#######.#.###########.#.#.#.#
#.....#...#...#.....#...#.#.#.....#...#...#.#.......#.....#.....#.#.#.......#.....#.....#...#.#...#.#.#.#...#.....#.....#.#...........#...#.#
#.#####.###.#####.#.###.#.#.#####.#.#####.#.#######.#.###.#######.#.###.#########.#.###.###.#.#######.#.#.#.###.#.#.###.#.#.###.#####.#####.#
#.#.......#.#...#.#.#...#...#...#.......#.#.#...#.#.#.#...#.......#...#...#.....#.#.#.#.......#.......#...#...#...#.#.#.#.#.................#
#.#.#######.#.#.###.#####.###.#.#####.###.###.#.#.#.#.###.#.#########.#.#.#.###.###.#.#####.###.#####.#######.#.###.#.#.#.#.#.###.#.#####.#.#
#...#.....#.#.#...#.......#...#.....#.#...#...#.#...#...#...#.......#...#.#...#.....#.....#.....#.....#.......#.#.....#.#.#.#...#.#.....#.#.#
#.###.#.#.#.#.###.###.#####.#######.###.###.###.#.#####.#.#####.#######.#.###.#######.###.#.###.#######.#######.#.#####.#.#####.#.###.#.#.#.#
#.#...#.#.................#.......#.....#...#...#.#...#.......#.#...#...#.#...#.....#.#.#.#.#.#.....................#...#.....#.#...#.#.#.#.#
#.###.#.#####.#.###.###.#.#######.#.#######.#.#####.#.###.###.#.#.#.#.#.###.###.###.#.#.#.#.#.###.#.#.#.#.###.#.#.#.#.#######.#.###.#.###.#.#
#S....#...........#.....#...................#.......#.........#...#.........#.....#.....#.......#...#.....#.....#...#...........#...#.......#
#############################################################################################################################################

2
data/17.ans Normal file
View File

@@ -0,0 +1,2 @@
2,0,7,3,0,3,1,3,7
247839539763386

5
data/17.in Normal file
View File

@@ -0,0 +1,5 @@
Register A: 18427963
Register B: 0
Register C: 0
Program: 2,4,1,1,7,5,0,3,4,3,1,6,5,5,3,0

2
data/18.ans Normal file
View File

@@ -0,0 +1,2 @@
262
22,20

3450
data/18.in Normal file

File diff suppressed because it is too large Load Diff

2
data/19.ans Normal file
View File

@@ -0,0 +1,2 @@
280
606411968721181

402
data/19.in Normal file
View File

@@ -0,0 +1,402 @@
rwgw, ruwgb, urwbr, wu, uurbubr, gbbr, uwwb, rubgwu, wggwbwr, rugubuww, uw, rgru, rgrr, rrg, rbb, uurbrww, br, uwrwrwgb, bwbw, wgbu, wggu, urg, ugr, ugur, gurrbrr, ubgrruu, bb, rburguu, urgg, wggugggr, brww, bwwgr, wugub, grgg, ugw, grubw, gbwru, rww, wbu, ggwbu, ugurw, ggwb, uubuwgb, bbugw, rgg, wurr, bwbb, wburbb, rbrb, bbrwgw, gwbb, ubggr, gurr, rrr, rburg, uug, bbrubu, bwgu, gwug, guw, buwurgw, rruwggg, ubb, wwb, wbrg, wgr, wgrw, gubrr, rrwru, gbub, rbr, rwr, rubwu, ub, bgwr, gu, ggggwrbr, wrw, grg, rbuwu, bgbr, ugww, wrg, brwub, gruu, gbwbw, wubw, wur, grggwb, uuwuug, wug, rruuw, wgwg, uww, gbgu, rurr, gwguu, gwrwbw, guuww, rbugw, gg, uwbw, ubgrubur, wurrb, rgugurr, wrr, buggb, urwrb, ubuu, rgu, gwggb, uuu, uub, bruubb, bww, uwgb, rrubwg, ubwu, ugu, buwrrbwr, bbr, rbrww, ubuwg, bwwrr, gbwg, bw, gguugu, bgbbw, ggb, wrruuwbr, rug, uur, rgw, gbb, wuwg, r, guug, gwb, wbgr, bbbw, grwgwr, gwg, rurur, bubu, rguu, brb, ugbbbrr, wugrrr, bbw, bbru, bgrbubg, ubw, uruu, wgrgrwwr, bbwrugu, gbbbwur, rubbwbuw, wuwrwbu, brwbru, wub, rbrg, wwbwrbu, grbbu, ubbbwb, urw, gwuw, uu, urwugu, bgw, gw, rbwwwurg, gubr, bbu, rur, rburwgr, gwwgr, gb, rbur, rbw, ug, wurur, gbbrrb, ruuuwugr, wwrgug, gbrugu, wrww, wuwbgw, uwwwgrgb, gww, grwwu, ggu, rrurr, bgr, ubugwu, wwgwur, urrrbw, bwr, wrbgbu, wrwbb, gug, bwu, ruurw, rw, wbb, bbwgwrr, wgg, ugwu, wr, wwwr, w, wbwbuw, guugg, bug, bbbb, brbb, brur, rbg, wuu, wurwgb, rru, urrrbugr, grr, rubu, uugrwbb, bgbrurr, wgw, gub, ugwwgr, urwr, wbwbg, wrrb, rwrgg, ggwgrgw, bwbu, uwb, rg, urr, brrur, wg, u, bu, ubbbrw, brgbbbbu, wgrgu, bgb, ubu, uugubg, bub, rwrr, gggbrw, gwwrww, grub, urgrgw, bru, wgwgb, wubrg, ugrwwbb, wbgwrru, gbwb, wugu, uwwwg, ubr, gwr, bguwb, guwbw, wrb, grw, gwwgbb, wbwwr, grbwub, ubg, bwbgw, rwu, uurb, rbwgur, ubbr, grrr, ubwg, rgwuug, rgb, grrbub, bwb, uwuuubg, wrugb, brurub, wurg, urur, uru, bwwrrr, urwub, uwr, brr, ggg, bbg, bgg, guuruuu, ubwb, uburgbb, gbgrgug, rbwr, uwu, rwwbuugr, ubwwg, wwr, brg, wruububu, bgbb, ww, wrgbu, ugb, gru, bbwgbr, brw, bwwbb, wbr, grbg, wbbb, brbrwwbw, gbgwrrub, wwu, wgb, rruruu, wuggr, urb, bwg, wbg, rbu, wwg, wuw, wrbbugg, rb, rrgrbrg, guu, bwwugr, rwrb, gwbrb, wrugub, ubbrwu, uggbb, ggr, wwru, rgbb, bbgbgrr, wuruw, gbg, ubbwrg, bur, wuwuu, bgu, ruwgur, gbu, wwuwb, ggbgg, ugrbb, bugw, rggrb, rrw, rgwru, ubru, grbbuw, wbrr, wruu, ggw, wbgguuw, rggrugw, gbgwwg, gwwru, gur, rr, wbgb, burbwr, rggu, wgwu, rwuug, gwrbr, wbbwbgb, wurb, gbbuggg, gbbgbg, ur, ugwwu, wgu, bg, urrbgr, gurwg, bbb, urrr, bwurbrr, gbr, gwurb, ugg, uwbbrr, buggr, rub, bwrgbw, uwbb, ububggw, uuwrbbu, rrrwr, ruwgub, bugb, wwrw, gwbg, wwwrrr, urgggwb, gwuwr, www, g, wgrg, wbuwb, grwrg, uuw, wuwgb, buru, rgr, rrgu, urbgb, wgrr, gbuwww, rrgrgw, rgbrg, gugbuw, rrb, rrgbug, ugwbrgw, rwuw, grugrrbr, gbgww, ruw, wubb, gr, ruu, ubbg, brgurb, rwg, gwu, ruwr, grb, uwg, wgww, bgbbrww, buu, rurbgr, rwbw, gwwr, rwwbbugu, grgbr
rubbgwuwbrwgrgrgrbrbbubgbggrbwrurwuggggwrbrgwbrrwb
urwgurrubuguruwuuuruwbbgrbbuwrbwrruuuubbuububuubrw
gguurrubwbuwgrbrrurrgbgburbrrurwbrrrubburuggbbgb
rgbuuwwwgbbwgurrwurgwgrgrbbbuggwgwugbrwb
rwggurbrgwrrwuururwwubgrurwwrubgguububururwb
ggrgrruwwwgrwuubgrggbbwrrgbrwrwgwwububrubguurggbrwbg
ggurrgrggwrwruuwrbrgbrubrbuggugwgrwgwurbub
wwwwuburrwbwugguwuwgwwrbggbwuwuuuuruwwurbwurgbwbggrr
urburguuwwwgrbrbgbbgbgrbgbubguugwubugwgrruuuugbbbbgubggu
guurrgwububururwgugrguuubrwrguurbuuuugrgbuwru
urwuwuuguwwwgrgbuwbgubwuwuurwuwggbwgubrbrguurrgrwb
bwwbbwuwbubgrbbgwuubrrbwgbggubbrbbwrwuuuguugwrwbub
wwwguwbgrrgbrgggwrgwuuwwwgwgwrgbrbgwgwruuruguubruug
gruuwuwbugubrwbbubrubgrruubuwugurbggrrbbbbg
wurubbwuggrrurbwwgrwubgbwguurbrwgwwwgrwuuuggwbguwwr
ggbguwrwguguwubgurgggrguuwugbuwbwwgwburgbwwuwgbrwbub
gwugrwruguwuugubbbrubbwbuwwwrgburrbbguwbgbgwrwb
grgugwwrgggbbbubububwuggrrgwruwrubwbrbbgwrwrggbuwrururrrrg
guwgggwrwrggbgwrrubrwburbuuububrbwrrrgurwugwggr
wuwwugwrbbuuburuururuwwrggbubwwugbuwugbburrwuwbubgbw
ugbggwbgurubbwrgwgggggwggrruubrgrwrgugwwgurrrbwbrwwur
wurubwrrbbgruurbbgurbbubuggubrrwwgbgwrwuuuwrgwbbrbw
rwwbruubgwrrugggwubgwwubwruuwggwrbwwbbrrwb
ugwgbguggggwwbwgwwuggurbwwgrbbuwurugwwrrrgugburruwb
brrrugbwrwbwwurbgbwwuugrbwbrgwgrgrbgrurwgwurgwruuguwbrurwu
rruwrrbgubguurwwugurrgrwbbuuwuburrbwwbbrggwuwr
uuwrburgruurrbuwwguurwbwwbwggrbubrwuuwuuwrbbg
gbbrrwgggbwwggwgwuurubrrurgwgwgbwgubwggrrbggug
wrwuggugbrwuuubbgrbugubbgurgrrburgwrbugrwb
bbbwgbuwbgrgggugrugwwwbwgrrbbbuubuguuugwburrrwrggwrrruwug
urbwwguugwrgbrrrrrrrbbwggrrubwgwugbbbuurugggrg
uugrugurbbruubwgbwbbbwubbrbbgwuuuwggwwwuubrrrwuwubrgrbrw
wbrugrwrwrrgugwugrrugugwubugrrrwbrwbwrggbwurrbgubgwbgbbgrwb
uwwbbubgrrrurgwrbgurugwbbrbbburggguugbwbrbgwbubuwbbgubgwg
rrbwbrbruwurwbwgggwrguwbbubuwuwurwubgwbwwgbubggwbbubbrbr
wwrwggbwwwrgubwrbwuuwbuuuwbrgwwrbrbrguruwrwbrrgrugb
wwbwrrubbbgwurbrbubwwbbbgbrbgbwbbuggrurbrwgwbubguurrwrwwb
rwurrgwuugrubggwbuubrbuwrggguwbgrbbgrgbbuwggbgwrbwgwbuuru
gwrrugbuurgrrwgbggwggguwwrrbgrbwwrrgwwbwubwbwrgbrgbgwwbgu
brrrwbururwwrwwrrgbwbubgbwgrgwwruuuwgugrwwrgbubru
uugbwguruwuwubburrgbbgbbrwrrbubuguugwgwwbw
gwburgbrwgwwubugrrrbuwugrbbwrrguwrbgbbgrggggbwuuwwgwgbww
rwwwbgwuubugurwbwururgbwbwwrwubgwuuruurbwbwgbwwbuwgg
bwwwbuwwrwgurbbwbguwwgwubwuwgwwubbwwwuwuuubbwr
urugrwggbbrburugwggbwbbuubbrbguuggwurgbrbbbgrbwuw
bgrbrbgbgwrrwgugbubbgbrurwrrgbwbbgrwrwbwwb
gbwubwgurggwbbgwwgbrrubguwgwwbrgwgrgwwwgwwbruwrwbuurwb
wuuwrwrbugruurrrrgwurguggbgwubugrugwwuguwwruuwbrrrwwruggb
ugrugbrrwuuwrwuguggwwgggubuwrrbwrugwwuugwbburrbrwb
wrrggbggbrgurbwguurugbwgrgwwgbwbgrbgwrbrwb
bugubbrwbuwugwwrwbgwugbuuubrwbugwrugggbwwrbgbwuurgw
bwrrwbrruuuugugggwgrgrwwrwwgwwgrbggwruwrwwwgrurwgggwbbw
gwwuwbuwwgwuurwwwgbruwuugruuwrgbbwugwbbwbguguw
uwrwwrurwwuwwwuwuubbbwbbrrwwbrrgbwbwggwgwruurrwb
rguuugbrbgrbwbbrwuuwwubwrrwggrwrgwwrgwuubwgbbwubbwbgbrruwu
gbgrgrwgbbbrwgubugwwuuwrrgbwbwgbwuwrugrbururbwrwrwbubrr
ruwrgurgguuurrggrurbuurubrbbguwbbrrbuuuwrgrwb
guurwgbwrbuurrrbugrbgbbrurbubbuugrgbwugbru
uggbgwrrgrrubgbbgwubwurgbbugububwrwbrgwbbbwwrwb
gwwgbbrrurbwwwrrrbruurbruggbrgwbgurbrwggwbrgurbbbwubbuw
wbgrwbuguguwrbbuurbubgubwgwwbrrrrbugurgggbbgb
buurgwggbbwgrrbruwuwruububuubrrbrrwrgbwbbwbwwururbgurbrrgrwb
rbgggbwrugrgwrwgwurggbrbgwgwgwwrbubbrwrbbuurugrrgwbrggbu
grrbbbwwguwbruwggwruwurrgrbgwubbubggwuugwubuwrrugurwb
rrbububbrrbbuwwuuwggbbwuwuwwrwgwwgwgrburbgrgrw
uuurugrbrrgwbrrggurrbubbuwguwuwgrurwbrbgwurwurw
rwubrwbuuuwbggrbwrwgwwrgrbrrbbwgrrwrwrrgbruggwwwgbbrwuuwrg
bburuwbugrggrwggrwbgbbuurwubuuugrbrrwgwgbrggrgggwbuuwbwbuw
wrbrbugwgrbuwrubwgwuwugbrgbwrwrgwururwrrrggrgurrwb
rggrbururgwuuwgbuwuwrruguugwbgubuwrubuwbrggbggbggrwb
gwurbruwrrgrrwbbwuwbgwrgwubbbuburrgbwrwrwb
urbrugbrwurgrgbrruwrbbrgwbrrbrwurbbbugwuugrwguwr
brrgurwwrguuubrggbggwwbgbgrrwwbburwuwrrwggbwubrrbggugubu
rwgwwuugbwrwrguwrrbrgwrurbwurrggwuwuwbgwgwwguurgrwb
guggggubguggwugbgbbwwgurubwugrbwgububbggbbrwb
wgwrguwggbugwwgrrrrwgwwwwrwwubgugwugbwgwggubwubrwb
grwwgbrwbubbwrwwwubugbgrubuuwbgurwurrugbwrgrrr
uugwwbuubggggruwugrurguwwwbrggggggrwwwrbrgugu
rgubgwbwurrguwgwburwubgrgbubbrbrruugrugbgrwwru
wbwwrubbbguggwbuugrgwguruuggurwggrrbruwbwrgbuw
rgugbrwuurrrrrurubrrgguuwbrrwruggubbbubgbwguurburggbrwb
rbuuggwwurwuuwgubgrbrruwrburugurwuubbburrguuruwr
rwurwrbbubgrwgggwwwbruuubwrwuwuwgrgbrgrgbugwrubrrbwbwbwrwb
gwrgbggrwrgbbbuuggbgrrgrrrruurbrwuugbubgbwur
rrurrwuuwuguuwbububrrwugbwuurbbgguwrwrrgrwwgbrggrburwg
ubruwgwbrubwrgbbrbbubggggwrggrgwbgggbgrburuwrbbrurgrgbbww
wrwgubgbwruugwubbggwugbgwwugwrbruuuwrwbbrrrru
rwubrrgbwrbgrbrwggugbbuugrguruwwwugrgurwb
wrgruuwrgguwwbrurbbugbrgruwrgrwggrbwwbwbgwrbrwubwubrwb
bggwugbrbwbgugwuwwurrwrrrwrgrguwuwurwguggwbrrbugrwr
ugubbwurburwrrbbbgwrbgwuwgbubrrgwgubrubrgrbb
gbwuggwruuuguurrwuurubrbwwbbwwuburgwgwurbbubg
uubwugrgburwubbbuururrwrwrgwurbwrrwurrubrwb
urbrwgwbuugbrwgbugggbbwwbuguuubbubwbguuubgbrrbububrru
rrbwwwbgrgwgurwwuwrbgwrwgrruwbgwbgugurwgrbugrbgbrbruw
ugrwbgrbrburugwbgugwugurrgwgrgwwrbgguwgrwrwb
wwbgbrgrwgggrbrugwwrwrbgubgrwguwbwubwwbgguggbbrgugbugrbbr
ubrwgwuwguwbwgguugrrbwuggwubbwwrrurbwruwbuw
gubrwwrbbrwwbuugrbwwugbgwwbbbugwrgbwbwwbwguggb
rurwgbbggugrwbubugrrwugrubuwwwwrwububgwwrwgwbr
wgbbrbbubgrrwwwgugugurbrubbuwbgwwwgwwgwrbwbw
ubgubwgwrwbuubgbbgrwbubugbbbrugrgwurubwgubguwugrrbu
gruuuwggwwwguwwguubggbguguuugwugwwgugwrwb
wrwbrgbgurwgbrbgurbbbggrbgwgubwbbggwrbwgbbu
bggubwbggbgrrrrggwbwbbgrguurrrggwbgurgrgwbuwbwurg
wuwbggrwwwbubrbwgrgrwgbrurggwwwubwwgwgbwuwwuguuwwgggbb
rwrugrubggrbururrwuwurbrwbuuggrbrbuugrwubbruggrbwuuru
wbrgggbwgrwwubbbguuuugrburubbrbrrrwubwgwguu
wrugrwruurrbwwwurggwbbwbuggrbwuruugwrburrwb
rburbbrwwrwgwbrubgwgwrwgrbwurgubuguwwwruuggbbuwwwggrwb
gwuugurgwwwrwwgbrbwwugwgurwbbbrwuwwwgrgbwbbgbbgruwgwwgwrb
rruwgbbwwrugugugrwubgrguguuwggbrrbrbubbwugurbgbubb
uuubwuburgrrwuugububuuwwrwrgbwbbgwgubwwgwgubrrbgbruggbu
wgrwuruuurwwbrwbwgrrwwrgurrbubwrwbgwrggbrrgugbuu
ugwbrgbbbwrgrgwbrguwrbrrgggbbuubgwbwgbgrwbrrwrrrgbrbgg
rgrggguuguwgbgrgrrgwrbbwbgurrrgwbwwguwbgggrbugugrbrurwb
bbwuwgrbbbbwrbrgbrgbbbburgruggrrrrbwrbbrwb
wbwuuwrruwggubggbgwbwwbggwbgbrrruggbwrrrbrwrb
wuubruggbruggbwbwuuugwrrwuwrgbwwbwuwwwrrgwrr
uwwgrbuubwbwbbrwburbrggburubwgguuwbwgbwburggwrgbrwb
ggbrubuwuurubruuubrbrgwuubguwbgbgwrrubrrrwb
rwgbbburwggwwgbbbrruuurbgrgbggrbgruuggbrgggg
rwwbwgwgwwbrbugbuuwbgggggwgrurbgrgwgwrgbbbuugbbgruwgwwwbg
rbwubbwuugwggrruuuugbruwwwwuuuuurgbgwwwgwbggwgbrurww
rwguwwrgugrbuwrwwbbugurrrwubruwugbrwubrwrgrbggbgr
ubbbugrbugrwgwggbwugwwbgwguubugbggbggrbuuwwbbbbbwr
gburuuwbrwrguwbrubgbwgruuwrwgbrwbrwwgwbgwggw
ggwwwguwgbuwrggbugurrrwwwrbrrbgurbbbgbruwrwwrbgrwwbuugrwb
rgbgrbrrubwuggruuwbgggwguuwwwrrrwuwrrgrubbbgrr
uwwgrrbugrrbwgggwuruwuuwggwbgwggwrbbuwbrrruubuguwugbrurwb
brwruwruwggrrubrwugbgbwwuggggruubrruugbgurrgwwugrurbrr
rgbbrrrbubrgbbbuuggruuurguubwgwgrwwgrbbwruwwb
rrbuuwgbuwwwbggrgbuurrbwwbwbwbrwwubuurrggrbg
urgbuwuwwugbrbguugbrbbggwggwgburgwgrwgurrbwwgrbbgw
uubrrugwggwgwbgbbwggwrrwbruwbrwuurgwwugrwgrwg
rgrguwguwrgwwgruggbwwbugbruubgurgrwuwrugbbggbuwrrggrwuug
uwubrubgbbwrgbgugwwwwwubwwubrburbbuurgwrrbwbubrbw
rgrbbwggrbgrrggrgbububggwggwwwwbrubguwgbuwbruwgugrgwrww
bbrwwrwgbgbgbrwwubbrgwuruwbrbubrrburuurwb
uuwgwgubwwbburwgrrbwgwrugrbwwgbggrurgwbuwru
uuggrgwuguuwwrbwrbuwrbrbgbuburuwwbbgbggbbugwwbu
bwbgwgwbrbbbwwbwrwgwbwgurggguwugrubrubrbrbuwwuugubru
uwuwrgwuubbruurbbbururrurrrbrwggbgbbgwrbuwubgbrrgwuurwb
bwgbbrgbbbbuugurgrburrrugbuubgbbwwwwgbuuwuggbgwguubb
uubwbuurbbwgbrgruwbugguguwbubbgrgbbgwbubggrrbwrwb
rrrguwbgwuwwbrrwrrwguwurbgbrburrwgrrburgwbbrruwwrrwbwrb
rruguburbgwgrgbguggggrugrgwbwwbwrbggwwgbruwuwrwwbubgburgr
rurgbwbugrbrgbgrurruwbubugubbgwuubgrwgrwwwgwbwrwbbwb
bbgbwggwgbbwbuugrrubbubgbrbrgubrugugrwbrwwbg
gwgugbburwwwwgbwwubwrwrwuurruuwuwwurugrrrgb
wwwrrrgruwrrrwuubwbrrurwbwrwrwbwggggrrbwuwggg
gbwrwguguggbwwrrbwgwwbwgbbbgwbuwuwrgwwrgbwuurb
guguuugbrbgruwbwbubwurrwggrubruwwggbwwubguub
uubbrubgrwwwuwrwgugbwbgurgrbbrugbrurguwrwwbbuguuuburwb
gubbuuuuubbwubgrwwguruggrbrgrrubuuuurrwrwb
uwwgbgrgrbrrgrguwgubuuwbwgguwbgurbwugbbrgguw
buwbgrggwwubrgrggbwurubgrbuuuwurrbuwurbbbbbrubgbrbuwwwrw
uwbrrbbwwruurgrrgrwruruwuubrgbrwwgwbugrbbrggrbwwbgrrwb
rbwgwbrguubbbugwguwrgrgbggbrruggrwubrwbgbwwuuwrrgwg
rbrbbgwggwuuburggwwrruruuruggwubruwwbrurubwbu
rbubuuurbwrugurggbwwbugbguuuuuwrubbguwrwb
bbwbubwrbuwgubguwrwrwgbgrrwwruurwwrbugrrurwb
bbuguurruwrrbguuuugwrguubwuubrbggrwubgugbwbwrrurugrugrwb
gbuuwurrbrwwrubgurbuubugrrbwubuurwuwwwgbbgbrwbrrrubggrwbgwb
grggrugrrbruuwbbbrrugbbbbuwbrwurrwgbwbuwrwb
bguurbwgwgbgbgrgrbbwgbbwubbwggrbubrwrbrubrbrgrwbburwb
grrrbrrwubuuggrgrurruuwwubwuuwubrrbburbrwwggrwgurgwgggwr
wbgubuuubwuwbrububrbwgrugrrbrrwbugguwwuuugu
rrgwgrguwruwgrwwrbgrgbbbbbwrgbugbggbrrwb
gwbrrgrruurwurburwbgrbggruuurbrbwubguwgrrburbgwwwu
bwwbugbruwrrguubruwbruuwrrwuwbruwgrwgwruwurgrbgurgruguwbg
brgrrbururwguwbburgurgrggbgubuwgruuuurbrrrrwugg
uwrbugwwrwuwgwwbuugbuurbwwbrwwrgrbggbgwwwrbrbwrrubbgrugw
uuggwbwrrwgrruwgggbggbgbubgwgbugwwrggrgbrgrururgugur
bwwwrugrrgbggbggbwubburrgubgwgwwrbwwgwbgurw
gburbuurwgbwgwwgggwbguwuwruububuwububwuwbgg
gbwggbgguwggbgwwrurwggbuburwrrgrbgbbuwuuuwrggwggwb
gbbwwwgbgwurgrbbwbgguwrwrggguwbugwbrgbwurgwuwgrrug
rgbugwrgugwbbbgggrwgwubbbwuurbrbrwbrgrwuurwgrg
ruwbuwurgwbuwrrrgwbrwrrruwwgggwugbwwrgruwgwubbgrwrrrwu
brrbwbbgwwwuururbrbuuwwwuguwwburbrurwuwgbwrbuubrbbww
rrrwrwugurubugbubbgwgrggwbbggbrugwbwrbggburgbrwr
ubrggrgbgwgruggrgrrwbruubwrrurubrbgwrwbggbrgbbrgwbbbr
ggrbbggrurbrbruwwugwrbrwrrbwgbrwwgubwrbrrgrbbwwwruwggww
wugbrbgwwwwrbugbwwrrburuwrbruruwuuuurbuwwwbgrgbrwb
bbgbgruurgbubburgwruwgrwuuubbwbwgugwbrbuuwwgurrurgwwrrb
wwburbbgbwurubrbrurwwgrwgubbgwbgrguuugurbwuwbuwuwuru
bwrgbuwrrrbubbwugbbrrgwgrbbbuguugrwbrurwrugguubbrubuggrwb
rgrwugwgbuuwubwrguuburuuuwuwbgguwuubggrrbugrbugwbgwwubwwbb
wbwrgurwrwrgggbbgggwwrbrbgurggubbbgrgbwbug
rbwbuwgurbbbgwuubwbgrwwubwbbwbgggwurbbbgbuu
wbburugwgrwwwgwwrwrbubrwuwrbgbwgbbwbrrbwbubbwbruubgrug
wrwggwgwwuuubbgrrwggrguubrgurrwuurubwurggwbrbbbugwuuwubwgu
bggrgbruwguurrurrbwuuwgugbrbwbuwwgwrgurggwburbbwgbuw
wwwbbugrrwwbrbwwgwububbuggrgrurggrwgrurruggbburwwgwurwb
rbrrwubgrwrbrbrggwwrurrwbwrurbwgbubggbrrrwwrwb
wuburwgwrwuwggbwwrgwwwugbwbggrurgbrurruwburuugwrwb
gwbwurbrbuurgwwbuuurrubbbrbwgruwuwuuuugwgbbb
wguwrbrbrgbbbggbggbgbgwgwbrggbggwguwurwwbbwbrrrrbwrwgrwb
wwwbruruubrurbugrrwwuburubbguwwrrbbwbbbrgbbubuwrurugr
brurrgggruwgrburwuggugrrbwbuuwbwuubgurwubruwrgwurbrwb
gwrruuwbrbwwbbbuwbwgrgubgggggwubgugubrbgugwuuburubugruwu
uubwruurruwwbrwburwggugggrguuurrgbbwbuggbwbuuurbgrwb
ggwrurbgrwgbbbruuurbbuubrwururgwwbuuwgrgwrgbubugrbrrgg
gubrurubwbrgrwwgggwwbwwguubbgggbggwbwwrguwrgwuggr
rwwugrbggburrrrbgwwgwgrurbbrguwrrbbbruwubgrgbrrwb
bgrrrbbgrguwgwwgurwwwrwugwwgrgrrwwguugbbruruuuwburbbuur
gwrgubrbubbbbrggrrbgwuwwbgbbuubugwgrwubgbbr
bwwwgwguwrrguruugwwbwgrgrwwbbwbrrgwbburuubbugbbrgggw
wburrbwwgubwbbwrbrgrwrbwugwuwwgwuugwwwgurgrguwuwgrgruu
wggrrrbgbgwurwrrwbrubbwbrwgrrwuugbrwwuwgruwwurw
rrbwggggurwrbwrrwubbrrurwwgbbrwuuwrruuwbrwb
ugwwwrbrbugbgrbuwbubwuggbwwugbgwrrwurrrwrrbgwrub
gbwgguuguuuugwgbuubggwuwbgrrbrbgwwbgugguruwrwggwwrwgwgu
wuubbbugwgrugububgrbgwugrurruwbwrbggwbgbbgurgrgbw
gwugwbbrwbwgwrwbrgurbwuwuugrrrbwwrburubgwrwwbbg
wwrgrrbubbuuwwbuwgrrwrrgggguwrrubbugrgwwbbug
gwubbruruuuwbbgrugbbbgbgwurwgwgwbwbwugggugbwuburwb
grgwgwrugugbgbwwbwubgwgbrgwguuwrrwwwugbgwgbgwruwwrwgwwrwb
rwrggugrwbbwgbubuwuwrrrgguguwrggbwbbwrrwb
rbgbwuwbwrbbwbbgugwgbbbwbrrrugwbrbubgruburwgwrrwb
wrrgbbbbwwuwgrgrrrbgurugbuwuubrgbgrbbbrrwb
ggrbwgwgrugrbrrwgugwguuwubuwwrugbbwwbbwuwggwuu
rwuuwwbugruwrruubuwuruuwubrugwrrwgruwrwrubbruruuwwg
rwrwuwbuwugbubgbbrguwgubuubbuwbwbgurubggbgubgwu
ugrrrruuwruuguwggubguwwwgrwuuwrwugwruwgrrbbw
ggwgwgurwrggrrwgwruuguwrugubrbuurwwruwbgrgrwb
rwbrrwuwbbbgbrrbwburwbbgbggwbbggwggugggrrrwbugg
ugbruwrruwgrbwuggrwwbruwwubrurrggbubgubugbgruugrrwb
wwwuubbwubwrubgubwrugrurbugguurburrrrwgguwwuggugurguwurwr
bwwbrruwbugbwguubbgggbrwbbrurgwbrwgggbgugbbgrbww
brgbwwubgubguwugwwuruubggwwuuwgwgwggbbwwbubbbggu
rbbrbbrurbuwwwguggguwgwggburbggubuwwbrbbubruuwwbgbru
rwuuugbwgwuugurbwrrwwbugbggbuururrbgwbwuuurggrurbgwbgggrrwb
bbgrgwwugwbwugggbugbgubgbgwbbuwrruurbwurwrgwurwb
bgwgguuwggrbbugbgwwwrwurrrbugrgguugrbgwbgwgwggruwwggwwgrwb
urrwggrubuwgbwggbbuwwbwbbwwrrgwrwbgurwurru
uwwbugruuuwggrrrrrbrrrbrurgwrrwwrrwbwbruwbbbuggwuu
wrururubbrugbggubggrbruuuubuubwuggggwwwubbwbbwbgbgbbgurwb
ubrubrbrgugurbuwrwuuwgbgwwrrwrrbbgwgbwruwrrrggggr
rbwguruwbgbgbbbbubbrrrugrruggurwwgrrrbrwb
rurgwubwbwgubwrbgguugrruururgwgbuwwurgugww
bwugrgruugguguwbgrbbbwuuwrrgwrrwrrubgrbrgbrggbww
rrgwbrwggbbgrggugurwgrgbrgwgbwrruwgwggwgrwuwrwbburwwbu
uurbwggwubwgwwguwbbgwwggugrrruggbgwbrrgwrr
grwbwbwrgrwrrubbbgwgrbbwrbgrurwrguwwwwggrbwbrwubbwrggr
gbuwbugrgubbrrbwwrbgwuwrwrbrbrwwbwbwrwuurrruurwb
ubrwurrrwwrbgwwgguubuwwgwbguwggurwbbgrugwbbrubug
rbugbwbguwggwwrwbbgwwuuruwwbrububbrurbubrgwwrbugugwbubggru
uuguruubgwwrrrwwugwurbgwbubrgrurrgwuuuuuggwbgrwbugu
gwwbugrrburuuwbwwbbugguubuuwwbuwbuwgubuwbruuugrgurgbuuubbw
ugwwgubwubbrubbrugbbbrurwgrgubgubugururgwgwwburgr
uggrgbruwrrbwrwgrruurwgguguwrwrwgbrggububgwrbguwbugwwguw
gruruurbgwrggggbrrugrbrgubrurrgugbbgrbgrwwugbrubw
ruggggwgbubuuubbgbburuwwgbbugrwubbrubgbrgbggrgubrb
wrguwbuwbrrbbbwbwrbgrrubwggbuwrrrgugbbrwbrguugrbrwgbrgg
rrgrwbgurgbbrgrbgugwrgrruruuugrgrrbbrrrwb
uuggrwugruuggrurbwggwgrwbwrgrbbbgbwbubugwg
rwwwrwrrbgrrgrgrwrgururgwrwburubwgrguwbuwwrrugugbbrwb
bbgguuwwuwbbuuwgwgurrwrwgbbrgurwgbrrbwrwbrwrbuggbwwrwrbuw
wrwwbgwgwruwrubbwrrwurwubgrrwrggbbgbbbgwwbgwggrbbwbrbbgbg
wgggrbrbwuwgubrguubgrguwrwuuuwbwwubuuwgbgrgbruubb
uggrwrwwbguwurbbburrgwgwururgwrgruwbwuubugubrurbuubrwrbuurwb
wrugguwugrgbuuwrbugrubrggggwwrbuwuurbuwruwwuww
wugwrwbbbrbbbrggrwbuwrwgwwbbrbwwgbruwugwruggggbw
uguurbwgwbbuuguwrwguubuugwurbgwrrbgbrrguwuwug
uwwuubgrrwgwrbbrgwwwbwugbbggbuuuurgubgwugrbgurbbwug
gwuwgwrrwgrwbwggugrbrggubbuburbbbgugrbuwrurrwbrwgggr
wwgrugrwuguwbruwugguurguwrugubwubrbgwwbrwbrwgbwrgwrruwurbr
gwgburrgwuurwburubuuwwwwgbbwbggwwgwuugrgwrbwrrw
rbgwgbbruuwwugugugrubbuugggwgubrguwwgrwgrrrgwbggbuguwu
rwwrrbrggruuubgruburgwubrrguwbwwgrgbwggruggwg
burgwuwugwbbbgrwgrubguuwugrbrbguubwwwrbbrwbrrugubuwwguuurw
gburugwwrwrrugugbbubrwrburrugrubbrurbrwwgrbbww
wuubbrbubbrbuubuwuwwgbuubugbrrgrugwrgwgwwwwwwwuurb
wuwgrrgwbbgrurbrgrrurbbgwuggggbgwuurwggurrwb
grbbggbgrugwbuubruwrgbwrbbwuugwrrugwrggbrurbwrrurbrwb
uuubbgrbwrurbwbuggbbgrwuguuwubrwgbgrrwurubbrwgggwbggrwb
urgwrgbbuwwrbrrrbbrwgwugwwrgrugwbgbbgrwb
wgbrwggguwwruuwwggwwrwbbbugbruwugbbbuuuwwgurrrbwwbubbwgburwb
buggbbgbgbbwwwurwrwrwbruwgwbbgrruwwgruubgwwwuggur
rbgbwubgbbgrurwwguwubrwubbuuggrugurubwuwgrwgubgugwguugrgw
urbbgurbubwwgbbwburrrbgrbwwubggwugbrrbugwrbgubrb
wbrurrrbgrgbgbwwwrwurrwbuuwrwwgrburwrrbgruggubgrguwgbwur
uuururbwrrwgwbwwrwwgwgruwurrbugwrgburgwrwrbrbw
rrwrurbrgubuguwurwgururugbgrbgubrgrgggurggugurgrbbuwgw
rrwuwrugwwbbubbrbrwrbwbwubgubgwwgrbugwgrugbgb
grwgbggwwwgwrwgruggbbgwrgwubgwrwguwgrguuuuuwgbbubgguugg
rbuurugruurwuwgburwgwgugrwgwwgwwgbrrugguwruw
urubgguwggurwbgrwwbubguwggbbbgrugwgrbgbrwgwrrbrbbrguub
wrbrurgwbubbwbbrwbbrugwgbubrwbgrgwguwuugbgugrgbg
rwuruwurgugggrgrrrugrurgggrrubguurbububugugbwurwuwwug
uubwuwrwwgrbbwgrrgubwgguggbrrwuruuwuubgrwuggbgruggbrr
uurbbgrgbrgbbgrgrbwwugbrrubgubgurrbbrrrbubr
guguggbgggwbbwrwrbwbgggrurburgurgbbwwgruru
wbrrbbuurwruuuwugrgubwuuurbrwurwurbwwbwububwbbbrwb
ubbrwgggwrwbwwwrbgbrrrbrubwrgurgbbgbuuuuugbwgwgrwuwwbuu
bwrbggbgrbbgubbwrrrubgwburgrgrrruurwuuggbguwbwwurrwrwb
gwuguuwbruwuuggrbrrbuwurbggbbwguwwgwwbgrurrwb
rrggbbgurwbbbgurbgbggubgrruuwbrbwgbrguwubbggguwbgruwwrwb
uwugbwwwrbbruubwbrgbuuubbgrubururrbrrgwwbgrwgbrwruwrwb
bwurruruwuguwrbuuggbwbrubbrwuwurbgwwbrgurgwuggr
ruuuwugrrurbwrgrbgurbrwbrbubbwwuuwwuwwuugugbbgrbggwr
uugrgwgwwgrbrubbugbgbrguwbbwwgrubbbgbgbruwugrrwb
brbgbwwwbbuuugrwrugbwurrgggbwwuubwruuburrbrr
wrwrgwwrwrugrwrrurbuuwgurgbrgbrwwbwrggwbrbbuugrbbwugrwb
rugbbggbuggwgwwuruwrwbggwgburuubuwugbggbrbgubrwgr
ubrrwuwguwwrbgwbbbrrgrggrgrgwgbrugubuwwwwuwguuurwb
ruguguwuruubbwwwgwgrrrwrwwuuuruuuwuwgwubwwrwu
brggrwrbrwwwuwwbwrgwbwurbuwwrbrgrrugbwugrbguuwb
gwuugwuuuggrgurbbwggrubbwuurruuwrggrggurgrrwrrgbrb
ugwggbgbbrrwgwrbuggurrbuugbwrurbbuggubwbgwgwuwgwrrrwubuwurwb
wwuugrrggrbrrgwuuugbwbwrurrbuwwwubwrbrggubbubbgrrr
ggwuubgurubrurbwgrwwuggururbrgruwgruugugrbwgrbubrbrb
rwggguwwubburgwwuurrurrrgwgbrgbbbrruguwbwugguuurr
rrbwbrrwbuwwbwrrbbbwwubuwgurrguwugguwrbuwuubbwuwrbggbuu
grgrbggrburrbgwbwbuugugbburbrwrrrguuwbugggugrrrgrwrwb
buubrrggburbggwgwgrbgurwbwwwubbwbgbwwuwbwwrwb
wguuurrggwguurburgugugbrwrgbwrrwbgrugwuugbwgbbuubggrugbub
wbwgruuugggrrubbwrwwubugguguwwguubwurwgwwrbgubwrgbbubrwb
ruwrggugbbbbgurwggruuggwwggrwwrwbbbrwguuuuug
bggwwuwgwbuguwggrgurbwugbbbuurwgwuggubgrwbwwwbwgrrbuug
rrgwugbuwugubuuggbrwwguurwuwugwuuuubgrwrrwrbgrgwbuggwr
grguwrrurgbwbwrgwwwrggrwbwgbuwbbbwbggrbrwbbrwb
uubgbrgrwbbgwrbrwwgbgburbuurbubbguuwbgbuuwburbubggguug
gwbgwrbwwwubuwwrwbbwrrrgwuwbrubwbgggubugbwwgggburrbugrgu
bwgwguugggbrrbuggwggwgbrbugurbwwuuwwwugbbubbrwb
rwgwbgbwwuwrbgbgwbrwuwruuubbrbwwuruwbwrbrwrwrgru
wwrbwwwurggbgggugwuggubbbwgrrwrbwwuugwrbubwgrbgrrr
ubrubggrgguugburwgbbrwurbrburuuwwrrbrrwwbgwbgggwugurugwwrwb
gbggrubrgubgubbwwwwuwrbburrgrwbrgrwbrwguuwwuwrgguwrwb
bbwgbrwggwrbwugbgubugwwuwwggbgubwubgggwwrbgrwrwwgb
uubrbgbbguugrruurbrwbbuuuubbwwuruuuwbbgwbgrbwrrrgb
bbbwugurwrwurgbuuugrrruubrwrgwguwubrurgburbgrrwrr
gggwwgwubwwwrrbubuuuggrgrgburugbgbuurbgrugrwrgwgruu
burugbguwbuwgubugubbburrgrrwuruubbrbrwwbwrburubwubbb
wrwbwrbggggbgbruwwwubuurwbgwgrrgrwubwrrbbggrgbwbwbbbuwbbrwb
uuurggrbbwubuwbwbwrgrbbwgrgugbrruguuugrgrubb
buuugbwbbgwrgruuwrbwbgwbbrgwbrgrwruwwwgwruggrb
rgwrrguwuugbgrbubgbuburgrbuuwwgbbwgurrwwubrgwguw
ruuwwurgwurgbuwurruurbbbbugrubrrgwrgurgubbgbbwgugrwb
urrwrwgugrrbbrgggrgubwbrwwgbgururbwruguwwrgburg
rugrggruuubgguuwwwbgbgbbgugrwgurrruubrgburgrrwb
ubwwrugbguwrrrbwuwggrwrwrububurbgruwbgwrbbbgrrrgggwr
wuggwbgwbbbwugrbbwwubgrbwrgrgrrgwuuwgrwgwwurug
bgwwbbbwrrwugwgwwrruggrbwuwbwwgrwrgrrguwgrurwgurgggrrwb
guwrwubwrwwwgugguuwwurbgugbuwrrbwrguuwgbwbbgbgurrgwbbu
gwugguubwruguubuguguugbuuugrrwrrrurrbwgrbwgwugburuu
brwgwrbbgwurgrugggrrbbwruugrgburrwggwguwuuwrrbw
bwbugwurgbgurwwrugurgbbgbuurugggwugubrwb
bbbuuubggggggwrbrgbbwruwuuwugurbubgwgrrguugbwuggrubrwbwgr
wgrrrurugrbgwbgbbrrgurrgwrurrwwwbgrguuggrgurwww
gubbrbwurgwwbbggurwgbgrwrwbrugrwrburgrrugb
uubuubgguwwbrrwwwwubgwbbwbwwwwugguguwburgbrbbbg
ubgrwugugrruwuurrwguggwuwbrwbwrugruuuwrugwwuwrubuugbrwrrrwb
wrgwguugruurububuurwurrwuggrrubbrrrgugwuugwurgrg
bwubggubrrburbrbwggrurwrbwbgbbgwggubggbubrububrwb
urugwwbubbrrwwwrbrwuwbwurwgrurbwbrurbrwrgrruburwb
rruubgwwwgrwrggubgubwrbbgwgbguruwwgrgburgwrg
rgugrgrbbrgwbguwgguguwrrubgwwgwgwuwubwbwrggbwuuuwrrbwgwu
gwuwbwuwwbwwggbbgrgwugwrgugruuubgwguwwgbbrwb
bbwuguwwwuguuuuurrbbububurbwruuubugbgrbuwgrururwb
bbbugrrrbrgburgwuuruwrbwgwrgwgrugbrgububrbwwgrbrgbuwbgguu
bubwuuwwuwbggrwwubruwbubbwwgwrubuguwbuuwugwrbbugr
uwrgubbrrgguggubuuwrrrwrrurbuubrgbbbwgrwub
wbbguubbbbguwuwbwrgwwubwrurgwurbrrwurrbgrbbburw
rgbwugbubggbrbwgbuuubrwgbrruwggbbggbbuggwg
rgrugbgrwbwgwuwrbggrwuburrbguwguguuugwgubrgruwwbw
uuuruwuurbwubrwgwuuwbugrrwggbwwubbugwgubbrwgwwwugbwwrwb
brgbguwuwggbbwrbggggbrbubbwbrwbbgwuubbbbgwrgwgbbwu
uggrgrubuuuwruuurbuwwugbwwgwwguubuggubwwugrrwbggwrgubrbwrw
wbburbgbbrbbggrgrrurwwgurbubwuurwwgwbwrgbguuuwrubwwubuu
buwbgbrwgbubbrbrgwuwbgbrwburgbbrwgguwwbwgbwbgbww
gurwggwurgwbbubbgbgruggbrbubuwbruwwrwguggrbbbrggwgbrgbgu
wbwwwbbbwgruuuwubbrrgbbggwbrgwwbgurbbwgwgwgrbggwrugrugggbrwb
bbgrwgruggrwwurwwrggbruugbbrgwggrrugrwuuugbrrwb
wwbugbwuguwgbrwrwgrrbuwgwuwgwrbbbubwwgbrguwuw
ugwbgbwrrgbwrrrbrwwguggruwugwwurwrrbgwubbwrggugbruuw
bbbruuwuwwurrwbuwbuguuggurgbgbruruwurgbgbgrrwb
bggwgrggrrugwwbuwgbrbbgwbbuwwuwbrgbwbggwbbgggugwggrwbbur
uuurruuuuugrbuwwgrbwwuuwbruggggbgrbuuggbuuuwgrrb
gbgrgubggbgrgguuwbwbrwbggwurgbwwwbrubwgwrggrbwurggrwrrr
ggbrbrbguwguuugubruggbgwbbuwwrbuuugbuuwgww
wurrbururbgrbrgwggwggrgrgrgbgrrgbbwwgbrgwururwb
uubugrgbrubuggrggrbwbbbruwbrrwugugrurwbgwwwbubgrggr
rgwwbwgbwugugrwrrwubrwbgwuwuruggbguubbwbugururu
wbuwrbggrrwbgbrbwwwbbgwbwrrggubrubbwbubrgwrwburbgb
gbwuruuwuwwwbggurugrwgwubbgbwwwurgwbruwgbgrbwrgurwb
gwururwwugrrubbruwbuwrbgwrbruugbuuugggwbubwubb
wgrgrrgwwruugbrrrbwwrwrrgbguwwgwrbgwuuwbgwuwrugg
ugurwrbgrbubwbbgrwgrwrbgwbwuwubgrbuwwrubrggwuguwbgbu
ugrrburuwwrrwgrugbruwgwbbubrbuwbwwruuurgbuwwgwgbwwbuburwb
wurugurbrbubbbbburuubrbrrbwubguwggwubbrbrbrgurrbwwwuggwg
bwrburggbggbbgbuguwbgwwbbbubugwguwbbgbgwbg
gbwrbgbgbrugbbguruuwgurwwruggggbuburbgwwrwb
rubrgwubrrrrrwbwbrurbwwggrrburrugrrubwbbguwbbgrwwrbburrwbr
wgbuurbrrbgrugwgubuwbgurrwwuwgrbrgrbgwrwwbrururuuwrrrwb
grwuuggwugwgrbggggbwbgwububwrgwgburrugurbugurrrwrwrububrwb
bbggugurwurrgggrrbbrurubbwbuwbbwwbrwgrrrubrgur
gwwwugwuguubuuwgbgruruwguugrbbwgbbwwgrgrwwrrrrrbuwbbwburwb

2
data/20.ans Normal file
View File

@@ -0,0 +1,2 @@
1445
1008040

141
data/20.in Normal file
View File

@@ -0,0 +1,141 @@
#############################################################################################################################################
#.........................#...###...#...#...#.............#...#...#...#.......###...#...#...###...#.....###...#...........#...#.........#...#
#.#######################.#.#.###.#.#.#.#.#.#.###########.#.#.#.#.#.#.#.#####.###.#.#.#.#.#.###.#.#.###.###.#.#.#########.#.#.#.#######.#.#.#
#...#...#...............#.#.#.....#.#.#...#.#.....#.......#.#.#.#...#.#.....#.#...#.#.#...#...#.#.#...#.#...#...#.........#.#...#...#...#.#.#
###.#.#.#.#############.#.#.#######.#.#####.#####.#.#######.#.#.#####.#####.#.#.###.#.#######.#.#.###.#.#.#######.#########.#####.#.#.###.#.#
###...#.#.#.............#.#.......#.#.....#...#...#.....#...#...#.....#...#.#.#...#...#.......#.#...#.#.#.#.......#.........#...#.#...###.#.#
#######.#.#.#############.#######.#.#####.###.#.#######.#.#######.#####.#.#.#.###.#####.#######.###.#.#.#.#.#######.#########.#.#.#######.#.#
#...###...#...#...#.....#.#.......#.#...#.#...#.#.....#.#...#...#.....#.#...#...#.#...#...#...#.#...#.#.#.#.#.......#...#.....#...###...#.#.#
#.#.#########.#.#.#.###.#.#.#######.#.#.#.#.###.#.###.#.###.#.#.#####.#.#######.#.#.#.###.#.#.#.#.###.#.#.#.#.#######.#.#.###########.#.#.#.#
#.#.#...#.....#.#.#.#...#.#.......#.#.#.#.#.#...#...#...###...#...#...#.....#...#...#.#...#.#.#.#...#.#.#.#.#.#.......#.#.....#...#...#.#.#.#
#.#.#.#.#.#####.#.#.#.###.#######.#.#.#.#.#.#.#####.#############.#.#######.#.#######.#.###.#.#.###.#.#.#.#.#.#.#######.#####.#.#.#.###.#.#.#
#.#.#.#.#.......#...#...#...#.....#...#.#.#.#...#...#...#...#.....#...#.....#.#...#...#.#...#.#.#...#.#.#.#...#.......#...#...#.#.#...#...#.#
#.#.#.#.###############.###.#.#########.#.#.###.#.###.#.#.#.#.#######.#.#####.#.#.#.###.#.###.#.#.###.#.#.###########.###.#.###.#.###.#####.#
#.#.#.#.###...#...#.....#...#.........#.#.#.###.#.###.#.#.#.#.....#...#.....#.#.#.#...#.#...#...#...#.#.#.#...........###...###.#...#.#.....#
#.#.#.#.###.#.#.#.#.#####.###########.#.#.#.###.#.###.#.#.#.#####.#.#######.#.#.#.###.#.###.#######.#.#.#.#.###################.###.#.#.#####
#.#...#.#...#.#.#.#.....#.......#...#.#.#.#.#...#.#...#...#...###.#...###...#...#...#.#.#...#.......#.#...#...........#...###...#...#.#.#...#
#.#####.#.###.#.#.#####.#######.#.#.#.#.#.#.#.###.#.#########.###.###.###.#########.#.#.#.###.#######.###############.#.#.###.###.###.#.#.#.#
#.....#...#...#.#.....#.......#.#.#...#...#...#...#...#.....#...#...#...#.......#...#.#.#...#.....#...#...............#.#...#...#.#...#.#.#.#
#####.#####.###.#####.#######.#.#.#############.#####.#.###.###.###.###.#######.#.###.#.###.#####.#.###.###############.###.###.#.#.###.#.#.#
#...#.#...#...#.....#.........#.#.........#.....#.....#...#...#.###...#.#...#...#...#.#.###.#.....#...#.#.........#...#.#...#...#.#.#...#.#.#
#.#.#.#.#.###.#####.###########.#########.#.#####.#######.###.#.#####.#.#.#.#.#####.#.#.###.#.#######.#.#.#######.#.#.#.#.###.###.#.#.###.#.#
#.#.#...#...#.......#.........#.###...###.#.....#.....#...###...#...#.#.#.#.#.....#.#.#...#.#.#...#...#...#.......#.#.#.#.###...#.#.#.....#.#
#.#.#######.#########.#######.#.###.#.###.#####.#####.#.#########.#.#.#.#.#.#####.#.#.###.#.#.#.#.#.#######.#######.#.#.#.#####.#.#.#######.#
#.#...#...#...#...#...###.....#.....#.....#.....#...#.#.......###.#.#.#.#.#...###.#...#...#.#.#.#.#.#.......###...#.#.#.#.#...#.#...#...#...#
#.###.#.#.###.#.#.#.#####.#################.#####.#.#.#######.###.#.#.#.#.###.###.#####.###.#.#.#.#.#.#########.#.#.#.#.#.#.#.#.#####.#.#.###
#...#.#.#...#...#...###...#.........#.....#.#...#.#.#.#.......#...#.#.#.#...#...#.#.....###.#...#...#.....#...#.#.#.#.#.#.#.#.#...#...#...###
###.#.#.###.###########.###.#######.#.###.#.#.#.#.#.#.#.#######.###.#.#.###.###.#.#.#######.#############.#.#.#.#.#.#.#.#.#.#.###.#.#########
#...#.#.#...###.......#.....#...###...#...#...#.#.#.#.#...#...#...#.#.#.#...#...#.#...#...#.#...#...#.....#.#...#.#.#.#.#.#.#...#.#.#...#...#
#.###.#.#.#####.#####.#######.#.#######.#######.#.#.#.###.#.#.###.#.#.#.#.###.###.###.#.#.#.#.#.#.#.#.#####.#####.#.#.#.#.#.###.#.#.#.#.#.#.#
#...#.#.#.#...#.....#.#.......#.......#.#.......#.#...#...#.#...#.#.#.#.#...#.#...#...#.#.#...#...#.#.#...#.#.....#.#...#...#...#.#...#...#.#
###.#.#.#.#.#.#####.#.#.#############.#.#.#######.#####.###.###.#.#.#.#.###.#.#.###.###.#.#########.#.#.#.#.#.#####.#########.###.#########.#
#...#...#.#.#...#...#.#...........#...#.#.#...#...#.....###...#.#.#.#.#...#.#.#...#.#...#...#...#...#...#...#...#...#...#.....#...#.........#
#.#######.#.###.#.###.###########.#.###.#.#.#.#.###.#########.#.#.#.#.###.#.#.###.#.#.#####.#.#.#.#############.#.###.#.#.#####.###.#########
#...#...#...#...#...#.#.......#...#...#.#.#.#.#.#...#...#...#.#.#.#.#...#.#.#.###.#.#...#...#.#.#.....#.........#.#...#...#...#...#.#.......#
###.#.#.#####.#####.#.#.#####.#.#####.#.#.#.#.#.#.###.#.#.#.#.#.#.#.###.#.#.#.###.#.###.#.###.#.#####.#.#########.#.#######.#.###.#.#.#####.#
###...#.....#.#...#.#.#.....#.#.....#.#.#.#.#...#...#.#.#.#.#.#.#.#...#.#.#.#...#.#...#.#...#.#.#...#.#...........#...###...#.###.#.#.#.....#
###########.#.#.#.#.#.#####.#.#####.#.#.#.#.#######.#.#.#.#.#.#.#.###.#.#.#.###.#.###.#.###.#.#.#.#.#.###############.###.###.###.#.#.#.#####
#...........#...#...#.......#.....#.#.#.#.#...#.....#.#.#.#.#.#...#...#.#.#.#...#.###.#...#.#.#...#.#.#.............#...#...#.....#...#...###
#.###############################.#.#.#.#.###.#.#####.#.#.#.#.#####.###.#.#.#.###.###.###.#.#.#####.#.#.###########.###.###.#############.###
#.......#.....#...#.......#.....#.#.#...#...#.#.#...#.#.#.#.#...###...#.#.#.#...#...#.#...#.#.#.....#.#...#...#...#.....###.#...........#...#
#######.#.###.#.#.#.#####.#.###.#.#.#######.#.#.#.#.#.#.#.#.###.#####.#.#.#.###.###.#.#.###.#.#.#####.###.#.#.#.#.#########.#.#########.###.#
#.......#.###...#...###...#.#...#...###...#...#.#.#.#.#.#.#.#...#.....#.#.#...#...#.#.#...#...#...#...###...#...#...###...#.#.........#...#.#
#.#######.#############.###.#.#########.#.#####.#.#.#.#.#.#.#.###.#####.#.###.###.#.#.###.#######.#.###############.###.#.#.#########.###.#.#
#.........#...#...#...#.....#...........#.....#.#.#.#.#.#.#.#.###...#...#...#.###.#.#.#...#.......#.#...............#...#...#.......#...#.#.#
###########.#.#.#.#.#.#######################.#.#.#.#.#.#.#.#.#####.#.#####.#.###.#.#.#.###.#######.#.###############.#######.#####.###.#.#.#
###...#.....#...#...#.....#...................#.#.#.#.#.#.#...#.....#.....#.#.#...#.#...###...#.....#...............#.#.......#.....#...#.#.#
###.#.#.#################.#.###################.#.#.#.#.#.#####.#########.#.#.#.###.#########.#.###################.#.#.#######.#####.###.#.#
#...#.#.#...#...#.......#...#.......#.......#...#.#.#.#.#.....#...#...#...#.#.#...#.........#.#.#...........#.....#...#.......#.....#.###...#
#.###.#.#.#.#.#.#.#####.#####.#####.#.#####.#.###.#.#.#.#####.###.#.#.#.###.#.###.#########.#.#.#.#########.#.###.###########.#####.#.#######
#.#...#...#...#...#...#.......#...#...#.....#.....#.#.#.#...#.#...#.#.#...#...###...#.....#.#.#.#...#.....#.#.###.....#.....#...###.#...#...#
#.#.###############.#.#########.#.#####.###########.#.#.#.#.#.#.###.#.###.#########.#.###.#.#.#.###.#.###.#.#.#######.#.###.###.###.###.#.#.#
#.#...###...###...#.#.#.........#.......###...#...#...#...#...#.#...#...#.....#.....#.###...#...###...#...#...#...###...###...#...#...#...#.#
#.###.###.#.###.#.#.#.#.###################.#.#.#.#############.#.#####.#####.#.#####.#################.#######.#.###########.###.###.#####.#
#...#.....#.....#...#.#.............###...#.#...#...#...#.......#.....#...#...#.....#...#...###.......#.........#...........#...#...#.......#
###.#################.#############.###.#.#.#######.#.#.#.###########.###.#.#######.###.#.#.###.#####.#####################.###.###.#########
###.................#.............#...#.#...#...#...#.#.#...#...#...#.###.#.###...#...#...#...#.....#.#.................#...###...#...#.....#
###################.#############.###.#.#####.#.#.###.#.###.#.#.#.#.#.###.#.###.#.###.#######.#####.#.#.###############.#.#######.###.#.###.#
#...#...............#...........#.#...#.#.....#.#.....#...#...#...#...#...#.#...#.#...#.....#.#.....#.#...#...........#...###...#.....#.#...#
#.#.#.###############.#########.#.#.###.#.#####.#########.#############.###.#.###.#.###.###.#.#.#####.###.#.#########.#######.#.#######.#.###
#.#.#...#...#.......#.###.......#.#.....#.....#.....#...#.....###.......#...#...#.#...#...#...#.....#...#...#.....#...#.......#.........#...#
#.#.###.#.#.#.#####.#.###.#######.###########.#####.#.#.#####.###.#######.#####.#.###.###.#########.###.#####.###.#.###.###################.#
#.#.....#.#.#.#...#...#...#.....#.#.....#...#.#...#...#.......#...#.....#...###.#.###.....###...###...#.....#...#...###.#...............#...#
#.#######.#.#.#.#.#####.###.###.#.#.###.#.#.#.#.#.#############.###.###.###.###.#.###########.#.#####.#####.###.#######.#.#############.#.###
#.....#...#...#.#.#...#...#.#...#...###...#.#...#...#...#...###.....###.....#...#.....#...#...#.#...#.....#...#...#...#.#.............#...###
#####.#.#######.#.#.#.###.#.#.#############.#######.#.#.#.#.#################.#######.#.#.#.###.#.#.#####.###.###.#.#.#.#############.#######
#...#.#.#.......#...#.#...#.#.............#.........#.#.#.#.....#...#####...#.......#.#.#.#...#...#.......###.#...#.#...#.............#.....#
#.#.#.#.#.###########.#.###.#############.###########.#.#.#####.#.#.#####.#.#######.#.#.#.###.###############.#.###.#####.#############.###.#
#.#.#...#...........#.#.....###...........#.........#.#.#.#.....#.#...#...#.#.......#...#.....#...#.........#.#.....#...#.........###...#...#
#.#.###############.#.#########.###########.#######.#.#.#.#.#####.###.#.###.#.#################.#.#.#######.#.#######.#.#########.###.###.###
#.#.#.............#.#.#.......#...........#.#######...#...#.....#.#...#...#...#...#.....#.....#.#.#.#...#...#.....#...#.....#...#...#.#...###
#.#.#.###########.#.#.#.#####.###########.#.###################.#.#.#####.#####.#.#.###.#.###.#.#.#.#.#.#.#######.#.#######.#.#.###.#.#.#####
#.#.#...........#.#.#.#.....#.#...#######...#################E#...#.#...#.....#.#.#.#...#.#...#.#...#.#.#.......#.#.......#...#...#...#.....#
#.#.###########.#.#.#.#####.#.#.#.###########################.#####.#.#.#####.#.#.#.#.###.#.###.#####.#.#######.#.#######.#######.#########.#
#.#.........#...#...#.......#...#..S###############.....#####.#...#...#.#.....#.#...#.#...#.....###...#.....#...#.#...#...#.....#.........#.#
#.#########.#.#####################################.###.#####.#.#.#####.#.#####.#####.#.###########.#######.#.###.#.#.#.###.###.#########.#.#
#.........#...#.......#.....#...#...#...#####.......#...#####.#.#.....#.#.......#...#...#.....#...#.......#...###.#.#.#.....#...###...###...#
#########.#####.#####.#.###.#.#.#.#.#.#.#####.#######.#######.#.#####.#.#########.#.#####.###.#.#.#######.#######.#.#.#######.#####.#.#######
###...#...#...#.#.....#.#...#.#...#...#.....#.....#...###...#.#.#...#...#.....#...#...###...#...#...#...#...#...#...#.........#.....#.......#
###.#.#.###.#.#.#.#####.#.###.#############.#####.#.#####.#.#.#.#.#.#####.###.#.#####.#####.#######.#.#.###.#.#.###############.###########.#
#...#...#...#.#.#...#...#.#...#...........#...#...#.......#.#...#.#.#...#...#.#...#...#...#.......#.#.#.....#.#.#...###.......#.....#.......#
#.#######.###.#.###.#.###.#.###.#########.###.#.###########.#####.#.#.#.###.#.###.#.###.#.#######.#.#.#######.#.#.#.###.#####.#####.#.#######
#.........###...###...###...###.........#.....#.#...........#...#.#.#.#.....#.....#...#.#.......#.#.#.........#...#.....#.....#.....#...#...#
#######################################.#######.#.###########.#.#.#.#.###############.#.#######.#.#.#####################.#####.#######.#.#.#
#.............###...........###.........###...#.#.......###...#.#.#.#.............#...#.......#...#.#...................#.......#.....#...#.#
#.###########.###.#########.###.###########.#.#.#######.###.###.#.#.#############.#.#########.#####.#.#################.#########.###.#####.#
#.......#...#...#.#...#...#.....#...###.....#...#.....#...#.#...#.#.#.....###...#.#.....#...#.....#.#.................#.....#...#...#.......#
#######.#.#.###.#.#.#.#.#.#######.#.###.#########.###.###.#.#.###.#.#.###.###.#.#.#####.#.#.#####.#.#################.#####.#.#.###.#########
###...#...#.#...#...#...#.........#.....#.........###...#.#.#.....#.#...#.....#.#.#...#...#.......#.....#...........#...#...#.#...#.........#
###.#.#####.#.###########################.#############.#.#.#######.###.#######.#.#.#.#################.#.#########.###.#.###.###.#########.#
#...#.....#.#.#...#.....#...............#.........#...#...#...#.....###.#.....#.#.#.#.........#.......#...#...#...#.....#.....###...........#
#.#######.#.#.#.#.#.###.#.#############.#########.#.#.#######.#.#######.#.###.#.#.#.#########.#.#####.#####.#.#.#.###########################
#.#.....#.#.#.#.#.#...#.#.............#.#.........#.#...###...#.......#...###.#.#...#...#.....#.###...#.....#...#.......###.................#
#.#.###.#.#.#.#.#.###.#.#############.#.#.#########.###.###.#########.#######.#.#####.#.#.#####.###.###.###############.###.###############.#
#...#...#...#...#.....#.###...#...#...#.#.#.......#...#...#.....#.....###...#.#.#...#.#.#...#...#...#...#...............#...#...#...#...#...#
#####.#################.###.#.#.#.#.###.#.#.#####.###.###.#####.#.#######.#.#.#.#.#.#.#.###.#.###.###.###.###############.###.#.#.#.#.#.#.###
#.....#.....#...#.....#.....#...#...###...#.#.....###...#.###...#...#...#.#.#.#.#.#.#.#.###...###...#.###.........#...###.#...#...#.#.#.#...#
#.#####.###.#.#.#.###.#####################.#.#########.#.###.#####.#.#.#.#.#.#.#.#.#.#.###########.#.###########.#.#.###.#.#######.#.#.###.#
#...#...###.#.#.#.#...#...................#.#.....#.....#.....#.....#.#...#.#.#.#.#.#.#.....#.....#.#.#.........#.#.#.....#.......#...#...#.#
###.#.#####.#.#.#.#.###.#################.#.#####.#.###########.#####.#####.#.#.#.#.#.#####.#.###.#.#.#.#######.#.#.#############.#######.#.#
###...#.....#.#.#.#...#.#.................#.....#.#...........#.#...#...#...#.#.#.#...#.....#...#.#...#.......#...#.#.............#...###.#.#
#######.#####.#.#.###.#.#.#####################.#.###########.#.#.#.###.#.###.#.#.#####.#######.#.###########.#####.#.#############.#.###.#.#
#.......#...#.#...#...#.#.#.....#.......#...#...#...#...#.....#.#.#...#.#...#.#.#.....#...#...#.#.#...........#...#.#.........#.....#...#.#.#
#.#######.#.#.#####.###.#.#.###.#.#####.#.#.#.#####.#.#.#.#####.#.###.#.###.#.#.#####.###.#.#.#.#.#.###########.#.#.#########.#.#######.#.#.#
#...#...#.#...#.....#...#.#...#.#.#.....#.#.#.....#.#.#.#...#...#.#...#...#.#.#.#...#.#...#.#.#.#.#.............#...#.......#...#...#...#.#.#
###.#.#.#.#####.#####.###.###.#.#.#.#####.#.#####.#.#.#.###.#.###.#.#####.#.#.#.#.#.#.#.###.#.#.#.###################.#####.#####.#.#.###.#.#
###...#.#.....#.....#...#...#.#...#.#...#.#...#...#.#.#...#.#.#...#.....#.#...#.#.#...#...#.#.#.#.#...#.....#.......#.....#.#.....#.#.#...#.#
#######.#####.#####.###.###.#.#####.#.#.#.###.#.###.#.###.#.#.#.#######.#.#####.#.#######.#.#.#.#.#.#.#.###.#.#####.#####.#.#.#####.#.#.###.#
#.....#.......###...#...#...#.#.....#.#...#...#...#.#.#...#.#.#.....#...#...###.#.....#...#.#.#.#.#.#.#...#.#.....#...#...#.#.#...#...#.#...#
#.###.###########.###.###.###.#.#####.#####.#####.#.#.#.###.#.#####.#.#####.###.#####.#.###.#.#.#.#.#.###.#.#####.###.#.###.#.#.#.#####.#.###
#...#.###...#...#.#...###.....#.....#...###.....#.#...#...#.#.#...#.#...#...#...#.....#...#.#...#...#.#...#.#...#.#...#...#.#...#...#...#...#
###.#.###.#.#.#.#.#.###############.###.#######.#.#######.#.#.#.#.#.###.#.###.###.#######.#.#########.#.###.#.#.#.#.#####.#.#######.#.#####.#
#...#.....#...#...#...#.........###.#...#.......#...#.....#.#.#.#...#...#...#...#.#...#...#.......###...###.#.#...#.#.....#.....#...#...#...#
#.###################.#.#######.###.#.###.#########.#.#####.#.#.#####.#####.###.#.#.#.#.#########.#########.#.#####.#.#########.#.#####.#.###
#...#.....#.......#...#...#...#.....#.#...#...#.....#.#.....#.#...#...#.....#...#.#.#...#...#...#.......#...#.....#.#.#...#...#...#.....#...#
###.#.###.#.#####.#.#####.#.#.#######.#.###.#.#.#####.#.#####.###.#.###.#####.###.#.#####.#.#.#.#######.#.#######.#.#.#.#.#.#.#####.#######.#
#...#...#.#.#.....#...###...#.......#.#...#.#.#.....#...#.....#...#...#.....#...#.#.#...#.#.#.#...#...#.#.....#...#.#...#...#.....#.#.......#
#.#####.#.#.#.#######.#############.#.###.#.#.#####.#####.#####.#####.#####.###.#.#.#.#.#.#.#.###.#.#.#.#####.#.###.#############.#.#.#######
#...#...#...#...#.....#.......#...#.#.###.#.#.#...#.....#.#...#.#.....#...#.#...#.#.#.#...#.#...#.#.#.#...#...#...#...#.....#.....#...#...###
###.#.#########.#.#####.#####.#.#.#.#.###.#.#.#.#.#####.#.#.#.#.#.#####.#.#.#.###.#.#.#####.###.#.#.#.###.#.#####.###.#.###.#.#########.#.###
#...#...#.......#.....#.#...#...#.#.#.#...#.#.#.#.#.....#...#.#.#...#...#.#.#.#...#.#.....#.#...#...#.#...#.#.....#...#...#.#...#...#...#...#
#.#####.#.###########.#.#.#.#####.#.#.#.###.#.#.#.#.#########.#.###.#.###.#.#.#.###.#####.#.#.#######.#.###.#.#####.#####.#.###.#.#.#.#####.#
#...#...#.......#.....#...#.....#...#.#...#.#.#.#.#.......#...#...#...###...#.#...#.#.....#.#.......#.#.#...#.....#.....#.#...#...#...#...#.#
###.#.#########.#.#############.#####.###.#.#.#.#.#######.#.#####.###########.###.#.#.#####.#######.#.#.#.#######.#####.#.###.#########.#.#.#
#...#.#.........#...#...#.......#...#...#.#.#.#.#.#...#...#...#...#...........#...#.#.#...#.........#...#...#.....#.....#...#.#.......#.#.#.#
#.###.#.###########.#.#.#.#######.#.###.#.#.#.#.#.#.#.#.#####.#.###.###########.###.#.#.#.#################.#.#####.#######.#.#.#####.#.#.#.#
#.#...#.......#...#.#.#...#.......#.#...#.#.#.#.#...#.#...#...#...#.....#.....#.###.#...#.................#.#.....#.#...#...#.#.....#...#.#.#
#.#.#########.#.#.#.#.#####.#######.#.###.#.#.#.#####.###.#.#####.#####.#.###.#.###.#####################.#.#####.#.#.#.#.###.#####.#####.#.#
#.#.#...###...#.#.#.#...#...#.......#.###.#.#.#.#.....#...#.#...#.#.....#.#...#...#.....#.....#...#.....#.#.#.....#...#...#...#.....#...#.#.#
#.#.#.#.###.###.#.#.###.#.###.#######.###.#.#.#.#.#####.###.#.#.#.#.#####.#.#####.#####.#.###.#.#.#.###.#.#.#.#############.###.#####.#.#.#.#
#.#.#.#.....#...#...###...###.....#...#...#.#...#...#...###...#...#.#.....#.#.....#.....#...#.#.#.#.###...#.#.............#...#.......#.#...#
#.#.#.#######.###################.#.###.###.#######.#.#############.#.#####.#.#####.#######.#.#.#.#.#######.#############.###.#########.#####
#...#.....#...#...#...#...#.......#...#...#...#.....#...........#...#.#.....#.....#...#...#.#...#.#.....###.#...#...#.....###...........#...#
#########.#.###.#.#.#.#.#.#.#########.###.###.#.###############.#.###.#.#########.###.#.#.#.#####.#####.###.#.#.#.#.#.###################.#.#
#...#.....#.###.#...#...#...#...#...#.###.....#...#...#.....#...#.....#...#.......#...#.#.#...###.....#...#...#...#.#.....................#.#
#.#.#.#####.###.#############.#.#.#.#.###########.#.#.#.###.#.###########.#.#######.###.#.###.#######.###.#########.#######################.#
#.#.#.....#...#.#...#...#...#.#.#.#.#.........#...#.#.#...#.#.#...#...#...#.......#...#.#...#.......#...#.........#.#.......#...#.....#...#.#
#.#.#####.###.#.#.#.#.#.#.#.#.#.#.#.#########.#.###.#.###.#.#.#.#.#.#.#.#########.###.#.###.#######.###.#########.#.#.#####.#.#.#.###.#.#.#.#
#.#.......#...#.#.#.#.#.#.#.#.#.#.#...#...#...#...#.#.#...#.#.#.#...#...#...#...#.#...#...#...#...#...#.#.....#...#.#...#...#.#.#...#.#.#.#.#
#.#########.###.#.#.#.#.#.#.#.#.#.###.#.#.#.#####.#.#.#.###.#.#.#########.#.#.#.#.#.#####.###.#.#.###.#.#.###.#.###.###.#.###.#.###.#.#.#.#.#
#...........###...#...#...#...#...###...#...#####...#...###...#...........#...#...#.......###...#.....#...###...###.....#.....#.....#...#...#
#############################################################################################################################################

2
data/21.ans Normal file
View File

@@ -0,0 +1,2 @@
202274
245881705840972

5
data/21.in Normal file
View File

@@ -0,0 +1,5 @@
319A
670A
349A
964A
586A

2
data/22.ans Normal file
View File

@@ -0,0 +1,2 @@
16894083306
1925

2002
data/22.in Normal file

File diff suppressed because it is too large Load Diff

2
data/23.ans Normal file
View File

@@ -0,0 +1,2 @@
1064
aq,cc,ea,gc,jo,od,pa,rg,rv,ub,ul,vr,yy

3380
data/23.in Normal file

File diff suppressed because it is too large Load Diff

2
data/24.ans Normal file
View File

@@ -0,0 +1,2 @@
51837135476040
hjf,kdh,kpp,sgj,vss,z14,z31,z35

313
data/24.in Normal file
View File

@@ -0,0 +1,313 @@
x00: 1
x01: 0
x02: 0
x03: 1
x04: 1
x05: 1
x06: 0
x07: 0
x08: 1
x09: 1
x10: 0
x11: 1
x12: 0
x13: 0
x14: 1
x15: 1
x16: 1
x17: 1
x18: 0
x19: 0
x20: 0
x21: 0
x22: 1
x23: 1
x24: 1
x25: 1
x26: 1
x27: 1
x28: 0
x29: 1
x30: 1
x31: 0
x32: 1
x33: 0
x34: 0
x35: 0
x36: 0
x37: 1
x38: 1
x39: 0
x40: 0
x41: 0
x42: 0
x43: 1
x44: 1
y00: 1
y01: 1
y02: 1
y03: 1
y04: 0
y05: 0
y06: 0
y07: 0
y08: 0
y09: 1
y10: 0
y11: 1
y12: 0
y13: 0
y14: 1
y15: 0
y16: 0
y17: 0
y18: 0
y19: 1
y20: 0
y21: 0
y22: 0
y23: 0
y24: 0
y25: 1
y26: 1
y27: 0
y28: 1
y29: 0
y30: 1
y31: 0
y32: 1
y33: 1
y34: 0
y35: 1
y36: 1
y37: 1
y38: 0
y39: 1
y40: 0
y41: 1
y42: 1
y43: 0
y44: 1
x07 AND y07 -> ncs
y24 AND x24 -> wrf
x19 XOR y19 -> tsm
x40 XOR y40 -> svt
rjf OR src -> dfv
fsf XOR fgs -> z44
mhc AND jqd -> qgn
nrr XOR sms -> kpp
y20 AND x20 -> ngc
y21 AND x21 -> hbc
sgj OR ptb -> rqf
hbc OR wdr -> gjn
tks XOR sbg -> z23
ddh AND tnm -> hgg
hsf OR bjw -> vbb
x15 XOR y15 -> vqs
x10 AND y10 -> dtm
vqs XOR vss -> z15
x29 XOR y29 -> mgd
srg OR cwb -> qtn
nmb OR mbk -> z45
dhs OR njq -> tng
jfw OR jrf -> vpd
x07 XOR y07 -> gck
tdw XOR vrk -> z03
y11 AND x11 -> ffw
x16 XOR y16 -> bth
x39 XOR y39 -> tnm
cfg AND ngh -> jrq
vpd AND mvn -> hbj
rgp XOR bth -> z16
qtn AND cjd -> vrv
x14 AND y14 -> cgt
dwh XOR hsk -> z24
tgp XOR dkh -> z13
y26 XOR x26 -> cfg
cpc XOR nbm -> z42
y42 XOR x42 -> cpc
x17 XOR y17 -> cjd
rqf XOR pqn -> z36
x27 AND y27 -> nwg
bcq AND hnk -> vjp
tks AND sbg -> wqr
wvr OR skq -> gmw
cwm AND tpv -> pqw
x41 AND y41 -> tqh
jcw AND wpk -> sbr
tgp AND dkh -> tbh
wrg XOR nwq -> z38
y32 XOR x32 -> gds
bmn OR hbj -> msb
wps XOR mtn -> z33
ncs OR pjf -> sws
wqr OR tqk -> dwh
x31 AND y31 -> pwg
y12 XOR x12 -> jcw
nrr AND sms -> z31
x38 AND y38 -> npd
y02 AND x02 -> fwt
y37 AND x37 -> rnc
fwt OR vtm -> tdw
x38 XOR y38 -> nwq
gds AND ghr -> ckd
ffw OR nfb -> wpk
ctv XOR wht -> z05
y11 XOR x11 -> cmg
y05 XOR x05 -> ctv
jhw XOR tcv -> z18
wrf OR gnt -> rmw
y01 AND x01 -> tnr
x36 XOR y36 -> pqn
gjq OR dfg -> skp
x40 AND y40 -> ptg
y39 AND x39 -> dqn
bjb OR hjf -> sbg
rrn OR rpt -> qfs
ctv AND wht -> dhs
sgs AND rsb -> ccw
rmw XOR psg -> z25
y24 XOR x24 -> hsk
bgd XOR msb -> z10
y17 AND x17 -> fvv
y22 AND x22 -> kdh
qfs AND rfv -> fgp
wds AND fps -> rhr
y18 XOR x18 -> tcv
ttd AND nhg -> tfw
bbc AND jkb -> ptb
djn OR tnr -> cpb
y35 XOR x35 -> bbc
tfw OR cgt -> z14
rgp AND bth -> srg
dwh AND hsk -> gnt
pqw OR ngc -> frt
y25 XOR x25 -> psg
y13 XOR x13 -> tgp
x30 XOR y30 -> rbw
vrv OR fvv -> jhw
skp XOR mgd -> z29
cmg XOR ntv -> z11
vjr XOR vbb -> z04
gkj XOR sws -> z08
x20 XOR y20 -> tpv
ntv AND cmg -> nfb
x32 AND y32 -> tdk
wmr AND cpb -> vtm
x19 AND y19 -> jps
jhw AND tcv -> rqv
y27 XOR x27 -> bcq
x34 AND y34 -> hdk
wqc XOR qtf -> z01
wgk OR sbr -> dkh
x43 AND y43 -> kdb
y04 XOR x04 -> vjr
rmw AND psg -> fgg
gkj AND sws -> jfw
cwm XOR tpv -> z20
cjd XOR qtn -> z17
fsf AND fgs -> nmb
wps AND mtn -> rpt
x33 XOR y33 -> mtn
bcq XOR hnk -> z27
tbh OR wwk -> nhg
twb XOR tsm -> z19
frt AND mhw -> wdr
y15 AND x15 -> pwr
rbw XOR dfv -> z30
vss AND vqs -> ctt
x28 AND y28 -> gjq
y28 XOR x28 -> dvf
bbc XOR jkb -> sgj
x43 XOR y43 -> fps
y04 AND x04 -> khw
pwg OR kpp -> ghr
x31 XOR y31 -> nrr
gmw XOR gck -> z07
frt XOR mhw -> z21
spb AND tng -> skq
svt AND hkg -> knf
gjn AND kdh -> bjb
qfs XOR rfv -> z34
cpc AND nbm -> jtt
tqh OR ccw -> nbm
jtt OR qkv -> wds
gds XOR ghr -> z32
rbw AND dfv -> qnv
msb AND bgd -> gjr
qnv OR bjd -> sms
y18 AND x18 -> pns
x41 XOR y41 -> rsb
x26 AND y26 -> srh
nvc OR npd -> ddh
dtm OR gjr -> ntv
x08 AND y08 -> jrf
y14 XOR x14 -> ttd
y06 AND x06 -> wvr
y16 AND x16 -> cwb
rnc OR qgn -> wrg
y30 AND x30 -> bjd
jqd XOR mhc -> z37
ddh XOR tnm -> z39
x12 AND y12 -> wgk
cqh OR fgg -> ngh
kdh XOR gjn -> z22
x01 XOR y01 -> wqc
khw OR djm -> wht
ctt OR pwr -> rgp
y21 XOR x21 -> mhw
vjp OR nwg -> dhh
x02 XOR y02 -> wmr
gck AND gmw -> pjf
rqv OR pns -> twb
y00 AND x00 -> qtf
y05 AND x05 -> njq
y29 AND x29 -> rjf
vrk AND tdw -> hsf
y42 AND x42 -> qkv
y10 XOR x10 -> bgd
cfg XOR ngh -> z26
tng XOR spb -> z06
y00 XOR x00 -> z00
cpb XOR wmr -> z02
ckd OR tdk -> wps
jrq OR srh -> hnk
y22 XOR x22 -> hjf
x03 AND y03 -> bjw
nhg XOR ttd -> vss
tsm AND twb -> rwg
dqn OR hgg -> hkg
y34 XOR x34 -> rfv
y35 AND x35 -> z35
x25 AND y25 -> cqh
y33 AND x33 -> rrn
wqc AND qtf -> djn
sgs XOR rsb -> z41
x08 XOR y08 -> gkj
rwg OR jps -> cwm
rqf AND pqn -> wbv
x37 XOR y37 -> mhc
dvf XOR dhh -> z28
kdb OR rhr -> fgs
knf OR ptg -> sgs
svt XOR hkg -> z40
y13 AND x13 -> wwk
y23 AND x23 -> tqk
fgp OR hdk -> jkb
jcw XOR wpk -> z12
y06 XOR x06 -> spb
x23 XOR y23 -> tks
y09 AND x09 -> bmn
wds XOR fps -> z43
dhh AND dvf -> dfg
mgd AND skp -> src
wrg AND nwq -> nvc
y03 XOR x03 -> vrk
y36 AND x36 -> kqk
vjr AND vbb -> djm
x44 XOR y44 -> fsf
x44 AND y44 -> mbk
kqk OR wbv -> jqd
vpd XOR mvn -> z09
y09 XOR x09 -> mvn

1
data/25.ans Normal file
View File

@@ -0,0 +1 @@
3395

3999
data/25.in Normal file

File diff suppressed because it is too large Load Diff