Initial commit

This commit is contained in:
Dimitri Lozeve 2024-11-12 21:43:32 +01:00
commit f242d2b0df
420 changed files with 62521 additions and 0 deletions

1
2023/README.md Normal file
View file

@ -0,0 +1 @@
# [Advent of Code 2023](https://adventofcode.com/2023)

17
2023/day01/day01.bqn Normal file
View file

@ -0,0 +1,17 @@
i•FLines"input"
# Part 1
•Show +´+´¨101ר'0'-˜()¨(('0'+10)/)¨i
# Part 2
ExtractNums{
n𝕊"": n;
n𝕊s:
digit+´
{"one": 1; "two": 2; "six": 6; 0}3s,
{"four": 4; "five": 5; "nine": 9; 0}4s,
{"three": 3; "seven": 7; "eight": 8; 0}5s,
{"1": 1; "2": 2; "3": 3; "4": 4; "5": 5; "6": 6; "7": 7; "8": 8; "9": 9; 0}1s,
((digit=0)ndigit,n) 𝕊 1s
}
•Show +´+´¨101ר()¨ExtractNums¨i

1000
2023/day01/input Normal file

File diff suppressed because it is too large Load diff

7
2023/day01/test Normal file
View file

@ -0,0 +1,7 @@
two1nine
eightwothree
abcone2threexyz
xtwone3four
4nineeightseven2
zoneight234
7pqrstsixteen

19
2023/day02/day02.bqn Normal file
View file

@ -0,0 +1,19 @@
Split•Import"../bqn-libs/strings.bqn"
i•FLines"input"
ParseGame{
grs":"Split 𝕩
gid•ParseFloat 1" "Split g
rs" "Split¨¨1¨¨","Split¨";"Split rs
rs(+´{
𝕊n"red": •ParseFloat n,0,0;
𝕊n"green": 0,•ParseFloat n,0;
𝕊n"blue": 0,0,•ParseFloat n
}¨)¨rs
gidrs
}
gsParseGame¨i
•Show +´(´¨´¨121314¨¨1¨gs)/¨gs
•Show +´×´¨´¨1¨gs

43
2023/day02/day02.py Normal file
View file

@ -0,0 +1,43 @@
with open("input") as fd:
lines = fd.readlines()
games = {}
for line in lines:
line.split(":")
game, reveals = line.split(":")
game_id = int(game.split()[1])
r = []
for reveal in reveals.split(";"):
d = {}
for color in reveal.split(","):
n, col = color.split()
d[col] = int(n)
r.append(d)
games[game_id] = r
def check_game(reveals, thresh):
for reveal in reveals:
for color in ("red", "green", "blue"):
if reveal.get(color, 0) > thresh[color]:
return False
return True
thresh = {"red": 12, "green": 13, "blue": 14}
r = 0
for game_id, reveals in games.items():
if check_game(reveals, thresh):
r += game_id
print(r)
def min_games(reveals):
return {
color: max(r.get(color, 0) for r in reveals)
for color in ("red", "green", "blue")
}
r = 0
for _, reveals in games.items():
x, y, z = min_games(reveals).values()
r += x * y * z
print(r)

57
2023/day02/day02.ts Normal file
View file

@ -0,0 +1,57 @@
// const input: string = await Bun.file("input").text();
import { readFileSync } from "node:fs";
const input: string = readFileSync("input", "utf8");
type Reveal = {
red: number;
green: number;
blue: number;
};
type Game = { id: number; reveals: Reveal[] };
function parse_reveal(reveal_str: string): Reveal {
let r = { red: 0, green: 0, blue: 0 };
reveal_str
.split(", ")
.map((s) => (r[s.split(" ")[1]] = Number(s.split(" ")[0])));
return r;
}
function parse_game(game_str: string): Game {
let [game, reveals] = game_str.split(": ");
let game_id = Number(game.split(" ")[1]);
let r = reveals.split("; ").map(parse_reveal);
return { id: game_id, reveals: r };
}
let games = input
.split("\n")
.filter((s) => s.length > 0)
.map(parse_game);
let part1 = (games: Game[]): number =>
games
.filter((g) =>
g.reveals.every((r) => r.red <= 12 && r.green <= 13 && r.blue <= 14),
)
.map((g) => g.id)
.reduce((a, b) => a + b);
let part2 = (games: Game[]): number =>
games
.map((g) =>
g.reveals.reduce(
(o, r) => ({
red: Math.max(o.red, r.red),
green: Math.max(o.green, r.green),
blue: Math.max(o.blue, r.blue),
}),
{ red: 0, green: 0, blue: 0 },
),
)
.map((r) => r.red * r.green * r.blue)
.reduce((a, b) => a + b);
console.log(part1(games));
console.log(part2(games));

100
2023/day02/input Normal file
View file

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

5
2023/day02/test Normal file
View file

@ -0,0 +1,5 @@
Game 1: 3 blue, 4 red; 1 red, 2 green, 6 blue; 2 green
Game 2: 1 blue, 2 green; 3 green, 4 blue, 1 red; 1 green, 1 blue
Game 3: 8 green, 6 blue, 20 red; 5 blue, 4 red, 13 green; 5 green, 1 red
Game 4: 1 green, 3 red, 6 blue; 3 green, 6 red; 3 green, 15 blue, 14 red
Game 5: 6 red, 1 blue, 3 green; 2 blue, 1 red, 2 green

12
2023/day03/day03.bqn Normal file
View file

@ -0,0 +1,12 @@
digits'0'+10
nminput>•FLines"input"
sympos>m(÷˜|)/¬inputdigits'.'
digpos(0)¨/ <˘¨{+`1<|+´˘+`𝕩} >m(÷˜|)/inputdigits
near{´1=´¨|¨(<˘sympos)-𝕩}¨digpos
nums•ParseFloat¨input¨digpos
•Show +´near/nums
gearpos<˘>m(÷˜|)/input='*'
nearnums{(1=´¨´¨|¨¨𝕩-¨¨digpos)/nums}¨gearpos
•Show +´×´¨(2=)¨/nearnums

140
2023/day03/input Normal file
View file

@ -0,0 +1,140 @@
.....180.........230..........................218.....189......415.......................322....507..................206..............111...
........*.602.........571-.......................*...*.............199.....$.........181.......*......980....292............................
..509.923.=....................+......835*......608.984..............-.801..922.156...*.........533.....$.......*678.......&................
...*............273..........307..........393................@..........*.......*...231..................................106.339............
.906..............*.350..........................322...938..582.372....160...................411........197.........42.................$81..
...............944.....*......473........80*..............#.....*............340.......107....*...........&..................893............
...........937........32........./..12......199.......440......32.785..........*......*.....50......198......37.....710.......$..740.691+...
....304....*...870.......*787.........@..$......462.............................264....420........#..........*........*...........*.........
...&......395...*.....545...............539..............................491.......................318.=410...10.....16.....364..188.=891...
......../.....423.337......42....430........554................614.90.......*702....*587......$................................*............
...269.267..........*......*.....*............*........%.930.....*......864......675........133...-.......707...318.908...629.776...........
.....*......884......345...979..780..917.....942.....875........826......................*......28...254..&.......*...=.....................
...270...95*...........................*....................289...................307..431..............*.....%.........................611.
.....................+.............890.970..+...........235......*...........@...............405.........817...242./991...........*.........
..............137...63....../......*.......478.255.739.....*.....584......399..367..........#....51........................403.908.175......
761....582...=.............740..143.....*.........*.........722......151......*.........-.....................23......476....*..............
....49...*............444.............537......*......791....................37...212...60.444....-728.+......*...778..*...31.....895.@534..
......*...108....942....*......463...........39.616.........40.........*...........*........*...........446...........268........*..........
..50#.625...........+..838........*.....................105*....250..409......+......425....101.914.............................876.+386....
..............116..............848..111.......14..................&..........816.......*........*..........548...........*....@.............
................./........#........*.........@...58......................181..........792....565..750...........767....%..81..525......770..
716......439.498...........942....719..................697@...............*.....&688...............*..421........&..847................&....
...*261.....*.......*.................=..........................5.....800................-......471..%......753...............880.../......
.................289.715............832........120...=............&...........*126.........258..............*.........300.......*...909.....
.676.........432................757.................309..............311...903..................422.......335..38......*.....521............
..../..742...*..............#....*.......574..198.*......852..............................751...-.....531.......&.......849.........449.....
........*....116......../.839..712............*...402......*.....865.894.........964.................../..*........288......................
......568........295.547....................471.........................*.......*........640*......457...193..599*....*.......137.......888.
..................@..........345.189...849.........181...........879.....339.730...32........734...*..............793.289....*....&....#....
........%854....*.....*976......*........*.872....*.................%.............*......167.......2......................747......814......
.454............322.........*.........930........696..28........9.....................-..................890...17*..........................
...........912.......133&...87.....*.................+.........*............412........473.....781.778.......................*801..676#.867.
.605......*.....................685.345.......545.+.............636.....665*......................*...................19..933...............
....*..678.......844.881*.................667...*.940..52...................................336/..................51...@...........927.455..
.779..............*......221................/.657.......*..@1....220*....100.....=.................320..............=.................*.....
..........991......198........419.283..................414..................@..833...........334.....&...................567..235&..........
.............=................*...=..............944........188........61.......................%.........508..130...*.....*........*205....
.............................357.........$619......*....674*.....*262..&..479...912.421%..74.........261....#..*...68.708.795....695........
....594....432........521.......................794...........636............*............*...................315........................568
...%..........*..909.....#..........................*...720........419..603*..256.........386..........150............149.-.........=.......
............492..*...172.........701...109-.176..641......&....235.$...........................915.......=..+636......*....643......515.....
484...695........857.$..../.......*...........+......2..........*.................@..383.........*.254................103......665..........
.........%..543..........20..@....113....102..........*884.............12.......685...-.........40..*......231............@.........*...219.
.918.......@................633..........*...+901.......................%.................&.........145.................109...538...653.$...
......................668...............845..............=..................611...........30.............20.....166.............$...........
............627.........&........617..................179.............776.....-................&.....823*...98&....*.................203#...
.575..........*.............338..............216.229...........-..304*...........*960..........876.................539......................
......-284.655.....188......*....=.787..../....*....$.56.+....892.............792..........................-...........37.......546.993.....
...............134..=.....945..392....*...663..639........567.......298...277........665...........702......706.........*..........*.....328
...#..502..598..-..................611................................*......*...172*........607......#.....................................
425......*....*.....%677...260*214.............#....@759...............260.935...........247*...............779......430............=...84..
......159...156.......................99.642...42.........825..+720..................&..........+27....@...@.........*........611...240.....
.............................402..798*.../..............-...*.......218..........371..491...........314.......*372....601......*............
..310.........+263.266...............................721...431.....*.........342....-.............+........211.................397......253.
......................*........60...................................83..........*..................435..........=...........................
............458@.......424........909....241......611..................109..934..476..356...571..............900..495.....57................
...125...86........356..............=........................653=..402*........*......*....&........540..........*..............126.........
......*.%.......#...*..................82.227..713*868.36...............248...698.....399..............*.......276.564.820...69.............
....458.......294..58......890*1...44...@..................-.83....783....&.................*326..246.981............#...=.....*.........549
....................................*...............*...677...@..............538*463.....493........*......63.................63..930.......
.......253.................$...916..549...974.......319.............................................451.....*.48..206..996...........*370...
...#..*...............655..15.*..............*616........................................................934....%.@.......+.../827..........
.292.699....*.....94...........782......492...............21*........+....182....................818........................................
...........789................................812...759......394......870../....50*351...................690..........*.....................
...............361...141*467......923............*.$.......................................349......*....*.....780...621...619..............
....11....920..*....................*..........34..............................987.....$....*......143..448.....+...........................
..............777.83....../.616....706...115............503...........................267.....229.................645.....488..839......%...
..........411...........801.#...........*.........298.......20*.......@587...930.................*770.....................@...-........989..
.....672+.............*...........887.307.....922*.............315..............$.........878*.........261.......317.............624........
..........640......411.25...$981...................37...357..........#984..684@...............310......*...&.....*..................#.......
...........*............................/.%............%.......541.........................=.........812....67.902....956.....-.........824.
285*118.606....274.......272*956..498.825.244...754./.............*..717......./............798..........................*....841..999..=...
................../................*..............*.5............566...*....830..................286.........683/......967.........+........
...........................=....761.............458.....125&............88..........217.411/.879*................................/...418....
982......47..............167............*100..%...................%818...............*......................805&..%.....934...896.......*...
.....987.....525...................@.911.......802............120...........808.......164................./........212.*...............720..
.....*.........%..730.5*330......47....................752....*......520/..../...............964.......166.............392..................
....260...........*......................473....163.....*..875..........................760..................532.............*.....&827.....
...............211.......*........&..299..&..%....%.80.30........560.............326...........834*148..411......572......304.716...........
628........+.......119..7.854....936..*......128...........38.=....*.....281......&...............................*...................753...
....109..116......*..................98................269.=...327..910.....*823............773.....+..%237........411.....*803...175*......
.....*............727.............................................................109....*.....$.897....................................779.
...406.................#3.......%......454....109.........823.........................877.774.........298....+..........@..678..............
............962............*.428........*....................*.........752..............................$.380.........687../.........963*649
......323...*.....+286..914........834....893..124...494......785.......*.....806.................179.............85........................
.......&...778./...................*.......*......*..%....866............500..&...327....970..........821.................+.863.......-663..
..829..........626............569...164....197.401.......*..................................*.....784.../..224......117.22..*.....24........
.....*.994..............................................609.&467............870..............811...............$....*.......386.............
..207..*........816....................#..141......587...........*......218...+......536=......................337..927..85......194....802.
......846......%.....+...............336......................846.398.....*..........................144.................*.........*....+...
.160..............258......517...943...........128......33..............151..272.......124../...427....*............648.451....242..498.....
......779.879................*.....*...%.........*........@...................*.........../.969....*..143............*............*.........
.........*....354.417.......112.......409.........681........=....117.......241.$....#..........240........698.508.32....958*339.356........
..915...........*........$...................194........48....600..*.............326.590.....................*..............................
.....*250..781.503.....94........+877........*......88.....69.......693....757........................61..362......@...871.@................
..........................................349..405....*539.#....855.......*............+902.......898.*...........121...=..541......959.....
......541....712...927&.*370...339...............&..............*.......297........................+..571.881.......................*...260.
.....*....#...........................392...........884.935..710............=......%./........................332.944.............575..*....
..246....99............316..970...71..$.......606.......@........339...#..#..181.343.693.........542...729=........*..................357...
...............781....&.......#.....*.........../.................#..172.761......................*................360...93&................
251.............*..................980....368-...............977@.................489............729....537..........................41.....
.................235.....631........................+....=...................818.........755............/..................$855.....*.......
.............*...................250....708.623..380...890...........51..........598........*..............557..........*.......1.656....360
..749.........368.............@....+......*......................660....862.866$...@./634.757..745........*.......209....652............*...
.......379..#...............577........835.............312*913.....*......*.......................*......872..747........................168
........#....346.329.........................852.=9..............%.....972...-...............604..198.67...........711.............247@.....
..................*....&.........@5.....*....../........*467......839......159........&..941............-..........*........................
....195.......711...509.....298@.......633.......936..=........*......990......903..833.*.....................&...72....=.....614...........
613....*.....*......................................*..236..594.......&..................851.............760.850.........980........*980....
......9.....130......549...549...................895.......................=....................840.....@........................989........
....................*..................750...842.....27.804..@............950.....682.....586../.............166..481.......461.............
.......881.....189..954.....513...45..@......*...........*...279...438.............*.........+...........740....&...+........*..............
.568......@.............153...=...............690.......174.........../.............122..............867.=............451.906........324....
...............&........*...&..........730........987.......................%.......................@.........*190...*...........672....%...
................109...183..493.841@.......*...984*.......................857....39....635*653..519.........144.......896.$.......*...$......
.........990...........................340..............+134...741...*...........%................=.....74................498....145..485...
.../227....*.-.............990.............963.891..............=..553.....348.............965*.....$..*................#...................
........641...100..*.............866.........$..*.......451*531.........-...*...185............762...4..178..690%........481.$....589..@216.
....................65.164*697......*977.......96.......................184.514....*591......................................506....*.......
...........334..................773.................226..253.511............................761..........607.....*532....909.....415........
..548..668....*843.....23.824%..*....71.....411......../..*....#......656....................@.......=...*....452.......*..............+....
.........@.=....................719.....804.*............653......................698....296.........613.29............749...........197....
..705-......214....428#....633@...........*...................642....%986............*....*................................779...484........
...................................228..........605...%237......*..................666..906.................296........736..%.....*.........
.............593%.38...........129.*...............*...........474.....487.269@....................681.862....*.......@........517..........
........539.......&..781.......*............895.876..336*794...........*............................*....*....621....................145....
...815...*............$....484.54............*..........................953....564.......246.513...601...488......................&.........
...*......776................&............840.....................974.............*471......*...................250....*....106#.548........
437..............@.............#979............752%.798......97....#......*726.....................990*155.778.....*.78.....................
................358.+706.....................*......*..................621..................&................-...757...................456..
.....132....................44.....368....637.......209..............................464.242.......376..................492....=439.....#...
......%...592........48*....-.....+......................897.799..108*...........432...&..............*472.261............@.................
.........*.....$487.....471............236...944=..407......*.........337.........-...........................................270.....265...
....$.....988...........................*...........*.....................713..................910..680..297*549......518.....&...727*......
.....267.......634......202....../.....726.285..76...408..864.....377.....&................*..*........*.........289.*.....-................
..............*..........*......782..........................@......*................460.172..768.......934......=....119.921..........$....
........315.850......850.3..........322..439.....................784...........612.....*............................+.........310.813...819.
.........*.............+.............*....*....457.......371.829.....215.......*......117...757...727$.....538......561.730..*..............
......231......%....................604.725......*.=710.=.............*....974.329..............*.........*....747..........600.............
..............688...869.........15............222.....................366....................120.10....539........................934.97....

10
2023/day03/test Normal file
View file

@ -0,0 +1,10 @@
467..114..
...*......
..35..633.
......#...
617*......
.....+.58.
..592.....
......755.
...$.*....
.664.598..

11
2023/day04/day04.bqn Normal file
View file

@ -0,0 +1,11 @@
Split•Import"../bqn-libs/strings.bqn"
ParseCard{•ParseFloat¨¨ (0<)¨/¨ " "Split¨ " | "Split ": "Split 𝕩}
ncardsParseCard¨•FLines"input"
MatchingNums(/)´
Score2¯1+MatchingNums
•Show +´Score¨cards
copiesnMatchingNums¨cards
•Show +´´ (0¨1+n)¨ {(1𝕨)+𝕩×𝕨}` (1+n)¨ 1¨copies

201
2023/day04/input Normal file
View file

@ -0,0 +1,201 @@
Card 1: 30 48 49 69 1 86 94 68 12 85 | 86 57 89 8 81 85 82 68 1 22 90 2 74 12 30 45 69 92 62 4 94 48 47 64 49
Card 2: 57 32 92 73 76 62 11 19 61 90 | 19 82 53 87 57 80 69 76 90 56 11 61 30 92 73 99 4 32 33 64 34 62 27 78 65
Card 3: 6 56 40 1 47 26 25 87 4 2 | 12 26 32 25 8 4 41 54 69 99 2 45 70 6 59 23 47 7 49 17 1 56 92 87 40
Card 4: 26 49 44 82 25 43 47 74 97 13 | 76 62 13 82 55 26 93 84 83 19 47 22 49 44 25 43 7 18 9 45 97 15 90 85 74
Card 5: 88 58 96 80 56 16 55 13 3 40 | 20 57 23 71 76 43 36 72 52 18 60 28 80 84 64 75 93 46 19 69 25 31 58 45 47
Card 6: 89 88 34 62 60 41 15 42 57 58 | 58 49 82 42 70 78 72 57 77 47 62 89 30 60 96 98 54 66 25 14 6 34 15 41 88
Card 7: 97 73 29 26 91 16 66 64 70 23 | 3 12 61 11 70 59 71 1 26 44 14 64 63 93 20 17 89 16 43 96 52 92 46 97 85
Card 8: 9 33 46 87 34 97 71 30 5 43 | 21 64 8 43 77 9 20 46 10 19 53 33 71 56 39 87 34 50 72 91 30 89 13 5 97
Card 9: 72 41 12 58 8 56 11 82 22 66 | 27 97 48 14 77 37 33 91 85 39 75 42 58 2 52 9 70 45 72 62 5 21 23 60 99
Card 10: 3 46 56 2 58 4 92 80 86 52 | 15 56 91 57 61 8 87 34 51 3 23 41 96 45 48 49 43 25 26 9 58 50 52 38 12
Card 11: 76 94 4 55 97 8 22 99 80 70 | 64 75 23 49 42 1 66 54 85 29 28 94 22 93 4 69 72 62 41 2 86 83 97 34 82
Card 12: 65 91 7 24 80 20 46 29 58 57 | 51 59 52 63 28 44 62 35 46 49 24 14 58 91 65 78 84 20 43 32 23 15 29 13 22
Card 13: 98 94 55 43 83 72 19 46 45 22 | 55 67 59 91 46 37 24 52 98 4 72 22 44 94 88 43 27 7 75 13 45 82 15 65 19
Card 14: 92 51 81 6 5 91 73 9 80 94 | 56 72 71 32 92 98 15 2 10 91 62 1 51 74 69 89 33 96 39 97 21 86 65 52 83
Card 15: 84 40 87 91 3 61 20 73 2 37 | 77 3 37 81 20 9 51 2 87 73 53 66 26 36 69 99 83 96 88 5 91 18 40 57 80
Card 16: 97 63 52 67 86 87 91 25 69 43 | 68 67 75 3 85 10 88 99 52 43 95 92 80 87 11 13 96 58 1 17 74 20 36 93 77
Card 17: 28 90 77 78 52 7 94 13 6 88 | 11 69 49 56 59 14 7 24 53 21 67 2 17 8 47 66 48 30 79 43 86 64 46 28 23
Card 18: 50 22 25 69 54 4 37 14 49 75 | 82 84 78 88 87 15 80 1 11 91 89 93 25 98 74 42 6 59 23 58 13 46 49 32 95
Card 19: 96 56 86 38 29 43 69 66 26 46 | 80 13 90 30 41 86 44 95 71 23 40 75 33 14 56 59 89 18 92 79 15 4 84 68 82
Card 20: 95 26 31 69 63 25 56 87 74 48 | 88 16 42 22 30 14 71 62 35 87 99 3 96 54 41 83 40 29 79 20 50 24 53 10 66
Card 21: 75 76 94 26 24 56 34 35 93 87 | 42 23 71 55 44 79 12 4 78 32 82 53 40 35 43 50 9 65 29 57 93 86 7 67 19
Card 22: 53 58 25 33 42 98 94 95 97 22 | 44 91 40 1 88 31 61 6 54 52 47 93 3 99 27 59 15 53 56 39 66 43 51 41 48
Card 23: 34 95 33 45 56 37 30 94 76 67 | 9 1 72 68 51 66 36 24 21 92 35 50 62 86 90 49 82 46 15 4 70 40 75 64 73
Card 24: 73 93 49 22 86 18 31 87 3 2 | 27 42 46 97 49 31 47 25 93 74 9 60 44 87 15 63 18 2 73 89 3 62 86 65 22
Card 25: 36 24 95 21 31 7 56 93 82 17 | 82 36 23 54 66 83 95 31 65 16 17 86 7 21 61 24 55 56 13 53 59 64 96 39 32
Card 26: 16 89 92 12 40 17 3 80 20 21 | 37 72 26 9 79 55 74 2 92 59 17 35 71 94 98 31 58 3 32 51 21 88 40 96 57
Card 27: 70 19 81 48 62 26 45 86 65 41 | 63 38 71 43 50 42 25 14 18 54 66 96 29 36 95 73 20 76 16 6 58 78 56 87 91
Card 28: 61 66 57 75 52 20 41 21 24 14 | 83 51 77 14 66 91 75 3 47 20 18 65 76 52 5 11 72 57 10 36 30 92 73 28 19
Card 29: 94 39 68 79 28 70 81 97 59 48 | 46 4 41 39 38 75 18 76 45 31 79 97 91 64 71 85 63 55 8 94 67 59 36 74 49
Card 30: 90 45 15 47 1 24 99 62 69 55 | 42 5 1 37 77 71 66 57 94 18 26 47 46 27 48 80 24 95 30 15 53 90 38 99 69
Card 31: 53 16 59 23 78 95 38 17 40 7 | 86 20 7 98 44 19 73 36 40 4 58 16 94 2 83 32 6 78 57 13 35 30 87 51 5
Card 32: 64 79 78 6 24 15 44 45 82 33 | 34 18 80 94 54 59 14 23 77 25 73 81 26 62 17 45 37 82 67 24 98 78 85 43 13
Card 33: 91 97 83 95 89 32 86 94 96 19 | 93 39 57 58 41 62 1 80 33 2 24 51 27 25 6 10 78 76 63 65 38 79 61 98 90
Card 34: 41 84 69 81 95 71 7 80 65 55 | 88 17 73 3 54 66 68 8 76 84 36 79 55 47 58 91 37 53 57 46 93 71 83 42 12
Card 35: 51 67 16 48 34 86 59 74 98 65 | 14 75 23 98 48 83 11 35 18 93 68 50 85 31 40 82 27 92 55 63 64 37 76 2 33
Card 36: 26 80 18 67 87 93 79 1 59 61 | 83 51 97 34 70 90 49 44 39 95 92 38 55 9 65 96 94 82 61 1 20 46 50 63 6
Card 37: 71 13 91 66 24 3 1 41 27 75 | 12 38 45 5 80 11 8 59 90 64 85 49 52 56 35 96 7 20 53 39 44 22 76 57 66
Card 38: 21 56 2 42 51 28 37 38 95 12 | 3 84 55 81 91 6 90 14 68 93 64 33 78 7 4 60 18 54 11 29 26 19 75 72 52
Card 39: 1 40 97 60 90 47 74 41 7 58 | 43 8 47 72 7 78 41 96 5 37 98 97 58 89 23 65 74 1 92 90 28 16 60 40 67
Card 40: 75 99 14 36 64 42 30 8 52 97 | 64 89 36 80 99 30 57 40 35 75 53 97 52 38 68 1 74 42 14 60 49 79 8 72 20
Card 41: 26 38 87 47 39 62 56 2 49 51 | 25 45 87 63 24 2 39 51 54 56 70 62 77 57 68 49 31 34 26 72 42 38 47 94 29
Card 42: 26 69 10 47 89 27 43 62 97 50 | 62 79 50 69 2 97 68 87 27 5 67 18 64 26 10 25 91 4 7 43 70 14 1 54 89
Card 43: 92 16 95 21 15 77 27 88 76 63 | 92 77 78 1 58 96 8 31 63 16 14 2 54 88 15 52 73 76 21 27 84 71 25 95 72
Card 44: 27 31 64 16 96 95 74 57 59 53 | 75 20 48 11 18 44 3 45 79 98 12 54 30 60 32 15 13 72 21 87 85 52 70 33 35
Card 45: 62 31 89 91 85 83 93 11 26 23 | 53 55 71 62 14 65 8 21 96 57 17 91 51 82 86 47 64 80 3 69 56 90 85 32 70
Card 46: 52 67 93 77 39 13 55 63 68 78 | 19 96 76 50 11 61 72 81 64 10 84 22 83 37 3 58 80 48 57 18 59 62 92 4 9
Card 47: 31 14 25 56 83 48 53 64 39 77 | 48 34 27 16 5 55 77 42 17 6 24 49 37 92 51 8 97 52 41 11 31 80 47 87 38
Card 48: 69 65 89 40 1 31 64 50 48 38 | 44 75 74 58 13 56 50 80 22 89 47 95 8 53 31 38 48 64 72 39 1 52 43 17 65
Card 49: 30 49 86 87 78 96 73 44 21 90 | 14 39 75 49 96 63 56 73 64 81 93 98 99 1 13 65 54 88 61 83 44 30 45 15 67
Card 50: 61 79 65 67 77 58 21 37 90 48 | 81 79 62 51 21 85 61 90 92 47 29 23 80 7 98 40 59 87 18 77 48 6 99 88 1
Card 51: 9 45 35 38 92 47 27 61 91 67 | 75 86 50 74 41 92 59 71 52 91 97 73 96 4 19 87 69 76 98 21 90 37 32 14 77
Card 52: 82 80 79 33 18 70 52 73 38 39 | 21 82 95 25 66 89 75 85 84 39 47 28 49 45 79 17 56 10 29 52 44 77 70 32 65
Card 53: 2 47 76 33 17 62 13 70 9 31 | 84 2 31 47 13 97 4 3 33 21 17 8 62 10 19 78 41 70 43 98 79 59 95 29 99
Card 54: 50 10 89 77 41 82 43 84 30 7 | 28 49 35 76 9 23 65 71 60 36 32 15 3 61 95 10 24 77 17 97 48 62 88 51 68
Card 55: 98 86 8 43 54 59 11 7 63 42 | 24 98 1 58 51 68 2 56 8 54 29 25 66 17 59 86 30 48 43 60 5 55 18 44 28
Card 56: 88 38 8 43 91 12 69 45 71 20 | 11 34 1 95 77 19 39 40 33 5 80 51 75 94 84 23 82 8 86 62 74 89 96 22 66
Card 57: 95 38 81 99 57 68 60 55 39 18 | 34 38 45 7 63 12 97 35 44 17 57 58 92 41 89 30 39 47 66 10 82 52 68 55 98
Card 58: 34 72 18 15 20 1 28 89 7 35 | 14 22 61 36 84 26 55 62 32 53 44 51 46 17 6 54 85 35 95 40 10 92 42 19 83
Card 59: 58 43 86 3 73 17 24 49 29 5 | 87 93 56 60 35 48 86 8 7 16 67 89 73 43 69 31 88 23 50 59 45 84 61 26 65
Card 60: 4 74 59 28 17 23 67 48 82 20 | 76 91 88 47 84 2 14 61 56 11 58 34 24 99 75 66 33 96 92 94 64 73 72 45 7
Card 61: 24 40 2 95 58 17 28 43 4 8 | 97 77 49 15 51 41 70 80 6 74 11 68 38 5 8 64 81 30 89 72 63 52 39 7 82
Card 62: 79 22 90 64 37 95 4 87 30 38 | 73 25 91 13 83 45 77 53 88 63 43 92 78 34 32 58 24 40 50 61 55 41 2 67 14
Card 63: 70 13 43 35 58 84 44 51 65 73 | 43 3 48 51 69 70 31 98 19 15 91 61 55 39 41 58 44 65 35 13 25 73 9 50 56
Card 64: 85 64 44 45 31 95 3 16 19 74 | 53 13 9 89 83 58 47 90 77 59 98 99 74 91 52 15 61 80 75 88 54 23 24 8 29
Card 65: 70 33 34 72 80 56 7 95 71 32 | 16 32 56 34 73 31 45 29 71 33 98 72 97 19 39 94 91 90 70 75 40 7 95 80 96
Card 66: 29 30 35 39 52 17 25 1 62 79 | 83 2 69 13 36 76 59 50 90 64 30 37 48 75 95 25 26 60 7 29 86 42 8 22 11
Card 67: 51 59 72 52 60 74 20 68 90 40 | 51 34 8 2 67 46 47 10 9 43 61 56 28 74 73 60 81 25 87 4 17 84 65 42 32
Card 68: 36 3 98 39 7 74 66 85 81 14 | 7 78 14 74 85 97 55 62 66 98 28 94 39 81 42 6 24 36 60 50 75 87 3 9 18
Card 69: 72 99 53 87 83 54 58 32 79 26 | 54 70 5 34 1 79 26 99 90 11 77 13 98 83 15 58 40 96 91 12 32 53 87 72 43
Card 70: 72 26 89 44 9 7 14 95 46 51 | 45 44 91 3 71 77 82 56 2 6 24 20 49 75 60 22 58 80 42 68 32 54 76 29 79
Card 71: 56 75 58 97 4 95 16 23 7 71 | 63 96 40 64 42 38 65 48 78 35 5 24 20 41 70 89 45 17 49 21 10 44 92 60 51
Card 72: 82 3 37 72 19 78 84 69 43 62 | 95 43 97 82 72 14 70 47 45 26 92 77 67 62 49 22 19 3 37 7 69 78 94 84 6
Card 73: 63 77 50 12 46 80 13 54 64 24 | 60 50 17 87 1 46 42 13 80 63 82 48 45 35 55 29 30 31 9 24 64 27 77 40 69
Card 74: 66 73 38 5 89 1 11 10 91 92 | 89 23 28 50 82 63 33 91 72 74 73 66 24 17 42 11 36 94 79 92 4 85 29 57 10
Card 75: 66 51 34 46 78 27 89 42 52 4 | 87 79 28 18 1 35 81 60 65 76 56 78 42 43 47 45 89 70 4 68 19 63 33 94 86
Card 76: 35 43 54 87 15 71 30 92 29 24 | 6 76 36 34 50 47 88 29 44 73 68 97 87 24 81 20 94 86 70 90 71 2 15 98 54
Card 77: 27 77 81 31 53 47 45 71 73 41 | 85 40 63 68 22 10 75 55 62 67 54 49 51 79 17 92 93 21 73 38 37 74 90 23 98
Card 78: 79 1 93 23 31 48 32 53 64 57 | 52 76 35 68 3 75 22 81 79 51 80 46 88 65 83 44 67 89 31 86 8 98 97 16 30
Card 79: 72 80 7 74 10 22 12 34 89 97 | 47 62 5 23 17 27 9 21 78 68 66 98 29 39 51 83 24 90 64 10 48 22 97 2 35
Card 80: 80 94 30 12 28 54 78 34 58 63 | 46 33 86 44 50 94 96 66 57 58 87 65 92 71 32 56 73 90 11 85 21 76 45 27 64
Card 81: 94 60 72 30 14 3 40 86 69 82 | 74 99 11 55 27 54 70 46 89 24 44 85 6 53 58 15 26 10 20 38 56 63 1 4 12
Card 82: 88 30 84 71 61 63 20 56 49 89 | 10 87 14 2 9 57 46 27 12 41 78 59 5 55 19 94 7 24 1 25 13 28 42 33 68
Card 83: 6 35 37 64 9 44 21 42 56 30 | 57 69 83 89 47 74 95 71 81 84 41 45 40 2 1 77 32 75 90 60 62 82 79 22 55
Card 84: 34 13 4 21 88 26 18 96 38 3 | 16 66 63 9 7 95 28 72 74 41 10 85 30 70 91 69 47 44 33 49 60 46 57 62 36
Card 85: 94 58 24 74 61 5 49 99 30 54 | 99 11 61 58 25 4 2 55 30 75 62 51 94 22 3 36 54 84 71 9 8 24 70 90 5
Card 86: 33 82 19 66 52 24 76 34 5 84 | 82 37 63 83 36 22 13 76 84 19 38 6 65 33 66 40 95 52 24 45 5 88 34 89 49
Card 87: 86 24 92 7 72 28 63 23 12 82 | 9 59 36 56 40 1 76 4 88 10 85 14 17 15 61 29 57 50 98 49 3 41 42 93 22
Card 88: 23 32 78 34 12 8 89 20 50 29 | 59 24 13 72 14 7 83 37 32 39 90 46 96 49 94 82 43 33 85 92 69 62 57 48 9
Card 89: 98 48 90 71 56 21 61 86 29 63 | 50 62 2 23 70 44 36 35 57 48 13 64 21 90 93 1 53 5 33 7 29 67 38 61 54
Card 90: 27 66 35 40 54 68 1 80 42 49 | 97 94 2 1 66 55 15 49 5 75 26 30 20 25 73 79 10 40 57 85 23 43 68 38 14
Card 91: 52 74 25 22 84 68 76 27 89 13 | 52 75 90 22 73 94 64 72 84 70 74 67 30 2 1 29 54 86 25 58 41 6 43 91 34
Card 92: 35 83 75 46 37 28 82 54 13 77 | 96 77 46 33 37 59 62 13 28 54 75 86 74 35 47 85 6 80 55 20 36 83 38 82 65
Card 93: 8 19 27 84 17 42 23 22 78 16 | 76 16 63 78 89 1 27 57 83 34 36 69 42 95 41 44 74 28 79 39 4 92 19 23 7
Card 94: 90 53 59 26 63 91 50 81 69 85 | 20 78 12 23 31 91 42 36 75 95 19 76 96 49 94 47 63 53 27 88 67 69 85 60 7
Card 95: 87 25 89 31 63 32 13 80 60 14 | 95 82 78 34 87 13 3 60 88 28 96 59 36 77 14 79 55 35 83 25 73 58 48 63 86
Card 96: 32 27 21 77 35 9 8 28 97 82 | 53 97 29 81 66 3 17 85 8 35 56 38 26 60 49 9 39 86 28 71 89 88 54 44 27
Card 97: 2 42 48 43 96 55 51 60 33 89 | 85 3 31 88 98 25 41 81 44 68 4 80 63 17 45 57 89 7 38 76 95 53 49 67 13
Card 98: 63 57 83 58 23 27 92 21 2 76 | 58 76 95 80 62 56 98 33 59 46 51 23 93 69 96 48 36 53 19 8 45 32 42 2 89
Card 99: 28 85 31 55 69 73 70 66 11 79 | 22 4 83 55 26 20 29 72 54 12 30 99 66 14 10 17 15 8 88 45 76 69 58 89 75
Card 100: 99 91 55 84 81 61 94 95 8 25 | 30 15 52 88 27 6 53 41 45 95 66 19 98 86 26 31 54 43 51 9 82 97 57 60 16
Card 101: 86 47 76 89 85 1 34 35 53 51 | 81 13 69 14 79 68 37 39 63 59 50 15 56 99 92 80 36 43 18 77 65 19 45 91 8
Card 102: 98 27 49 51 14 77 6 41 97 64 | 60 76 3 79 48 42 29 37 10 24 74 62 11 17 95 73 56 85 28 38 90 63 84 30 94
Card 103: 75 45 64 88 40 69 96 66 52 28 | 28 12 88 45 60 64 16 96 41 17 82 97 24 75 54 67 92 14 40 85 93 52 31 37 66
Card 104: 36 69 82 51 81 42 92 95 62 73 | 13 5 65 87 70 36 95 99 9 62 24 55 31 42 51 82 7 34 69 92 14 18 79 81 73
Card 105: 87 81 71 62 3 41 17 86 88 5 | 98 31 80 39 25 35 47 42 95 14 91 83 65 12 87 96 88 58 5 19 56 1 97 62 48
Card 106: 31 55 80 86 7 20 37 2 89 4 | 70 20 92 62 38 86 7 93 79 6 48 37 19 21 89 47 25 78 43 46 54 69 63 8 80
Card 107: 99 85 5 37 34 95 11 12 51 96 | 69 64 67 53 15 81 89 3 2 54 49 98 71 72 1 76 91 8 17 51 23 83 21 86 92
Card 108: 95 57 98 30 3 83 6 64 52 18 | 59 88 91 78 61 30 52 98 65 68 25 17 13 3 64 89 57 37 83 6 95 36 97 20 18
Card 109: 97 99 89 96 69 84 62 66 61 83 | 9 31 22 49 96 84 17 61 15 99 39 89 26 4 92 32 97 21 62 56 66 82 69 83 13
Card 110: 61 93 64 41 91 76 74 21 56 5 | 51 65 17 29 19 45 70 87 40 10 62 20 89 85 53 36 42 37 50 2 74 56 64 46 48
Card 111: 8 85 35 16 52 31 94 10 29 82 | 70 60 11 6 31 58 10 52 43 35 16 30 94 62 1 29 74 9 4 90 7 59 40 20 85
Card 112: 96 15 95 19 76 41 77 62 46 89 | 61 35 99 56 60 82 17 16 47 4 67 20 91 79 78 97 40 7 13 43 87 74 34 31 84
Card 113: 28 83 44 97 18 22 96 49 17 98 | 86 88 11 92 5 54 90 51 38 52 36 13 64 81 45 63 85 15 47 40 18 50 67 39 73
Card 114: 89 28 69 44 47 58 20 60 25 92 | 97 61 98 4 37 30 68 96 86 6 50 34 71 53 78 57 10 36 35 40 67 33 93 17 75
Card 115: 20 49 40 31 8 55 28 79 99 22 | 95 87 21 14 62 17 70 81 83 54 96 39 18 35 44 61 23 30 80 89 42 50 7 58 47
Card 116: 3 75 52 97 60 24 50 13 54 71 | 17 21 1 98 8 79 59 88 97 53 82 28 34 45 93 69 13 85 38 26 7 37 43 5 22
Card 117: 44 70 59 87 64 20 17 19 68 71 | 6 46 47 79 35 74 78 26 19 99 20 80 31 1 68 3 12 39 59 62 94 25 91 92 88
Card 118: 65 74 73 48 97 21 1 43 57 29 | 73 25 58 67 56 41 19 20 1 12 99 48 47 96 68 50 88 49 80 10 39 75 11 82 79
Card 119: 68 40 2 54 25 75 77 14 50 86 | 27 69 39 90 81 15 17 54 63 51 87 52 37 22 7 38 11 8 24 96 42 60 6 99 4
Card 120: 43 63 34 38 57 39 23 29 16 41 | 90 93 1 72 9 80 94 73 28 65 87 25 78 33 98 66 52 2 36 30 92 54 47 24 12
Card 121: 92 44 29 97 22 41 73 16 31 65 | 20 51 50 43 30 27 39 40 88 14 57 77 62 90 18 87 26 54 95 48 34 10 93 47 9
Card 122: 61 12 44 52 4 69 42 1 77 54 | 24 23 11 39 78 52 12 69 73 42 47 43 4 29 37 1 36 77 19 61 95 54 94 44 28
Card 123: 17 44 12 66 30 19 96 54 34 75 | 24 17 42 90 14 92 84 35 71 12 34 32 99 19 30 98 66 70 54 44 56 96 77 36 75
Card 124: 99 74 53 87 15 93 58 96 24 44 | 15 58 96 29 49 50 87 93 86 53 12 51 24 44 60 74 19 8 67 99 76 72 45 80 81
Card 125: 28 95 5 13 21 49 70 33 48 7 | 61 57 3 65 89 13 7 70 1 95 84 33 46 21 28 79 5 9 19 48 4 76 82 86 49
Card 126: 1 83 21 50 35 3 55 84 38 81 | 61 80 30 26 83 84 38 92 73 21 42 14 1 6 81 15 50 57 55 56 35 63 67 3 93
Card 127: 37 8 99 82 24 6 62 63 94 29 | 62 8 83 82 24 87 46 55 78 91 31 23 29 16 99 63 54 9 68 48 94 5 37 6 40
Card 128: 18 47 91 78 74 63 49 42 85 10 | 4 10 82 20 97 3 71 74 62 95 60 9 28 73 47 32 14 18 49 7 83 92 85 53 78
Card 129: 19 9 11 30 91 83 99 93 46 22 | 38 33 91 85 57 31 15 99 97 54 17 50 71 8 6 29 59 36 75 81 82 67 44 65 25
Card 130: 62 13 98 39 78 28 63 38 41 6 | 51 99 1 98 81 40 39 63 62 52 25 47 55 13 34 41 38 18 14 73 97 28 6 48 78
Card 131: 9 69 43 61 65 35 4 59 71 96 | 17 4 65 29 19 48 7 32 69 61 23 15 1 37 9 80 59 47 64 41 35 79 71 43 96
Card 132: 40 62 73 49 19 51 30 95 92 55 | 77 79 31 51 92 41 49 27 13 40 99 52 68 98 32 26 29 20 60 25 65 72 11 70 19
Card 133: 7 73 1 68 16 40 10 37 78 91 | 39 9 33 97 98 13 35 38 72 75 82 37 27 32 93 48 87 50 94 5 95 67 46 24 54
Card 134: 43 78 49 90 73 7 38 95 12 4 | 10 79 30 12 25 39 32 68 95 78 45 40 73 37 70 49 41 46 91 42 23 18 76 15 90
Card 135: 83 66 13 30 47 75 52 69 17 48 | 76 6 7 1 12 64 89 62 52 59 83 97 33 28 66 20 72 13 84 65 56 73 53 92 30
Card 136: 63 90 52 1 43 85 83 22 47 57 | 17 44 77 36 79 20 1 65 29 50 6 81 78 76 70 97 90 68 67 34 31 82 88 2 25
Card 137: 77 25 91 14 87 80 8 90 27 57 | 91 63 29 60 71 57 98 14 52 77 39 96 85 50 76 10 8 27 32 4 23 3 17 62 24
Card 138: 33 17 89 10 85 90 79 72 13 53 | 30 45 81 89 47 57 32 80 1 82 84 97 16 90 66 4 75 94 29 54 9 78 3 8 93
Card 139: 57 99 35 94 5 11 86 67 34 96 | 1 79 54 17 20 82 26 32 7 77 44 51 18 3 76 64 9 72 35 83 37 5 60 66 22
Card 140: 6 9 44 98 64 92 30 14 62 4 | 43 49 9 79 42 27 20 69 36 24 47 19 14 38 98 54 77 73 41 56 4 15 86 10 44
Card 141: 28 99 14 96 19 92 12 23 17 22 | 64 19 85 70 80 16 63 96 2 3 61 67 41 9 74 12 37 30 86 36 26 92 94 66 71
Card 142: 28 2 68 35 71 10 98 57 79 14 | 44 78 23 24 59 49 21 47 75 6 60 40 22 15 46 41 71 53 87 90 32 52 35 72 37
Card 143: 8 10 60 94 66 51 36 29 56 69 | 71 69 2 9 12 55 1 53 91 84 22 83 77 6 18 57 10 24 44 72 79 73 95 62 99
Card 144: 21 12 42 22 50 10 88 18 19 9 | 25 72 96 47 60 85 23 10 7 3 26 81 59 80 38 91 5 70 95 97 53 33 67 74 92
Card 145: 53 5 14 26 75 35 21 39 30 43 | 13 18 6 46 69 76 78 67 81 68 36 83 91 97 32 40 23 92 29 28 42 51 71 20 37
Card 146: 18 66 74 11 31 91 15 55 95 87 | 54 74 55 18 89 28 95 72 62 38 15 92 91 31 44 9 81 87 88 66 24 23 71 16 11
Card 147: 7 21 81 38 56 2 55 50 60 83 | 15 9 91 69 44 92 54 99 72 43 59 78 25 79 32 51 64 20 62 24 75 38 29 16 97
Card 148: 46 52 47 60 29 9 67 22 10 23 | 92 82 54 91 74 55 1 73 26 61 64 90 28 2 72 40 27 32 51 20 89 31 75 97 99
Card 149: 27 58 78 77 96 68 54 89 31 86 | 48 42 86 8 21 20 60 76 72 37 2 75 33 67 57 28 41 78 1 49 95 87 38 94 62
Card 150: 38 19 90 28 21 59 10 7 66 80 | 68 60 40 3 50 55 6 65 64 59 47 20 56 70 14 29 26 4 22 74 17 69 46 75 87
Card 151: 93 89 25 22 91 70 10 78 84 50 | 21 35 78 58 30 71 11 70 99 84 97 87 57 67 15 9 20 91 79 50 26 74 47 56 12
Card 152: 68 34 95 27 26 87 56 85 92 78 | 58 33 87 81 64 95 27 48 85 72 6 62 65 50 39 96 37 92 28 80 60 1 83 31 74
Card 153: 34 11 38 50 57 78 52 73 7 4 | 56 78 9 11 32 92 26 86 40 27 24 91 18 13 4 77 37 61 25 58 60 8 30 16 80
Card 154: 40 88 81 92 6 33 60 25 98 37 | 77 28 68 92 73 41 81 24 40 67 11 44 17 91 82 39 69 8 57 62 29 76 99 47 79
Card 155: 15 95 17 21 76 78 69 54 1 40 | 68 17 89 96 23 49 20 53 47 93 37 55 10 69 21 4 3 6 75 65 95 79 67 30 91
Card 156: 82 50 7 62 47 55 85 26 41 17 | 71 94 8 43 83 90 76 20 66 21 35 85 61 53 18 37 16 14 99 46 62 47 64 57 33
Card 157: 24 85 5 76 32 43 58 27 28 78 | 50 36 66 65 1 2 87 75 96 18 53 39 3 48 23 97 63 90 4 62 42 93 47 54 60
Card 158: 92 31 19 15 16 21 50 20 17 59 | 56 32 60 65 42 46 3 82 89 96 28 41 45 51 23 17 40 95 62 93 61 70 35 2 67
Card 159: 72 26 19 38 65 12 97 76 7 34 | 4 1 45 39 60 32 22 5 28 98 43 66 2 9 21 10 15 67 78 27 90 17 68 31 35
Card 160: 60 24 21 33 74 59 10 82 22 87 | 26 96 29 12 55 38 71 76 25 68 78 6 50 13 51 99 65 17 98 42 73 54 44 37 9
Card 161: 82 9 94 58 56 85 45 17 21 32 | 91 1 55 63 21 94 32 22 15 17 34 85 26 9 46 7 8 5 48 82 93 60 28 56 45
Card 162: 28 45 14 62 60 73 92 49 11 95 | 73 44 28 42 22 98 80 86 74 51 14 18 62 8 92 96 45 13 65 49 95 39 60 11 85
Card 163: 67 45 89 16 36 9 92 91 78 43 | 75 34 52 90 85 77 27 1 83 93 32 99 69 2 79 94 80 11 35 64 39 72 17 70 13
Card 164: 95 30 90 87 96 81 16 91 66 13 | 97 12 72 54 67 3 61 27 62 68 19 7 65 50 35 39 73 53 18 94 59 4 71 64 83
Card 165: 56 77 8 11 88 80 65 9 78 48 | 10 26 24 21 39 5 32 80 79 48 58 9 16 69 8 30 97 53 20 78 6 56 2 88 43
Card 166: 21 57 49 50 24 79 44 7 84 40 | 50 16 11 93 36 66 46 24 59 35 99 21 5 56 89 57 92 41 82 37 40 12 79 20 44
Card 167: 23 2 68 93 19 28 11 22 7 27 | 11 85 94 28 22 68 2 65 21 78 92 27 93 74 38 57 83 80 7 23 19 77 90 59 84
Card 168: 93 39 75 95 97 10 83 35 66 62 | 7 79 76 91 39 83 75 93 56 89 37 10 15 72 35 84 14 26 97 71 57 95 62 66 44
Card 169: 95 68 15 39 27 24 62 86 71 78 | 24 27 81 70 7 48 43 86 52 88 62 58 19 68 31 8 71 80 39 78 64 95 35 15 6
Card 170: 63 4 96 68 10 3 37 44 70 78 | 13 58 97 36 57 68 78 8 79 96 70 1 64 14 63 51 99 37 41 49 7 3 72 4 71
Card 171: 67 36 24 10 7 11 65 28 3 83 | 87 66 58 53 21 39 40 12 1 94 61 89 22 50 84 78 72 64 92 34 71 90 11 16 15
Card 172: 30 72 95 64 5 51 61 6 39 94 | 31 37 30 71 91 75 10 74 81 36 14 19 73 42 82 97 6 47 51 64 72 45 53 80 60
Card 173: 64 71 93 39 91 57 82 95 60 67 | 34 97 89 36 71 78 76 7 8 33 50 68 19 73 60 91 39 82 46 67 57 35 27 10 63
Card 174: 70 68 35 62 73 42 26 3 86 51 | 3 10 69 84 60 58 27 44 41 9 22 49 89 54 86 70 1 50 83 42 37 74 85 78 71
Card 175: 5 82 68 57 10 32 70 72 23 45 | 10 73 36 50 23 83 29 57 34 30 61 70 59 69 45 53 12 75 86 63 6 84 64 14 97
Card 176: 35 27 24 75 70 12 29 78 17 91 | 64 57 75 5 81 79 98 99 65 18 87 66 68 12 19 74 55 80 50 10 78 56 36 61 41
Card 177: 82 4 32 70 79 1 29 38 87 67 | 63 15 49 46 19 8 38 69 83 75 66 87 68 95 81 54 34 82 4 64 41 73 88 11 47
Card 178: 27 6 50 58 37 87 96 56 25 85 | 96 27 64 60 15 54 12 47 30 5 78 61 90 37 40 93 87 23 53 85 70 34 16 50 63
Card 179: 16 29 86 94 32 82 80 71 20 38 | 52 7 9 73 14 51 27 55 99 23 80 20 49 15 6 91 47 58 26 98 63 18 77 85 94
Card 180: 87 33 35 88 32 23 13 4 52 92 | 45 78 30 19 54 17 56 31 88 86 18 69 16 12 96 82 60 13 62 81 67 46 72 80 4
Card 181: 7 76 43 75 70 83 39 17 92 64 | 44 91 51 57 26 90 31 63 12 70 45 38 6 35 23 17 27 79 20 59 9 66 96 62 37
Card 182: 42 10 44 12 46 55 60 83 94 18 | 21 78 38 96 64 92 11 48 98 30 63 1 75 58 31 29 67 79 43 91 34 25 39 99 6
Card 183: 47 21 74 24 75 48 38 33 61 39 | 15 2 21 20 95 93 54 32 77 89 81 8 16 23 30 14 58 94 35 37 50 11 83 86 4
Card 184: 68 41 47 24 74 25 38 12 6 58 | 46 48 20 31 37 40 59 5 73 52 21 7 57 55 86 17 49 80 10 22 81 4 13 91 26
Card 185: 76 26 24 14 90 54 75 51 13 42 | 14 30 57 20 73 56 86 42 89 74 97 37 64 51 47 24 60 83 22 87 76 90 13 61 40
Card 186: 2 63 80 91 41 12 85 88 34 30 | 81 29 19 64 52 36 41 18 42 54 44 43 40 63 76 23 98 4 65 38 24 30 62 99 87
Card 187: 49 77 68 73 76 60 15 92 34 39 | 32 23 47 26 40 41 43 92 84 73 94 60 24 30 45 7 14 80 76 10 5 9 34 11 50
Card 188: 11 96 50 5 37 58 42 81 79 3 | 29 78 77 30 92 89 18 88 15 95 91 40 60 14 8 62 28 90 33 32 98 63 21 36 46
Card 189: 78 8 49 19 1 67 44 52 54 46 | 29 64 10 55 8 78 36 67 32 91 97 80 49 1 44 83 58 46 69 34 35 94 2 14 86
Card 190: 4 86 43 89 60 80 18 67 11 87 | 19 13 60 4 6 18 11 56 89 26 43 65 85 41 22 86 87 91 71 28 67 80 2 74 47
Card 191: 93 9 61 81 20 51 42 14 74 83 | 68 82 91 74 80 61 44 96 18 11 9 14 39 84 20 47 17 93 42 52 99 21 51 77 76
Card 192: 41 83 44 12 68 56 79 70 55 34 | 90 4 34 20 51 83 74 32 49 41 86 36 66 42 29 85 37 33 1 24 10 97 40 27 12
Card 193: 63 32 91 93 31 2 42 29 30 5 | 46 56 12 16 61 41 81 20 31 89 62 93 5 58 6 73 66 55 74 29 83 88 52 47 27
Card 194: 34 54 16 3 62 6 67 40 57 53 | 91 63 31 59 52 56 6 33 84 55 3 72 40 14 54 35 43 67 97 64 53 44 28 37 81
Card 195: 1 18 74 57 38 11 64 30 9 54 | 82 35 66 40 29 45 14 37 19 85 54 63 99 89 5 22 71 94 11 70 39 16 42 51 8
Card 196: 95 44 35 80 30 64 82 60 75 47 | 88 45 15 26 90 34 93 85 43 66 77 11 17 65 39 33 56 23 3 20 35 5 44 47 36
Card 197: 53 10 14 12 65 83 18 28 79 25 | 7 37 96 80 85 51 47 39 89 13 99 72 1 21 71 25 83 61 35 59 3 73 84 50 15
Card 198: 29 97 30 81 41 34 9 47 21 39 | 8 88 94 67 16 68 37 82 85 3 36 32 41 90 89 40 46 74 29 81 4 93 76 55 87
Card 199: 47 48 39 87 83 25 72 74 40 29 | 1 45 19 77 47 24 20 70 85 34 62 76 91 60 16 30 35 46 21 44 3 97 65 7 6
Card 200: 43 45 85 27 99 88 52 35 28 3 | 18 54 53 96 80 62 49 15 90 14 44 48 36 33 60 79 63 17 5 13 82 24 10 20 64
Card 201: 71 92 68 45 33 17 99 32 96 93 | 90 82 79 26 20 85 94 61 31 84 73 30 4 87 29 28 81 27 75 39 36 58 97 98 21

6
2023/day04/test Normal file
View file

@ -0,0 +1,6 @@
Card 1: 41 48 83 86 17 | 83 86 6 31 17 9 48 53
Card 2: 13 32 20 16 61 | 61 30 68 82 17 32 24 19
Card 3: 1 21 53 59 44 | 69 82 63 72 16 21 14 1
Card 4: 41 92 73 84 69 | 59 84 76 51 58 5 54 83
Card 5: 87 83 26 28 32 | 88 30 70 12 93 22 82 36
Card 6: 31 18 13 56 72 | 74 77 10 23 35 67 36 11

14
2023/day05/day05.bqn Normal file
View file

@ -0,0 +1,14 @@
Split•Import"../bqn-libs/strings.bqn"
input(@+1010)Split•FChars"input"
seeds•ParseFloat¨" "Split 1": "Splitinput
ms•ParseFloat¨¨¨" "Split¨¨(0<)¨/¨1¨(@+10)Split¨ 1input
Map{𝕊rs:
F{𝕊x: {𝕊dsl: (sx)x<s+l}¨rs}
V{𝕊x: {𝕊dsl: d+x-s}¨rs}
{((F𝕩)/V𝕩)𝕩}
}
seed2loc{𝕨𝕩}´Map¨ms
•Show ´Seed2Loc¨seeds

277
2023/day05/input Normal file
View file

@ -0,0 +1,277 @@
seeds: 858905075 56936593 947763189 267019426 206349064 252409474 660226451 92561087 752930744 24162055 75704321 63600948 3866217991 323477533 3356941271 54368890 1755537789 475537300 1327269841 427659734
seed-to-soil map:
155461856 2688731658 31130392
3624223750 2439220990 158522039
3782745789 828496007 83184667
1329508120 2383184162 2195641
1221066973 4005538912 108441147
3908459768 630332333 84015758
3174818941 2385379803 53841187
1929319035 442552891 126280229
2999332985 2077874265 61338040
4047976345 4113980059 50652162
3509978464 2319317936 63866226
2676242573 568833120 11879128
4146174193 3589840038 35847908
3865930456 2986517951 42529312
1737209176 3963710397 41828515
2545388005 3458985470 130854568
388171875 2946497456 40020495
3396281190 4164632221 79956015
186592248 1068698177 201579627
3060671025 714348091 114147916
2841183920 2139212305 158149065
2055599264 3290256747 27665085
2770917385 3029047263 24920289
4203978667 2597743029 90988629
2795837674 911680674 45346246
2083264349 2813972956 124101205
3573844690 4244588236 50379060
3228660128 274931829 167621062
1331703761 1270277804 23145153
123824510 3053967552 31637346
1354848914 63482157 211449672
1566298586 3085604898 170910590
63482157 3398643117 60342353
3476237205 3256515488 33741259
1212643678 2938074161 8423295
4182022101 2297361370 21956566
3992475526 2758472137 55500819
428192370 1293422957 784451308
1817647778 957026920 111671257
2690196100 3317921832 80721285
1779037691 2719862050 38610087
4098628507 582786647 47545686
2207365554 3625687946 338022451
2688121701 580712248 2074399
soil-to-fertilizer map:
2233530624 2071120505 422489795
3959649465 4044567411 67616189
457224864 3135270167 41569374
3394360972 4112183600 182783696
813178253 653702020 183734547
498794238 2963315974 171954193
3577144668 3394360972 216442995
996912800 2493610300 327275852
3309722439 3282071367 51304963
670748431 2820886152 142429822
1324188652 3273822993 8248374
3793587663 4006086952 11248169
2190085090 3176839541 43445534
2656020419 0 653702020
4267735006 4017335121 27232290
1396875915 3333376330 27651072
4027265654 3610803967 240469352
1424526987 1241123513 765558103
403686946 3220285075 53537918
3804835832 3851273319 154813633
1332437026 2006681616 64438889
0 837436567 403686946
fertilizer-to-water map:
490664090 841327865 158559818
3248785910 3009217852 86780947
3361383178 811709798 29618067
1492567300 999887683 10142868
708758546 1053715632 8318621
2922655819 2337575757 139997093
412870134 1010030551 43685081
825309561 1895146974 205741813
3832608203 4026085284 5525526
2833741007 722794986 88914812
1502710168 0 86876502
1091543314 2480502815 191523114
2191676162 1359275248 59328417
3724763033 3918240114 107845170
4132175069 4031610810 162792227
1589586670 3262683858 70888723
3932786977 4194403037 100564259
649223908 2280749089 56826668
717077167 268230878 108232394
4033351236 3819416281 98823833
2417689638 1418603665 416051369
3062652912 3333572581 186132998
1438604483 2100888787 28445966
398871700 1190738587 13998434
456555215 2975108977 34108875
2062848712 2151921639 128827450
1283066428 112692823 155538055
0 475753543 244333473
3838133729 3724763033 94653248
244333473 1204737021 154538227
1963558441 376463272 99290271
3335566857 86876502 25816321
3497674085 1062034253 22031494
706050576 720087016 2707970
1467050449 2129334753 22586886
1660475393 2672025929 303083048
3391001245 1084065747 106672840
1031051374 1834655034 60491940
1489637335 2477572850 2929965
2251004579 3095998799 166685059
water-to-light map:
2001282667 520918173 10302354
2377955968 3484205484 30954740
3394017453 2582587136 46684978
99573517 443623963 59355616
2759073879 2842283022 106219470
3153456782 2203695607 115107673
1088011149 228872916 37401521
823056142 1852553918 234443509
1892663777 1743935028 108618890
2223186841 3648924866 154769127
3440702431 3849149039 360654480
1125412670 266274437 146838028
2524006636 2432683670 149903466
86866324 508210980 12707193
3289576295 3621907778 27017088
659725308 531220527 163330834
336816212 1738401718 5533310
1057499651 413112465 30511498
1495475061 998625681 113056371
1277482099 1111682052 217992962
4022707650 2629272114 213010908
1611665062 1454269373 134219470
1272250698 502979579 5231401
3801356911 2996165168 221350739
2463542360 3803693993 45455046
3367828633 3458016664 26188820
3105794106 2948502492 47662676
0 1329675014 86866324
342349522 694551361 126187241
158929133 820738602 177887079
1608531432 1735268088 3133630
2673910102 4209803519 85163777
3316593383 2152460357 51235250
3268564455 2116439287 21011840
2508997406 2137451127 15009230
2011585021 153460510 75412406
1745884532 1588488843 146779245
621997273 1416541338 37728035
2865293349 3217515907 240500757
2408910708 2318803280 54631652
468536763 0 153460510
4235718558 2373434932 59248738
2116439287 3515160224 106747554
light-to-temperature map:
1588027222 1909294051 23480302
2215874455 2960213648 162391531
2129487527 3462600798 86386928
3484568571 1932774353 37497788
1911434001 1113198957 54894781
880849827 535842660 44062779
1450966888 2803663201 137060334
0 175732913 3492989
820881151 879323733 45588873
2593908227 3122605179 276522050
4086321665 3399127229 59629850
1267064668 2940723535 19490113
872717966 579905439 8131861
17372207 0 175732913
325280839 781495589 97828144
485661210 200622719 335219941
866470024 712695420 6247942
1113198957 1970272141 153865711
3384296082 2124137852 23097298
3492989 186743501 13879218
1966328782 1746135306 163158745
3522066359 3730711990 564255306
1611507524 2661100955 108644269
193105120 588037300 124658120
423108983 718943362 62552227
2870430277 2147235150 513865805
2559990250 2769745224 33917977
4145951515 1168093738 149015781
1720151793 1558696817 187438489
3407393380 1317109519 77175191
1286554781 1394284710 164412107
317763240 179225902 7517599
2378265986 3548987726 181724264
1907590282 3458757079 3843719
temperature-to-humidity map:
2368894659 1388350150 55368176
3669222180 3739392779 16773160
4199646729 3863166637 79873794
399562411 1508754364 89530529
355021451 346145384 44540960
3348191019 2804337123 32367820
4153047357 3630809755 46599372
801745354 3027789847 194064703
295043332 1932435496 59978119
2173824398 0 195070261
3586766138 3780710595 82456042
2063962300 390686344 109862098
2424813637 2262322190 16002572
694625758 2155376830 106945360
4279520523 3615362982 15446773
489092940 1655816946 66193390
0 3221854550 178998524
1882939638 1912164198 20271298
178998524 1187862900 104517087
288525818 1292379987 6517514
995810057 1598284893 57532053
3220600544 1992413615 127590475
1857243139 195070261 25696499
2424262835 1443718326 550802
3143673104 1375907946 12442204
3776575836 3943040431 220205828
1053342110 693558780 494304120
2630970071 2286623883 512703033
638901084 2284929071 1694812
801571118 2836704943 174236
640595896 2836879179 54029862
4128502701 3756165939 24544656
1684527036 520842677 172716103
1547646230 2890909041 136880806
3524782486 3677409127 61983652
3685995340 3524782486 90580496
3380558839 500548442 20294235
2440816209 1722010336 190153862
283515611 2799326916 5010207
1903210936 2120004090 35372740
561890639 1298897501 77010445
555286330 2278324762 6604309
1938583676 220766760 125378624
3996781664 4163246259 131721037
3156115308 1444269128 64485236
humidity-to-location map:
2420477851 2725678119 154870744
341010579 1968896618 161603351
2771047693 3040747240 63786420
1473264654 231223255 158065928
300743457 665216997 40267122
4266394999 3974648226 28572297
44642725 3145344681 187170981
3913829571 3489505645 352565428
2132898063 571123277 94093720
2945529238 1729589230 52970089
3205711977 3366573953 87052626
3077771609 1429791513 87129347
3840363983 3901182638 31190715
3674520209 3842071073 59111565
3733631774 4003220523 106732209
0 2326199067 44642725
1631330582 389289183 181834094
2226991783 2370841792 193486068
2911470947 3332515662 34058291
1999501975 1516920860 133396088
1813164676 1782559319 186337299
502613930 2880548863 91268626
1242041399 0 231223255
3586449755 4206896842 88070454
2834834113 1353642962 76148551
3164900956 3104533660 40811021
3489505645 4109952732 96944110
2910982664 2564327860 488283
3292764603 2564816143 160861976
231813706 2971817489 68929751
2575348595 2130499969 195699098
593882556 705484119 648158843
3871554698 3932373353 42274873
2998499327 1650316948 79272282

33
2023/day05/test Normal file
View file

@ -0,0 +1,33 @@
seeds: 79 14 55 13
seed-to-soil map:
50 98 2
52 50 48
soil-to-fertilizer map:
0 15 37
37 52 2
39 0 15
fertilizer-to-water map:
49 53 8
0 11 42
42 0 7
57 7 4
water-to-light map:
88 18 7
18 25 70
light-to-temperature map:
45 77 23
81 45 19
68 64 13
temperature-to-humidity map:
0 69 1
1 0 69
humidity-to-location map:
60 56 37
56 93 4

17
2023/day06/day06.bqn Normal file
View file

@ -0,0 +1,17 @@
Split•Import"../bqn-libs/strings.bqn"
input(0<)¨/¨" "Split¨10¨•FLines"input"
Times{𝕊td:
ab2÷˜+t(-+)(t×t)-4×d
aba,b
a+d=a×t-a
b-d=b×t-b
ab
}
input1>•ParseFloat¨¨input
•Show ×´1+|-´˘Times˘input1
input2•ParseFloat¨¨input
•Show 1+|-´Times input2

2
2023/day06/input Normal file
View file

@ -0,0 +1,2 @@
Time: 56 97 78 75
Distance: 546 1927 1131 1139

2
2023/day06/test Normal file
View file

@ -0,0 +1,2 @@
Time: 7 15 30
Distance: 9 40 200

17
2023/day07/day07.bqn Normal file
View file

@ -0,0 +1,17 @@
input(56)¨•FLines"input"
hands(('0'+10)"TJQKA")¨¨input
bids•ParseFloat¨1¨input
types11111,2111,221,311,32,41,5
Ranks{(types{/𝕩}¨𝕩)𝕩}
Winnings{+´(1+𝕨)ר𝕩𝕨}
•Show bids Winnings Ranks hands
>hands2("J"('1'+9)"TQKA")¨¨input
HandType{
𝕊(00000): 5;
js0=𝕩
(+´js)+ /(¬js)/𝕩
}
Ranks2{(typesHandType¨𝕩)𝕩}
•Show bids Winnings Ranks2 hands2

1000
2023/day07/input Normal file

File diff suppressed because it is too large Load diff

5
2023/day07/test Normal file
View file

@ -0,0 +1,5 @@
32T3K 765
T55J5 684
KK677 28
KTJJT 220
QQQJA 483

16
2023/day08/day08.bqn Normal file
View file

@ -0,0 +1,16 @@
Split•Import"../bqn-libs/strings.bqn"
lf@+10
strinststrnet(lflf)Split •FChars"input"
inst"LR"strinst
net{3¨𝕩¨0712}¨lf Split ¯1strnet
els¨net
mapels>12¨net
startendels"AAA""ZZZ"
n30000
•Show 1+(start{𝕩𝕨map}`ninst)end
startsends/¨(¯1¨els)=¨"AZ"
•Show •math.LCM´{1+/(𝕩{𝕩𝕨map}`ninst)ends}¨starts

768
2023/day08/input Normal file
View file

@ -0,0 +1,768 @@
LRRRLRRLRLLRLRRLRLRLLRRRLRLRRRLRRRLRLRLRRLRLRRRLRRLLRRLLLRRLRRLRRRLRLRRRLRRLRRRLRRRLRRLRLLRRRLRLRRLRLRLRRRLRRLLRRRLLRRLRLRRLRRRLLLRRRLLRLLRRLRRRLRLRLRRLLLRRRLLRRLLLRLRLRRLLRLLRRLLLRRLLRRRLRLRRRLRLLRRRLRRRLRLRLRRRLRLRRRLRRRLRRRLLRLRLRLRRLRLRRRLRLRLLRRLRRLRRLRRRLRRRLRLLRLLLRRLRLRRRR
HGK = (LRV, NBJ)
MCT = (PKH, PBF)
FJD = (PGR, CJB)
CQL = (XNN, GCT)
PBV = (QSS, PDK)
MPX = (DHN, NCX)
KKH = (HBR, MXL)
BLM = (DHN, NCX)
TTF = (FRT, CHK)
JDT = (SSQ, KHX)
KKR = (STS, RVK)
KRM = (JXX, LQG)
TTD = (SGV, VPF)
KCP = (NPP, CTV)
PTM = (MNN, GTS)
KTP = (GLC, GJH)
FNQ = (NVT, LXV)
TKQ = (DCR, GJX)
LXV = (VCC, CNC)
DVQ = (QHD, TPF)
QRN = (TXV, HFX)
KFH = (XHS, SHB)
QRT = (KQH, FFN)
XKC = (NTC, RMK)
GTH = (NVL, FFK)
MJS = (BLD, SQD)
XQB = (HVK, LVV)
CLV = (XQB, XQS)
HTH = (NSS, BKT)
FMK = (DSS, JMS)
KDF = (VTP, GMR)
VFG = (DLS, TPQ)
RHB = (SMB, JVD)
DPX = (LHH, GNB)
XHC = (RDF, XQN)
MGD = (PKH, PBF)
PTP = (KCT, BJH)
RVV = (FKC, XHC)
BRL = (BJH, KCT)
JJF = (MCK, BCJ)
KGR = (GJM, GJM)
KRF = (FMD, BGJ)
XQN = (DDR, NNX)
TVQ = (XTH, PJL)
HMT = (JNJ, BVS)
NKB = (JXR, FQM)
SFJ = (KFH, CCB)
FMB = (NKB, DGT)
VKD = (FMD, BGJ)
PJR = (BTS, LNN)
RJG = (DGK, BRS)
LSZ = (BDS, RXJ)
CTV = (KFV, JVF)
TGP = (CTJ, FBQ)
HVX = (JMR, RQT)
RVK = (CTC, RDJ)
KGS = (KMM, JPV)
SCC = (QCG, TCS)
HBR = (TGG, KBG)
PND = (BMC, HSK)
FQD = (PTD, NGM)
XGH = (KKS, HHC)
NJJ = (RHC, SFQ)
SNF = (FXJ, BSR)
DDR = (TSQ, PJR)
VRV = (NMJ, JBJ)
FFL = (NRD, BPD)
NMJ = (LTR, RQQ)
FSK = (KVQ, JXS)
MLF = (HGD, XHZ)
RQQ = (JGF, GGS)
KSN = (HGL, HVX)
VCR = (QNN, LLB)
PKH = (XSR, XDF)
DFL = (FFK, NVL)
LPQ = (FKS, PGM)
DQR = (JQV, FDP)
SSQ = (QPT, QPT)
JNC = (SPK, JPG)
SFQ = (BPG, NSQ)
NCD = (TJB, GBP)
CTJ = (KTF, DQF)
VPC = (VFG, QVQ)
SQD = (XQC, PHJ)
XKH = (MJS, SNH)
VDS = (FKD, PKD)
GFF = (JCF, HBS)
FKD = (MCM, LKD)
XDT = (NTC, RMK)
GRK = (RFQ, CSF)
PKN = (NGK, FLG)
QHD = (FSJ, FSJ)
GHS = (HTD, KLJ)
JGR = (RRD, XVQ)
XVC = (KGS, CNG)
XFH = (RTB, DDK)
CJS = (KKR, BNX)
KLJ = (NMN, LQK)
PJB = (GTH, DFL)
NPT = (JRJ, TVT)
FJX = (GXQ, VCG)
QBH = (QCL, VCB)
SXT = (MKJ, BLC)
GTR = (CDG, BFT)
KDJ = (GVL, KTD)
NTC = (RJP, SVQ)
DTP = (BSR, FXJ)
FDN = (JHK, VNQ)
BKL = (SBV, XKD)
VCX = (JQV, FDP)
LQG = (DKP, HTH)
MCM = (RSJ, PXH)
VHT = (CVK, MBQ)
XQS = (LVV, HVK)
CPG = (VFR, LVN)
QVQ = (TPQ, DLS)
VSH = (JNJ, BVS)
CFB = (FXD, FQK)
BGF = (TTJ, GNT)
MBB = (MKH, TKK)
SBV = (MQQ, DSG)
JBR = (NDX, MBB)
SMT = (KKS, HHC)
CSF = (QHG, VXS)
SFN = (LRD, NJJ)
GGS = (JLD, LPJ)
CHK = (QGS, RQZ)
RNH = (BCJ, MCK)
GJX = (XKQ, XTF)
TVB = (HGK, LJB)
SGV = (NNQ, LTF)
JHR = (XMH, SJB)
NBN = (BBH, PJQ)
BPV = (MRP, MRP)
PCH = (LFV, JCP)
KPR = (TDB, RVV)
KKT = (SNM, QBH)
DPS = (QPK, VSP)
LXM = (RNH, JJF)
TRK = (XVM, RHX)
TLT = (QQT, SXT)
DDB = (PML, MXS)
DSG = (BVH, QML)
MHD = (PMV, GHH)
XVQ = (MFC, JBH)
TTJ = (PJN, CQD)
XTG = (VBD, GFF)
VJF = (TVQ, NRP)
NSS = (HHN, FXT)
XSR = (CQL, RRX)
SPK = (BBP, LMK)
RSB = (KKR, BNX)
XNL = (NJJ, LRD)
SBH = (TVQ, NRP)
JXR = (NJK, CGS)
DGX = (VPL, TRK)
KTD = (KSP, TGB)
CBP = (LXM, TRM)
DCM = (FTX, FNC)
LMP = (NRX, JQL)
QNP = (FGF, QBT)
GJT = (TFD, FVN)
NPP = (KFV, JVF)
SVG = (DSS, JMS)
KBG = (KKG, PHN)
RDJ = (GJV, HBN)
NQS = (SNM, QBH)
GHR = (DVK, BCH)
LBX = (BNR, KDJ)
SCJ = (MPS, RCR)
HHM = (FXP, LTB)
LCV = (BFT, CDG)
LKS = (MRS, GSH)
JQL = (GBT, STL)
LHK = (VVP, LDT)
FLX = (TKQ, DCL)
VFR = (HDF, VSV)
XQK = (FJD, MCG)
JNF = (VDF, XJB)
GXL = (FQD, QFJ)
GBT = (CLG, KBH)
VFV = (SSL, FMM)
RHX = (LKS, BSD)
LRD = (RHC, SFQ)
TKK = (GJT, NFV)
XTF = (GPQ, XVX)
DQH = (KSN, GNR)
TPQ = (MPB, DSJ)
HTS = (XVQ, RRD)
LFN = (KVX, TTD)
NBQ = (JCH, TTM)
FMT = (DDB, NRN)
KTF = (FLX, DRP)
NRP = (XTH, PJL)
RFQ = (QHG, VXS)
CRG = (BPJ, LRF)
NRN = (PML, MXS)
MXF = (CTV, NPP)
BBV = (XXR, KQB)
LVN = (VSV, HDF)
PTK = (MVK, MVK)
NHM = (TXP, DLL)
NTK = (FGC, CGG)
LRF = (NRM, VHT)
XGG = (SSN, PBV)
ZZZ = (HRP, SRS)
DQF = (DRP, FLX)
NTT = (RCT, VBL)
HDH = (MGD, MCT)
CVK = (DXG, DCM)
KHX = (QPT, FHZ)
GNR = (HVX, HGL)
KVQ = (CBP, VMP)
JFC = (VFV, KRP)
FLG = (QTT, VKR)
VSP = (JXH, PKN)
HQN = (GJH, GLC)
GNV = (FXD, FQK)
BCJ = (MRT, GSD)
KKG = (DDC, XMN)
TLM = (JJM, QGK)
VMP = (LXM, TRM)
MPB = (NGN, JTD)
NFV = (TFD, FVN)
FVN = (DCP, PXL)
NMQ = (VNK, DGX)
NJB = (VXB, SFF)
NPD = (NKB, DGT)
JJM = (BBV, GPV)
PQT = (XQK, KBT)
PJL = (NQS, KKT)
FTX = (PPL, RGJ)
JCH = (DPP, GDB)
SCN = (TKM, CLV)
MKJ = (JFQ, FMT)
JGN = (QBS, MFB)
GJH = (SLD, LQT)
GVL = (TGB, KSP)
NBM = (QRN, CGF)
XXR = (FMK, SVG)
FQK = (QBN, NTK)
BLX = (BMC, HSK)
RCR = (JJR, DPX)
TTG = (CTJ, FBQ)
SSL = (KHQ, XFH)
PKD = (LKD, MCM)
RJH = (XKH, JCR)
VPF = (NNQ, LTF)
TJB = (TXQ, JFC)
XHZ = (NHM, PFM)
XTL = (RXJ, BDS)
HQS = (KPR, GLQ)
RRD = (MFC, JBH)
FLN = (VCH, BGT)
VBD = (HBS, JCF)
TLR = (XTR, FSK)
CHD = (FXP, LTB)
HHN = (CNB, MDX)
RJP = (TLM, NNT)
HKC = (RVN, JKR)
SJL = (CHD, HHM)
FDP = (TLR, SRP)
VPK = (MRP, RND)
VQP = (BHF, MVH)
XMN = (GRK, NLN)
MVK = (MLS, MLS)
GXM = (GJF, CRG)
KFB = (HTD, KLJ)
GFR = (XNL, SFN)
BCL = (SRS, HRP)
NLT = (SNT, VMJ)
BRQ = (FQD, QFJ)
VPL = (XVM, RHX)
VJN = (SJB, XMH)
GHH = (NSG, HVR)
BBP = (XGH, SMT)
DCB = (MVS, NRC)
DGK = (FQP, KDF)
BLC = (JFQ, FMT)
TCS = (PVK, HSJ)
PPL = (RSF, FSX)
QTT = (KHG, QLF)
PML = (NCQ, VRK)
LLB = (SGJ, VHX)
VXK = (FKD, PKD)
FSX = (CJS, RSB)
KKS = (SJL, SFR)
JLD = (RXB, RJL)
VGG = (XTL, LSZ)
BLG = (KFH, CCB)
TPF = (FSJ, GDP)
JFQ = (DDB, NRN)
RDF = (NNX, DDR)
HGL = (RQT, JMR)
KQB = (SVG, FMK)
RMM = (JHK, VNQ)
BCH = (VPC, GXH)
MCG = (PGR, CJB)
JBT = (PLF, VQP)
NSQ = (PTK, TNS)
RVN = (CMP, DBF)
XGK = (VCH, BGT)
BNR = (KTD, GVL)
QML = (QQV, VFJ)
KSD = (SFB, GGM)
PDK = (JJH, BNH)
KBH = (NTT, BVQ)
MSA = (PFM, NHM)
JRJ = (KXT, SFV)
AAA = (SRS, HRP)
NRD = (NLM, FXR)
QCL = (JTT, LBX)
CTC = (HBN, GJV)
DDK = (LCV, GTR)
PBF = (XSR, XDF)
TKM = (XQS, XQB)
SNM = (VCB, QCL)
JCC = (LQQ, RFC)
GSN = (VXB, SFF)
CNG = (JPV, KMM)
VMJ = (GVC, HGN)
CXT = (LDT, VVP)
CLG = (NTT, BVQ)
HHC = (SFR, SJL)
VTP = (SNF, DTP)
PKA = (STR, TVR)
MFB = (NJB, GSN)
NNX = (TSQ, PJR)
LCP = (HGK, LJB)
MQQ = (BVH, QML)
MXL = (TGG, KBG)
FHZ = (TVR, STR)
LQK = (SXB, LHF)
QNM = (RXR, BXF)
LNN = (SKN, BXL)
HSJ = (PJB, VVJ)
SHS = (SPK, JPG)
VKR = (QLF, KHG)
VMC = (CRG, GJF)
XHS = (KQK, FNQ)
BKT = (HHN, FXT)
NCJ = (PMV, GHH)
RQL = (NBF, CXB)
MNG = (CCT, SRB)
MQB = (CKV, XTG)
PGR = (XJS, SCN)
JCP = (VJS, FJX)
TFD = (PXL, DCP)
XTH = (NQS, KKT)
JBH = (GXM, VMC)
SLD = (BBC, RQH)
BBH = (XCD, HQS)
HRP = (VDJ, NCD)
CCT = (JNC, SHS)
VNK = (VPL, TRK)
QPT = (STR, TVR)
MJC = (FLN, XGK)
TBK = (GJM, NCH)
JCR = (SNH, MJS)
TBC = (KVX, TTD)
HDF = (GFR, TMR)
DJV = (SFJ, BLG)
VDJ = (GBP, TJB)
FKS = (KKH, FGH)
TXV = (NCJ, MHD)
FGH = (MXL, HBR)
RSJ = (CPG, RFT)
MVS = (HMT, VSH)
QBN = (CGG, FGC)
GSH = (HTS, JGR)
FBQ = (DQF, KTF)
SFR = (CHD, HHM)
PHN = (XMN, DDC)
KRS = (GNV, CFB)
QSS = (JJH, BNH)
BXL = (NJG, HKC)
RRX = (GCT, XNN)
KCT = (SLM, CCK)
BVQ = (RCT, VBL)
NMN = (LHF, SXB)
RQV = (SBV, XKD)
JJR = (LHH, GNB)
VCC = (BPV, VPK)
TPB = (MJC, XBQ)
SSN = (QSS, PDK)
GXH = (VFG, QVQ)
MRT = (VJN, JHR)
CRL = (VDF, XJB)
RFC = (LMX, PVR)
FGC = (CKT, SVS)
XKS = (BGV, MPT)
CCB = (XHS, SHB)
QGK = (BBV, GPV)
FTP = (SSQ, SSQ)
BSB = (MLS, HKM)
SKN = (HKC, NJG)
MNL = (TBC, LFN)
MRP = (QLX, QLX)
BSD = (MRS, GSH)
GXQ = (TTG, TGP)
FXD = (QBN, NTK)
GDP = (QJV, LXZ)
PJN = (DKM, NLT)
BNH = (KGR, TBK)
LHH = (RBC, HFK)
TDB = (XHC, FKC)
PXH = (CPG, RFT)
DRG = (JCR, XKH)
VXB = (NQQ, FLR)
JBJ = (RQQ, LTR)
JCF = (LPQ, JPC)
SJR = (QNN, LLB)
CGS = (HQB, FGG)
GLN = (KFB, GHS)
XKD = (MQQ, DSG)
HBN = (KSD, TNM)
XHB = (HQN, KTP)
FVJ = (GNV, CFB)
LJB = (NBJ, LRV)
NVL = (XVC, FBC)
SXB = (KRS, FVJ)
RHC = (BPG, NSQ)
LHF = (KRS, FVJ)
STR = (BNF, GLN)
MCK = (GSD, MRT)
RBC = (BRL, PTP)
MRS = (HTS, JGR)
SFF = (FLR, NQQ)
SRP = (FSK, XTR)
XQC = (BRQ, GXL)
BTS = (BXL, SKN)
MFC = (GXM, VMC)
BGT = (NMD, PCH)
RGJ = (RSF, FSX)
FPN = (SXT, QQT)
BNF = (KFB, GHS)
VVP = (XGJ, GPD)
CGG = (CKT, SVS)
XVX = (FMB, NPD)
DDC = (GRK, NLN)
JXX = (DKP, HTH)
JKR = (CMP, DBF)
SGJ = (KVS, CGD)
TRM = (RNH, JJF)
GNB = (HFK, RBC)
CGK = (DCB, SBB)
MDN = (RFC, LQQ)
XJS = (CLV, TKM)
LTF = (PTM, KRX)
NCH = (GMX, VGG)
NSG = (DRG, RJH)
RXJ = (LCP, TVB)
QLF = (JJQ, FSN)
TSQ = (BTS, LNN)
FNC = (RGJ, PPL)
RXB = (PQT, QDN)
SNH = (BLD, SQD)
PJQ = (XCD, HQS)
DHN = (BGF, XXN)
QNN = (SGJ, VHX)
BRS = (FQP, KDF)
DRP = (DCL, TKQ)
KMM = (BKX, CGK)
MLS = (BCL, BCL)
QQT = (BLC, MKJ)
FFK = (FBC, XVC)
BPG = (PTK, TNS)
LTB = (XFC, KRM)
XTR = (JXS, KVQ)
PDF = (DVK, BCH)
KVX = (SGV, VPF)
DPP = (JVB, GKC)
VVJ = (GTH, DFL)
KVS = (BQG, KCQ)
LFV = (VJS, FJX)
TNG = (PJQ, BBH)
NRM = (MBQ, CVK)
CMP = (VKD, KRF)
GTS = (BPT, TPB)
BHF = (DJV, SSD)
JNJ = (RGX, VRB)
DKM = (VMJ, SNT)
TSM = (QBS, MFB)
BKX = (SBB, DCB)
FBC = (CNG, KGS)
TNM = (SFB, GGM)
BQG = (TSM, JGN)
TMR = (XNL, SFN)
NGK = (VKR, QTT)
GDB = (GKC, JVB)
TXP = (FPN, TLT)
NRX = (STL, GBT)
BPT = (XBQ, MJC)
HGN = (JPS, QLM)
QLM = (SCJ, RNV)
XCT = (DGX, VNK)
HTD = (LQK, NMN)
TLQ = (JRJ, TVT)
GJM = (GMX, GMX)
KFV = (GSS, TPM)
KXT = (RJG, MGB)
GSD = (JHR, VJN)
NVT = (VCC, CNC)
KQH = (XCT, NMQ)
HVR = (DRG, RJH)
LMK = (XGH, SMT)
JTD = (GSL, MQB)
PMV = (HVR, NSG)
JPG = (LMK, BBP)
RMK = (RJP, SVQ)
LMX = (XLJ, PXQ)
MGB = (DGK, BRS)
PTD = (HDH, THF)
FQM = (CGS, NJK)
GSS = (BLX, PND)
GJF = (BPJ, LRF)
DLL = (TLT, FPN)
NJG = (JKR, RVN)
JPC = (PGM, FKS)
SRS = (NCD, VDJ)
XVM = (LKS, BSD)
KRX = (GTS, MNN)
RQT = (BKL, RQV)
BLD = (PHJ, XQC)
LKD = (PXH, RSJ)
NJN = (VDT, NBM)
GPV = (KQB, XXR)
VDF = (VXK, VDS)
CKT = (DQR, VCX)
SLF = (LGK, XGG)
PSL = (XDT, XKC)
NNQ = (PTM, KRX)
TVR = (GLN, BNF)
PVK = (PJB, VVJ)
DXG = (FTX, FNC)
NBJ = (DQH, FDJ)
CXB = (XSQ, QNP)
NBF = (QNP, XSQ)
MBQ = (DCM, DXG)
BBX = (JQL, NRX)
XBQ = (XGK, FLN)
GKC = (MLD, FFL)
GSL = (CKV, XTG)
SBB = (NRC, MVS)
QJV = (KQP, XHB)
FMM = (XFH, KHQ)
TXQ = (KRP, VFV)
DCR = (XKQ, XTF)
BJH = (CCK, SLM)
RGX = (QRV, QRV)
SFV = (RJG, MGB)
GFQ = (PLF, VQP)
BGJ = (TCQ, SLF)
LTR = (GGS, JGF)
JVD = (QVS, XKS)
HKM = (BCL, ZZZ)
GBP = (JFC, TXQ)
VBL = (BLM, MPX)
GRV = (QPK, VSP)
BBC = (KCP, MXF)
BVH = (VFJ, QQV)
FDJ = (KSN, GNR)
KCQ = (TSM, JGN)
NNT = (QGK, JJM)
BVS = (RGX, VRB)
XGJ = (NPT, TLQ)
JPV = (BKX, CGK)
NCX = (XXN, BGF)
SFB = (FTP, FTP)
QQV = (SJR, VCR)
KBT = (FJD, MCG)
GNT = (CQD, PJN)
NLM = (QRT, XNT)
CJB = (XJS, SCN)
CCK = (NBN, TNG)
XLJ = (CRL, JNF)
HVK = (MNG, CVP)
GLQ = (RVV, TDB)
JJH = (KGR, TBK)
MVH = (SSD, DJV)
PLF = (MVH, BHF)
HQB = (CKL, DVQ)
HBS = (LPQ, JPC)
NRC = (HMT, VSH)
CGD = (KCQ, BQG)
BGV = (RMM, FDN)
TTM = (DPP, GDB)
DKP = (NSS, BKT)
MKH = (NFV, GJT)
RQZ = (GHR, PDF)
XMH = (DPS, GRV)
JMS = (SBH, VJF)
DVK = (VPC, GXH)
VRB = (QRV, TTF)
XSQ = (FGF, QBT)
DDQ = (NJN, KQV)
HFK = (BRL, PTP)
NBA = (RXJ, BDS)
SLM = (NBN, TNG)
NDX = (TKK, MKH)
VFJ = (VCR, SJR)
XNN = (TML, RGD)
KQV = (NBM, VDT)
BDS = (LCP, TVB)
JVF = (TPM, GSS)
FVH = (CGL, NBQ)
CNB = (GFQ, JBT)
RHA = (PDF, GHR)
QFJ = (NGM, PTD)
JXS = (VMP, CBP)
XKQ = (GPQ, XVX)
FXJ = (XPP, JBR)
RFT = (VFR, LVN)
DSS = (VJF, SBH)
JPS = (SCJ, RNV)
XDF = (CQL, RRX)
FFN = (NMQ, XCT)
VJS = (VCG, GXQ)
TJS = (XDT, XKC)
SMB = (QVS, XKS)
FSJ = (QJV, QJV)
QRV = (FRT, FRT)
TML = (CXT, LHK)
CQD = (NLT, DKM)
SHB = (KQK, FNQ)
PGM = (KKH, FGH)
RSF = (CJS, RSB)
LXZ = (XHB, KQP)
KHG = (JJQ, FSN)
CGF = (HFX, TXV)
BFT = (PVS, DDQ)
NJK = (HQB, FGG)
TCQ = (XGG, LGK)
SNT = (HGN, GVC)
VCG = (TGP, TTG)
VSV = (GFR, TMR)
THF = (MGD, MCT)
TVT = (SFV, KXT)
LQQ = (PVR, LMX)
CKL = (QHD, QHD)
GPD = (NPT, TLQ)
DSJ = (NGN, JTD)
CVP = (SRB, CCT)
VNQ = (GQL, FVH)
MDX = (GFQ, JBT)
PVR = (PXQ, XLJ)
MXS = (VRK, NCQ)
DBF = (KRF, VKD)
CDA = (KQP, XHB)
XCD = (KPR, GLQ)
GJV = (KSD, TNM)
JMR = (BKL, RQV)
CKV = (GFF, VBD)
GMR = (DTP, SNF)
VCH = (NMD, PCH)
JJQ = (RQL, JVX)
SSD = (BLG, SFJ)
NQQ = (BBX, LMP)
PVS = (KQV, NJN)
BSR = (JBR, XPP)
SVQ = (NNT, TLM)
HSK = (HJM, MNL)
RQH = (MXF, KCP)
FXP = (XFC, KRM)
BPD = (FXR, NLM)
FQP = (VTP, GMR)
HJM = (TBC, LFN)
KQP = (KTP, HQN)
TPM = (PND, BLX)
DCP = (MDN, JCC)
LPJ = (RXB, RJL)
QBT = (RHB, VBG)
KRP = (FMM, SSL)
NCQ = (VRV, GFS)
FLR = (BBX, LMP)
VRK = (GFS, VRV)
RNV = (RCR, MPS)
XXN = (GNT, TTJ)
DLS = (DSJ, MPB)
TGG = (KKG, PHN)
CNC = (BPV, VPK)
CDG = (DDQ, PVS)
JXH = (NGK, FLG)
BXF = (CJN, SCC)
FMD = (SLF, TCQ)
JQV = (TLR, SRP)
RGD = (CXT, LHK)
QGS = (PDF, GHR)
RTB = (LCV, GTR)
RXR = (SCC, CJN)
FKC = (XQN, RDF)
RJL = (PQT, QDN)
DGT = (FQM, JXR)
GMX = (XTL, XTL)
KHQ = (RTB, DDK)
GCT = (TML, RGD)
SJB = (GRV, DPS)
SVS = (DQR, VCX)
NLN = (RFQ, CSF)
NGN = (GSL, MQB)
PFM = (TXP, DLL)
VCB = (JTT, LBX)
QBS = (NJB, GSN)
XPP = (NDX, MBB)
QCG = (HSJ, PVK)
LGK = (SSN, PBV)
NGM = (HDH, THF)
BMC = (HJM, MNL)
GGM = (FTP, JDT)
PXL = (MDN, JCC)
PHJ = (BRQ, GXL)
QVS = (MPT, BGV)
GQL = (NBQ, CGL)
GLC = (SLD, LQT)
MNN = (TPB, BPT)
TGB = (VHM, QNM)
MPS = (DPX, JJR)
TNS = (MVK, BSB)
QLX = (HGD, HGD)
JHK = (FVH, GQL)
CGL = (JCH, TTM)
FGF = (VBG, RHB)
CJN = (TCS, QCG)
FSN = (RQL, JVX)
XNT = (KQH, FFN)
GVC = (JPS, QLM)
LDT = (XGJ, GPD)
LQT = (RQH, BBC)
VHX = (KVS, CGD)
PXQ = (JNF, CRL)
FGG = (CKL, DVQ)
STL = (KBH, CLG)
FRT = (QGS, QGS)
RCT = (BLM, MPX)
VXS = (TJS, PSL)
FXT = (MDX, CNB)
KQK = (LXV, NVT)
QDN = (KBT, XQK)
NMD = (JCP, LFV)
GPQ = (FMB, NPD)
QPK = (PKN, JXH)
STS = (CTC, RDJ)
XJB = (VDS, VXK)
BPJ = (NRM, VHT)
GFS = (JBJ, NMJ)
HFX = (MHD, NCJ)
QHG = (TJS, PSL)
FXR = (QRT, XNT)
JTT = (KDJ, BNR)
VHM = (RXR, BXF)
KSP = (VHM, QNM)
JVB = (MLD, FFL)
XFC = (LQG, JXX)
VBG = (JVD, SMB)
JVX = (NBF, CXB)
BNX = (STS, RVK)
VDT = (QRN, CGF)
MPT = (RMM, FDN)
HGD = (PFM, NHM)
SRB = (SHS, JNC)
MLD = (BPD, NRD)
DCL = (DCR, GJX)
LRV = (FDJ, DQH)
RND = (QLX, MLF)
LVV = (CVP, MNG)
JGF = (LPJ, JLD)

9
2023/day08/test1 Normal file
View file

@ -0,0 +1,9 @@
RL
AAA = (BBB, CCC)
BBB = (DDD, EEE)
CCC = (ZZZ, GGG)
DDD = (DDD, DDD)
EEE = (EEE, EEE)
GGG = (GGG, GGG)
ZZZ = (ZZZ, ZZZ)

5
2023/day08/test2 Normal file
View file

@ -0,0 +1,5 @@
LLR
AAA = (BBB, BBB)
BBB = (AAA, ZZZ)
ZZZ = (ZZZ, ZZZ)

10
2023/day08/test3 Normal file
View file

@ -0,0 +1,10 @@
LR
11A = (11B, XXX)
11B = (XXX, 11Z)
11Z = (11B, XXX)
22A = (22B, XXX)
22B = (22C, 22C)
22C = (22Z, 22Z)
22Z = (22B, 22B)
XXX = (XXX, XXX)

7
2023/day09/day09.bqn Normal file
View file

@ -0,0 +1,7 @@
Split•Import"../bqn-libs/strings.bqn"
input>•ParseFloat¨¨" "Split¨•FLines"input"
Deltas1(--)
diffs0¯1¨Deltas()˘input
•Show +´1¨diffs
•Show +´˘-˜`˘¨diffs

200
2023/day09/input Normal file
View file

@ -0,0 +1,200 @@
0 4 12 24 40 60 84 112 144 180 220 264 312 364 420 480 544 612 684 760 840
-7 -6 -4 -9 -35 -97 -191 -246 -18 1130 4645 13492 33206 73178 147656 275084 472783 741142 1026794 1146833 644835
9 26 43 55 64 84 151 349 869 2131 5030 11432 25171 54036 113717 235730 483765 988508 2023553 4171877 8686902
5 1 -3 -11 -29 -65 -131 -235 -344 -296 360 2612 8328 20688 44682 87630 159655 274011 447135 698255 1048345
9 8 7 6 5 4 3 2 1 0 -1 -2 -3 -4 -5 -6 -7 -8 -9 -10 -11
17 15 17 31 75 193 478 1098 2316 4488 8014 13206 20019 27555 33193 31168 10612 -45996 -160136 -339076 -513992
7 13 22 40 70 117 216 496 1293 3325 7942 17464 35620 68101 123240 212832 353107 565869 879814 1332040 1969762
2 6 18 38 66 102 146 198 258 326 402 486 578 678 786 902 1026 1158 1298 1446 1602
14 24 44 94 201 403 760 1387 2543 4833 9607 19671 40460 81862 160925 305726 560732 994038 1706926 2846252 4620235
1 10 39 97 196 356 617 1068 1914 3629 7307 15465 33852 75432 168942 376878 832608 1815805 3903720 8270454 17270193
5 19 42 72 107 145 184 222 257 287 310 324 327 317 292 250 189 107 2 -128 -285
12 15 30 80 202 462 987 2022 4016 7742 14486 26437 47626 86163 159187 302969 592100 1173777 2326006 4552222 8729546
14 23 32 41 50 59 68 77 86 95 104 113 122 131 140 149 158 167 176 185 194
-1 9 33 70 119 179 249 328 415 509 609 714 823 935 1049 1164 1279 1393 1505 1614 1719
4 6 14 28 58 143 389 1043 2624 6131 13339 27174 52124 94592 163026 267567 418836 625332 888732 1196168 1508302
4 2 5 30 104 265 572 1144 2260 4566 9450 19661 40262 80019 153337 282859 502844 863434 1435907 2318992 3646292
-9 -13 -17 -21 -25 -29 -33 -37 -41 -45 -49 -53 -57 -61 -65 -69 -73 -77 -81 -85 -89
12 24 36 57 124 313 761 1720 3676 7579 15237 29914 57115 105401 186792 315795 505227 755716 1034175 1235335 1121613
22 47 82 126 192 314 558 1044 1987 3776 7139 13492 25641 49104 94473 181517 346284 653553 1219032 2249318 4113718
18 20 30 55 104 192 355 687 1423 3123 7081 16225 37039 83491 184672 398935 838880 1713686 3398184 6541851 12235754
15 30 70 156 328 658 1265 2333 4140 7133 12148 21006 37974 73064 149014 315318 675348 1437546 3011453 6189930 12503151
4 5 5 15 56 174 471 1164 2702 6002 12909 27044 55299 110446 215853 414613 788476 1498775 2875725 5610685 11159750
8 31 70 134 239 409 677 1086 1690 2555 3760 5398 7577 10421 14071 18686 24444 31543 40202 50662 63187
9 25 66 144 277 492 830 1361 2218 3660 6175 10635 18516 32197 55353 93458 154415 249331 393456 607306 917991
22 42 84 167 321 606 1139 2133 3968 7350 13683 25901 50230 99787 201801 411958 842563 1716835 3471119 6942204 13701436
28 57 102 176 309 563 1070 2107 4222 8425 16458 31158 56927 100323 170786 281513 450496 701737 1066654 1585692 2310153
20 21 22 25 38 81 184 375 654 956 1141 1146 1664 6232 26744 96835 302631 850462 2210531 5411258 12622253
7 19 43 93 185 331 526 720 761 301 -1297 -4889 -10900 -17197 -13690 29843 189479 639343 1754419 4307877 9840271
4 1 -1 -6 -12 -4 62 297 952 2539 6013 13028 26280 49950 90260 156155 260124 419173 655963 1000126 1489772
18 22 27 41 78 158 304 537 876 1361 2133 3626 6952 14591 31534 67068 137438 269672 506911 915647 1595338
19 23 35 67 133 245 402 568 640 430 -263 -1323 -1418 3984 26478 91620 250473 597977 1300999 2639727 5067019
20 35 65 131 269 545 1086 2140 4182 8087 15395 28697 52175 92333 158960 266370 434968 693195 1079909 1647263 2464145
3 15 44 98 185 326 581 1095 2190 4561 9679 20562 43146 88572 176802 342087 640933 1163347 2048294 3504458 5837575
1 3 3 16 84 288 760 1695 3363 6121 10425 16842 26062 38910 56358 79537 109749 148479 197407 258420 333624
8 35 89 185 353 666 1283 2507 4858 9161 16649 29081 48875 79256 124419 189707 281804 408943 581129 810377 1110965
23 37 51 65 79 93 107 121 135 149 163 177 191 205 219 233 247 261 275 289 303
9 26 71 159 305 524 831 1241 1769 2430 3239 4211 5361 6704 8255 10029 12041 14306 16839 19655 22769
16 33 71 137 231 339 428 457 434 568 1584 5298 15624 40381 94712 207811 436248 889847 1780273 3508803 6818905
9 9 17 48 129 315 723 1606 3508 7571 16117 33726 69225 139390 275916 538615 1040303 1993089 3792709 7168424 13442509
16 27 46 96 221 496 1037 2011 3646 6241 10176 15922 24051 35246 50311 70181 95932 128791 170146 221556 284761
5 24 63 139 276 511 910 1594 2775 4802 8217 13821 22750 36561 57328 87748 131257 192156 275747 388479 538104
9 9 16 51 157 408 928 1925 3752 7036 12991 24198 46470 93037 193345 410478 873859 1837811 3782186 7579109 14760539
10 23 45 91 186 361 646 1072 1718 2876 5475 12045 28789 69888 166179 382092 847590 1816341 3768141 7583575 14833152
12 15 34 95 235 512 1036 2038 3998 7856 15338 29449 55222 100866 179519 311865 529884 881921 1439014 2301919 3607393
3 15 37 70 123 224 429 829 1555 2781 4725 7648 11851 17670 25469 35631 48547 64603 84165 107562 135067
8 29 64 113 178 283 514 1087 2460 5524 11951 24866 50179 99212 193756 375492 722940 1380935 2610294 4869119 8942436
18 28 43 64 106 222 550 1407 3473 8127 18015 37964 76465 148273 279508 518581 960498 1800964 3454785 6808934 13749834
17 26 46 78 114 133 97 -53 -401 -1060 -2176 -3932 -6552 -10305 -15509 -22535 -31811 -43826 -59134 -78358 -102194
10 27 56 101 172 303 585 1221 2626 5624 11833 24382 49201 97351 189395 363975 695078 1326741 2541306 4889375 9428454
12 24 53 125 287 617 1234 2308 4070 6822 10947 16919 25313 36815 52232 72502 98704 132068 173985 226017 289907
6 23 62 150 325 632 1115 1810 2752 4017 5828 8762 14103 24394 44249 81494 148714 265291 460026 774446 1266905
0 8 32 76 151 293 601 1308 2912 6429 13890 29294 60369 121751 240745 468071 898672 1713090 3260268 6221284 11925491
6 19 44 88 161 289 545 1107 2348 4965 10179 20112 38616 73180 139233 269466 533150 1074491 2185794 4441940 8939215
14 32 55 89 149 259 452 770 1264 1994 3029 4447 6335 8789 11914 15824 20642 26500 33539 41909 51769
10 39 92 194 385 720 1269 2117 3364 5125 7530 10724 14867 20134 26715 34815 44654 56467 70504 87030 106325
20 38 63 96 157 298 616 1266 2474 4550 7901 13044 20619 31402 46318 66454 93072 127622 171755 227336 296457
17 31 62 131 280 579 1136 2118 3793 6614 11402 19765 35038 64290 122437 240554 482932 983212 2023133 4206066 8836323
8 12 27 54 90 132 196 370 939 2648 7214 18276 43102 95574 201284 406127 791003 1498336 2783948 5126512 9468339
28 51 82 121 168 223 286 357 436 523 618 721 832 951 1078 1213 1356 1507 1666 1833 2008
8 28 53 83 116 140 122 4 -271 -661 -786 555 6249 22283 59905 138820 292022 573758 1074275 1949579 3483298
4 -3 -10 -5 37 152 382 782 1468 2750 5410 11202 23669 49391 99798 193703 360732 645851 1115214 1863581 3023581
24 44 84 162 305 563 1046 1992 3874 7559 14542 27298 49847 88770 155290 269983 474023 856431 1619479 3231867 6775748
10 36 87 171 292 450 641 857 1086 1312 1515 1671 1752 1726 1557 1205 626 -228 -1409 -2973 -4980
-5 -6 -5 12 68 196 456 985 2100 4469 9343 18789 35761 63669 104826 156736 204593 207548 75219 -370486 -1454950
11 34 75 141 239 376 559 795 1091 1454 1891 2409 3015 3716 4519 5431 6459 7610 8891 10309 11871
0 2 4 6 8 10 12 14 16 18 20 22 24 26 28 30 32 34 36 38 40
7 28 61 124 254 511 982 1785 3073 5038 7915 11986 17584 25097 34972 47719 63915 84208 109321 140056 177298
5 17 39 84 191 443 994 2113 4258 8205 15288 27879 50384 91301 167378 311845 590547 1133497 2196553 4281370 8365869
18 48 92 163 286 506 901 1595 2766 4644 7494 11579 17098 24094 32327 41107 49082 53976 52272 38835 6470
0 7 27 68 140 260 474 903 1824 3809 7967 16368 32776 63882 121310 224771 406864 720171 1247467 2116068 3517572
4 22 55 105 174 264 377 515 680 874 1099 1357 1650 1980 2349 2759 3212 3710 4255 4849 5494
17 23 37 65 117 212 400 817 1788 3987 8664 17982 35624 68152 128400 244019 478203 977431 2075879 4513391 9873183
14 29 49 88 185 414 906 1904 3894 7898 16093 33065 68281 140870 288708 585336 1170726 2305775 4466201 8499930 15883953
7 33 78 162 317 598 1104 2000 3530 6023 9936 16089 26501 46753 91758 198441 451413 1031601 2303346 4963092 10282833
6 9 9 12 30 81 189 384 702 1185 1881 2844 4134 5817 7965 10656 13974 18009 22857 28620 35406
1 4 27 82 181 336 559 862 1257 1756 2371 3114 3997 5032 6231 7606 9169 10932 12907 15106 17541
20 32 43 55 79 149 351 876 2111 4787 10208 20590 39544 72742 128810 220497 366174 591722 932873 1438073 2171941
27 48 83 145 251 416 638 867 961 654 -398 -2354 -4437 -3166 11515 64575 214023 590842 1487409 3552077 8210955
1 18 51 115 241 487 958 1835 3413 6148 10713 18063 29509 46801 72220 108679 159833 230198 325279 451707 617385
12 24 45 83 156 309 643 1356 2805 5614 10878 20564 38339 71385 134554 259991 519075 1070899 2265416 4854588 10409155
11 30 69 148 297 564 1045 1956 3782 7556 15344 31052 61765 120065 228336 427270 793142 1472619 2750732 5177929 9796126
19 43 85 160 301 579 1144 2296 4608 9157 17985 35023 67883 131190 252578 483334 917448 1726590 3226456 6006185 11184868
0 2 16 47 102 190 317 477 638 718 552 -109 -1408 -2552 775 23343 107323 361097 1043615 2739838 6711885
8 19 30 41 52 63 74 85 96 107 118 129 140 151 162 173 184 195 206 217 228
21 29 29 30 55 141 339 714 1345 2325 3761 5774 8499 12085 16695 22506 29709 38509 49125 61790 76751
15 35 68 129 242 440 765 1268 2009 3057 4490 6395 8868 12014 15947 20790 26675 33743 42144 52037 63590
17 24 25 29 57 141 323 654 1193 2006 3165 4747 6833 9507 12855 16964 21921 27812 34721 42729 51913
15 33 74 149 271 454 709 1037 1419 1803 2088 2105 1595 184 -2645 -7583 -15529 -27627 -45306 -70323 -104809
-5 0 30 100 240 524 1112 2315 4716 9424 18625 36759 72943 145738 292097 583418 1153161 2242584 4273936 7964054 14495898
8 3 -2 -12 -31 -54 -48 97 676 2387 6770 17125 40496 92007 204272 447475 971345 2091090 4459978 9410214 19617066
18 42 89 176 339 657 1289 2526 4871 9189 17032 31374 58243 110193 213346 421080 839804 1676592 3326619 6533852 12687463
24 33 32 19 -8 -50 -102 -136 -49 473 2262 7289 19835 48621 110656 238316 492843 991157 1960791 3853889 7582363
14 18 21 39 110 315 811 1883 4040 8205 16089 30927 58972 112662 217520 427204 855716 1744348 3596383 7439559 15322188
-3 -4 -1 10 37 92 191 354 605 972 1487 2186 3109 4300 5807 7682 9981 12764 16095 20042 24677
24 46 92 185 368 710 1323 2418 4443 8365 16192 31899 63053 123665 239189 455253 852922 1575720 2878724 5220673 9441526
5 11 17 26 37 47 59 104 294 932 2714 7067 16676 36262 73682 141431 258635 453633 767255 1256912 2001623
3 13 39 95 206 420 835 1646 3233 6351 12563 25196 51317 105537 216866 440362 875931 1697317 3195027 5837601 10356172
23 34 50 90 186 399 850 1766 3541 6812 12550 22166 37632 61617 97638 150226 225107 329398 471818 662914 915302
14 19 27 31 29 47 188 717 2202 5752 13431 28996 59229 116338 222228 415936 766238 1392433 2497659 4420877 7715957
22 48 88 154 266 456 777 1319 2240 3845 6813 12814 26034 56648 128255 293079 661970 1461954 3143994 6580482 13420090
9 27 57 116 231 448 867 1716 3482 7124 14399 28336 53896 98861 175007 299642 497639 804177 1268533 1959460 2972957
-5 2 26 89 231 516 1037 1929 3411 5887 10136 17600 30719 53137 89384 143329 214445 291300 344296 328391 229769
10 30 73 147 251 375 503 626 792 1256 2850 7776 21139 53687 126416 277935 575774 1133162 2133207 3862881 6759755
6 25 64 130 230 371 560 804 1110 1485 1936 2470 3094 3815 4640 5576 6630 7809 9120 10570 12166
5 21 49 96 188 381 773 1520 2870 5250 9472 17165 31591 59064 111262 208803 386547 701187 1241803 2144174 3609774
4 8 11 19 52 164 473 1201 2724 5632 10799 19463 33316 54604 86237 131909 196228 284856 404659 563867 772244
16 17 21 43 115 288 629 1207 2056 3095 3975 3811 743 -8746 -30845 -75873 -160312 -309571 -561663 -972005 -1619581
20 41 64 95 146 226 334 465 656 1126 2602 6972 18466 45637 104496 223248 449180 858367 1568988 2759181 4690514
24 42 78 154 311 626 1242 2425 4680 8984 17234 33088 63554 122049 234333 449868 862900 1650010 3134026 5887858 10895573
13 24 35 46 57 68 79 90 101 112 123 134 145 156 167 178 189 200 211 222 233
12 33 64 116 215 402 733 1279 2126 3375 5142 7558 10769 14936 20235 26857 35008 44909 56796 70920 87547
3 3 4 -1 -25 -93 -238 -474 -732 -738 206 3624 12659 33762 80457 181823 401424 878936 1920547 4193588 9142746
10 16 43 118 281 578 1050 1719 2572 3544 4501 5224 5395 4586 2252 -2271 -9762 -21104 -37265 -59270 -88163
7 21 40 64 88 114 190 496 1519 4408 11689 28662 66010 144437 302531 609532 1185287 2230407 4070518 7219532 12468068
18 19 20 24 31 50 138 480 1524 4185 10132 22172 44745 84544 151274 258564 425046 675615 1042884 1568848 2306771
2 13 45 110 219 374 557 718 762 535 -171 -1502 -3053 -2416 8385 50602 173946 484417 1192461 2692454 5688803
14 41 93 176 304 512 878 1570 2957 5860 12072 25350 53185 109799 221015 431914 818552 1505483 2691447 4686364 7963758
9 29 64 128 257 525 1071 2144 4177 7920 14718 27142 50410 95443 185129 366688 735437 1479587 2963316 5878324 11515435
16 19 24 34 52 86 175 455 1295 3545 8960 20916 45648 94464 187794 362623 685982 1278943 2358276 4306974 7790760
19 39 73 124 205 360 708 1522 3349 7176 14664 28524 53217 96349 171431 303116 536647 954093 1701059 3028980 5359901
11 21 45 102 218 437 855 1689 3406 6966 14280 29052 58269 114730 221168 416748 767160 1380593 2434552 4224642 7259199
-4 2 19 63 173 427 963 2005 3894 7124 12383 20599 32991 51125 76975 112989 162160 228102 315131 428351 573745
-1 12 34 70 130 233 433 882 1953 4463 10073 22022 46520 95464 191794 380004 746419 1457358 2828948 5451118 10401486
14 22 35 60 104 174 277 420 610 854 1159 1532 1980 2510 3129 3844 4662 5590 6635 7804 9104
9 37 74 115 162 231 359 611 1087 1929 3328 5531 8848 13659 20421 29675 42053 58285 79206 105763 139022
14 30 60 115 225 452 920 1889 3925 8250 17403 36422 74887 150368 294152 560732 1043848 1904908 3426737 6121852 10960199
13 33 68 117 181 265 378 540 811 1358 2581 5358 11617 25866 59349 140794 342438 839116 2034831 4820180 11072302
4 10 23 53 125 287 615 1215 2234 3916 6792 12205 23585 49261 108196 240939 529400 1130878 2334229 4649285 8944773
0 12 47 122 268 538 1015 1820 3120 5136 8151 12518 18668 27118 38479 53464 72896 97716 128991 167922 215852
16 25 37 67 148 350 815 1820 3891 8002 15904 30640 57313 104185 184196 317003 531650 869991 1390999 2176105 3335722
7 13 27 67 162 360 754 1548 3200 6702 14102 29466 60657 122623 243399 474813 911029 1719659 3192341 5824533 10437948
-8 -6 13 71 198 436 844 1494 2438 3610 4612 4343 514 -10667 -33824 -70889 -110866 -105267 85552 803711 2818074
14 38 85 184 375 702 1212 1984 3240 5642 10963 23451 52427 117093 255476 541581 1119610 2274418 4578809 9201258 18541055
25 31 44 84 187 422 919 1908 3776 7176 13278 24350 45030 84981 164300 324477 650636 1316593 2675177 5435792 11004698
9 26 59 113 201 356 655 1271 2590 5462 11709 25122 53406 111972 231249 470433 942467 1857869 3599689 6850972 12816343
10 12 36 106 267 608 1301 2667 5287 10193 19221 35721 66061 122837 231568 444139 864652 1697018 3328986 6474792 12408627
-6 -12 -21 -25 -9 50 197 540 1338 3167 7211 15746 32911 65891 126673 234577 419810 728342 1228459 2019409 3242623
11 18 25 32 39 46 53 60 67 74 81 88 95 102 109 116 123 130 137 144 151
8 25 53 92 140 193 245 288 312 305 253 140 -52 -343 -755 -1312 -2040 -2967 -4123 -5540 -7252
4 1 3 27 99 259 583 1232 2552 5276 10917 22488 45750 91310 178160 339843 635656 1171627 2140131 3893921 7081377
11 10 14 35 90 206 432 858 1641 3038 5446 9449 15872 25842 40856 62856 94311 138306 198638 279919 387686
22 25 22 26 60 148 307 546 877 1354 2199 4172 9516 24086 61732 152899 361419 818276 1792455 3844615 8164667
-3 7 45 125 273 545 1066 2109 4251 8673 17706 35760 70818 136787 257331 472725 853469 1529147 2750403 5019227 9352947
7 32 75 134 205 297 459 819 1635 3358 6707 12756 23033 39631 65331 103737 159423 238092 346747 493874 689637
0 8 21 33 39 54 146 483 1394 3444 7523 14949 27585 47970 79464 126407 194292 289952 421761 599849 836331
22 34 62 131 281 582 1166 2282 4380 8230 15082 26873 46487 78074 127434 202472 313730 475002 704038 1023343 1461077
3 -3 -15 -33 -55 -62 6 285 1050 2841 6711 14709 30853 63183 128177 260102 530081 1083209 2207481 4456263 8857341
7 17 23 19 9 21 127 486 1444 3743 8904 19860 41950 84508 163610 307266 565741 1032145 1882461 3450445 6362167
4 8 22 58 134 291 630 1388 3082 6765 14463 29914 59853 116367 221424 415775 776340 1449322 2711168 5076766 9484732
3 14 43 100 210 428 854 1648 3045 5370 9053 14644 22828 34440 50480 72128 100759 137958 185535 245540 320278
25 35 49 81 159 342 749 1609 3351 6777 13410 26194 50855 98422 189666 362554 684245 1269687 2309519 4110751 7154599
14 21 39 94 224 484 956 1776 3220 5944 11563 23901 51474 112113 241132 505141 1024546 2009023 3811863 7011128 12528108
18 22 24 21 6 -31 -86 -99 120 1002 3370 8631 19008 37809 69728 121171 200598 318870 489588 729409 1058322
8 4 7 36 124 333 786 1725 3601 7201 13831 25623 46145 81700 144044 255782 460470 840522 1547463 2850958 5215466
17 28 49 99 207 409 756 1355 2488 4902 10453 23452 53362 120043 263748 563961 1174814 2392019 4780564 9420616 18383440
19 42 90 172 300 490 761 1142 1717 2770 5136 10920 24814 56322 123295 257282 511319 970906 1769062 3106500 5278128
-1 9 28 56 93 139 194 258 331 413 504 604 713 831 958 1094 1239 1393 1556 1728 1909
13 33 63 122 241 460 825 1385 2189 3283 4707 6492 8657 11206 14125 17379 20909 24629 28423 32142 35601
18 27 51 105 210 393 687 1131 1770 2655 3843 5397 7386 9885 12975 16743 21282 26691 33075 40545 49218
11 21 46 97 193 366 668 1191 2111 3761 6726 11936 20718 34781 56227 88111 137295 224377 412322 879711 2092491
6 19 43 73 105 142 201 321 572 1065 1963 3493 5959 9756 15385 23469 34770 50207 70875 98065 133285
14 20 43 96 205 428 876 1735 3301 6063 10913 19662 36281 69839 141311 298920 651705 1441036 3189732 7007974 15213130
7 27 66 140 273 497 852 1386 2155 3223 4662 6552 8981 12045 15848 20502 26127 32851 40810 50148 61017
1 12 30 55 87 126 172 225 285 352 426 507 595 690 792 901 1017 1140 1270 1407 1551
-4 -7 6 49 136 281 498 801 1204 1721 2366 3153 4096 5209 6506 8001 9708 11641 13814 16241 18936
11 14 18 38 107 278 632 1311 2606 5149 10293 20835 42382 85939 172805 343763 676168 1315542 2534037 4839292 9178800
2 4 11 33 79 152 244 331 368 284 -23 -691 -1899 -3872 -6886 -11273 -17426 -25804 -36937 -51431 -69973
14 14 10 2 -8 -24 -60 -134 -247 -339 -196 783 4227 14509 42992 117673 303448 741928 1725310 3826880 8122058
12 10 6 4 11 37 95 201 374 636 1012 1530 2221 3119 4261 5687 7440 9566 12114 15136 18687
13 20 27 34 41 48 55 62 69 76 83 90 97 104 111 118 125 132 139 146 153
-6 -4 8 32 81 194 469 1133 2672 6048 13034 26702 52103 97182 173975 300139 500870 811268 1279212 1968812 2964509
-7 -7 10 71 227 566 1230 2446 4586 8273 14551 25150 42945 72947 124844 219801 408064 812066 1726241 3836910 8686204
6 17 43 102 238 533 1128 2271 4426 8500 16275 31169 59494 112430 208992 380332 675790 1171187 1979939 3267664 5271054
-1 12 45 102 183 284 397 510 607 668 669 582 375 12 -547 -1346 -2433 -3860 -5683 -7962 -10761
20 38 76 145 269 507 980 1895 3562 6409 11006 18095 28567 43214 61926 81867 94208 79512 3336 -183235 -527535
11 17 38 85 165 282 449 719 1244 2386 4943 10630 23099 50057 107582 228809 481245 1000903 2058564 4185863 8409645
-4 2 23 68 146 266 437 668 968 1346 1811 2372 3038 3818 4721 5756 6932 8258 9743 11396 13226
27 57 98 151 237 422 867 1927 4340 9587 20592 43100 88355 178137 353879 692653 1334714 2530900 4725103 8699880 15836006
1 14 50 138 328 711 1464 2934 5783 11229 21435 40119 73480 131543 229979 392268 651589 1050788 1636808 2442508 3443080
19 29 46 91 194 406 841 1763 3732 7817 15864 30768 56648 98793 163296 256523 385125 558401 796734 1152901 1757738
13 37 70 112 163 223 292 370 457 553 658 772 895 1027 1168 1318 1477 1645 1822 2008 2203
10 28 67 149 318 659 1328 2607 5009 9476 17753 33118 61871 116451 221938 429262 841028 1659924 3275775 6416139 12397756
6 21 54 106 169 234 324 572 1376 3679 9455 22554 50197 105644 212909 414884 786866 1458249 2646020 4704634 8197761
6 12 18 24 30 36 42 48 54 60 66 72 78 84 90 96 102 108 114 120 126
15 34 73 145 258 418 638 957 1490 2560 5006 10817 24311 54160 116657 240729 475321 899910 1639055 2882049 4908912
21 40 71 124 213 359 605 1057 1983 4039 8765 19642 44303 99108 218519 474039 1011681 2124154 4385819 8897208 17714481
18 30 46 65 89 126 198 368 808 1946 4768 11433 26515 59454 129224 272864 560430 1120182 2179498 4129193 7621709
11 26 44 66 101 166 293 561 1175 2610 5820 12474 25119 47084 81835 131383 193259 255538 289468 239506 11065
21 38 70 127 230 432 859 1785 3762 7833 15868 31092 58941 108519 195181 345194 604107 1051488 1826178 3168309 5487200
9 10 28 84 222 524 1136 2328 4621 9026 17461 33459 63396 118745 220471 407910 756769 1414902 2671186 5083402 9707186
13 15 31 91 248 589 1254 2471 4631 8465 15450 28679 54623 106574 211226 421036 837005 1649727 3211485 6159471 11620662
7 -2 -12 -16 -9 16 96 361 1145 3173 7887 18036 38751 79463 157207 302095 566043 1036208 1855038 3249368 5571615
3 11 36 96 223 477 974 1940 3821 7520 14909 29886 60431 122413 246441 490099 959927 1851269 3520762 6617456 12316647
1 13 40 100 234 532 1171 2463 4908 9241 16451 27732 44299 66964 95316 126283 151771 154973 104818 -52116 -403072
15 32 61 115 216 409 800 1623 3347 6850 13718 26781 51089 95697 176978 325002 596485 1102414 2068745 3970445 7823396
15 29 56 121 270 592 1251 2533 4921 9230 16874 30408 54600 98451 178805 326486 596275 1082507 1942636 3431795 5952178
7 25 64 131 229 363 547 811 1221 1965 3653 8177 20861 55354 144069 359480 856203 1952117 4281458 9077979 18688197
24 41 62 85 104 121 176 407 1164 3220 8148 18975 41310 85330 169392 326765 618248 1155531 2143418 3953905 7252132
5 17 53 139 320 679 1367 2644 4940 8972 16011 28493 51314 94333 176804 334621 631315 1173583 2131613 3763411 6440504
11 21 36 58 100 209 504 1239 2917 6511 13888 28577 57079 111038 210938 392938 722755 1325501 2450316 4607036 8844274

3
2023/day09/test Normal file
View file

@ -0,0 +1,3 @@
0 3 6 9 12 15
1 3 6 10 15 21
10 13 16 21 30 45

57
2023/day10/day10.bqn Normal file
View file

@ -0,0 +1,57 @@
nmgrid>•FLines"input"
Dirs"|-LJ7F"=/¯10,10,0¯1,01,¯10,01,¯10,0¯1,0¯1,10,01,10˙
Advance{
'S'=(𝕩)grid ? 𝕩 ;
nextpos(𝕩)+(-´2𝕩)¨/Dirs(𝕩)grid
nextpos𝕩
}
sposm(÷˜|)/grid='S'
startspos+01,spos # works for my input
pathAdvance(n×m)start
•Show 2÷˜1-˜path
# First method, using the parity of the number of vertical pipes crossed on each side
# Only takes into account the ones connecting above, because "FJ" is equivalent to a single "|"
pathmask1+(path) nm0
cleangrid'.'˙¨((¬pathmask)(/))grid
inmask(¬pathmask)(m){´2|+´¨"JL|"¨𝕨()𝕩}<˘cleangrid
•Show +´inmask
# Second method for part 2, using Pick's theorem and the shoelace formula
# https://en.wikipedia.org/wiki/Pick%27s_theorem
# https://en.wikipedia.org/wiki/Shoelace_formula#Shoelace_formula
# Area inside the polygon, using the shoelace formula (determinant)
a|2÷˜-´+˝(˘1)×>path
# Number of points in the boundary = length of the path
bpath
# Pick's formula to compute the number of points inside the polygon
•Show a+1-b÷2
## Display the path in the terminal as Unicode box drawing characters
# ReplaceChars←⊑(=⟜"|-FJL7.S"/"┃━┏┛┗┓ █"˙)
# •Out ⥊∾⟜(@+10)˘ReplaceChars¨cleangrid
## Generate an image of the path and its interior
# ⟨PBM,PPM⟩←•Import"../../bqn-graphics/pnm.bqn"
# pixels←3‿3⊸⥊¨⟨
# 9⥊0‿1‿0,
# 0‿0‿0‿1‿1‿1‿0‿0‿0,
# 0‿0‿0‿0‿1‿1‿0‿1‿0,
# 0‿1‿0‿1‿1‿0‿0‿0‿0,
# 0‿1‿0‿0‿1‿1‿0‿0‿0,
# 0‿0‿0‿1‿1‿0‿0‿1‿0,
# 9⥊0,
# 9⥊1,
# 9⥊1,
# ⟩
# ReplaceCharsPixels←⊑(=⟜"|-FJL7.SI"/pixels˙)
# •Out PBM ¬∾˝∾˘´˘ReplaceCharsPixels¨ 'I'˙¨⌾(inmask⊸(/○⥊)) cleangrid
## With color representing the distance from the start
# ⟨Inferno⟩←•Import"../../bqn-graphics/colormaps.bqn"
# pixgrid←ReplaceCharsPixels¨cleangrid
# coloroffset←1500
# colors←⌊255×Inferno¨(coloroffset+2÷˜≠path)÷˜+´path{𝕩⊸+⌾(𝕨⊸⊑)n‿m⥊0}¨coloroffset+⌊˝(⌽≍⊢)↕≠path
# •Out PPM >∾˝∾˘´˘colors{𝕨⊸ר𝕩}¨pixgrid

140
2023/day10/input Normal file
View file

@ -0,0 +1,140 @@
---7|.|-7F7.-FF-77FF7J-L-77.JF-.FLJ-7.F77F7-J-L7LF7J.L7.-L-.F7-7F7-|-F---..FFF7-L|.|..-.|J.F-77--77|--J.LFLF7F-|7-|.LFF-FJ7FL--7F-FJ-J-L.FFJ
L7--F.F-F7-7J..|L---JL.J7.777LLF|L|FJ-LJ-JLFJ|FL-|.L7|F-JFJFJ||-L7||-F7J|FJLJ||-7|FFL7..|.--|L-J|L-JJJJFLL7L7--JJ7LF.7J-J---LJ7F|JLL.|7|7F|7
FJ--J.|.|L7J|--7FLJJF.FFF---||L-JF-F7.L|L|F|7-7-FL7-LFJ-|J-|7L.F-L7J7|F77FL7|-JF7|F7FF7FF77.L-..J||LL7F77|7J..7JLFF-7L7|FJ.F|7|-L77|FL-JF-JF
F|LLJ.F-F-JLJJLL-JLF-77L.L|FLJJ|-|F-J7FJJFJ|L7L-JF|.F7.L7.FLJ.7JF-L|-F.|77JFFJLLL-JF-|||LJJ.L.77-L7-LJ7---|7FF7|.L-J7FF--.F7|LF7LLJ777.|F---
J..|F-7|J.|FLF.L|.L-.F--F-F-.FFJ-7J-LF-J-|.|-7.|FF-L||7|F77-|FL.L.7|.L7L-|LF--7|LJ7|F--JFJ.F.|.7.F|-|.J-|J|.|-|-L.|F7JJ7..||LL.|.|F7.-77L--L
|L77|F|-7FFJ.7----7JL--F77LJ-LJLFLJJLJLL-L---JF-|7LL|L77J.F7-|.L-7-J7L7--J-F7|LJ7LLL7JJ7F-|-F--7-F7-7.|L-77-L---.7--|JL7-J|L..FJ.FLJ-F|.F|-J
7LLF-FF77-J.-JF|J-|J.|7|F-J-JJL7JF77.|7|F-L|FF7-FJ7-L7L7F7|||.|7L|J..||||.F|--7L-L7LL7.L||L.L-7L7||F77F-|.J-F-...-77.JFJ7||F-FF7.|JJL-F.FLJ|
L-FL7-JL|.7-7FLFF-F--77-LJ|FLF-7F7J|FLF-7...LJJLF-F-7L7||||L7FL77J.FJJFFF-JJL|FJ--LJ.|7JF|7F|FL7||LJL7JJ|J|-L-J-LLJ--7|FJJL7.|J|.L|7FLL-|J7F
|--JJF-7L-7|L-JLL7LLJ||.LJFFFL7LJ|FLF7LLL7FFJJFL|FL7|J|LJLJFJ7LJJ7F||LFJF-7J.777F-L-.77F|JLF-7FJ||F--J.F7-|7L7J|FL|7F---.FLJ7J7L-JLLLJJ7|F-7
7-|LLJ.L-||F||J|F--|L-JJ|-FLF-JF-J7J|L7JLF77FLF-7F-JL7L-7F-JJF7JFFFLL--.LL7FFF777||LFJLF77FL7LJFJ||F7F77L-7-F|LF7JL-7.|.F-.L|J|-|FL-J.FJ||-L
JLF-7-7J.LL|-J|L|F-7.|.FL.L-L-7|LF-7|FJJL|L7J.L7|L--7L7FJL---7F-77|.LL-L7-LF-JL7F7F77JF--7F7L-7L7|||LJ|7LFF777FJL7-J|F|FF.-.LFJ.77FF--|7|JLL
|F|.7FL-J.F-77L7L7F|777L.LLF--J|FJFJ||.FFJFJFF-JL7F7|FJL-7F--J|FJ-F7.L7.|.FL--7LJ||L-7|F-J||F7|FJ|||F-J7-FJL-7|F-J7JF7LJLJ|F-LJ.LFLF7JLJ7.FL
FJ|7L7-JJFLLF-F7|F-LF-7L|JLL--7||FJ-||F7L7|F7L--7||LJL7F-JL-7FJL7FJL--77FFF7F7L7FJ|F-J||F-J||||L-J|||F7F7L-7FJ||-F7F-7-|JF|7F7.F-JJ|F7LL|LJJ
L7J77.F7.L7|.F-J-LJLJLL-|-F7FFJLJ|F7||||FJ|||F7FJ|L--7|L7F--JL7FJ|F-7FJF7FJLJL7|L-JL7|||L-7|||L-7FJ||||||-FJL-J|FJ|L7|7|-FJ-7J-|.J7FJ|7F||J.
LF7F7-|-.|-FF||.-JF|F|.F|7|L7L--7||||LJ|L7LJ|||L7L7F7|L7|L-7F7||FJL7||FJ|L-7F-J|F--7L-JL-7||||F-J|FJLJLJL7L---7LJFJFJL-7-7-L-7||F.|J||FFJ7.J
77FL--JLFF.|-F7-FF|-777F77|FJF--JLJLJF7|JL-7|||FJFJ||L7|L-7LJLJLJF-JLJL7||FJL7FLJF-JF7F-7||LJ|L-7|L7F----JF7F-JF-JFJF7FJL|.-L77LL-J-LJ.J-LJ.
--L.F|J.77-7L|.FL7J|||L||FJ||L-7F7F--JLJF7FJ|||L7|||||||F7L-7F--7L-7|F7|L-JF-JF7FL--J||.|||F-JF7||F||F7F7FJ|L-7|F-JFJLJ|.LF7FJ-7|J|.LFJJJ7|7
|J.F7J7LJLF7.|7--|JJLF-|||FJF7|LJ||F--7FJ|L7LJL-JL7|L7|LJ|F7||F7L--JFJ||F-7|F7||F-7F7LJFJLJ|F7|||L-JLJLJ|L7L7J||L7FJJ.FJ-JJ||LFFJL77-77|.FL.
--F7L-J-L.LJJ.|J-|77-F7||||FJ|F--J|L7FJL7L7|F-----J|FJL7FJ||||||F7F7L7|LJJ|||||||FJ|L7FJF-7||||||F--7F-7|FJFJFJL7||F7FL7F-7F-7F7LF--JL--FFJF
|.||7|.7L7||LF|7.LL7.|LJ|||L7|L--7|J|L-7L7||||F-7F-J|F7|L7|||LJLJLJL7|L7F-J||LJ||L7L7|L7|FJ||||||L-7LJ7LJL7|FJF-J|LJL7L|JJFL7|7|-7.|-LFJ.LJL
7-FL7FFJ7.F7JFF-7JLLFJF7LJL7||7F-JL-JF-JFJ||L7|FJL-7|||L7LJLJF------J|FJL-7||F-JL7|.|L7LJL7||||||F-J|F77F7|||FJF-JF--J-JF7-L||F7-|J..|.LJF7|
|7LFLJL-J.||F7|.|7FJL-JL7F7LJL7L----7|-FJFJL7LJL7F7|LJL7L-7F-JF---7F7|L7F7||||F7.|L7L7L---JLJ|||||F-7|L7||||||7|F-JF7.|7|JFFJLJ|J|L777FFLL-7
7777F|F.L7--J|F|FF-7LF--J|L-7FJF----JL7L7L7FJF--J||L7F-J7FJL-7L7F7||LJFJ|||LJLJL7L7L7L------7LJ||||FJ|FJ|||||L-J|F7||F7F-7FJF--J7LFJ.F777-|J
|L.-L|J---7|.F7.FL-F-L--7|F-JL7L----7FJ.|FJL7L7F7||-||F7FJF--JFJ|LJL-7L7||L--7F-JFJFJF-----7L-7LJ||L-JL7|||||F7FJ|||||||FJL7L7.FJ-|.-JL..F|J
|.L-FL|J7.LJF||-LJF|7|F7LJL--7||F7F7||F-J|F7L7|||||FJ||||FJFF7L7|F7F-JFJ|L7F7|L-7L7L7L--7F7L--JF7LJF--7|||||||LJFJLJLJLJL7FJFJ7FJJ|7FFJ-|7|.
||FF7.L--7-F-J|.FFF7F-JL-7F--JL7|LJ||LJF-J||.|LJLJ|L7|||||F7|L7|LJ|L-7L7L7||LJF-JJ|FJF-7LJL----J|F-JF7LJ|||||L-7|F7F-----J|FJ|7JL-L77L-JLLL7
J||7JFFL-L-L-7|F7F||L--7FJL---7|L-7|L-7|F-JL7L---7L7|LJLJLJ|L7||F-JF7L7L-J|L-7L7F7|L7|FJFF7LF7F7|L--JL7FJ||LJF-JLJ||F7F7|FJL-7.L|LFLJ.F7.F|.
.FFJ7-JJ.FF7F||||FJL7F7|L7F---J|F-JL7FJLJF--JF7F7L7|L7F7F--JFJLJL7FJL-JF--JF7|FJ|LJFJ|L7FJL-J|||L7F---JL7||F-JF77FJLJLJL-JF--JF77FJJ|F|-F-L.
J.J.F-..FFJL-JLJ||F-J||L7LJF--7|L--7||F-7L--7|LJ|FJL-J||L7F7L7F--JL---7|F7FJ||L7|F7L7L7||F7F7LJ|FJL-7F7FJ||L-7||FJF-7F---7L---J|JFJ77|JL|JL-
J-|F-7F--|F7F7F7|||F7|||L7FJF-JL7F7||||JL---JL7FJL7F--JL-J||J|L7F7F--7|LJ|L7||FJLJL7|FJ|LJLJL-7||F7FJ||L7||F-J||L7L7|L--7|F----JFJ.L-F7.|F7J
.LL|L|||J||LJLJ|LJ||LJ|F7LJ-L--7||||LJL--7F77FJL7FJ|F77JF7||FJFJ|LJF-JL-7|FJ||L7F77||L7|JF7F7FJ|LJ|L-JL7|LJL-7|L-JFJL---J|L---7LFJ-7J|F7JL--
L7FJ|L7J-LJF7JFL-7|L7FJ||F7LF7FJLJ|L-7F--J||FJF-JL7||L7FJ||||FJLL-7|-F--J||FJ|FJ|L7|L7|L7|LJ|L7L7FJF---J|F---JL7F7L----7FL----JL|--L.FLJF7-L
.|L-7-J7L||||.F--JL7|L7|||L-J|L--7L7FJL-7FJ|L7|F7FJ||FJ|FJ|||L-7JFJL7L--7LJL7||FL7||FJ|FJL-7|FJFJL7|.F7|||F7F7FJ||F7F7FJF7F7F77FF7J7-LJF7L|7
LF7L7.F---FJL7L---7|L7|||L--7|F--JFJL-7FJL7L-J|||L7LJL7||FJ||F-JFJF-JF-7L--7||L7FJ||L7|L7F-JLJFJFFJ|FJL7|||||LJFJLJLJLJFJLJLJL-7||J|7.FFJ.77
F||FL7|FJFL-7|F---JL-J|||F7FJ|L--7|F7L||F7L-7FJ||-L-7FJ||L7|||F7|FJF7L7|7F7|||FJL7||FJL7|L7F--JF7L7|L7FJ|LJ||F-J7F7|F7-L7F----7LJL7J7--J-7-J
F7LJJ-JJFFF-J|L------7LJ|||L7L-77|LJ|FJ|||F7||FJ|F7FJL7|L7|||LJ||L7||FJL7||||||F7|||L7FJL7|L7F7||FJL7||FJF-J||FF-JL-JL7FJL---7L---J7F7J..|||
F7FL7|J-||L-7L-------JF7LJL-JF7|FJF7||FJ|||||LJFJ|||F7||FJ|||F7|L7LJ|L7FJ|||||||||||FJL7F||FJ|||LJF7LJLJFL--JL-JF--7F-J|F----JJF-7.-F..FL|F|
L-7JL7..F-7.L7F-7F7F--JL--7F7|||L-J||||FJLJLJF-JFJ|LJ|||L7||LJ||FJF-JFJL-J||LJ||LJLJ|F-JFJ|L7|LJ|FJL-------7F7F-JF7LJF-J|F7F7F7|FJJ.|.||FL--
||J7F777L7|.LLJ7LJLJJF-7F-J|LJ|L---JLJ|L-7F--JF7|FJF-JLJ|||L7FJ|L7L-7|F---J|F-JL---7|L7.L7L7|L7F7L-7F-7F--7||||F-JL-7|F-J||||||||7|7-F-F7|LJ
||JF||L7.|L7F-7F7F7FFJFJL--J.FJF7F---7L-7||F7FJ||L7L----7||.|L7L7|F-J|L7F-7|L7F7F7FJ|FJF7|FJ|FJ|L--JL7LJLFJLJLJL7F--J||F7|||||LJL-77.|F7-J77
FJ-|.|.F7|FJL7LJLJL7L7L-----7L-JLJ|F7L7J||LJ|L7|L7L7F--7|LJFJFJFJ|L7FJFJ|F||-LJ|||L7|L-J||L7LJ-L--7F-JF--J-F7JF7||F7-|LJLJLJLJF---JJ|J--7|-|
||F|7F7F-J|F7|F---7L-JF----7L7.F-7FJL-JFJL-7L7|L-JFJL-7||F7L7||L7|FJ|FJFJFJL--7||L7|L7F7|L7L-77F7FJ|F7L----JL7|||||L-JF7F---7FJF-77..FFFJ---
-|J|F|LJS7|||LJF7-L---JF7F7L7L7|FJL--7JL7F-JFJL7F-JF7FJ|LJ|FJL7FJ|L7|L7|FJF-7FJ|L7LJF||LJ||F7L7||L7||L------7LJLJLJF7FJ|L-7J|L-JFJ--7J-L|J-|
|.L-FL--J|LJ|F7||F---7FJLJ|FL7LJ|F7F-JF7LJF-JF7||F7||L7|F-J|F7|L7|F||FJ|L7L7|L7L7|F--J|7F7LJL-J||FJ||F-7F7F7L-7F-7FJLJFJF7|FJF7FJJ.LL|.|L77J
.7.FLF-7FJF7LJLJ|L-7FJL--7L-7L-7LJLJF-JL7-L-7|LJ||||L7||L-7LJ|L7|L7LJL7|FJFJL7L7LJL7F7L-JL----7||L-JLJ7LJLJL-7|L7|L--7L-JLJ|FJ|L7J7|.F..F--7
|FFF7L7|L-JL---7|F7|||F--JF7L-7L----JF-7L7F7LJLFJ||L7||L7FJF-JFJL7|F--J||FJF7|FJ.F7||L7F---7F7||L--7F7F------JL7||F--JF7F7J||-L-JJLJ.JJ-7|F7
F--J|FJ|F------JLJLJL-JF7FJ|F7L------JLL7LJL--7L7||FJ|L7||7L-7L-7LJL--7||L-J|||F-JLJL7||F--J|LJL--7|||L------77LJLJF--JLJL7|L-7F7.FJ7.LL|J7.
L--7|L7LJF------7F7F-7FJ||-LJL---------7|F---7|FJ|LJ||FJLJF--JF7L-7F--J|L7F-JLJ|F7F7FJLJL7F7L-7F--JLJL------7L--7F-JF7F---JL-7LJL-7.|7-FJFJ7
F--JL-JF-JF7F--7LJLJ-LJLLJF----7F------JLJF7FJ|L7L-7FJL--7L7F7||F7|L-7FJFJL-7F7|||||L---7LJ|F-JL-----7F----7L---J|F-JLJF----7|F7F-JF-L7L-|||
L7F7F--JF-J||F7L7LF77F7FF7L---7LJF----7JF7||L-J.L7FJL7F7FJL||||||LJF-JL7L7F7LJ|||LJ|F7F7|F-J|F-------J|F---JF--77||JF7|L7F7FJ||LJJJ-7LF.LFJJ
LLJ|L7F-JF7LJ|L7L-JL-JL-JL-7LFJF-JF--7L-JLJ|JF77||L-7||LJF7|||||L-7L-7FJL|||F-JLJ-FJ|||LJL7FJL7F7F7F-7|L-7F7L7FJFJL-JL--J|LJ-LJ||7|F|-|7FLJJ
L|LL-JL7FJL-7|FJF7F-7F-7F-7L-JFJF7L7-L7F7F7L-JL7FJF7||L7FJLJ|LJL--J|FJ|F-J||L-7JF7L7||L-7FJL7FJ||||||LJF7LJL-JL-JF7F7F--7L7F7F----7-FJL7J.LF
.F-LL-L||F--J|L-J|L7||FJ|LL-7FJFJL-JF7LJLJL-7F-JL-J|||FJL7F7L---7F--JFJL-7||F7|FJL-J|L7FJL7FJL-JLJLJF--JL------7FJLJ|L7-L7LJ||F---J|L--L7-7J
FJ777-L||L--7||F7L7|LJL7|F--J|7L----JL-7F7F7LJF-7F7||LJF-J||F7F7|L7F-JF--J|LJ||L7F-7|F||F-JL7JF7F7F7L---------7LJ7F7L7L-7|F7LJL-7-|--|L||L||
LL7FJJFLJJ.LLJFJ|7LJF--J|L-7FJF---7F7F7LJLJL-7L7LJ||L-7L7FJ||LJLJ|LJF7L7F7L-7||FJ|FJL7|||F7FJFJ||LJ|F7F---7F--JFF-J|-L7FJ|||F7F-J.-JF|.F7FFJ
F7L7.FF|JJFJF7L7|F7FL--7|F-J|FL7F7LJLJL7F---7L-JF-JL-7|FJL7|L7JJ-F--JL-J||F-JLJL-JL--JLJLJLJJL7|L-7|||L--7|L----JF7|F7LJ|LJLJLJJL|F|LL7L.-|J
7FFLJJL||.FFJL-JLJ|F7F7LJL--JF7LJ|F---7||F77L7F7L7F77LJ|F-JL7L7F7L-7F7F-J|L---7F------7F7F-7F-JL--JLJL---J|F-----J|LJ|F--7F7F-7.LF-|-|-|FLJ.
--7|.J7|FF-JF7F--7LJLJL------JL-7LJF-7|LJ|L-7|||FJ||F7.|L7LFJFJ|L--J||L7FL7F-7||F7F7F7LJLJFJL7F7F-7F---7F7LJF7LF-7|F7LJF7LJLJFJ-.LF|FJ|FJ7-7
LLLF|7F|7L--JLJF7L------------7FJ7FJJLJLFJF7||||L-J||L7|FJFJFJLL7F7FJ|FJF-JL7||||LJLJL---7L-7LJLJJLJF7|LJ|F-JL7|FJLJ|F-JL-7F7L7--7||7|F|L-7J
.7--L|FL-F-----JL7F77F-7JF7F7FJL-7L--7F7L7|LJLJL7F-J|FJLJ7L7L--7LJ|L7||FJF7FJLJLJ|F7F7JF-JF7L7F-7F7FJL--7LJF-7LJL-7-LJF7F7LJL7||.FJL7--JLJ-J
F||L7L-JLL7F----7LJL7L7|FJLJ|L7F7|F--J|L-JL----7LJ7FJ|F7F7FL7F7|L|L-J||L7||L-7F---JLJL-JF7|L7|L7|||L---7L--JFJF7F-JF7FJLJL7F7LJFF--F||.F77|.
7|FLLFL7|JLJFF7JL--7|FJLJF-7|-||LJL---JF-------JFF7|FJ|LJL7|LJLJ7-LJ|LJJLJL7FJ|F--------JLJFJL-JLJL--7.L---7L-J|L--JLJF--7LJL---7.F|F7.LLJ||
F-77LJ-|7.F7FJL----JLJF-7|FJ|FJL------7L--7F7F7JFJLJL-JF7FJ7JJ.|J-|.L.J7LLL|L7||F---------7L--------7|F----JF-7|F7F---JF7L------J.LJ7LFFJLFJ
.-L--J-F-FJLJF-------7L7LJL7LJF7F----7|F7FJ|||L-JF-7F--JLJL-7-|.|LJ.LJFJ|.LL-JLJL7F-7F-7F7L---------JLJF---7|FJLJLJF---JL7LF--7J||J7|F|-7F-7
F|LLLJF|FL---JF------JFJFF7L7FJLJF7F-JLJ|L7|||F--JFJL---77|.|LL-77JF-LL--7..L||F7LJFJL7||L7F-7F7F7F7F7FJF--J|L-7|F7|F-7F7L-JF7L-7JLJJ|JFJ--7
F|.|L-LF7LF--7L---7F7FJ7FJL7LJF--JLJF7F7L-J|LJL--7L7F7F7|F-7||F7J|FF..J-J.J-7|FJ|F7L--J||-LJ7LJLJLJLJLJ7L--7|F7L7|LJL7LJL---JL-7|-7.F|F-|FLJ
||FL-7FLF-L-7L-7F-J|||F-JF7L--JF7F--JLJL7F7|F-7F7L7LJLJ|LJFJ7F7--77..-J-F..||-L7||||F7LLJF-7F-7F7F-7F7F-7F7LJ|L-J|F--JF----7.F7LJJ|FLF7-7--J
L77..77-|-F7L-7|L--JLJL--JL--7FJ||F-----J||||-|||FJFF7||F-JJFJJFL|J7F-L7.L-FFJFJLJL-JL7F7L7|L7LJ|L7|||L7LJL7FJF77|L---JF--7L-JL7J|F|LF|JJ..|
JJL-.JJF7FJL--J|F7F7F7F7F----J|FJ|L------JLJL7LJ|L--JL7LJF7F7JJFFJ-|--FLF--FF-JF7F7F-7LJL-JL7L-7|FJLJL7L--7||FJL7|F----JF7L---7||F-J|||L7.F|
.FJL77L|LJF---7LJLJLJLJLJF----JL-J|F7F7F7F7F7L-7L7F7F7|J.||||FF77J-LL.F7.7|.L--JLJ||FJF7F-7FJF7|LJF--7L7F-JLJ|F-J||F----JL7F-7LJJLJFL-F7|.F7
LJ.7L|-L-7|F7|L-7F-------JF7F7|F7F-JLJLJLJ|||F7L7LJLJLJLFJ||L-JL77.LJ7LJ7LF.FF-7J|LJL7|LJFJ|FJLJF-JF-JFJL----JL--JLJF-----J|FJ7.|7.F|7LLJF|.
F-FJFL7|FLJ|L---J|FF---7F-JLJL-JLJF-----7.LJLJL-JF7F-7F7L7||F-7FJ.|JL|J..|F-7L7|FF7F7LJF7L7LJF-7|F-JF7L7FF7F-7F7F-7FJF7F--7|L777-L7||LFJLLJ7
J.J|FL||FJ|L7F---JFJF-7|L--7F--7F-JF7F--JF7F----7|||FJ||FJLJ|.LJJ7|--77-FLL7|FJL-JLJ|F7||FJF7L7LJL7FJL7L-JLJLLJLJ||L-J||F-J|FJL-J.L-7-|.L-LF
L.LF--L7|.LFLJJF--JFJFJL7F7LJF7||F-JLJF7FJLJF7F7LJ||L-JLJF7FJF7J-F|JLJ--|.F||L-----7|||||L7||FJ|F7LJF7L--------7F7|F7FJ|L--JL-7|FFJ.JF|FJJ.|
.-FJ|F|7L77F---JF--J-|F7LJ|F7||LJL----JLJF--JLJ|F7LJF-7F7|||J|L-7--77LL7F|F|L------JLJLJL7LJ||F-JL--JL---------J||LJ|L-JF7F7F7|F7F7-LL7J..F7
7.-7L|J|FF-JF---JF---J||F7LJLJL7F7F------JF7F-7LJL--JFLJLJLJFJF-J|JFJ-.F|LFJF7F---------7L--J|L----7F7F7F-------JL-7L7F7|LJLJLJ||||77.L|7FJ7
J-L77||FFL7FJJF-7L----JLJ|F7F-7LJ|L-7F7F--JLJFJFF-----7F7F--JFJJFJLLJ|-LF.L-J||F-------7|F7F7|F----J|LJLJF7F------7L7LJLJF7F7F7|LJL---777|-|
.|.LF77-|J||F-JFJF-------J|LJL|F7L--J|LJF----J-FJF----J|LJF7FJJ--JL|.F.FJ7.L7LJL------7LJ|||||L--7F7L7F--JLJF7F--7L7L--7FJLJLJ|L-7F---J77F7-
L|7FLJJ|J.LJL-7L7L----7F-7|F--J|L----JF7L-----7L7|F-7F7|F-JLJ.|JLF7J7L--.|J7L|.F------JF7|LJLJF-7LJ|FJL---7J|LJF-J-L7F-J|F7F7FJF-JL-7.||F-J|
.|F7FJJF7.JLF7L7L----7|L7LJL7F7L7F----JL----7FJ||LJFJ|||L7F7F77F.FJ.F7LLJLLF7|-L---7F7FJ|L7F7|L7|F7LJF7F--JFJF7|F7F7|L7FJ|LJLJFJF---J-7-J.-|
F-J|LJ-|L-|L||FL-7F-7LJFJ|F7||L-JL--------7.LJJFJF7|FJLJFJ|LJL77-J-L.7J|||.LL-7LF--J|LJLL-J||F7||||F7||L---JFJLJ|LJ||FJL7L7F-7L7L-----7J.F|J
7JFLJ7.F7F|J|L---J|7L-7|F7|LJL7F----------JF7F7L7|LJ|F-7L-JF7FJF7L-J7.L|-|7J|JFFJF7FJF7F--7|||||LJLJLJL7F---JF7F|F-JLJF-JFJL7L-JF-----J.F-F-
L-|.||--F7F7L-----JF7|LJ|LJF7FJL-7F-------7|LJ|FJL--JL7L7F7|LJFJL7J.7.F|FJF---7L-J||FJLJF7LJLJ||F-7F--7|L----JL7|L--7|L-7L--JF--JF77.LJ7L-J.
.L|-||J-|-|L-------JL---JF7|||F7FJ|F------JL-7LJF7F-7FJFJ|||F7L7FJF7F7F7F7L--7|||LLJL-7FJL---7LJL7LJF7|L--7F7F7||F--JF7FJF---JF-7|L7--JF|-J.
FF.|LL--LJL----------7F-7|||LJ||L-J|F----7JF7|F-J|L7|L7L7|LJ|L7||FJ|||||||LF-JL7-F---7|L77F7FJF--JF-JLJF-7LJLJLJ||F7F||L7||F7JL7||FJL7J|77.|
FJL-J..L|F--7F------7LJ7||||F-JL---J|F---JFJLJL-7L-JL7L7LJF-JFJ|||FJ||||||-L--7L7L--7|L-JFJLJFJ7F-JF7F7|FJF7JF7FJLJL-JL-JL7||F-JLJL-7F-7-7L7
|7LL7J-FLL-7|L-----7L---J|||L-------JL----JF---7L--7-|FJF7L-7L-J||L-J||LJ|F---JFJF-7|L7FFJF7FJF7L7FJ||LJL-J|FJLJF7F7F----7LJ||F-----J|FJJ7.7
-J|FJ.FL.F-JL7JF7F-JF7F7FJ||F---7F---7F-7F7L-7FJF--JFJ|.||F7L-7FJL7F-J|F-JL-7F7|FJFJ|FJFJFJ||FJ|JLJ.LJF---7LJF-7|LJLJF-7FJF7LJL----7FJL7LJJ|
F|77J-7|7L7F7|FJLJF7|LJ||7||L--7|L--7|L7|||F-JL-JF77L-JFJ||L--J|F7||F7|L7F7FLJ|||FJFJL7L7L7LJL7L--77F7L--7L-7L7|L7F7.|FJL7||F-7F--7LJF-J7FJ7
-|J|J.L--FJ||LJF--JLJF-JL7LJF--JL---JL7|LJLJ7F7FFJL-7F7L7|L-7F7LJ||LJLJFJ|L7|FJLJL7L-7L7L-JF-7L7F7L-JL---JF7|FJL7LJL-JL-7||||FJL-7L--JJ|LJF7
LF-L7J.FFL-JL-7L7F---JF-7L7FJF7F-----7LJF7F7FJL-JF--J||FJL7JLJ|F-JL-7F-J-L7L7L7F--JF7L7L7FFJFJFJ|L7F7F7F-7||LJLFL----7F7|LJLJL-7FJF-7JF-L-J.
LL-J|J|FF7-LLFJFJL---7||L-JL-J||F----JF7|LJLJF--7L--7|||F-JF7FJL7F7FJ|F7F7L7L7|L--7|L-JFJFJFJLL-JJLJLJLJ|LJL-7-F7F7F7LJLJ|F7F-7|L-JFJ-|7L7.|
F7|7L7-7JF7F7L7L-7F-7LJF7F7F--J|L-----JLJF7F7|F7L---J||||F7||L7FJ||L7|||||FJFJ|F--JL7F-J-L7|F7F7F7F7F-------7L7|||LJL-7F--JLJFJ|F-7L77.7JF-J
|L7J7.FF7||||.L--JL7|F7||||L---JFF-------JLJLJ|L7F7F7||||||||FJ|FJL-JLJ||||FJFJL7F7FJL7F-7|||||||||||F7F---7L7LJLJF7F-JL7F---JFJ|FJFJ7JJ7.F7
JFLF77J|LJLJL-7F-7FJLJ|||||F7F7F7L----7-F7F-7FJFJ|||||||||LJLJFJL-----7||LJL7L7FJ||L7FJL7|||||||||||LJLJF--JFJF7F7||L-7FJL---7L7|L-JLLJF7.LF
FJ..|LFL-----7||FJL7F7LJLJLJLJ|||F7F-7L-JLJFJL7|FJ||||LJ|L-7F-JF-7F--7||L-7FJJ|L7|L7||-FJLJ||||LJ||L7-F7L--7L-JLJLJL-7LJF----J.|L7F7|.||J-|J
|J7F---7|7F7FJLJ|F7LJ|F------7LJLJ|L7|F7F7FJF-JLJFJ|||F-JF7|||FJFJL-7||L-7||F7L7||FJ|L7L-7FJ|||F7LJFJFJL---JLF------7|F7L----7-L7|||7F7L-7L7
.|LJ|.LF7FJ|L-7FJ||F7LJF7F7F-JF7F7L-J||LJLJFJF---JFJ|||F7|LJL7L7|F--JLJF-J|LJ|-|LJL7L7L--J||||LJL7FJ|L-------JF7F--7|||L-----JF7LJ|L-JL7.7..
F7JF7FFJ|L7|F-J|L||||.FJLJ|L--JLJL--7LJF7F7L7|F-7.|FJ||||L--7L-J|L----7L-7L7FJFJF--JJL--7FJFJL--7|L-7F-----7F7|||F7LJLJFF----7|L--JF---J.F--
7J-LJ.L7L-J|L-7L-JLJL7L--7L7F7F7FF--JJFJ||L7|||FJFJ|FJ||||F-JF--J7F--7L-7L7|L7L7|F7F7F7-|L7L7F--JL7FJL----7||LJLJ||FF7F7|F---J|F---JJ.L||77.
L7.LL7|L--7|F7L-7F7F7L-7FL7LJLJL7L-7F-JFJ|FJ||||J|FJL7LJL7L-7L---7L-7|F7L7||FJFJLJ|||||FJFJFJL7|F7||F7.F7FJLJFF-7|L7|||LJL7F--JL----77F|J|F-
7.J7FF7F--J|||F-J|LJL-7|F-JF-7F7L--JL-7|FJL7||||FJL7FJF--JF7|F---JF-JLJL7||||JL7F7LJLJ|L7L7L-7L7||||||FJLJF7F7|FJ|FJ|||F--J|F--7F---J----FJJ
|7.F-JLJF-7|||L-7|F7F-J|L-7L7LJL7F-7-FJ||F-J|LJ|L-7|L7|F7L||||7F7|L----7||LJL7FJ|L7F--J.L7|F7|FJ|||LJ|L---JLJLJL7||FJLJL---JL-7|L---7J.|||F|
LF-L-7F7|FJLJL7|LJ|LJF7L--JFJF--J|FL7L7LJL7FJF-J-FJL7|||L7|||L7|L-7F--7|||F--JL-JFJL7F7F7||||||FJ|L-7L7F7F--7F-7LJLJF7F-7F----J|F---J7FF-F77
.JJ|-LJLJL-7F-JF--JF7|L----J||F7FJF-J.L-7FJL7|-F7L7FJ||L7||||FJL7FJL7FJ||||F7F7F7L7FJ||||||||||L7|F7|FJ||L-7|L7|F7F-JLJFJL----7|L--7-FFJ-JL|
|7F7F7F7LF-JL--JF7FJ||F-----7LJLJFJF7F7FJL7FJL7||FJ|FJL7|||||L7FJL7FJ|FJ||||||||L7|L7|||LJ|||||FJ|||||FJ|F7|L7|LJ|L---7L7F7F--JL---JFFJ7|.L|
LL|LJLJL-JF7F-7FJ||J||L----7|FF--JFJ||LJF-JL-7||LJ|LJFFJ|||||FJ|F7||FJL7LJ||LJ||FJL7||||FFJ|LJ||FJ|||LJFLJ|L7LJF7L7F--JFJ||L------7J7|-F7-FF
FLL--7F7F7|LJFJL7||FJ|F--7FJL-JF7FJL|L-7L7F7FJ|L--7|F7L7|LJ||L7LJ|LJL-7L7FJL-7||L7FJ||||FJFJF-J|L7||L---77L-JF-J|FJL--7L7||F7F7F7FJ--J.L--J|
FFF7FJ|LJ|L7JL--JLJL7||F7LJF-7FJ|L-7|F7|FJ||L7|F--JFJL-JL-7LJ-|F7L-7F7|FJL7F7||L7||FJ||||FJFJF7|FJ|L-7F-JF---JF-JL7F-7L7||LJLJLJLJ|L||7|J.-|
F-JLJFJJFJFJF----77FJ|LJL--J-||-L-7|||||L7||FJ|L-7FL7F7F7FJ.F-J||F7||LJL-7||LJL7|||L7||||L7|FJ|||FJF-JL--JF---JF7FJL7|FJ|L----7.|||FFLF-77LJ
L7F--J-F|FJFJF7F7L-JFJ|F-----JL--7LJ||LJF||||-|F-JF-J||||L7FJF7|LJLJL7F--J|L--7|||L7LJLJ|FJ||FJ||L7L7F-7F7L----J|L7FJLJFJF7F--J7JFLJ-JJ----J
F|||JF7FJL7L7||||F7FJF7L-7F7F7F7FJ-FJ|7F-J||L7LJF-JF7||||FJ|FJ|L--7F-JL-7FJF7FJ||L7|F---JL7||L7||FJF||JLJL7F7F7FJ.|L-7-L-JLJJ|L7LL7JJL.-.|77
FLJF-JLJF7|FJ|LJLJLJFJL-7LJ|||||L-7L7|FJF7|L7L-7|F7||||||L7|L7L7F-J|F7F7||FJLJFJL7|||F--7FJLJFJ|LJLFJL7F7FJ|LJLJF7|F7L----7JL|7|-LF.7.JJ7FL7
LL7L---7|LJL-J7F7F--JF-7L--J||||F-JLLJ|FJ||F|F-J||||LJ|||FJ|FJFJL-7LJ|||||L--7L--J||||F-JL-77L7L-7FJF7LJ|L7L-7F7||LJL7F-7FJL7|LFF.L-L7LF7LJ7
..JLF--JL77F---JLJF-7L7L7F7FJ||LJ7F---J||LJFJL-7LJ|L7FJ|||FJ|F|F-7L-7||||L7F-JF-7-LJ||L----JF7|F7|L-J|F-J7|F7LJLJL--7LJF|L---7-|L-|J|7FJ|-L7
F-.F|F7F7L7|F-7F7FJFJFJFJ|||FJL--7L-7F7L-7FJF--JF7|FJL7|||L7L7|L7|F7|||LJFJL--JFJF7FLJF-----JLJ||L-7FJL--7LJ|F--7F--JF7FJF7F-J7L7JLF|.|.F.||
F7-7LJLJ|FJ||FJ|||FJFJJL7|||L7F-7L7FJ||F7|L7L-7FJLJ|F7||||-L7||FJ||LJLJF-JF7F7FJJ|L--7L--7F7F7FJ|F-JL7F--JF7|L-7|L---J|L7|LJFLJJ|JLL77L7J7F|
LJFJJF--J|LLJL7|LJL-J|F|LJ||7LJFJFJL7||||L7|F7|L7F7||LJ|LJF-J||L7|L---7|F7|LJ|L--JF7FJLF7LJ|||L7|L7F7|L---J||F-J|F7F7FJ.LJJJF|FFL-F7|F||FL--
FJ7.L|F--J--LFJ|F-77F7FF--JL--7L-JF-J|||L-J||LJ|||LJL-7|F7L7FJ|FJ|F--7|||LJ|FJF7F-J||F-JL--J||FJ|FJ|LJF7F-7||L-7||LJ|L-7LLJ-FJF-|JJFJ-77F7F7
L|LF.LJJ..|-L|FJL7L-JL7L-7F7F7L7F-JF7||L-7|LJLF-JL7F--J||L-JL7|L7|L-7LJLJF--JFJ|L-7||L-7F-7FJ|L7LJ-L-7|LJ.LJ|F7||L-7|F7|7JF7JLL----7J-77|J.L
|L-F-JJ.|-J7F||LLL7F-7L--J|LJ|FJL7FJ|||F7L-7F7L--7|L7F7|L7F--JL7|L7FJF--7L7F7|||F-J||F-JL7||FJFJF----JL---7FJ|LJL7FJLJLJ7.|L7J.F|7LJL|JFJFLJ
FL-J.L7-F7||FLJ7LFJ|FJF7F7L-7|L7.|||LJLJL7FJ|||F-JL7LJ||FJL---7LJ7||FJF7|FJ||L7|L7FJ|L7F7|LJL7L7|F---7F-7FJL7L--7|L-77JLL-F.|7FJ7-F---7LJJ.J
F|JJ7F--7JFJ7JL7L|FJL7|LJL7FJL-JFJL---7F7|L7|L-JF-7|F-J|L-7F7FJF--JLJFJLJL7|L7||FJL7|FJ|LJ7F-JFJLJLF-JL7LJF7L7F-J|F7L-7.J.|FF-J-JLL7F7|7.LJ7
L|..7-JFJ.FL7.L-7LJ7F||7F7|L-7F-JF7F--J||L-J|F-7L7||L-7L7FJ||L7L7F7F7L7LF7|L7|||L-7LJL7L--7L--JF7F7L7F7L--J|FJL7FJ||F-J7|7.F.|L7JLLF|.F77F|7
|L--.LFJ|L|F|-F7LLJFFJ|FJLJF7||F7||L---JL-7FJ|L|FJLJF7|FJL-J|FJLLJ||L7L7||L7|||L7FJFF-JF--JLF7FJLJL-J||F--7|L7FJL7|||LF-L.FF---.F7-J|-|F-J.7
LFJ|7L7LJLL|LFJ|||LLL7||F-7|LJ|||||F-7F7F-J|FJFJL-7FJLJL---7|L7F--JL7L7LJ|FJ|LJF||F-JF-JF---JLJF--7F7||L-7LJFJL-7||||L-JJ7.L|JFFL||LJ.--7-FJ
|LLLJL|7JLL|L|FF7F-L-LJ||FJL-7LJ|||L7||LJF-JL7L7F7|L--7F--7|L7||F7F7|FJF-JL7L7.LLJL7FJ|LL-7F7F7|F-J||||F-JF7L---J||LJ7LJ.LL-LFF.L.L7LJJ-|-J|
|-7|77JL7-|J7|||-||7FJF||L-7FJF-J||FJ|L-7L-7FJJ||||F--JL-7LJFJ|||||||L7L--7L7L7||F-JL777F7LJLJLJL7FJ|||L--JL---77LJ-L77.FLL..FJ7JFFL.||.J|J|
L-7JFL7L|7..F.|JFLF|77-LJF-J|FJF7|LJJ|F-JLF|||||||||F7F7FJF7L7|LJ||||FJF--JJL7L77L-7FJF-JL-7.F---J|FJ||F--7F7F7|-JJ|JJFJ7|.FF|J--JJJ.777.7.F
LFJF--FF-J7.77F---JJF-JLLL--JL-J|L7J-||FJ-FJL7-LJLJ|||||L-JL7LJF-J|LJL7L-7..|L7L7LLLJ-L-7F7L7L---7|L-J||F7LJLJLJ7..|---LL77FJ|.|||.L-.7--J.J
FL-F.7F|7.L-LJ|F--..||-.|7||.|JFJFJJLLJJ7LL7FJJ7L||LJLJ|F7F-J.L|F-JF--JF-J-F-JL-J-J-F7JJ||L7L----J|F--JLJL------7FF|.|7L|LF--J77FJ...F|LJL||
JJ7.--JLJ-7F---J|-7F|L|-L7L--F-JFJLJ7F|-J-LLJJF-7LLLLF-J|||.|7F|L77|F-7L7JFJ77L.LL-FFJ|FLJ-L-7F--7|L---7F-------J-JJ7F-FJ-|JJ-||F7.7FFJ|.FJF
FLL7J|.L|.F-77|.-.--7-F7|.|.LL--J-LL|-7F|.L|J.FJ77FJ.|F7|LJFLLFL-J-LJFL7|.|LFF..L7FF.|L-7|||.||F-J|F---JL--7F7FF7.|L-JFJ..|7L||F-|-|F||F777|
L.LJ-F|-LFJ-J7|.|F|JLJLFL.F.|LLJL7.LJF---J-F.F--L-J.F||LJ7F-.F7JLJF|L-FJ|-L-FJ.|.7-.--JL|LF7.|||F-JL-7F7F7FJ|L-J|-|7JL7-FF7J-L--JJ|F7LL|JLF7
|J.L--F7-L..|FL7LL|JL7|.|FLJ7FLF-J7F--J7..FJ.L|J.LLF-JL7.FLL-LJF-JF-..L-J7|7|77|FL7J7|.---77-LJ||F---J||||L-JF7FJ.LJ7LJ|.LFJ-L-J..J.JLLJLF||
|.|J.LLJ7L7.||FFL-LJ|LJ--|7JL7F|.LJLFJFLL7|LF||.7.LL---J7L7|LLL7-7LL|.LLJ.-JL|--L-L|-J..L7JL|.LLJL7F7FJ|||F--J|L7.7L--LL7||J.L-LL-J-|....7|F
.F|.7.--L-FL7-|77FL.F7J-LL7.L7-L-F--JJ|J.|-7.F.J7L-7L|.L|J|7J7.77.FLL.|-J--FL|.|J7LJ7J|JJ.--F7FJ-L||LJFJ||L--7L7L7|FJFL|J|7F-.F7-F|-L---FF-|
-JJ-L7J77FL-JJ.|7JLF7-7.|.L--|.|-LF|-7L7-|J7.L-7|.L-FLF-J.|J-F-J.L----JJJ.---77|-7..L-L|F|F---|JFLLJF-JFJ|F7FJLL-J-|||.L--7JFF.-7|.F|L--|L7J
|L.|F|7LFFJ77.FLJ7.7JL77-7.LLL7-JJLL-|-JLJ.L.7.F---J|-||7-|LF-77FJFJ-FJ7.|F|JL7JF|-FL7-|-|7|L-JJFJ..L7FJL|||L--7-|-LF777L7F7F7FL.FF7-F77-J||
7-7--.FL|JJF---J----JJJLJ|J-J-LJ7-.LJJ.L---L--J..LL77-|-L.-F7-L7-L7J-LJL-L-JF---FJ--.--.LF---JL-----LLJLLLJL---JLL.LJ--JLJL7JJ|-FJLJJLLJLLLJ

BIN
2023/day10/input.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.1 KiB

421
2023/day10/input.pnm Normal file
View file

@ -0,0 +1,421 @@
P1 420 420
111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111100001111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111101101111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111101101111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111101101111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111101101111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111101101111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111101100001111111111100001111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111100000000001111100001111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111101111101111111111101101111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111101111111101111101101111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111101111101111111111101101111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111101111111101111101101111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111100001100001100001101101111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111100000001100001101101100001111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111101111101101101101101111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111101111101101101101101111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111101111101101101101101111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111101111101101101101101111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
111111111111111111111111111111111111111111111111111111111111111111111111111111111111111100000001100001111111111111111111111111111111111111111111111111100000001100001101101101101100001111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111100001101101100001100001111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
111111111111111111111111111111111111111111111111111111111111111111111111111111111111111101111101101101111111111111111111111111111111111111111111111111101111101111101101101101101111101111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111101101101111111111101111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
111111111111111111111111111111111111111111111111111111111111111111111111111111111111111101111101101101111111111111111111111111111111111111111111111111101111101111101101101101101111101111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111101101101111111111101111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
111111111111111111111111111111111111111111111111111111111111111111111111111111111111111100001100001101111111100001111111111111111111111111111111111111100001101111101100001100001100001111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111100000001100001101101100000000001111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111101111111101111111101101111111111111111111111111111111111111111101101111101111111111111101111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111101111101101111101101101111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111101111111101111111101101111111111111111111111111111111111111111101101111101111111111111101111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111101111101101111101101101111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
111111111111111111111111111111111111111111111111111111111111111111111111111111111111100000001100000001111111101100001111111100001111111111100000001100000001100001100000001100000001111111111111111111111111111111111111111111111111111100001111111111111111111111111111111111111100001100001100001101101100001100001111111111111111111111111100001111111111111111111111111111111111111111111111111111111111111111111111111111111111
111111111111111111111111111111111111111111111111111111111111111111111111111111111111101111111101111111111111101111101111111101101111111111101111101101111111111101111111101101111111111111111111111111111111111111111111111111111111111101101111111111111111111111111111111111111111101111111101111101101101101101101111111111111111111111111101101111111111111111111111111111111111111111111111111111111111111111111111111111111111
111111111111111111111111111111111111111111111111111111111111111111111111111111111111101111111101111111111111101111101111111101101111111111101111101101111111111101111111101101111111111111111111111111111111111111111111111111111111111101101111111111111111111111111111111111111111101111111101111101101101101101101111111111111111111111111101101111111111111111111111111111111111111111111111111111111111111111111111111111111111
111111111111111111111111111111111111111111111111111111111111111111111111111111111111100000001101111100000001101100001111111101100001111111100001101100000000001100001100001100000000000001100000001111111111111111111111111111111100000001100001100001100001111111100000000001100001100000001100001101101101100001101111111111100001111111100001100001111111111111111111111111111111111111111111111111111111111111111111111111111111
111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111101101111101111101101101111111111101111101111111111101101111111111101111101101111111111111111101101111101111111111111111111111111111111101111111111101101101101101111111101111111101101101111111101111101101101101111111101111111111101101111111101111111101111111111111111111111111111111111111111111111111111111111111111111111111111111
111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111101101111101111101101101111111111101111101111111111101101111111111101111101101111111111111111101101111101111111111111111111111111111111101111111111101101101101101111111101111111101101101111111101111101101101101111111101111111111101101111111101111111101111111111111111111111111111111111111111111111111111111111111111111111111111111
111111111111111111111111111111111111111111111111111111111111111111111111111111111100000000001101100001100001101101111111100001100001111100000001100001100001101100001100000001100000000001101100001111100001111111111111111111111100000000001100001101101100000001101100000001101101100001101100001101101101100000001111111100001100000001101100000001111111111111111111111111111111111111111111111111111111111111111111111111111111
111111111111111111111111111111111111111111111111111111111111111111111111111111111101111111111101101111101111101101111111101111101111111101111111111101101101101101111111111101101111111111101101111111101101111111111111111111111111111111101111111101101111111101101101111111101101101101101101111101101101101111111111111101111111111101101101111111111111111111111111111111111111111111111111111111111111111111111111111111111111
111111111111111111111111111111111111111111111111111111111111111111111111111111111101111111111101101111101111101101111111101111101111111101111111111101101101101101111111111101101111111111101101111111101101111111111111111111111111111111101111111101101111111101101101111111101101101101101101111101101101101111111111111101111111111101101101111111111111111111111111111111111111111111111111111111111111111111111111111111111111
111111111111111111111111111111111111111111111111111111111111111111111111111111111100000000001101101100001111101101100001100001101100001100000000001101101100001100001100000001100000001100001100001100001100000000001111111111100001100001100001100001101100000001101101100000001101101101101100000001101101101100001100001100000001100001101101111100001100000001111111111111111111111111111111111111111111111111111111111111111111
111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111101101101101111111101101101101111101101101101111111111101101101111111111101101111111111111101101111111101101111111111111101111111111101101101101111101101111101101111111101101101111111101101101101111111111101101101101101101101111111101101111101101111101101101111101111111111111111111111111111111111111111111111111111111111111111111
111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111101101101101111111101101101101111101101101101111111111101101101111111111101101111111111111101101111111101101111111111111101111111111101101101101111101101111101101111111101101101111111101101101101111111111101101101101101101101111111101101111101101111101101101111101111111111111111111111111111111111111111111111111111111111111111111
111111111111111111111111111111111111111111111111111111111111111111111111111111100001111100001100001101100001101101101101100001101101101100001100001101100000000001101100001100000000001100001100001101100000001100001100001100001100001100001101100000001100001111101101100000001101101101100000001100001101101101101101101111100001100000001101100001101100001101111111111111111111111111111111111111111111111111111111111111111111
111111111111111111111111111111111111111111111111111111111111111111111111111111101101111101111111111101101101101101101101101111101101101101101101111101111111111101101111101101111111111111101101111101101111101101111101101101111111111111101101111111111111101111101101111111101101101101111111101101111101101101101101101111101111111111111101101111101111101101111111111111111111111111111111111111111111111111111111111111111111
111111111111111111111111111111111111111111111111111111111111111111111111111111101101111101111111111101101101101101101101101111101101101101101101111101111111111101101111101101111111111111101101111101101111101101111101101101111111111111101101111111111111101111101101111111101101101101111111101101111101101101101101101111101111111111111101101111101111101101111111111111111111111111111111111111111111111111111111111111111111
111111111111111111111111111111111111111111111111111111111111111111111111111111101100001100000000001101101101101100001101100001100001101101101100001100001100001101100001101100000001100001101101100001100001101101100001101100000001100000001101100000000001100000001100000001101101101101100000001101100001100001100001100001100000000000001100001100001100001100000001111111111111111111111111111111111111111111111111111111111111
111111111111111111111111111111111111111111111111111111111111111111111111111111101111101111111111101101101101101111111101111101111111101101101111101111101101101101111101101111111101101101101101101111111101101101101111101111111101101111111101101111111101111111111111111101101101101101101111111101101111111111111111111101111111111111101111111101111101111111111101111111111111111111111111111111111111111111111111111111111111
111111111111111111111111111111111111111111111111111111111111111111111111111111101111101111111111101101101101101111111101111101111111101101101111101111101101101101111101101111111101101101101101101111111101101101101111101111111101101111111101101111111101111111111111111101101101101101101111111101101111111111111111111101111111111111101111111101111101111111111101111111111111111111111111111111111111111111111111111111111111
111111111111111111111111111111111111111111111111111111111111111111111100001111101100001100000000001100001100001100001101111100000001101101101100001100001101101100001101100000001100001100001100001100000001100001100001101111100001100001111100001100000001100001100000001101101100001101100000001101100001100000000000000001100001100000001100000001100001100001100001111111111111111111111111111111111111111111111111111111111111
111111111111111111111111111111111111111111111111111111111111111111111101101111101101111101111111111111111111111101101101111111111101101101101101111101111101101111101101111111101111111111111111111101111111111111111101101111101111111101111111111101111111101101101111101101101111111101111111101101111101101111111111111111101101101111111101111111101111101101101111111111111111111111111111111111111111111111111111111111111111
111111111111111111111111111111111111111111111111111111111111111111111101101111101101111101111111111111111111111101101101111111111101101101101101111101111101101111101101111111101111111111111111111101111111111111111101101111101111111101111111111101111111101101101111101101101111111101111111101101111101101111111111111111101101101111111101111111101111101101101111111111111111111111111111111111111111111111111111111111111111
111111111111111111111111111111111111111111111111111111111111111111111101101100001101111100000001100001100000000001100001100001100001101101101100001101111101101111101101100001100000001100000000001100000001111100001101100000001100000001100001111100000000001101101111101101101100000001100001101101111101101100001100001100001101100000001101100000001100001100001111111111111111111111111111111111111111111111111111111111111111
111111111111111111111111111111111111111111111111111111111111111111111101101101111101111111111101101101101111111111111111101101101111101101101111101101111101101111101101101101111111101101111111101111111101111101101101111111111101111111101101111111111111111101101111101101101101111111101101101101111101101101101101101101111101111111101101101111111101111111111111111111111111111111111111111111111111111111111111111111111111
111111111111111111111111111111111111111111111111111111111111111111111101101101111101111111111101101101101111111111111111101101101111101101101111101101111101101111101101101101111111101101111111101111111101111101101101111111111101111111101101111111111111111101101111101101101101111111101101101101111101101101101101101101111101111111101101101111111101111111111111111111111111111111111111111111111111111111111111111111111111
111111111111111111111111111111111111111111111111111111111111111111111101101101100001100001111100001101101100000000001100001101100001100001100000001100001101100001101100001101100001101101100001100000000001100001101101100000001101100001101101100000001100001100001100001100001101100001101101101100000001100001100001101100001100001111101101100001100001111111111111111111111111111111111111111111111111111111111111111111111111
111111111111111111111111111111111111111111111111111111111111111111111101101101101111101101111111111101101101111111101101111101111101111111111111111111101101111101101111111101101101101101101101111111111111101111101101101111101101101101101101101111101101101111111101111111111101101101101101101111111111111111111111101111101111101111101101111101101111111111111111111111111111111111111111111111111111111111111111111111111111
111111111111111111111111111111111111111111111111111111111111111111111101101101101111101101111111111101101101111111101101111101111101111111111111111111101101111101101111111101101101101101101101111111111111101111101101101111101101101101101101101111101101101111111101111111111101101101101101101111111111111111111111101111101111101111101101111101101111111111111111111111111111111111111111111111111111111111111111111111111111
111111111111111111111111111111111111111111111111111111111111111100001101101101101100001101100000000001101100001100001100001100001101100000000000000000001101100001100001100001101101101101101101100001100001100001101100001111101101101101101101101100001101100001100001100000001101101101101101101100000000001100000001101100001100001100001100001101101100001111111111111111111100000001111111111111111111111111111111111111111111
111111111111111111111111111111111111111111111111111111111111111101101101101101101101111101101111111111101111101101111111101111101101101111111111111111111101101111111101101111101101101101101101101101101101111101101111111111101101101101101101101101111101111101101111101111101101101101101101101101111111101101111101101101111101111101111111101101101101101111111111111111111101111101111111111111111111111111111111111111111111
111111111111111111111111111111111111111111111111111111111111111101101101101101101101111101101111111111101111101101111111101111101101101111111111111111111101101111111101101111101101101101101101101101101101111101101111111111101101101101101101101101111101111101101111101111101101101101101101101101111111101101111101101101111101111101111111101101101101101111111111111111111101111101111111111111111111111111111111111111111111
111111111111111111111111111111111111111111111111111111111111111101100001101101101100001101100000000001101111101100000001100001101101101111100000001100000001101100001101100001101101101100001100001100001100001101100001100000001101101100001101101100001100001101100001101100001101101101101101101100000001100001111100001100001101100001100000001101100001100001111111111111111100001101111111111111111111111111111111111111111111
111111111111111111111111111111111111111111111111111111111111111101111111101101101111101101111111111101101111101111111101111101101101101111101111101101111111101101101101111101101101101111111111111111111111101101111101101111111101101111111101101111101111101101111101101101111101101101101101101111111101111111111111111111101101101111101111111101111111111101111111111111111111101101111111111111111111111111111111111111111111
111111111111111111111111111111111111111111111111111111111111111101111111101101101111101101111111111101101111101111111101111101101101101111101111101101111111101101101101111101101101101111111111111111111111101101111101101111111101101111111101101111101111101101111101101101111101101101101101101111111101111111111111111111101101101111101111111101111111111101111111111111111111101101111111111111111111111111111111111111111111
111111111111111111111111111111111111111111111111111111111111100001100001100001100001101101111100000001100000001100000001100001101101100001101100001100000001101101101100001100001100001100000000000000000000001101100001100000001101101100000001100001101111101100001100001100001101101101101101101100000001111100001111100001101101101100001100000001100000000001111111111111111111101101100001111111111111111111111111111111111111
111111111111111111111111111111111111111111111111111111111111101111101101111111111101101101111101111111111111111101111111101111101101111101101101111111111101101101101111101111111111111101111111111111111111111101101111111111101101101101111111111101101111101111101111111111101101101101101101101101111111111101101111101101101101101101111101111111101111111111111111111111111111101101101101111111111111111111111111111111111111
111111111111111111111111111111111111111111111111111111111111101111101101111111111101101101111101111111111111111101111111101111101101111101101101111111111101101101101111101111111111111101111111111111111111111101101111111111101101101101111111111101101111101111101111111111101101101101101101101101111111111101101111101101101101101101111101111111101111111111111111111111111111101101101101111111111111111111111111111111111111
111111111111111111111111111111111111111111111111111111111111100000001100001100001100001100001100000000000000001101111100001100001100001100001100001100001101100001100001100000001100000001100000000000001100001101100001100001101101101101100001111101100001100001100000000000001100001101101101101101100000001101100001101101101101101101111101100000001100001111111111111111111100001100001101111111111111111111111111111111111111
111111111111111111111111111111111111111111111111111111111111111111111111101101101111111111101111111111111111101101111101111101111111101111111111101101101101111111111101111111101101111111101111111111101101101101111101101101101101101101101101111101111101111101111111111111111111111101101101101101101111101101111101101101101101101101111101101111111101101111111111111111111101111111111101111111111111111111111111111111111111
111111111111111111111111111111111111111111111111111111111111111111111111101101101111111111101111111111111111101101111101111101111111101111111111101101101101111111111101111111101101111111101111111111101101101101111101101101101101101101101101111101111101111101111111111111111111111101101101101101101111101101111101101101101101101101111101101111111101101111111111111111111101111111111101111111111111111111111111111111111111
111111111111111111111111111111111111111111111111111111111111111100000000001101100000001100001100000000000000001100001100001100001100001100000000001101101100001100000001111100001100000001100001100001101101100001100001101101101100001100001100001100001100001100000000000000000000001100001101101101101100001101100001101101101101101100000001101100001101101100001100000001100001100000000001111111111111111111111111111111111111
111111111111111111111111111111111111111111111111111111111111111101111111111101111111101101111101111111111111111111101111101111101101111101111111111101101111101101111111111101111111111101111101101101101101111111101111101101101111111111111111101111101111101111111111111111111111101111111101101101101101111101101111101101101101101111111111101101101101101101101101111101101111101111111111111111111111111111111111111111111111
111111111111111111111111111111111111111111111111111111111111111101111111111101111111101101111101111111111111111111101111101111101101111101111111111101101111101101111111111101111111111101111101101101101101111111101111101101101111111111111111101111101111101111111111111111111111101111111101101101101101111101101111101101101101101111111111101101101101101101101101111101101111101111111111111111111111111111111111111111111111
111111111111111111111111111111111111111100001111111111111111111100000000001101100000001100001100000000000000001100001111101100001100001100001100001101101111101101100001100001100000000001100001101100001100000001100001101101100000000001100000001100001100001100000000000000000001100000001100001101101100000001100001101101101101101100001100001101101101101101101101100001100001100001111111111111111111111111111111111111111111
111111111111111111111111111111111111111101101111111111111111111111111111101101101111111111101111111111111111101101111111101101111111101111101101101101101111101101101101101111101111111111101111101111111111111101111101101101111111111101101111111101111101111101111111111111111101111111101111111101101111111111111101101101101101101101101101111101101101101101101101101111111101111101111111111111111111111111111111111111111111
111111111111111111111111111111111111111101101111111111111111111111111111101101101111111111101111111111111111101101111111101101111111101111101101101101101111101101101101101111101111111111101111101111111111111101111101101101111111111101101111111101111101111101111111111111111101111111101111111101101111111111111101101101101101101101101101111101101101101101101101101111111101111101111111111111111111111111111111111111111111
111111111111111111111111111111111111111101101111111111111111111111100001100001100000000001101111100001100001101101100000001101100001100001101101101101101100001101101101101100001111100001100001101100001100000001100001101100001100001101100000001100001100001100000000001100001100000000001100001100001100000000001101101101101101101101100001100001100001100001100001100001100001100001111111111111111111111111111111111111111111
111111111111111111111111111111111111111101101111111111111111111111101101111111111111111101101111101101101101101101101111111101101101111101101101101101101101111101101101101101111111101101111101101101101101111111101111101111101101101101111111101111101111101111111111101101101111111111111101101111111101111111101101101101101101101101111111101111111111111111111111111101101111101111111111111111111111111111111111111111111111
111111111111111111111111111111111111111101101111111111111111111111101101111111111111111101101111101101101101101101101111111101101101111101101101101101101101111101101101101101111111101101111101101101101101111111101111101111101101101101111111101111101111101111111111101101101111111111111101101111111101111111101101101101101101101101111111101111111111111111111111111101101111101111111111111111111111111111111111111111111111
111111111111111111111111111111111100000001101111111111100001100000001100000001100000000001100001101100001101101100001100000001101101111101100001100001101100001101101101101101100001101100001101100001101100000001100001100001101101100001100000001111101100001100000001100001100000000000000001101100000001100001100001101101101101101100000001101100001100000000000000000001101100001111111111111111111111111111111111111111111111
111111111111111111111111111111111101111111101111111111101101101111111111111101101111111111111101101111111101101111111101111111101101111101111111111111101111101101101101101101101101101111101101111111101111111101111101111101101101111111101111111111101101111101111101111111111111111111111111101101111111101101111111101101101101101111111101101101101101111111111111111111101101111111111111111111111111111111111111111111111111
111111111111111111111111111111111101111111101111111111101101101111111111111101101111111111111101101111111101101111111101111111101101111101111111111111101111101101101101101101101101101111101101111111101111111101111101111101101101111111101111111111101101111101111101111111111111111111111111101101111111101101111111101101101101101111111101101101101101111111111111111111101101111111111111111111111111111111111111111111111111
111111111111111111111111111111111100000001101100001111101101100000000001100001100000000000001101100000001101100000001101100000001100001100000000000001100001101100001100001100001101100001101101100000001100001100001100000001101100000001100001100001101100001101100001111100001111100001100001101100000000001100001100001101101100001100000001100001101101100001100001111100001100000001111111111111111111111111111111111111111111
111111111111111111111111111111111111111101101101101111101101111111111101101111111111111111101101111111101101111111101101101111111111101111111111111101111101101111111111111111111101111101101101101111111101101111101111111111101111111101111101101101101111101101101111111101101111101101101101101111111111111111101101111101101111111101111111111111101101101101101101111101111111111101111111111111111111111111111111111111111111
111111111111111111111111111111111111111101101101101111101101111111111101101111111111111111101101111111101101111111101101101111111111101111111111111101111101101111111111111111111101111101101101101111111101101111101111111111101111111101111101101101101111101101101111111101101111101101101101101111111111111111101101111101101111111101111111111111101101101101101101111101111111111101111111111111111111111111111111111111111111
111111111111111111111111111111100001111101101101101100001100001100001101100001100000000000001101100000001100001100001100001100000000001100001100001100001101100001100001100000000001100001100001100001100001100000001100000000001100001101100001101100001100001101100001100001100000001101101101100001100000000000001100001101101100000001100001111100001100001100001100000001100000000001100001111111111111111111111111111111111111
111111111111111111111111111111101101111101101101101101111111101101101101111101101111111111111101101111111111101101111111111101111111111101101101101111101101111101101101101111111111101111111111111101101111111111111101111111111101101101101111101111111101111101111101101111111111111101101101111101101111111111111111101101101101111111101101111101111111111111111111111111101111111111101101111111111111111111111111111111111111
111111111111111111111111111111101101111101101101101101111111101101101101111101101111111111111101101111111111101101111111111101111111111101101101101111101101111101101101101111111111101111111111111101101111111111111101111111111101101101101111101111111101111101111101101111111111111101101101111101101111111111111111101101101101111111101101111101111111111111111111111111101111111111101101111111111111111111111111111111111111
111111111111111111111111111100001100000001100001101101100000001101101100001100001100000000001101100000000001101101100000001100000000001101100001101100001100000001101101100001100001100001100000000001100000000000001101100001100001101101100001101100001100001100001101101100001100001100001101100001100000001100001100001101101100000001101101100001100000001100000000000001100000000000001101111111111111111111111111111111111111
111111111111111111111111111101111111111111111111101101101111111101101111101111111101111111101101111111111101101101101111101111111111101101111111101101111111111111101101111101101101111101101111111111111111111111101101101101101111101101111101101101101111101111101101101101101101101111111101101111111111101101101101111101101111111101101101101111101111101101111111111101111111111111111101111111111111111111111111111111111111
111111111111111111111111111101111111111111111111101101101111111101101111101111111101111111101101111111111101101101101111101111111111101101111111101101111111111111101101111101101101111101101111111111111111111111101101101101101111101101111101101101101111101111101101101101101101101111111101101111111111101101101101111101101111111101101101101111101111101101111111111101111111111111111101111111111111111111111111111111111111
111111111111111111111111111101100001100001100001101101101100001101101111100001100001100000001100001100001101101101101111100000000000001100001100001100001100000000001100000001101101111101100001100001100000000001101100001101100001101101100001100001100001101100001101100001100001100000001101101100001100001101101100001101101100000001101101100001100001101100000000001101100000000000000001111111111111111111111111111111111111
111111111111111111111111111101101101101101101101101101101101101101101111111101101111101111111111101101101101101101101111111111111111111111101101111111101101111111111111111111101101111101111101101101101111111101101111111101111101101101101111111111111101101101111101111111111111111111101101101101101101111101101111101101101101111111101101111101111101101111111111101101101111111111111111111111111111111111111111111111111111
111111111111111111111111111101101101101101101101101101101101101101101111111101101111101111111111101101101101101101101111111111111111111111101101111111101101111111111111111111101101111101111101101101101111111101101111111101111101101101101111111111111101101101111101111111111111111111101101101101101101111101101111101101101101111111101101111101111101101111111111101101101111111111111111111111111111111111111111111111111111
111111111111111111111111111101101100001100001101100001101101100001101100001100001111100000000001101101101101100001100000000001100001111100001100001100001101100001111111100001101101100001100001101100001100000001100000001101100001101101100001100001111101101100001101111100001100001100001101100001101100000001100001101100001100000001101100000001100001100000000000001101100000000000001111111111111111111111111111111111111111
111111111111111111111111111101101111111111111101111111101101111111101101101111111111111111111101101101101101111111111111111101101101111101111111101101111101101101111111101101101101101111101111101111111101111111111111101101101111101101111101101101111101101111101101111101101101101101111101111111101111111111111101101111111111111101101111111111101111111111111111111101111111111111101111111111111111111111111111111111111111
111111111111111111111111111101101111111111111101111111101101111111101101101111111111111111111101101101101101111111111111111101101101111101111111101101111101101101111111101101101101101111101111101111111101111111111111101101101111101101111101101101111101101111101101111101101101101101111101111111101111111111111101101111111111111101101111111111101111111111111111111101111111111111101111111111111111111111111111111111111111
111111111111111111111111111100001100001111111100000001101100001100001101101100001111100001100001100001101100000001100000000001101101100001100000001100001101101100001100001101101101101100001111100000001101111100000000001101101100001101100001101100001101100001101100001101100001101100001100001100001100000000000001101100000000000001100001100001100000000000000001111100000000000000001111111111111111111111111111111111111111
111111111111111111111111111111111101101111111111111101101111101101111101101101101111101101101111111111101111111101101111111111101101101111101111111111101101101111101101111101101101101101111111111111101101111101111111111101101101111101101111101111101101111101101111101101111111101111101111101101111101111111111111101101111111111111111101101101111111111111111101111111111111111111111111111111111111111111111111111111111111
111111111111111111111111111111111101101111111111111101101111101101111101101101101111101101101111111111101111111101101111111111101101101111101111111111101101101111101101111101101101101101111111111111101101111101111111111101101101111101101111101111101101111101101111101101111111101111101111101101111101111111111111101101111111111111111101101101111111111111111101111111111111111111111111111111111111111111111111111111111111
111111111111111111111111111111111101101111100000000001100001101100001101101101100000001101100000000001100001100001100000001100001101100001101100001100001101101100001101100001101101101100000001111100001100001100000000001100001100001101101111100001101101100001101100001100000001101100001100001100001101111100001111101101100001100001100001101101100001100001100001100001100001100001111111100001111111111111111111111111111111
111111111111111111111111111111111101101111101111111111111101101111101101101101111111111101111111111101111101101111111111101101111101111101101101101101111101101101111101101111101101101111111101111101111111101111111111101111111111101101101111111101101101101111101101111111111101101101111101111111101101111101101111101101101101101101101111101101101101101101101111101101101101101101111111101101111111111111111111111111111111
111111111111111111111111111111111101101111101111111111111101101111101101101101111111111101111111111101111101101111111111101101111101111101101101101101111101101101111101101111101101101111111101111101111111101111111111101111111111101101101111111101101101101111101101111111111101101101111101111111101101111101101111101101101101101101101111101101101101101101101111101101101101101101111111101101111111111111111111111111111111
111111111111111111111111111111100001100001100000000000001101100001101101101100000000001101100000000001100001100000001100001100001100000001101101101100001100001100001101101100001101101100000001100001100000001100000001100000000001101101100001100001101101100001101100001100000001100001100001111100001101100001100001101101101101101100001100001100001100001100001100001100001100001100000001101101111111111111111111111111111111
111111111111111111111111111111101111111101111111111111101101111101101101101111111111101101101111111111101111111111101101111111101111111111101101101111101111111111101101101101111101101101111111101111101111111101111101111111111101101101111101101111101101111101101111101101111111111111101111111101111101101111111101101101101101101111111101111111111111111111111101111111111111111111111101101101111111111111111111111111111111
111111111111111111111111111111101111111101111111111111101101111101101101101111111111101101101111111111101111111111101101111111101111111111101101101111101111111111101101101101111101101101111111101111101111111101111101111111111101101101111101101111101101111101101111101101111111111111101111111101111101101111111101101101101101101111111101111111111111111111111101111111111111111111111101101101111111111111111111111111111111
111111111111111111111111111111100000001101100000000000001100000001101101101100001100001101100000000001101100001111101101100001100000001100001101101111100000001100001101101100001101101101100001101100001100001100001101111100001101101101100001100001101101100001100001101100001100000000001100001100001101100001100001101100001101101100000001111100001111100001111100001100000000000000001100001100001111111111111111111111111111
111111111111111111111111111111111111101101101111111111111111111111101101101101101101111101111111111101101101101111101101101101111111101101111101101111111111101101111101101111101101101101101101101101111101101111101101111101101101101101101111111101101101101111111101101111101101111111111101101111101101111101101111101111111101101101111111111101101111101101111111101101111111111111101111111111101111111111111111111111111111
111111111111111111111111111111111111101101101111111111111111111111101101101101101101111101111111111101101101101111101101101101111111101101111101101111111111101101111101101111101101101101101101101101111101101111101101111101101101101101101111111101101101101111111101101111101101111111111101101111101101111101101111101111111101101101111111111101101111101101111111101101111111111111101111111111101111111111111111111111111111
111111111111111111111111111111100000001101100000000000000000000001100001101101101100001100000001111101100001101100001101101101100001101101100001101100001100001100001101100001101101101100001101101100001101101100001100001101101101101101101100001101101101100001100001100001101100001100001101101100001100001101101100001100000001101101111100000001100000001100001100001100000000000001100000000000001111111111111111111111111111
111111111111111111111111111111101111111101111111111111111111111101111111101101101111101111111101111101111111101101111101101101101101101101101111101101101101111111101101111101101101101111111101101111101101101101111111101101101101101101101101101101101101111101101111111101101111101101101101101101111111101101101101111101111111101101111101111111111111111111101101111111111111111101111111111111111111111111111111111111111111
111111111111111111111111111111101111111101111111111111111111111101111111101101101111101111111101111101111111101101111101101101101101101101101111101101101101111111101101111101101101101111111101101111101101101101111111101101101101101101101101101101101101111101101111000101101111101101101101101101111111101101101101000101111111101101111101111111111111111111101101111111111111111101111111111111111111111111111111111111111111
111111111111111111111111111111100000001100000000000000000000000001100001100001100000001100001101100001100001101101100001101101101101101100001100001101101101100001101101100001101101101100001101100001100001101100001100001101101101101101101101101101101101100001100001000101101100001101101101100001100001100001100001000100000000001100000001100000000001100000001101100000000000000001111100000001111111111111111111111111111111
111111111111111111111111111111111111101111111111111111111111111111101101111111111111111101101101101111101101101101101111101101101101101111111101111101101101101101101101101111101101101101101101111101111111101111101101111101101101101101101101101101101101101111111101000101101101111101101101111111101101111111111111000111111111111111111111101111111101101111111101101111111111111111111101111101111111111111111111111111111111
111111111111111111111111111111111111101111111111111111111111111111101101111111111111111101101101101111101101101101101111101101101101101111111101111101101101101101101101101111101101101101101101111101111111101111101101111101101101101101101101101101101101101111111101111101101101111101101101000111101101111111111111111111111111111111111111101111111101101111111101101111111111111111111101111101111111111111111111111111111111
111111111111111111111111100000001111100001100000001100001100000000001100000000001100001101101101100000001101101101101100001100001100001100000001100001101100001101101101100001101101100001101101100001100000001100001100000001101101100001101101100001100001101100000001100001101100001101100001000100001100000000000000000000000001100001100000001100001100001100000001101100001100001100001101100001111111111111111111111111111111
111111111111111111111111101111101111111101101111101101101101111111111111111111101101101101101101111111111101101101101101111111111111111101111111101111101111111101101101111101101101111111101101101111101111111101111111111111101101111111101101111111111111101101111111101111101111101101111111000101111111111111111111111111111101101101101111111101101111111101111111101101101101101101101101101111111111111111111111111111111111
111111111111111111111111101111101111111101101111101101101101111111111111111111101101101101101101111111111101101101101101111111111111111101111111101111101111111101101101000101101101111111101101101111101111111101111111111111101101111111101101111111111111101101111000101111101111101101111111111101111111111111111111111111111101101101101111111101101111111101111111101101101101101101101101101111111111111111111111111111111111
111111111111111111111111100001101111111100001111100001100001111100000001100000001101100001101100000000000001100001101100000001100000000001100001101100001100000001100001000101101100001100001101100001100000001101100000000000001101100000001100000000000001101100001000100001100001101100001100001100000001100000001100000000001101101101101100000001100000001101100000001101101101101101101101101111111111111111111111111111111111
111111111111111111111111111101101111111111111111111111111111111101111101101111111101111111101111111111111111111111101111111101101111111111101101101101111101111111111111000101101111101101111101111101111111101101101111111111111101101111111111111111111101101111101000111101111101101111101101101111111101101111101101111111101101101101101101111111111111101101101111111101101101101101101101101111111111111111111111111111111111
111111111111111111111111111101101111111111111111111111111111111101111101101111111101111111101111111111111111111111101111111101101111111111101101101101111101111111111111111101101000101101111101111101111111101101101111111111111101101111111111111111111101101111101111111101111101101111101101101111111101101111101101000111101101101101101101111111111111101101101111111101101101101101101101101111111111111111111111111111111111
111111111111111111111111111101100001100000001100001100001111100001100001100000000001111100001100001100000000000001100000001101101100001100001101101100001100000000000000001101101000101100001100001101100000001101100001100000001101100001100001100001100001101100001100001101100001101100001101100000000001100001100001000100001100001100001100001100000000001101101100001101101101101101100001100000001111111111111111111111111111
111111111111111111111111111101111101101111101101101101101111101111101111111111111111111101111101101101111111111101111111101101101101101101111101101111101111111111111111101101101000101111101111101101101111111101111101101111101101111101101101101101101111101101111101101101101111101101111101111111111111111101111111000101111111111111111111101101111111111101101101101101101101101101111111111111101111111111111111111111111111
111111111111111111111111111101111101101111101101101101101111101111101111111111111111111101111101101101111111111101111000101101101101101101111101101111101111111111111111101101101111101111101111101101101111111101111101101000101101000101101101101101101111101101111101101101101111101101000101111111111111111101111111111101111111111111111111101101111111111101101101101101101101101101111111111111101111111111111111111111111111
111111111111111111111111111101100001100001100001100001100001100001100000000000000000001100000001100001111100001100001000101101100001101100001101100001100001100000000001101100001100001100001100001101100001100001100001101000101101000100001101101101100001101100000001101101100001100001000100000000001100000001100000000001111100001111100001101101100001111101100001100001100001100001100000000000001111111111111111111111111111
111111111111111111111111111101101111111101111111111111111101111101111111111111111111101111111111111111111101101111101000101101111111101111101101111101111101101111111101101111111101111101111101111101111101101111101111101000101101000111111101101101111101101111111111101101111101111111000111111111101101111111101111111111111101101111101101101101101101111101111111111111111111111111101111111111111111111111111111111111111111
111111111111111111111111111101101111111101111111111111111101111101111111111111111111101111111111111111111101101111101111101101111111101111101101111101111101101111111101101111111101111101000101111101111101101111101111101111101101111111111101101101111101101111111111101101111101111111000111111111101101111111101111111111111101101111101101101101101101111101111111111111111111111111101111111111111111111111111111111111111111
111111111111111100001100000001101100001101100000000000001100000001100000000000000001100001111100000001100001100000001100001100000001100001101100000001100001100000001101101100001100001101000100001101100001101100001100001100001100000000001101101100001101100001100001101100001100000001000100001100001101100001100000000000000001100001101101101101101100000001100001100000000000001100001100000001111111111111111111111111111111
111111111111111101101101111111101101101101101111111111101111111111101111111111111101111101111101111101101111111111111101111111111101111101101111111111101111111111101101101101101111101101000111101101101111101101111101111101111111111111101101101111101101111101101101101111101111111101000101101101111101101101111111111111111111111101101101101101101111111111101101101111111111101101111101111101111111111111111111111111111111
111111111111111101101101000111101101101101101111111111101111111111101111111111111101111101111101111101101111111111000101111111111101111101101111111111101111111111101101101101101111101101111111101101101111101101111101111101111111111111101101101111101101000101101101101000101111111101111101101101111101101101111111111111111111111101101101101101101111111111101101101111111111101101111101111101111111111111111111111111111111
111111111111111101100001000001101101101100001100001111100000000000001100001100001100001100001101100001100000000001000100001100000001100001100001100000001100001100001101100001101100001100001100001101100001101100001101100001100000001100001101100001100001000101101100001000101100001100001101101100001101101100000000000000000000001100001100001100001100001100001101100000001111101100000001100001111111111111111111111111111111
111111111111111101111111000101101101101111111101101111111111111111111101101101101111101111101101101111111111111101000111101101111111101111111101101111111101101101111101111111101101111111101101111101111101101111101101101111101111101101111101111101111111000101101111111000101101101111101101101111101101101111111111111111111111101111111111111111111101101101111101111111101111101111111111101111111111111111111111111111111111
111111111111111101111111101101101101101111111101101111111111111111111101101101101111101111101101101111111111111101111111101101111111101111111101101111111101101101111101111111101101111111101101111101000101101111101101101111101111101101111101111101111111111101101000111111101101101111101101101111101101101111111111111111111111101111111111111111111101101101111101111111101111101111111111101111111111111111111111111111111111
111111111111111100000000001101100001101100001101101100000000000001100001100001101111100001100001101100001100000001100001100001100000001100001101101100001101101100001101100000001101100001101100001101000101101100001101100001100001101100001100001101100000000001101000100001100001100000001101101100001101101100000001100001100001100000001100000001100001100001100001100001101100001100001100001111111111111111111111111111111111
111111111111111111111111111101111111101101101101101101111111111101101111111111101111111101111111101101101101111111101101111111101111111101101101101101101101101111101101101111111101101101101111101101000101101101111101111101111101101111101111101101101111111111101000101101111111111111111101101101111101101101111101101101101101111111101101111101101111111111101111101101101101111101101101111111111111111111111111111111111111
111111111111111111111111111101111111101101101101101101111111111101101111111111101111111101111111101101101101111111101101111000101111111101101101101101101101101111101101101111111101101101101111101101111101101101111101111101111101101111101111101101101111111111101111101101111111111111111101101101111101101101000101101101101101111111101101111101101111111111101111101101101101111101101101111111111111111111111111111111111111
111111111111111100000001100001100001100001100001101100000001100001100000000001100000001100000001100001100001100000001100001000100000001101100001101101101101100001101101100000001100001101100001101100001100001100001101100001100001100001100001100001100001100001100000001100000000000000001101101100000001100001000100001100001100000001101100001101100000000001100000001100001101100001101100001111111111111111111111111111111111
111111111111111101111101101111101101111111111111101111111101101111111111111101111111101111111101111111111111101111111111101000111111101101111111101101101101111101101101111111101111111101111101101111101111111111101101101111101111111101111101111111111101101101111111111111111111111111101101101111111111111111000111111111111111111101101111101101111111111101111111111111111101101111101111101111111111111111111111111111111111
111111111111111101111101101111101101111111111111101111111101101111111111111101111111101111111101111111111111101111111111101111111111101101000111101101101101111101101101111111101111111101111101101111101111111111101101101111101111111101111101000111111101101101111111111111111111111111101101101111111111111111111111111111111111111101101111101101111111111101111111111111111101101111101111101111111111111111111111111111111111
111111111100001100001101100000001100000000000001101100001101101111100000000001100001100000001100000000000000001100000001100001100001100001000100001101101100001101101100001100001100000001100001100001101100000000001101101100001100001101100001000100001101101100001100000000000001100001101101100000000001100001100000000000000000000001100001101101100000000001100001100001111101101111100000001111111111111111111111111111111111
111111111101101111101101111111111111111111111101101101101101101111101111111111101101111111101111111111111111111101111101111101101101111111000101111101101111101101101111101101111101111111101111111101101101111111111101101101111101101101101111000101101101101111101101111111111101101101101101111111111101101101101111111111111111111111111101101101101111111111101101101101111101101111111111111111111111111111111111111111111111
111111111101101111101101111111111111111111111101101101101101101111101111111111101101111111101111111111111111111101000101111101101101111111111101111101101111101101101111101101000101111111101111111101101101111111111101101101111101101101101111111101101101101111101101111111111101101101101101111111111101101101101111111111111111111111111101101101101111111111101101101101111101101111111111111111111111111111111111111111111111
100000000001101100001101100000000000000000000001100001100001100000001100001100001101100001100000000000000000000001000100001100001100000000001100001101101100001101100001101101000100000001100000001100001100000000001101101100000001101101101100000001100001100001101101100000000001101100001100000000001101101101100000000000000000000001111100001100001100000000001100001100001101100000001100001111111111111111111111111111111111
101111111111101101111101101111111111111111111111111111111111111111111101101101111101101101111111111111111111111111000111101111111111111111101111101101101101111101111101101101000111111101111111101111111111111111101101101111111111101101101101111111111111111101101101101111111111101111111111111111101101101101111111111111111111111101111111111111111101111111111111111111101101111111101101101111111111111111111111111111111111
101111111111101101111101101111111111111111111111111111111111111111111101101101111101101101111111111111111111111111111111101111111111111111101111101101101101000101111101101101111111111101111111101111111111111111101101101111111111101101101101111111111111111101101101101111111111101111111111111111101101101101111111111111111111111101111111111111111101111111111111111111101101111111101101101111111111111111111111111111111111
100000000001101100001100001100000000000000000000001100001100000001100001101101111100001100000000000000000000000000000001101100000000000001101100001101100001000101100001100001100000000001100001100000001100000000001101100001100000001100001101100001100001100001100001100001100001100000001100000000001100001100000000000000000000001100000000001100000001100001100000000000001100000001100001100000001111111111111111111111111111
111111111101101111101111111101111111111111111111101101101101111101101111101101111111111111111111111111111111111111111101101101111111111101101101111101111111000101101111111111101111111111101101111111101101111111111101111101101111111111111101101101101101101111111111111101101101111111101101111111111111111111111111111111111111101111111111101101111111101101101111111111111111111101111111111111101111111111111111111111111111
111111111101101111101111111101111111111111111111101101101101111101101111101101111111111111111111111111111111111111111101101101111111111101101101111101111111111101101111111111101111111111101101111111101101111111111101111101101111111111111101101101101101101111111111111101101101111111101101111111111111111111111111111111111111101111111111101101111111101101101111111111111111111101111111111111101111111111111111111111111111
100000000001100000001100000001100001100000000001100001100001111100001111100001100000000000000001100000000000000000000001100001100001100001101100001100000001100001100000000001100001100001101101100001101100000001100001100001100000001100001101101101101101100000000000001100001101100000001100000000000000000001100000000000000001100000000000001101100000001100001100000000000000001101100001100000001111111111111111111111111111
101111111111111111111101111111101101101111111101111111111111111111111111111111101111111111111101101111111111111111111111111111101101101111101111101111111101101111111111111101111101101101101101101101101111111101101111101111111111101101101101101101101101111111111111101111111101101111111111111111111111111101101111111111111101111111111111111101101111111111111101111111111111101101101101101111111111111111111111111111111111
101111111111111111111101111111101101101111111101111111111111111111111111111111101111111111111101101111111111111111111000111111101101101111101000101111111101101111111111111101000101101101101101101101101111111101101111101111111111101101101101101101101101111111111111101111111101101111111111111111111111111101101111111111111101111111111111111101101111111111111101111111111111101101101101101111111111111111111111111111111111
100001100001100000000001100000001101101100001100001111100001111100001111100001100000000000001100001100000000000000001000100001101101100000001000100001100001100001100001100001000101101101101101101100001100000001100001100001100001100001101101101100001101100001100001101100000001101100000000000000000000000001101100000000000001100000000001111101101111100001111100001100001100001101101100001111111111111111111111111111111111
111101101101101111111111101111111101101101101111101111101101111101101111101101111111111111101111111101111111111111101000101101101101111111111000111101101111111101101101101111000101101101101101101111111101111111111101111101101101111111101101101111111101101101101101101101111111101101111111111111111111111111101101111111111111101111111101111101101111101101111111101101101101111101101111111111111111111111111111111111111111
111101101101101111111111101111111101101101101111101111101101111101101111101101111111111111101111111101111111111111101111101101101101000111111000000101101111111101101101101111111101101101101101101111111101111111111101000101101101111111101101101000111101101101101101101101111111101101111111111111111111111111101101111111111111101111111101111101101111101101111111101101101101111101101111111111111111111111111111111111111111
111100001101100001100000001100001100001101100001100000001100000001100000001100000001111100001100000001100000000001100000001100001101000100001000000101100000001101101100001100001101101101101101100000001100000001100001000101101101100000001100001000100001101101101100001100001100001100001100001100001100000001101100000001100001100001100001100001100000001100000000001101100001111100001111111111111111111111111111111111111111
111111111101111101101111111101101111111101111101111111111111111111111111111111111101111101111101111111101111111101111111111111111101000101101000000101111111101101101111111101101101101101101101111111101111111101101111000101101101101111111111111000101111101101101111111111101101111111101101101101101101111101101111111101101101111101101111101111111111111111111111111101111111111111111111111111111111111111111111111111111111
111111111101111101101111111101101111111101111101111111111111111111111111111111111101111101111101111111101111000101111111111111111101111101101111111101111111101101101111111101101101101101101101111111101000111101101111111101101101101111111000111111101111101101101111111111101101111111101101101101101101000101101111111101101101111101101111101111111111111111111111111101111111111111111111111111111111111111111111111111111111
111111111100000001100001100001100000001101100001100001100000001100000001100000001100000001100001100001100001000100001100001100001100000001100001100001100001101101100001100001100001101100001100000000001000100001101100000001101101100000001000100001100001101101100000001100001100001100001101101101101101000100001100001100001100000001100000001100001100001100000000001100001100001100000000000000001111111111111111111111111111
111111111111111111111101101111111111101101101111101101101111101101111101101111101111111111101111101101111101000111101101101101101111111111111101101111101101101101111101101111111111101111111111111111111000101111101101111111101101111111101000101101111101101101111111101101111111101101111101101101101101000111111101101111111111111111111111111101101101101101111111101111101101101101111111111111101111111111111111111111111111
111111111111111111111101101111111111101101101111101101101111101101111101101111101111111111101111101101111101111111101101101101101111111111111101101111101101101101111101101111111111101111111111111111111111101111101101111111101101111111101111101101111101101101111111101101111111101101111101101101101101111111111101101111111111111111111111111101101101101101111111101111101101101101111111111111101111111111111111111111111111
111111111111111111111101101100000000001101100000001101100001101101100001101111100000001100001100001100000001100001100001100001100000001100000001100000001101101101100001100001100001100000000000001100000000001100001100000001101101100001101100001100000001101100001100001100001100001100000001100001100001100000000001100000000000000000000001100001100001101100001111100001100001101101100000000000001111111111111111111111111111
111111111111111111111101101101111111111101111111111101111101101101101111101111111111101101111101111111111111101101111111111111111111101101111111111111111101101101101111111101101101111111111111101101111111111101111111111101101101101101101101111111111111101111101101111111101101111111111111111111111111101111111111111111111111111111111101101111111111101111101111111101111111101101101111111111111111111111111111111111111111
111111111111111111111101101101111111111101111111111101111101101101101111101111111111101101111101111111111111101101111111111111111111101101111111111111111101101101101111111101101101111111111111101101111111111101111111111101101101101101101101111111111111101000101101111111101101111000111111111111111111101111111111111111111111111111111101101111111111101111101111111101111111101101101111111111111111111111111111111111111111
111111111111111111111101101100000000001101111100001100001101100001100001101100000000001101111100000000000000001100000001100001100001100001100000001100001101101100001100000001101101100001100001101100001100000001100000000001101100001101101100001100000001101000101101100000001100001000100001100001100001100000000000000000000000000000001100001111100001100001100000001101100001100001100000001111111111111111111111111111111111
111111111111111111111101101111111111101101111101101111101101111111111101101101111111111101111111111111111111111111111101101101101101111111101111101101101101101111111101111111101101101101101101101111101101111111101111111111101111111101101111101101111101101000101101101111111111101000101101101101101101111111111111111111111111111111101111111111101101111101111111101101101101111111111111101111111111111111111111111111111111
111111111111111111111101101111111111101101111101101111101101111111111101101101111111111101111111111111111111111111111101101101101101111111101111101101101101101111111101111111101101101101101101101000101101111111101111111111101111111101101111101101111101101111101101101111111111101111101101101101101101111111111111111111111111111111101111111111101101111101111111101101101101111111111111101111111111111111111111111111111111
111111111111111111111100001111111111100001100001101111100001100000000001101100000001100001100000000000001100001100001100001100001100000001100001100001101101100000001100001100001101101100001100001000100001100001100001100001100000001101101100001101100001100001101101101100001100001100001101101100001101100001100000000000001100000000001111100000001101111100001100001101101101100001100000001111111111111111111111111111111111
111111111111111111111111111111111111111111101111101111111111101111111111101111111101101111101111111111101101101101101111111111111111111101111101111111101101111111101111101101111101101111111111111000111111101101111101101101111111101101101101111101101111111101101101101101101101111101111101101111111101101101101111111111101101111111111111101111111101111111101101111101101101101101101111111111111111111111111111111111111111
111111111111111111111111111111111111111111101111101111111111101111111111101111111101101111101111111111101101101101101111111111111111111101111101111111101101111111101111101101111101101111000000000111111111101101111101101101111111101101101101111101101111111101101101101101101101000101111101101111111101101101101111111111101101111111111111101111111101111111101101111101101101101101101111111111111111111111111111111111111111
111111111111111111111111111111111111100001100001101100001111100000000001101100000001101111100001100001100001100001100001100000000000001100000001100000001100000001101100001100001101100001000000000100000000001100000001101101100000001100001100000001100000000001100001100001100001000100001101100000001101101101100000000001101100000000000000001100001101100001100001111100001100001100001111111111111111111111111111111111111111
111111111111111111111111111111111111101101111101101101101111111111111101101101111111101111111101101101111111111111111101101111111111101111111111101111111111111101101101111111101101111101000000000101111111111111111111101101101111111111111111111111111111111111111111111111111111000111101101111111101101101101111111111101101111111111111111111101101101101101111111111111111111111111111111111111111111111111111111111111111111
111111111111111111111111111111111111101101111101101101101111111111111101101101111111101111111101101101111111111111111101101111111000101111111111101111111111000101101101111111101101111101111111111101111111111111111111101101101111111111111111111111111111111111111111111111111111111111101101111111101101101101111111111101101111111111111111111101101101101101111111111111111111111111111111111111111111111111111111111111111111
111111111111111111111111111111111100001100000001100001101100001100001100001100000000001100001100001101100000000000001101101100001000100001100001100001100001000100001101100000001100001100001100001100000001100001100000001101100000000000001100000000000000000000001100001100000001100000001100000000001100001100000000000001101100000000000000000001101100001101100000000001100001100000001111111111111111111111111111111111111111
111111111111111111111111111111111101111111111111111111101101101101101111111111111111111101101111111101101111111111101101101101101000111101101101111101101101000111111101101111111111101111101101101111111101101101101111111101111111111111101101111111111111111111101101101101111101101111111111111111111111111111111111111111101101111111111111111111101111111101101111111101101101101111101111111111111111111111111111111111111111
111111111111111111111111111111111101111111111111111111101101101101101111111111111111111101101111111101101111111111101101101101101111111101101101111101101101111111000101101111000111101111101101101111111101101101101111000101111111111111101101111111111111111111101101101101111101101111111111111111111111111111111111111111101101111111111111111111101111111101101111111101101101101111101111111111111111111111111111111111111111
111111111111111111111111111100000001100001100000000001100001100001100000000000000000000001100000001100001100000001101100001101100000001101101101100001101101100001000101100001000100001100001101100000000001101101100001000100001100000001101101100001100001100001100001100001100001100001100001100000001100000000000001100001100001100001111100000001101100001100001100001100001100001100001111111111111111111111111111111111111111
111111111111111111111111111101111111101101101111111101111111111111111111111111111111111111111111101111111101111101101111111101111111101101101101101111101101101101000101111101000101111101111101111111111111101101111101000111101101111101101101101101101101101101111111111111101111111101101101101111101101111111111101101101111111101101111101111101101101101111111101101111111111111101111111111111111111111111111111111111111111
111111111111111111111111111101111111101101101111111101111111111111111111111111111111111111111111101111111101000101101000111101111111101101101101101111101101101101111101111101111101111101000101111111111111101101111101111111101101111101101101101101101101101101111111111111101111111101101101101000101101111111000101101101111111101101111101111101101101101111111101101111111111111101111111111111111111111111111111111111111111
111111111111111111111111111100000000001100001100001100000000000000000000000000000000000000001100001111100001000100001000100001100001101101101101100000001101101100001101100001100001100001000100001100001100001101100001100000001100001101101101101100001100001100000000000001100000001100001100001000100001100001000100001101100000001100001101100001100001101100000001100000001100001100001111111111111111111111111111111111111111
111111111111111111111111111111111111111111111101101111111111111111111111111111111111111111101101111111101111000111111000101111101101101101101101111111111101101111101101101111101111101111000111101101101101111101101111101111111111101101101101101111111111111111111111111101111111101111111111111000111111101101000111111101101111111111101101101111111111101101111111111111101101101111101111111111111111111111111111111111111111
111111111111111111111111111111111111111111111101101111111111111111111111111111111111111111101101111111101111111111111111101111101101101101101101111111111101101111101101101000101111101111111111101101101101111101101111101111111111101101101101101000111111111111000111111101111111101111111111111111111111101101111111111101101111111111101101101111111111101101111111111111101101101111101111111111111111111111111111111111111111
111111111111111111111111111100000000000000000001100001100001111100000001111100001100001100001100000001100000000001100001100001101100001100001100001100000001101100001100001000100001100000000001100001101100001101101100001100001100001100001100001000100001100001000100000001100001100001100000001100001100001100000000001100001100000001100001100000001111100001100001100001100001100001101111111111111111111111111111111111111111
111111111111111111111111111101111111111111111111111101101101111101111101111101101101101101111111111101111111111101101101111101101111111111111111101101111111101101111111111000111101111111111101111111101111101101101101111101101101111111111111111000101101101101000101111111101101111101101111101101101101111111111111101111111101111101111111111111101111111111101101101101111111111101101111111111111111111111111111111111111111
111111111111111111111111111101111111111111111111111101101101111101111101111101101101101101111111111101111111111101101101111101101111111111111111101101000111101101111111111111000101111111111101000000101111101101101101111101101101111111111111111111101101101101111101111111101101111101101111101101101101111111111111101111111101111101111111111111101111111111101101101101111111111101101111111111111111111111111111111111111111
111111111111111111111111111100001100000000000000001100001100001100001101100001100001101100001100001101100000000001101100000001100000000000000001100001000100001101100001100001000100001100001101000000100000001101101100001101101100000001100000000000001100001100000001100001101100001101100001101101101100000000000001100000000001100001100001100000001100001100001100001100001100001100001111111111111111111111111111111111111111
111111111111111111111111111111101101111111111111101111111111101111101101101111111111101111101101101101101111111111101111111111111111111111111101111111000101111101101101101101000111101101101101000000111111111101101111101101101111111101101111111111111111111111111111101101101111101101111101101101101111111111111101111111111111101111101101101111111101101101111111111111101101101111111111111111111111111111111111111111111111
111111111111111111111111111111101101111111111111101111111111101111101101101111111111101111101101101101101111111111101111111111111111111111111101000111111101111101101101101101111000101101101101000000000000000101101000101101101111111101101111111111111111111111111111101101101111101101111101101101101111111111000101111111111111101111101101101111111101101101111111111111101101101111111111111111111111111111111111111111111111
111111111111111111111111111111100001111100001111100000000001101100001100001100000001101111101101100001100000000000001100000000000000000000000001000100001101100001101100001100001000100001100001000000000000000100001000100001100001100001101100000000000000000000000000001100001100001100000001100001100000000001000100000000000001100000001101100000000001100001100000000001100001100000000000001111111111111111111111111111111111
111111111111111111111111111111111111111101101111111111111101101101111111111101111101101111101101111111111111111111111101111111111111111111111111000101101101101111101111111111101000111111111111000000000000000111111000111111111101101111101101111111111111111111111111111111111101111111111111111111111111111101000111111111111101111111111101111111111111111111101111111101111111111111111111101111111111111111111111111111111111
111111111111111111111111111111111111111101101111111111111101101101111111111101111101101111101101111111111111111111111101111111111111111111111000111101101101101111101111111111101000000000000000000000000000000000000000000000000101101111101101111111111111111111111111111111111101111111111111111111111111111101111111111111111101111111111101111111111111111111101111111101111111111111111111101111111111111111111111111111111111
111111111111111111111111111111100001100001100000000000000001100001100000001101100001101100001100000000000000000000001100000000001100001100001000100001100001100000001100001100001000000000000000000000000000000000000000000000000101100001101101100000000000000000000000000000001100000000000000000000000000001101100000000000000001100000001101100001100000000000001100001100000000000000000000001111111111111111111111111111111111
111111111111111111111111111111101101101111111111111111111111111111101111101101101111101101111111111111111111111111101111111111101101101101101000101111111111111111111101101101111000000000000000000000000000000000000000000000000101111101101101101111111111111111111111111111101111111111111111111111111111101101101111111111111111101111101101101101101111111111111101101111111111111111111111111111111111111111111111111111111111
111111111111111111111111111111101101101111111111111111111111111111101111101101101111101101111111111111111111111111101111111111101101101101101111101111111111111111111101101101000000000000000000000000000000000000000000000000000101111101101101101111111111111111111111111111101111111111111111111111111111101101101111111111111111101111101101101101101111111111111101101111111111111111111111111111111111111111111111111111111111
111111111111111111111111111100001100001100000000000000000000000001100001100001100001100001100001100000000000000001101100001100001101101101100000001100000001100000000001100001000000000000000000000000000000000000000000000000000100000001100001100001100000001100000001100001100000000000000000000000000000001100001100000000000001101100001100001100001100000000000001100001111100000000001111111111111111111111111111111111111111
111111111111111111111111111101111111111101111111111111111111111101111101111111111101111111101101101111111111111101101101101101111101101101111111111101111101101111111111111111000000000000000000000000000000000000000000000000000111111111111111111101101111101101111101101101111111111111111111111111111111111111111101111111111101101101111111111111111101111111111111111101111101111111101111111111111111111111111111111111111111
111111111111111111111111111101111111111101111111111111111111111101111101111111111101111111101101101111111111111101101101101101111101101101111111111101111101101111111111111000000000000000000000000000000000000000000000000000000000000000000111111101101111101101111101101101111111111111111111111111111111111111111101111111111101101101111111111111111101111111111111111101111101111111101111111111111111111111111111111111111111
111111111111111111111111111100000000000001100000000000000000000001100001111100001100001100001100001100001100000001100001101100001101101101100000000001100001100000000000001000000000000000000000000000000000000000000000000000000000000000000100001100001100001100001101101100001100000001100001100001100001100001100001100000000001101100000001111100001101100000001100001100000001100001100000001111111111111111111111111111111111
111111111111111111111111111111111111111111101111111111111111111111101111111101101111101101111111111101101101111111111111101111101101101101101111111111101111111111111111101000000000000000000000000000000000000000000000000000000000000000000101101111111101111111101101101111101101111101101101101101101101101101101111101111111111101111111101111101101101101111101101101111111111101101111111101111111111111111111111111111111111
111111111111111111111111111111111111111111101111111111111111111111101111111101101111101101111111111101101101111111111111101111101101101101101111111111101111111111111111101111111111000000000000000000000000000000000000000000000000000000111101101111111101111111101101101000101101000101101101101101101101101101101000101111111111101111111101111101101101101111101101101111111111101101111111101111111111111111111111111111111111
111111111111111111111111111111100000000001100000000000001100001100001111100001100001100001100000000001100001100001100001100000001101100001100000000001100001100001100001101100000001000000000000000000000000000000000000000000000000000000100001101100001100000000001101101000100001000100001100001100001100001100001000100000000001101100001100001101100001100001100001100000000000001100000001101111111111111111111111111111111111
111111111111111111111111111111101111111101111111111111101101101101111111101111111101111111101111111111111111101101101101111111111101111111111111111101111101101101101101101101111101000000000000000000000000000000000000000000000000000000101111101101101111111111111101101000111111000111111111111111111111111111111000111111111101101101101111101101111111111101111111111111111111111111111101101111111111111111111111111111111111
111111111111111111111111111111101111111101111111111111101101101101111111101111111101111111101111111111111111101101101101111111111101111111111111111101111101101101101101101101111101000000000000000000000000000000000000000000000000000000101111101101101000111111000101101111111111111111111111111111111111111111111111111111111101101101101111101101111111111101111111111111111111111111111101101111111111111111111111111111111111
111111111111111111111111111111100000001100000001100000001101101101100000001100001100000000001100001100000000001100001100001100001101100000001100001100001100001100001101100001100001000000000000000000000000000000000000000000000000000000100001101101101000100001000100001100000001100000001100001100000001100001100000001100001100001101100000001101100000000001100000000000000001111100001100001111111111111111111111111111111111
111111111111111111111111111111111111101111111101101111111101101101101111111101101111111111111101101101111111111111111111101101101101101111101101101111101111111111111101111111101111000000000000000000000000000000000000000000000000000000111101101101101000101101000111111101111101101111101101101101111101101101101111101101101111111101111111111101101111111111101111111111111101111101101111111111111111111111111111111111111111
111111111111111111111111111111111111101111111101101111111101101101101111111101101111111111111101101101111111111111111111101101101101101000101101101111101000111111000101111111101000000000000000000000000000000000000000000000000000000000111101101101101111101101111111111101111101101111101101101101111101101101101111101101101111111101111111111101101111111111101111111111111101111101101111111111111111111111111111111111111111
111111111111111111111111111111100001100000001101100000000001100001100000000001100000000001100001101101100000000000000000001101101101101000101101101100001000100001000101100000001000000000000000000000000000000000000000000000000000000000100001100001100000001100001100001100001101100001100001101100001101101101100001100001100001100001100001111101100000000000001100000000001100000001100001111111111111111111111111111111111111
111111111111111111111111111111101101111111101101111111111111111111111111111111111111111101101111101101101111111111111111111101101101101000101101101101111000101101000101101111111000000000000000000000000000000000000000000000000000000000101111111111111111111111101101101111101101111101111111101111101101101101111101111111111101101111101101111101111111111111111101111111101111111111111101111111111111111111111111111111111111
111111111111111111111111111111101101111111101101111111111111111111111111111111111111111101101111101101101111111111111111111101101101101111101101101101111111101101111101101111111111111000000000000000000000000000000000000000000000111111101111111111111111111111101101101111101101111101111111101111101101101101111101111111111101101111101101111101111111111111111101111111101111111111111101111111111111111111111111111111111111
111111111111111111111100001100001100000000001101100001100001100001100001100000000000000001101100001101100000000000000000000001100001100001100001101100000000001100001100001100001100001000000000000000000000000000000000000000000000100000001100001100001100000001100001100000001100001100000001101100001100001100001100000000001101101100001100001101100000000000000001100001100000000000001101111111111111111111111111111111111111
111111111111111111111101101101111111111111111101101101101101101101101101101111111111111111101101111101111111111111111111111111111111111101111111101111111111111111101111111101101101101000000000000000000000000000000000000000000000101111111101101101101101111101111111111111111111101111111101101101111111111111101111111111101101101101111111101101101111111111111111101101111111111111101101111111111111111111111111111111111111
111111111111111111111101101101111111111111111101101101101101101101101101101111111111111111101101111101111111111111111111111111111111111101111111101111111111111111101000000101101101101000111111000000000000000000000000000000000000101111111101101101101101111101111111111111111111101111111101101101111111111111101111111111101101101101111111101101101111111111111111101101111111111111101101111111111111111111111111111111111111
111111111111111111111101100001100000000000001100001100001100001100001100001100000000000000001100000001111100001100001100001100001100001100000001100001100001100001101000000101101101101000100001000000000000000000000000000000000000100000000001100001101101100001100001100000001100001100001101100001100000000001100001100000001100001101100000001101101100000000000000001100001100000001100001111111111111111111111111111111111111
111111111111111111111101111111101111111111101111111111111111111111111111111101111111111111111111111111111101101101101101101101101101101111111101111101101101101101101000000101101101101000101101000000000000000000000000000000000000111111111111111111101101101111101101101111101101111101101101111111101111111101111101101111111111111101101111111101101101111111111111111111101101111101111111111111111111111111111111111111111111
111111111111111111111101111111101111111111101111111111111111111111111111111101111111111111111111111111111101101101101101101101101101101111111101111101101101101101101000111101101101101111101101111000000000000000000000000000000000000111111111000000101101101111101101101111101101111101101101111111101111111101111101101111111111111101101111111101101101111111111111111111101101111101111111111111111111111111111111111111111111
111111111111111111111100000001101100001111100000001100000000000000000000000001100001100001111100001100000001100001100001100001101101101100001100001100001100001100001000100001101101100000001100001000000000000000000000000000000000000100000001000000100001100001101100001100001101100001100001100000001100000001100001100000000000000001100000000001100001100000000000000000001101100001111111111111111111111111111111111111111111
111111111111111111111111111101101101101111111111101101111111111111111111111111101101101101111101101101111111111111111111111111101101101101101111101111111111111111111000101111101101111111111111101000000000000000000000000000000000000101111101000000111111111101101111111101111101101111111111101111111101111111101111111111111111111111111111111111111111101111111111111111111101101111111111111111111111111111111111111111111111
111111111111111111111111111101101101101111111111101101111111111111111111111111101101101101111101101101111111111111111111111000101101101101101111101111111111111111111111101111101101111111111111101000000000000000000000000000111111111101111101000111111111111101101111111101111101101111111111101111111101111111101111000111111111111111111111111111111111101111111111111111111101101111111111111111111111111111111111111111111111
111111111111111111111111111100001101100000000000001101111100000000000001100000001100001100000001100001100000000000000000001000100001100001100000001100001100000001100001100001101101100000001100001000000000000000000000000000100000001100001101000100001100001100001100001100001100001100000001101100000001100001100001000100001100000001100001100000001100001100001100000000001101100001111111111111111111111111111111111111111111
111111111111111111111111111111111101111111111111111101111101111111111101101111111111111111111111111111101111111111111111101000111111111111111111111101101101111101101101111101101101101111101101111000000000000000000000000000101111101111101101000101101101101111111101101111101111111101111101101101111111101101111101000101101101111101101101101111101101111101101101111111101101111101111111111111111111111111111111111111111111
111111111111111111111111111111111101111111111111111101111101111111111101101111111111111111111111111111101111111111111111101111111111111111111111111101101101111101101101111101101101101000101101000000000000000000000000000000101111101111101101111101101101101111111101101111101111111101111101101101111111101101111101111101101101111101101101101111101101111101101101111111101101111101111111111111111111111111111111111111111111
111111111111111111111111111111111100001100000000000001100001100000001101100000000001100000000001100000001100001100000000001100001100000000000000001101101101100001101101100001100001101000100001000000000000000000000000000000100001101100001100000001100001101100001101101100001100001100001100001100001100001100001100000001100001111100001100001111101100000001101101100000001101100001111111111111111111111111111111111111111111
111111111111111111111111111111111111101101111111111111101111101111101101111111111101101111111101101111111101101101111111111101101101111111111111101101101101101111101101101111111111101000111111000000000000000000000000000000111101101101111111111111111111101101101101101101111101101111101111111111101101111111101111111111111111111111111111111111101111111111101101101111111101101111111111111111111111111111111111111111111111
111111111111111111111111111111111111101101111111111111101111101111101101111111111101101111111101101111111101101101111111111101101101111111111111101101101101101111101101101111111111101111111000000000000000000000000000000000000101101101111111111111111111101101101101101101111101101111101000111111101101111111101111111111111111111111111111111111101111111111101101101111111101101111111111111111111111111111111111111111111111
111111111111111111111111111111111111100001111100000000001100001100001100001100001100001100001101101100000001100001100001100001100001100001100001100001101101100000001100001100001100001100001000000000000000000000000000000000000101101100000000000000000001101101101101101100001101101100001000100001100001100001100000000000000000000000000001100001101100001100001101100000000001100000001111111111111111111111111111111111111111
111111111111111111111111111111111111111111111101111111111101111101111111101101101111111101101101101101111111111111101101101111111111101101101101111111101101111111111111111101101101111101101000000000000000000000000000000000000101101111111111111111111101101101101101101111101101101101111000101101111111101101111111111111111111111111111101101101101101101101111101111111111111111111101111111111111111111111111111111111111111
111111111111111111111111111111111111111111111101111111111101111101111111101101101111111101101101101101111111111111101101101111111111101101101101111111101101111111111111111101101101000101101111111000000000000000000000000000000101101111111111111111111101101101101101101111101101101101111111101101111111101101111111111111111111111111111101101101101101101101111101111111111111111111101111111111111111111111111111111111111111
111111111111111111111111111111111100000000000001100000000001111101100001100001101100001101101100001100000000000000001100001100000000001100001101100001100001100000001100001101101101000101100000001000000000000000000000000000000101100000000000000000000001100001100001100001100001101101100000001100000000001100000000000000000000000000000001101101100001101100000001100001100001100001101100001100001111111111111111111111111111
111111111111111111111111111111111101111111111111101111111111111101101101111111101101101101101111111111111111111111111111111101111111111111111101101101111111101111101101101101101101000101111111101000000000000000000000000000000101111111111111111111111111111111111111111101111111101101101111111111111111111111111111111111111111111111111111101101111111101111111111101101101101101101101101101101101111111111111111111111111111
111111111111111111111111111111111101111111111111101111111111111101101101111111101101101101101111111111111111111111111111111101111111111111111101101101111111101000101101101101101101111101111111101000000000000000000000000000111101111111111111111111111111111111111111111101111111101101101111111111111111111111111111111111111111111111111111101101111111101111111111101101101101101101101101101101101111111111111111111111111111
111111111111111111111111111100000001100000000000001100000000000001101101100001100001100001100001100001100000000000000000000001100001100000001100001100000000001000100001100001100001100001100000001000000000000000000000000000100001100001100000000000000000000000000000001100000000001101100000000000000001100001100001100000000000000000000000001100000001100001100001101100001100001100001101101101101111111111111111111111111111
111111111111111111111111111101111111101111111111111101111111111111101101101101111111111111111101101101101111111111111111111111101101101111101111111111111111111000111111111111111111101111101111111000000000000000000000000000101111101101101111111111111111111111111111101111111111111101111111111111111101101101101101101111111111111111111111111111111101111101101101101111111111111111111101101101101111111111111111111111111111
111111111111111111111111111101111111101111111111111101111111111111101101101101111111111111111101101101101111111111111111111111101101101111101000111111111111111111111111111111111111101111101000000000000000000000000000000000101111101101101111111111111111111111111111101111111111111101111111111111111101101101101101101111111111111111111111111111111101111101101101101111111111111111111101101101101111111111111111111111111111
111111111111111111111111111100001100001111100000001100000000000000001100001101100001100000001100001101100000001100001100000000001100001100001000100000000000000000001100001100000000001100001000000000000000000000000000000000100000001101101100000000000000000000000001101100001100001101100000000000000001101100001100001100001100000000000000000000001100001100001100001100001100001100001101100001100000000000001111111111111111
111111111111111111111111111111101101111111101111101111111111111111111111111101101101101111101111111101111111101101101101111111111111111101111000101111111111111111101101101101111111111101111000000000000000000000000000000000111111111101101101111111111111111111111101101101101101101101101111111111111111101111111111111101101101111111111111111111101111101111111111111101101101101101101101111111111111111111101111111111111111
111111111111111111111111111111101101111111101111101111111111111111111111111101101101101111101111111101111111101101101101111111111111111101000111101111111111111111101101101101111111111101000000000000000000000000000000000000000000000101101101111111111111111111111101101101101101101101101111111111111111101111111111111101101101111111111111111111101111101111111111111101101101101101101101111111111111111111101111111111111111
111111111111111111111111111111101101100000001100001100000000000000000000000001101100001111101100001100000000001101100001100000000000000001000100001100000000000000001101100001100001100001000000000000000000000000000000000000000000000100001100000000000000000000001100001101101101101101100000000001100001100001100000000001100001100001100000000001100001100000000001100001100001100001101100000001100000000000001111111111111111
111111111111111111111111111111101101101111111101111101111111111111111111111111101111111111101101101111111111111101111111101111111111111111000101111101111111111111111101111111101101101111000000000000000000000000000000000000000000000111111111111111111111111111101111111101101101101101111111111101101101111101101111111111111111101101101111111101111101111111111101101111111111111111101111111101101111111111111111111111111111
111111111111111111111111111111101101101111111101111101111111111111111111111111101111111111101101101111111111111101111111101111111111111111111101111101111111111111111101111111101101101000000000000000000000000000000000000000000000000000000111111111111111111111101111111101101101101101111111111101101101111101101111111111111111101101101111111101111101111111111101101111111111111111101111111101101111111111111111111111111111
111111111111111111111111111111100001100000001100001100000000000000001100000001101100000000001101100000000000000001100001100000000000000000001100001101100000001100001101100000001100001000000000000000000000000000000000000000000000000000000100000000000000000000001100001101100001100001100000001100001101100001100000000000001111101100001100000001111100001100000001101100001100001100001100000001100000001111111111111111111111
111111111111111111111111111111111111111111101111101111111111111111101101111101101101111111111101111111111111111111101101111111111111111111101111101101101111101101101101101111111111111000000000000000000000000000000000000000000000000000000101111111111111111111111101101101111111111111101111101111111101101111111111111111101111101111111101111111111111101101111111101101101101101101111101111111111111101111111111111111111111
111111111111111111111111111111111111111111101111101111111111111111101101111101101101111111111101111111111111111111101101111111111111111111101000101101101111101101101101101111111111111111000000000000000000000000000000000000000000000000000101111111111111111111111101101101111111111000101111101111111101101111111111111111101111101111111101111111111111101101111111101101101101101101111101111111111111101111111111111111111111
111111111111111111111111111111111111100001100001100000000000000001101100001100001100001100001100001100000000000000001100000000000000001100001000101100001100001101101101100001100001100001000000000000000000000000000000000000000000000000000100000000000001100001100001101100001100001000100001101100001100001100001100000000001100001100001101100001100001101100001100001101100001100001100001100000000000001111111111111111111111
111111111111111111111111111111111111101101111101111111111111111101101111101111111111101101101111101101111111111111111111111111111111101101111000101111111101111101101101111101101101101101000000000000000000000000000000000000000000000000000111111111111101101101101111101111101101101000111101101101101111111101101101111111111101111101101101101101101101101111101101111101111111111111101111101111111111111111111111111111111111
111111111111111111111111111111111111101101111101111111111111111101101111101111111111101101101111101101111111111111111111111111111000101101000111101111111101111101101101111101101101101101111000000000000000000000000000000000000000000000000000111111111101101101101000101111101101101111111101101101101111111101101101111111111101111101101101101101101101101111101101111101111111111111101111101111111111111111111111111111111111
111111111111111111111111111111111111101101111100000001100000001100001100001111100001101101100000001100000000000000000000000000001000100001000100001100001101100001100001100001101100001100001000000000000000000000000000000000000000000000000000100000000001101100001000100000001101101100001101101101101100001101101100000000000001100001100001101100001101101100001100001100001100000001100001100000000000000000001111111111111111
111111111111111111111111111111111111101101111111111101101111101111111101111111101101101101111111111111111111111111111111111111101000111111000101111101101101101111111111101111101111111111101000000000000000000000000000000000000000000000000000101111111111101111111000111111111101101101101101101101101101101101101111111111111111101111111111101111111101101101111111101111101101111101111101111111111111111111101111111111111111
111111111111111111111111111111111111101101111111111101101111101111111101111111101101101101111111111111111111111111111111111111101111111111111101111101101101101111111111101111101111111111101111111000000000000000000000000000000000000000000111101111111111101111111111111111111101101101101101101101101101101101101111111111111111101111111111101111111101101101111111101111101101111101111101111111111111111111101111111111111111
111111111111111111111111111111111111101100000000000001101111100000001101100001101100001100001100000000000000000000000000000000001100001100001100001101100001101100000001100000001100001100001100001000000000000000000000000000000000000000000100001100001100001100001100000000001101101101101101100001100001100001100001100000000000001100001111101100000001100001100000001100001100001100000001100000000000000000001111111111111111
111111111111111111111111111111111111101111111111111111101111111111101101101101101111111111101101111111111111111111111111111111111101101101101111101101111111101101111101111111111101101101111101101000000000000000000000000000000000000000000101111101101101111101101101111111101101101101101101111111111111111111111101101111111111111101101111101101111111111111101111111101111111101111111111101111111111111111111111111111111111
111111111111111111111111111111111111101111111111111111101111111111101101101101101111111111101101111111111111111111111111111111111101101101101111101101111111101101111101111111111101101101111101101111000000000000000000000000111111111111111101111101101101111101101101111111101101101101101101111111111111111111111101101111111111111101101111101101111111111111101111111101111111101111111111101111111111111111111111111111111111
111111111111111111111111111111100001100000000000000000001100001111100001101100001100001100001100000001100000000000000000000000001101100001101100001100000000001100001100001100001101100001100001100001000000000000000000000000100000000000001100000001101101100001100001100001100001100001101101100000001100000000001101100000000000000001100001101100000000001111100000001100000000001100000000001100001111111111111111111111111111
111111111111111111111111111111101101111111111111111111111101101111111111101111111101101101111111111101101111111111111111111111101101111111101101111111111111111111101111101101101101111111101111111101000000000000000000000000101111111111101111111111101101101111111111101101111111111111101101101111101101111111101101111111111111111111111101101111111111101111111111101111111111111101111111111101101111111111111111111111111111
111111111111111111111111111111101101111111111111111111111101101111111111101111111101101101111111111101101111111111111111111111101101111111101101111111111111111111101111101101101101111111101111111101111111111111111111111111101111111111101000000000101101101111111111101101111111111111101101101111101101111111101101111111111111111111111101101111111111101111111111101111111111111101111111111101101111111111111111111111111111
111111111111111111111111111111101100000000000000000000000001100000000000001100001101101101100001100001101100000000000000000000001100000001100001100001100000001100001100001101101101100001100001100001100001100001100001100001100000000001101000000000100001100000001100001100000000000001100001100001100001100001101100000000001100001100001101101100000000001100001100001100000000000001100000001101100001111111111111111111111111
111111111111111111111111111111101111111111111111111111111111111111111111111101101101101101101101101111101101111111111111111111111111111101111111101101101111101101111101111101101101101101111101101111101101101101101101101101111111111101101000000000111111111111101101111111111111111101111111111101111111101101101111111111101101101101101101101101111111111101101101111101111111111111101111101101111101111111111111111111111111
111111111111111111111111111111101111111111111111111111111111111111111111111101101101101101101101101111101101111111111111111111000111111101111111101101101111101101111101111101101101101101111101101111101101101101101101101101000111111101101111000111111111111111101101111000111111111101111111111101111111101101101111111111101101101101101101101101111111111101101101111101111111111111101111101101111101111111111111111111111111
111111111111111111111111111111100000000000000000000000000000000001100000001101101101100001101101100000001101100000000000000001000100001101100000001101100001101100001100001101100001101100001101101100001101101101101101101101000100000001100001000100000000000001101100001000100001100001100000000001100000001100001100000001100001100001100001101101100001111101101100001101111100001111100001101101100001111111111111111111111111
111111111111111111111111111111111111111111111111111111111111111101101111101101101101111111101101111111111101101111111111111101000101101101101111111101111101101111101111101101111111101111101101101101111101101101101101101101000101111111111101000101111111111101101111101000101101101111101111111111101111111111111101111101111111111111111111101101101101111101101111101101111101101111111101101101101111111111111111111111111111
111111111111111111111111111111111111111111111111111111111111111101101111101101101101111111101101111111111101101111111111111101111101101101101111111101111101101111101111101101111111101111101101101101111101101101101101101101000101111111111101111101111111111101101111101111101101101111101000111111101111111111111101111101111111111111111111101101101101111101101111101101111101101111111101101101101111111111111111111111111111
111111111111111111111111111100000000001100000000000000000000001100001111101101101101100000001100000000000001101100000000000001100001100001100000001100000001100001100001100001100000001100001101101101100001101101101101101101000100000000001100001100000000001101100000001100001100001100001000100000001100001100001101100001100001111100001100001100001100000001100000001100001101101100000001100001100000001100000001111111111111
111111111111111111111111111101111111101101111111111111111111101111111111101101101101101111111111111111111111101101111111111111101111111111111111101111111111111101111101111111101111111101111101101101101111101101101101101101000111111111101111101111111111101101111111111101111111111101111000101111111101101101101101101111101101111101101101111111111111111111111111111111101101101101111111111111111111101101111101111111111111
111111111111111111111111111101111111101101111111111111111111101111111111101101101101101111111111111111111111101101111111111111101111111111111111101111111111000101111101111111101111111101111101101101101111101101101101101101111111111111101111101111111111101101111000111101111111111101111111101111111101101101101101101111101101111101101101111111111111111111111111111111101101101101111111111111111111101101111101111111111111
111111111111111111111111111100000001101100000000000000000001100000000000001101101101100000000000000000000000001100000000000000001100000000000001100000000001000101100001100001100000001100000001101101100000001101101100001101100000000000001100001100000001101100001000100001100001100001100001100001100001101101100001100000001101100001100001100001100001100000000000000001100001101101100000000000000000001101100001111111111111
111111111111111111111111111111111101101111111111111111111101111111111111111101101101111111111111111111111111111111111111111111111101111111111101111111111101000101101111101101111111101111111111101101111111111101101111111101101111111111111101111101111101101111101000101111101101101111101101111101101111101101111111111111111101101111111111101101101101101111111111111101111111101101101111111111111111111101101111111111111111
111111111111111111111111111111111101101111111111111111111101111111111111111101101101111111111111111111111111111111111111111111111101111111111101111111111101111101101000101101111111101111111111101101111111111101101111111101101111111111111101111101111101101111101111101111101101101111101101000101101000101101111111111111111101101111111111101101101101101111111111111101111111101101101111111111111111111101101111111111111111
111111111111111111111111111100000001100001111100001100000001100001100001100001101101100000000000001100000000000001100000001100001100000001100001100000000001100001101000101101100001100000001100001100001100000001101100000001100000001100001101100001100001101100001100001100001101101100001101000100001000100001100000000000001100001100000001101100001100001100000001100001100001100001100000000000000001100001100001111111111111
111111111111111111111111111101111111111101111101101101111111101101101101101111101101101111111111101101111111111101101111101101101111111101101111101111111111101111101000101101101101111111101101111111101101111111101101111111111111101101101101101111101111101101111101111101111101101101111101000111111000111111101111111111101111111101111101101111111111111101111101101111101101111111111111111111111101101111111101111111111111
111111111111111111111111111101111111111101111101101101111111101101101101101111101101101111111111101101111111111101101111101101101111111101101111101111111000101111101111101101101101111111101101111111101101111111101101111111111000101101101101101111101111101101111101111101111101101101111101111111111000111111101111111111101111111101111101101111111111111101111101101111101101111111111111111111111101101111111101111111111111
111111111111111111111111111100001100001101100001100001100001101100001101101111101101100000000001101100000000001101100001101101101100000001100000001100001000100000001100001101101100000000001101100001101101100001101100001100001000100001101101101100001100001100001100001100001100001100001100000000001000100001100000000001100000001100001101100001100001111101100001100001101101100000001100000000001100001100000001111111111111
111111111111111111111111111111101101101101101111111111101101101111111101101111101101111111111101101111111111101101111101101101101101111111111111111101101000111111111101111101101111111111111101101101101101101101101111101101101000111111101101101101111101111111101111101111101111111111101111111111101000101101111111111101111111101111101101111101101101111101101111111101101101101111101101111111101111111101111111111111111111
111111111111111111111111111111101101101101101111111111101101101111111101101111101101111111111101101111111111101101111101101101101101000111111000111101101111111111111101111101101111111111111101101101101101101101101111101101101111000111101101101101111101111111101111101111101111111111101111111111101111101101111111111101111111101111101101111101101101111101101111111101101101101111101101111111101111111101111111111111111111
111111111111111111111111111100001101101100001100000000001100001100000001100001100001100000000001100000000000001100001101100001100001000100001000100001100000001100001100001101100000001100001100001101101100001100001100001101100001000100001100001100001100000001100001100000001100000001100001100001100000001100000000000001100001101100001100001100001100000001100000001101101101101100001100000001100000000001111111111111111111
111111111111111111111111111101111101101111111101111111111111111101111111111101111111101111111111111111111111111111101101111111111111000101101000101111111111101101101111101101111111101101101111111101101111111111111101111101111101000101111111111111101111111101111101111111111101111101111101101101111111111111111111111111101101101101111111101111111111111111111111101101101101101101111111111101111111111111111111111111111111
111111111111111111111111111101111101101111111101111111111111111101111111111101111111101111111111111111111111111111101101111111111111111101101111101111111111101101101111101101111000101101101111111101101111111111111101000101111101111101111111111111101111111101111101111000111101111101111101101101111111111111111111111111101101101101111111101111111111111111111111101101101101101101111111111101111111111111111111111111111111
111111111111111111111111111100000001100000001100001100000000000001100000001100001100001100001100000000000000000001100001100001100001100001100000001100000000001101101100001100001000100001101100000001100000001100000001000100001100001100001100000000001100001100001100001000100001100001100001101100001100001100001100000001101101100001111111100000000000000001100001101100001100001100000001100001100000001111111111111111111111
111111111111111111111111111111111111111111101111101101111111111111101111101111101101111101101101111111111111111101111111101101101101101111111111111101111111111101101101111111101000111111101101111111111111101101111111000111101111101111101101111111111101101111101111101000101111101111101111101111101101101101101101111101101101111111111111111111111111111101101101101111111111111111111101101111101111101111111111111111111111
111111111111111111111111111111111111111111101111101101111111111111101111101111101101111101101101111111111111111101111111101101101101101111111111111101111111111101101101111111101111111111101101111111111111101101111111111111101111101111101101111111111101101111101111101111101111101000101111101000101101101101101101000101101101111111111111111111111111111101101101101111111111111111111101101111101111101111111111111111111111
111111111111111111111111111111111111111100001100001100000000000001101111100000001100000001101101100000000000000001100001101100001100001100000000001100000000001101101101100000001100001100001100001100001100001101100001100001100001100001101100000000001101100000001100001100001100001000100000001000100001100001100001000100001100000001111100001100001100001100001100001111100001100000001101100000001100001111111111111111111111
111111111111111111111111111111111111111101111101111111111111111101101111111111111111111111101101101111111111111111101101101111111111111101111111101111111111101101101101101111111101101101111111101101101101111101101101101101111101111101101111111111101101111111111101111101111101111000111111111000111111111111111111000111111111111101111101101101101101101111111111111111101101101111101101111111111101111111111111111111111111
111111111111111111111111111111111111111101111101111111111111111101101111111111111111111111101101101111111111111111101101101111111111111101111111101111111111101101101101101111111101101101111111101101101101111101101101101101111101111101101111111111101101111111111101000101111101111111111111111111111111111111111111111111111111111101111101101101101101101111111111111111101101101111101101111111111101111111111111111111111111
111111111111111111111111111100001100001100001100000001100000001100001100001100001100000000001101100000000000000000001100001100001100001101100001100000000000001101101101101100001101101100001100001101101100001101101101101101100001100001101100000000001100001100000001000100001101100001100001100001100001100000000000000000000000001100001101101101100001100000001100000000001100001100001101100000001100001111111111111111111111
111111111111111111111111111101101101101111101111111101101111101111111101101101101101111111111101111111111111111111111111111101101101101101101101111111111111111101101101101101101101101111101101111101101111101101101101101101101111101111101101111111111111101101111111000111101101101101101101101101101101101111111111111111111111101111101101101101111111111111101101111111111111111101111101101111101111101111111111111111111111
111111111111111111111111111101101101101111101111111101101111101111111101101101101101111111111101111111111111111111111111111101101101101101101101111111111111111101101101101101101101101111101101111101101111101101101101101101101111101111101101111111111111101101111111111111101101101101101101101101101101101111111111111111111111101111101101101101111111111111101101111111111111111101111101101111101111101111111111111111111111
111111111111111111111100001101101101101111100000000001100001101100001101101101101100000000000001111100000000000000000000000001100001100001101100001100001100001101101101101101101101101100001101100001100000001100001101101101101100001100001100001100001100001100001100000001101101101101101101101101101101101100001100000000000001100001100001100001100001100000001100001100000000000001100001101100001100001111111111111111111111
111111111111111111111101101101101101101111111111111111111101101101101101101101101111111111111111111101111111111111111111111111111111111111101111101101101101101101101101101101101101101101111101101111111111111111111101101101101101111101111111101101101101111111101101111101101101101101101101101101101101101101101101111111111101111101111111111111101101101111111111101101111111111111101111101101111101111111111111111111111111
111111111111111111111101101101101101101111111111111111111101101101101101101101101111111111111111111101111111111111111000111111111111111111101111101101101101101101101101101101101101101101111101101111111111111111111101101101101101111101111111101101101101111111101101111101101101101101101101101101101101101101101101111111111101111101111111111111101101101111111111101101111111111111101111101101111101111111111111111111111111
111111111111111111111101100001100001100000001100000001100001100001101101101101101100001100001100001100000000000000001000100001100000001100001100001101101101101101101101101101100001100001100001100000000000000000001101101100001100001100001100001101101100001100001100001101101101101101101101101101101101100001100001100000000001100001100001100001101101100000001100001100000000000001100001101100000001111111111111111111111111
111111111111111111111101111111111111111111101101111101101111111111101101101101101101101101101101101111111111111111101000101101101111101101111101111101101101101101101101101101111111111111101111111111111111111111101101101111111111101111101101111101101111101101111111101101101101101101101101101101101101111111111111101111111111101111101101101101101101111111101101111111111111111101111101101111111111111111111111111111111111
111111111111111111111101111111111111111111101101111101101111111111101101101101101101101101101101101111111111111111101111101101101111101101111101111101101101101101101101101101111111111111101111111111111111111111101101101111111111101000101101111101101111101101000111101101101101101101101101101101101101111000111111101111111111101111101101101101101101111111101101111111111111111101111101101111111111111111111111111111111111
111111111111111111111100000000000000000001101101100001100001100001100001100001100001100001101101101100001100000001100000001100001100001100001101100001101101101101100001101100000001100000001100000001100000000001101101100000001100001000101100001101100001101101000100001100001101101101101100001101101100001000100001100000000001100000001100001100001100000001100001100000000000000001111101100001100001111111111111111111111111
111111111111111111111111111111111111111101101101101111111101101101111111111111111111111111101101101101101101111101111111111111111101111111101101101111101101101101111111101111111101101111111101111101101111111101101101111111101101111000101111101101111101101101000101111111111101101101101111111101101111101000101101111111111101111111111111111111111111111101111111101111111111111111111101111101101101111111111111111111111111
111111111111111111111111111111111111111101101101101111111101101101111111111111111111111111101101101101101101111101111111111111111101111111101101101111101101101101111111101111111101101000111101111101101111111101101101111111101101111111101111101101111101101101111101111111111101101101101111111101101111101111101101111111111101111111111111111111111111111101111111101111111111111111111101111101101101111111111111111111111111
111111111111111111111111111111100001100001100001101100001100001101100000000000000000000001100001100001101100001101100001100001100001100000001100001100001101101101100000001100001101101000100001100001100000001101101100000001101101100001100001101101100001101100001100000001100001101101101100001100001100001100001100000000000001111100000000000000000000001101100001100000000000000001111100001101101101111100001111111111111111
111111111111111111111111111111101101101111111111101101101111111101101111111111111111111101111111111111101111101101101101101101101111101111111111111101111101101101101111111101101101101000101111101111111111101101101111111101101101101101111101101101101111101111101111111101101111101101101101101111111101111101111111111111111111111101111111111111111111101101101101111111111111111101111111101101101101111101101111111111111111
111111111111111111111111111111101101101111111111101101101111111101101111111111111111111101111111111111101111101101101101101101101111101111111111111101111101101101101111111101101101101111101111101111111111101101101111111101101101101101000101101101101111101111101111111101101000101101101101101111111101000101111111111111111111111101111111111111111111101101101101111111111111111101111111101101101101111101101111111111111111
111111111111111111111100001100001101100000001100001101101100001100001100001100001100000001100001100001100000001101101100001100001100001100000000000001100001101101101100001101100001100001100001101100000000001100001100000001101100001101000101100001100001100001100000000001101000101101100001100001100001000100000000000000000000000001100001100000000001101101101100000000000000000001100001100001101100000001100001111111111111
111111111111111111111101101101111101111111101101111101101101101111111101101101101101111111101101101101111111111101101111111111111101111101111111111111101111101101101101101101111111111101111101101101111111111111111101111111101111111101000101111111111101111101111111111111101000101101111111111101101111000111111111111111111111111111101101101111111101101101101111111111111111111111101101111111101111111111111101111111111111
111111111111111111111101101101111101111111101101111101101101101111111101101101101101111111101101101101111111111101101111111111111101111101111111111000101111101101101101101101111111111101111101101101111111111111111101111111101111111101111101111111111101000101111111111111101111101101111111111101101111111111111111111111111111111111101101101111111101101101101111111111111111111111101101111111101111111111111101111111111111
111111111111111111100001101100001101100000001101111101101101101111100001100001101100000000001100001100000000001100001100001100001100001101100000001000101100001101101101101100000000001100000001101100000000000000001100000001100001100001100001100000000001000100000000001100001100001100000000001101100000001100000000000000000001100001101101101100001100001100001111100000000000000001101100000000001100000000000001111111111111
111111111111111111101111101111101101101111111101111101101101101111101111111111101111111111111111111111111111101111111101101101101111101101101111101000101101111101101101101111111111101111111111101111111111111111101111111101111101101111101111101111111111000111111111101101111101111111111111101101111111101101111111111111111101101101101101101101101111111111111111101111111111111101101111111111111101111111111111111111111111
111111111111111111101111101111101101101111111101111101101101101111101111111111101111111111111111111111111111101000111101101101101111101101101111101111101101111101101101101000111111101111111111101000111111111111101111111101111101101111101111101111111111111111111000101101111101111111111111101101111111101101111111111111111101101101101101101101101111111111111111101111111111111101101111111111111101111111111111111111111111
111111111111111111100001100000001101100000001100000001100001100001100000000001100001100001100001111100000000001000100001101101100001101101101100001100001101100001101101101000100000001100000000001000100000000001100000001100001101100001100001101100001100001100001000101100001100001100000000001100001100001100000000000000001101101100001100001101101111100001100001101100000000000001101100000000000001111111111111111111111111
111111111111111111111101111111111101111111101111111111111111111101111111111101111101101101101101111101111111111000101111101101111101101101101101111101111101101111101101101000101111111101111111111000101111111101111111101111101101111101111101101101101101101101101000101111101111101101111111111111101101111111111111111111101101101111111111111101101111101101101101101101111111111111101101111111111111111111111111111111111111
111111111111111111111101111111111101111111101111111111111111111101111111111101111101101101101101111101111111111111101111101101111101101101101101000101111101101111101101101111101111111101111111111111101111111101111111101111101101111101111101101101101101101101101111101111101111101101111000111111101101111111000111111111101101101111111111111101101111101101101101101101111111111111101101111111111111111111111111111111111111
111111111111111111111100000000001101100001100000001100001100001100000001111100001100001100001100001100000001100000001100001101100001101101101101000101100001100001100001100001100000001100000000000001100000001101100001100001101101100001100001100001101101101101101100001100001100001100001000100001101101100001000100001100001100001111100000001101100001101101101100001100001100000000001100000000000000001111111111111111111111
111111111111111111111111111111101101101101111111101101101101101111111101111111101111111111111111101111111101101111111101111101101111101101101101000101101111111101111111111101111111101111111111111101111111101101101101111101101101101111101111111111101101101101101101111101111101111111101000101101101101101101000101101101111111111111101111101101111101101101101111111111101101111111111111111111111111101111111111111111111111
111111111111111111111111111111101101101101111111101101101101101111111101111111101111111111111111101111111101101111111101111101101111101101101101111101101111111101111111111101111111101111111111111101111111101101101101111101101101101000101111111111101101101101101101111101111101111111101111101101101101101101111101101101111111111111101111101101111101101101101111111111101101111111111111111111111111101111111111111111111111
111111111111111100001100000000001101101101100000001101100001100000001101100000001100000001100001100000000001100000001101100001100001101101101101100001100001100001100000000001100001101100000000000001100000001100001100001101101101101000100001100001100001100001101100001100001100000001100001101101101101101101100001100001100001100001101100001101100001101101101100000000001101100000000001100000000000001111111111111111111111
111111111111111101101101111111111101101101101111111101111111111111101101101111111101111101101101111111111111111111101101101111111101101101101101101111111101101111101111111111101101101101111111111111101111111111111111101101101101101000111101101101111111111111101111101111101111111101111101101101101101101101101111111111101101101101101101111101101111101101101101111111111101101111111101101111111111111111111111111111111111
111111111111111101101101111111111101101101101111111101111111111111101101101111111101111101101101111111111111000111101101101111111101101101101101101111111101101111101111111000101101101101000111111000101111111111111111101101101101101111111101101101111111111111101000101111101111111101111101101101101101101101101111111111101101101101101101111101101111101101101101111111111101101111111101101111111111111111111111111111111111
111111111100000001100001100000001101101101100000001101100001100000001101100000001100001100001100001100000001000100001101101100000001101100001101100000001101100001101100001000101101101101000100001000100000000000000001101101100001100001100001101100001100000000001000100001101100001101100001101101101100001101100000000000001100001100001100001101101100001100001100000000000001100000001101100000000000001111111111111111111111
111111111101111111111111101111101101101101111111101101101101101111111101111111101111101111111111101101111101000101111101101101111111101111111101111111101101111101101101101000101101101101000101101000111111111111111101101101111111111101101111101111101101111111111000111101101101101101101111101101101111111101111111111111111111111111111111101101101101111111111111111111111111111111101101111111111111101111111111111111111111
111111111101111111111111101111101101101101111111101101101101101111111101111111101111101111111111101101111101111101111101101101111111101111111101000111101101111101101101101111101101101101111101101111111111111111111101101101111111111101101111101111101101111111111111111101101101101101101111101101101111111101111111111111111111111111111111101101101101111111111111111111111111111111101101111111111111101111111111111111111111
111111111100000001100001101100001100001100001111100001101100001100001100000000001100001100000000001101111100001100001100001100001100001100000001000100001100001101101101100001101101101100001101100000001100000000001101101101100000000001100000001100001100001100001100001101101101101101101100001101100000001100001100001100000000001100000001100001100001100001100000001100000000000000001101100000000000001111111111111111111111
111111111111111101101101101101111111111111101111111111101111111101101111111111111101111101111111111101111111101111101111111111101101111101111111000101111111101101101101111101101101101111101101111111101101111111101101101101101111111111111111111101111111101101101101101101101101101101101101111101111111101111101101101101111111101101111101111111111111101101101111101101111111111111111101101111111111111111111111111111111111
111111111111111101101101101101111111111111101111111111101111111101101111111111111101111101111111111101111111101000101111111111101101111101000111111101111111101101101101111101101101101111101101111111101101111111101101101101101111111111111111111101111111101101101101101101101101101101101101111101111111101111101101101101111111101101111101111111111111101101101111101101111111111111111101101111111111111111111111111111111111
111111111111111100001100001100000001100000001100000000001100001101100000000000000001111101100001100001100000001000100000001100001100001101000100001100001100001101101100001101101101101100001100001100001100001100001101101101101100001100001100001100001100001101101101101101101101101101101100001101100001101100001101101100000001101100001101100001100000001100001100001100000000000000001101100000000001111111111111111111111111
111111111111111111111111111111111101101111111101111111111101101101111111111111111111111101101101101111101111111000111111101101111111101101000101101111101101111101101111101101101101101101111111101101111111101101111101101101101101101101101101101111101101111101101101101101101101101101101111101101101101101101111101101111111101101111101101101101101111111111111101111111111111111111101101111111111101111111111111111111111111
111111111111111111111111111111111101101111111101111111111101101101111111111111111111111101101101101111101111111111111111101101111111101101111101101111101101111101101111101101101101101101111111101101111111101101111101101101101101101101101101101111101101111101101101101101101101101101101111101101101101101101111101101111111101101111101101101101101111111111111101111111111111111111101101111111111101111111111111111111111111
111111100001100001100001111100000001100000000001100001100001101101100000000000000000001100001100001100001100001100001100001100001100001100001101101100001101100001100001101101101101101100001100001100001100001101100001101101101101101101101101100001101100001101101101100001101101101101101100001101101101101101100001101100001101100001101100001101100000000000001100001100001100000000001100000000000001111111111111111111111111
111111101101101101101101111101111111111111111111101101101111101101101111111111111111101111111111111101111101101101101101111111101101111111101101101101111101101111111101101101101101101111101101111111101101111101101111101101101101101101101101111101101111101101101101111111101101101101101101111101101101101101101111101101101101111101101111111101111111111111101111101101101101111111111111111111111111111111111111111111111111
111111101101101101101101111101111111111111111111101101101111101101101111111111111111101111111111111101111101101101101101111111101101111111101101101101111101101111111101101101101101101111101101111111101101111101101111101101101101101101101101111101101111101101101101111111101101101101101101111101101101101101101111101101101101111101101111111101111111111111101111101101101101111111111111111111111111111111111111111111111111
111111101100001100001100000001100001100000001100001101101111101101100000000000000001101111100000000001100001101101100001100000001100000001101101100001111100001111100001101101101101101100001101100001101101100001100001100001101101100001101101100001100001101101101101111100001101100001101101100001101101101100001111100001101100001100001100001100001100000000001100001101101100000000000000000000001111111111111111111111111111
111111101111111111111111111111101101101111101101111101101111101101111111111111111101101111101111111111101111101101111111101111111111111101101101111111111111111111101111101101101101101101111101101101101101101111111101111111101101111111101101101111111101101101101101111101111101111111101101101111101101101111111111111111101111101111111101101111101101111111111101111101101111111111111111111111101111111111111111111111111111
111111101111111111111111111111101101101111101101111101101111101101111111111111111101101111101111111111101111101101111111101111111111111101101101111111111111111111101111101101101101101101111101101101101101101111111101111111101101111111101101101111111101101101101101111101111101111111101101101111101101101111111111111111101111101111111101101111101101111111111101111101101111111111111111111111101111111111111111111111111111
111111100000000001100001100001101100001100001100001101101100001101100000000001100001100000001100001100001111101100000001100001100001100001101100000000001111100001100001101100001101101100001100001101100001100000001100001100001100000001101101100001100001101101101101100001100001100000001101100001101101100000000000001111100000001100000001101100001100000000001100001101101100001100001100001100001111111111111111111111111111
111111111111111101101101101101101111111101111111101101101101111101101111111101101111111111111101101101111111101111111101111101101101101111101111111111101111101101111101101111111101101111101111111101111111111111101111101101111111111101101101111101101111101101101101101111101111101111111101111101101101111111111111101111111111111101111111101101111111111111101111101101101101101101101101101101111111111111111111111111111111
111111111111111101101101101101101111111101111111101101101101111101101111111101101111111111111101101101111111101111111101111101101101101111101111111111101111101101111101101111111101101111101111111101111111111111101111101101111111111101101101111101101111101101101101101111101111101111111101111101101101111111111111101111111111111101111111101101111111111111101111101101101101101101101101101101111111111111111111111111111111
111111100001100001101100001101100001111100000000001100001100001101101100001100001100000001100001101100000001101100001101100001101101100001101100000000001100001100000001100000001100001111101100001100000001100001101100001100001100001101101100001101101100001101101101101100001100001100001101100001101100000001100000001100000000000001100000001100001100000001100001101101100001100001100001100001111111111111111111111111111111
111111101101101111101111111101111101111111111111111111111111101101101101101111111101111101101111101111111101101101101101101111101101111101101101111111111101111111111111111111101111111111101101101111111101101101101101111111101101101101101111101101101101111101101101101101111101111101101101101111101111111101101111111101111111111111101111111111101101111101111101101101111111111111111111111111111111111111111111111111111111
111111101101101111101111111101111101111111111111111111111111101101101101101111111101111101101111101111111101101101101101101111101101111101101101111111111101111111111111111111101111111111101101101111111101101101101101111111101101101101101111101101101101111101101101101101111101111101101101101111101111111101101111111101111111111111101111111111101101111101111101101101111111111111111111111111111111111111111111111111111111
100000001100001100001111100001100001100000000000000001111100001101100001100000000001111101101111100000001101101101101101100001101101100001101100000001111100001100001100001100001111100000001101101100001101101100001100000001101101100001100001101101101100001101101101101100001101100001101101101100001100000001100000000001100000000000001100001100001100001101100001101100000000000000001111111111111111111111111111111111111111
101111111111111101111111101111101111101111111111111101111101111101111111111111111111111101101111111111101101101101101101111101101101101111101111111101111111101101101101101101111111101111111101101101101101101111111111111101101101111111111101101101101111101101101101101111101101101111101101101101111101111111111111111111101111111111111101101101111111101101101111101111111111111111101111111111111111111111111111111111111111
101111111111111101111111101111101111101111111111111101111101111101111111111111111111111101101111111111101101101101101101111101101101101111101111111101111111101101101101101101111111101111111101101101101101101111111111111101101101111111111101101101101111101101101101101111101101101111101101101101111101111111111111111111101111111111111101101101111111101101101111101111111111111111101111111111111111111111111111111111111111
100001100000000001111111101100001100001100001100001100000001100001111100000000000000000001100000000001100001101101100001111101101101101111101100000001100000001101101101101100001100001100001101100001100001100001100000000001101100000000001101101101100001100001100001101100001101101100001101101100001100001100000001100001100000000000000001101100001100001100001100001100001100000000001111111111111111111111111111111111111111
111101101111111111111111101101111101111101101101101111111111101111111101111111111111111111111111111101111111101101111111111101101101101111101101111111101111111101101101101111101101111101101101111111111111111101101111111111101111111111101101101101111101111111111111101101111101101101111101101111101111101101111101101101111111111111111111101111101101111111111101111101101101111111111111111111111111111111111111111111111111
111101101111111111111111101101111101111101101101101111111111101111111101111111111111111111111111111101111111101101111111111101101101101111101101111111101111111101101101101111101101111101101101111111111111111101101111111111101111111111101101101101111101111111111111101101111101101101111101101111101111101101111101101101111111111111111111101111101101111111111101111101101101111111111111111111111111111111111111111111111111
111101101111111100001100001100001100001101101101101100001100001100001100000001100001100001100001100001111100001101111100000001101101100001100001100000001100001101101101101100001101100001101100000000001100000001100000001100001100001100001101101100001101100000000000001100001101101100001101101100001111101101111100001100001100001100001100001111101100000001111100000001100001111111111111111111111111111111111111111111111111
111101101111111101101101111111101111101101101101101101101101111101101111111101101101101101101101101111111101111101111101111111101101111101111111101111111101101101101101101101111101101111101111111111101101111111111111101101111101101101111101101111101101101111111111111111101101101111101101101101111111101101111111111111101101101101101101111111101111111101111111111111111111111111111111111111111111111111111111111111111111
111101101111111101101101111111101111101101101101101101101101111101101111111101101101101101101101101111111101111101111101111111101101111101111111101111111101101101101101101101111101101111101111111111101101111111111111101101111101101101111101101111101101101111111111111111101101101111101101101101111111101101111111111111101101101101101101111111101111111101111111111111111111111111111111111111111111111111111111111111111111
111100001100000001100001100001101100001101100001100001100001100001100000001100001101101101101101100000001100001101100001100001101100001100000001101100001101101101101101101100001101100001100001100000001101100001100001101101100001100001100001100001101101101100000000001100001100001100001101100001111100001100001100001100001101100001100001100001101100001100000000000000001111111111111111111111111111111111111111111111111111
111111111101111111111111101101101101111101111111111111111111101111111111101111111101101101101101111111101111101101101111101101101111101111111101101101101101101101101101101111101101111101111101101111111101101101101101101101101111111111101111111101101101101101111111101101111111111101111101111111111101111111101101101101111101111111111111101101101101101111111111111111101111111111111111111111111111111111111111111111111111
111111111101111111111111101101101101111101111111111111111111101111111111101111111101101101101101111111101111101101101111101101101111101111111101101101101101101101101101101111101101111101111101101111111101101101101101101101101111111111101111111101101101101101111111101101111111111101111101111111111101111111101101101101111101111111111111101101101101101111111111111111101111111111111111111111111111111111111111111111111111
111111111100000000000001101100001100000001111100001100000000001100000001100000000001101101101101100000001111100001101100001101101111101100000001101101101101100001101101101100001101100001100001100000001100001101101101101101100000000001100000000001101101101101100000001100000001111100001100000001100001100001100001101100001100000001100001101101100001100001100000001100001111111111111111111111111111111111111111111111111111
111111111111111111111101101111111111111111111101101101111111111101111101111111111111101101101101101111111111111111101101111101101111101101111111101101101101111111101101101101111101101111101111111111101111111101101101101101111111111101111111111111101101101101101111111111111101111111101111111101101111101101111111101111101111111101101101101101111111111101101111101101111111111111111111111111111111111111111111111111111111
111111111111111111111101101111111111111111111101101101111111111101111101111111111111101101101101101111111111111111101101111101101111101101111111101101101101111111101101101101111101101111101111111111101111111101101101101101111111111101111111111111101101101101101111111111111101111111101111111101101111101101111111101111101111111101101101101101111111111101101111101101111111111111111111111111111111111111111111111111111111
111111111111100000000001100001111100000000000001100001100000001100001100001100001100001101101100001111100000000000001101111100001100001100000001100001101100001100001101101101100001101111101100000001100000001101101101101100001100000001100000001111100001101101100000000000000001100001101100001101100000001101100000001111101100001100001100001100000000001100001111101100000000000001111111111111111111111111111111111111111111
111111111111101111111111111101111101111111111111111111101111101111101111101101101101111101101111111111101111111111111101111111111101111111111101111111101111101101111101101101101111101111101101111101111111101101101101101111101101111111101111101111111111101101111111111111111111101101101101101101111111111101101111111111101101101111111111111111111111101111111111101111111111111101111111111111111111111111111111111111111111
111111111111101111111111111101111101111111111111111111101111101111101111101101101101111101101111111111101111111111111101111111111101111111111101111111101111101101111101101101101111101111101101111101111111101101101101101111101101111111101111101111111111101101111111111111111111101101101101101101111111111101101111111111101101101111111111111111111111101111111111101111111111111101111111111111111111111111111111111111111111
111111111111101100001100001100001101100000001100001100001100001100001100001101101101100001100000000001100000001100001100000001100001100000000001100001101100001100001101101101100001100001101100001101100001101101101100001100001100000000001100001100001111100001100000000000000000001100001101101100000001100001100000000001100001101100000000001100000000001100001100001100001100000001111111111111111111111111111111111111111111
111111111111101101101101101111101101101111101101101101111101111101111101111101101101101111111111111101111111101101101111111101101111101111111111101101101101111111101101101101111101111101101111101101101101101101101111111101111111111111111101111101101111111111101111111111111111111111111101101111111101101111111111111101111111101101111111101101111111111101101101111101101101111111111111111111111111111111111111111111111111
111111111111101101101101101111101101101111101101101101111101111101111101111101101101101111111111111101111111101101101111111101101111101111111111101101101101111111101101101101111101111101101111101101101101101101101111111101111111111111111101111101101111111111101111111111111111111111111101101111111101101111111111111101111111101101111111101101111111111101101101111101101101111111111111111111111111111111111111111111111111
111111111111100001100001101100001101101100001101101101100001100001111100001101101101100001100000001100001100001101101100001101100001100000001100001100001101100001101101101101111100001101101100001101101100001100001100000001100001100001100001111101100000000001100000000001100001100001100001101100000001100001100000000001100001101100000001101100000000000001101100001101100001111111111111111111111111111111111111111111111111
111111111111111111111111101101111101101101111101101101101111101111111111101101101101111101101111101111101101111101101101101101111101111111101101111111111101101101101101101101111111101101101101111101101111111111111101111111101101101101101111111101111111111101111111111101101101101101101111101101111111111101101111111111101101101111111101101111111111111111101111101101111111111111111111111111111111111111111111111111111111
111111111111111111111111101101111101101101111101101101101111101111111111101101101101111101101111101111101101111101101101101101111101111111101101111111111101101101101101101101111111101101101101111101101111111111111101111111101101101101101111111101111111111101111111111101101101101101101111101101111111111101101111111111101101101111111101101111111111111111101111101101111111111111111111111111111111111111111111111111111111
111111111111111100000000001101111100001100001101100001100000001111111111100001101101111100001100001100001100001101101101101100001101100001101100001100001101101100001101100001100000001101101100001101100000000000001101100001101100001101100000000001100001100001111100001100001101101101100001101100001100001101100000000000001101101100000001101100001100001100001111100001111111111111111111111111111111111111111111111111111111
111111111111111101111111111101111111111111101101111111111111111111111111111111101101111111111101111101111111101101101101101111101101101101101111101101101101101111111101111111101111111101101111101101111111111111101101101101101111111101111111111111101101101111111101101111111101101101111101101111101101101101111111111111111101101101111111101101101101101101111111111111111111111111111111111111111111111111111111111111111111
111111111111111101111111111101111111111111101101111111111111111111111111111111101101111111111101111101111111101101101101101111101101101101101111101101101101101111111101111111101111111101101111101101111111111111101101101101101111111101111111111111101101101111111101101111111101101101111101101111101101101101111111111111111101101101111111101101101101101101111111111111111111111111111111111111111111111111111111111111111111
111111111111111101100000000001111111111100001101100000001111100001111100000000001100000000001100000001100000001101101101100000001101101100001111101101100001100000001101100001100001100001101100001101100000000001101101101100001111100001100001100000001101101100000001100000000001101101100001101100001101100001100001100000001101101100000001101101100001101100000001111111111111111111111111111111111111111111111111111111111111
111111111111111101101111111111111111111101111101101111101111101101111101111111111111111111101111111111101111111101101101111111111101101111111111101101111111111111101101101101111101101111101101111101101111111101101101101111111111101111101101101111111101101101111111111111111111101101101111101101111101111111101101101111101101101111111101101101111111101111111101111111111111111111111111111111111111111111111111111111111111
111111111111111101101111111111111111111101111101101111101111101101111101111111111111111111101111111111101111111101101101111111111101101111111111101101111111111111101101101101111101101111101101111101101111111101101101101111111111101111101101101111111101101101111111111111111111101101101111101101111101111111101101101111101101101111111101101101111111101111111101111111111111111111111111111111111111111111111111111111111111
111111111111111100001111111111111111111101100001100001100000001100001100000001100001100001100001100000001100001101101100000001111100001111100000001100001100000000001101101100000001100001101100001101100000001100001100001100000000001100001101100000001101101100000001100000001100001101100001100001111100000001101100001111100001101100001101101100000001101100001101111111111111111111111111111111111111111111111111111111111111
111111111111111111111111111111111111111101101111111101111111111111101111111101101101101101111101101111111101101101101111111101111111111111101111111111101101111111111101101111111111111101101111101101111111101111111111111101111111111101111101111111101101101111111101101111101101111101111101111111111111111101101111111111111111101101101101101111111101101101101101111111111111111111111111111111111111111111111111111111111111
111111111111111111111111111111111111111101101111111101111111111111101111111101101101101101111101101111111101101101101111111101111111111111101111111111101101111111111101101111111111111101101111101101111111101111111111111101111111111101111101111111101101101111111101101111101101111101111101111111111111111101101111111111111111101101101101101111111101101101101101111111111111111111111111111111111111111111111111111111111111
111111111111111111111111111111111111111101101111111100001100000001100000000001101100001101100001100001100001101101101100001100000001100001100000000001101100001100001101100001100000000001100001101100001100001100000000001100001100001101111101100000001101101100000001100001101101100001100001100000000000000001100000000000001100001101100001100001100001100001100001111111111111111111111111111111111111111111111111111111111111
111111111111111111111111111111111111111101101111111111101101111101111111111111101111111101101111111101101111101101101101101111111101101101111111111101101111101101101101111101101111111111111101101111101101111101111111101111101101101101111101101111111101101101111111111101101101101111101111101111111111111111111111111111101101111101111111111101101111111111111111111111111111111111111111111111111111111111111111111111111111
111111111111111111111111111111111111111101101111111111101101111101111111111111101111111101101111111101101111101101101101101111111101101101111111111101101111101101101101111101101111111111111101101111101101111101111111101111101101101101111101101111111101101101111111111101101101101111101111101111111111111111111111111111101101111101111111111101101111111111111111111111111111111111111111111111111111111111111111111111111111
111111111111111111111111111111111111111100001111111100001101100001100001100001100000001101100001111101101111100001100001100001100001101101111100000001100001100001101101100001100000000000001100001111101101100001100001101100001101101100001101100001100001101100001100001101100001100001100001101100000000000001100000001100001100001100000000001101100000001111111111111111111111111111111111111111111111111111111111111111111111
111111111111111111111111111111111111111111111111111101111101101111101101101101111111101101111101111101101111111111111111111101101111101101111101111111111101111111101101101111111111111111101111111111101101101111101101101101111101101111101101111101101111101111101101101101111111111101111101101101111111111101101111101101111111101111111111101101111111101111111111111111111111111111111111111111111111111111111111111111111111
111111111111111111111111111111111111111111111111111101111101101111101101101101111111101101111101111101101111111111111111111101101111101101111101111111111101111111101101101111111111111111101111111111101101101111101101101101111101101111101101111101101111101111101101101101111111111101111101101101111111111101101111101101111111101111111111101101111111101111111111111111111111111111111111111111111111111111111111111111111111
111111111111111111111111111111111111111111111111111101100001100001101100001100001100001100000001100001100000000000001100001101100001101100000001100000001101100000001101100000001100001100001100000000001100001100001100001100001101100001101101100001100001101100001101100001111100000001100001100001111100000001100001100001100001100001100000001101100001100000001111111111111111111111111111111111111111111111111111111111111111
111111111111111111111111111111111111111111111111111101101111111101101111111111101101111111111111101111111111111111101101101101111101101111111111101111101101101111111101111111101101101101111101111111111111111101111111111111101101111101101101101111111101101101111101111111111101111111101111111111111101111111111101111111101101111101101111111101101101111111101111111111111111111111111111111111111111111111111111111111111111
111111111111111111111111111111111111111111111111111101101111111101101111111111101101111111111111101111111111111111101101101101111101101111111111101111101101101111111101111111101101101101111101111111111111111101111111111111101101111101101101101111111101101101111101111111111101111111101111111111111101111111111101111111101101111101101111111101101101111111101111111111111111111111111111111111111111111111111111111111111111
111111111111111111111111111111111111111111111111111100001111111101101111100001101100000001100000001100001100000000001101101100000001101100000001100001101101100000001100001100001101101100001100001100001100001100001111100001101100001101101101100000001100001100001100000000001100000000001100001100001100001100001100000000001101100001100001100001101101100000001111111111111111111111111111111111111111111111111111111111111111
111111111111111111111111111111111111111111111111111111111111111101101111101101101111111101101111111101101101111111111101101111111111101101111101111101101101111111101111101101111101101111101111101101101101101111101111101101101111101101101101111111101111111111101111111111101111111111111101101101101111101101101111111111111101101111111101101111101101101111111111111111111111111111111111111111111111111111111111111111111111
111111111111111111111111111111111111111111111111111111111111111101101111101101101111111101101111111101101101111111111101101111111111101101111101111101101101111111101111101101111101101111101111101101101101101111101111101101101111101101101101111111101111111111101111111111101111111111111101101101101111101101101111111111111101101111111101101111101101101111111111111111111111111111111111111111111111111111111111111111111111
111111111111111111111111111111111111111111111111111111111111100001101100001100001100001101101100001101101100000000000001100000001100001101111101100001100001100001101100001100000001101100001111100001101101100001100001101101100001101101101100001100001111100000001100000000001111100001100001100001100000001101101100000000001101100001100001100001101101101111111111111111111111111111111111111111111111111111111111111111111111
111111111111111111111111111111111111111111111111111111111111101111101101111111111101101101101101101101101111111111111111111111101101111101111101101111111111101101101101111111111111101101111111111111101101111101111101101101111101101101101111101101111111101111111101111111111111101101101111111111111111111101101101111111101101111101101111111101101101101111111111111111111111111111111111111111111111111111111111111111111111
111111111111111111111111111111111111111111111111111111111111101111101101111111111101101101101101101101101111111111111111111111101101111101111101101111111111101101101101111111111111101101111111111111101101111101111101101101111101101101101111101101111111101111111101111111111111101101101111111111111111111101101101111111101101111101101111111101101101101111111111111111111111111111111111111111111111111111111111111111111111
111111111111111111111111111111111111111111111111111111111111100001101101100000001101100001101101101101101100000001100001100000001101100001100001100000001100001100001100000000000001101100001100000000001100001100001100001101100001101100001111101101100000001100000001100000000000001100001100000000001100001101101100000001100001100001100000001101101101101111111111111111111111111111111111111111111111111111111111111111111111
111111111111111111111111111111111111111111111111111111111111111101101101101111101101111111101101101101101101111101101101101111111101101111101111111111101101111111111111111111111101101111101101111111111111101111101111111101101111101111111111101101101111111101111111101111111111111111111101111111101101101101101111111101111111101111111111101101101101101111111111111111111111111111111111111111111111111111111111111111111111
111111111111111111111111111111111111111111111111111111111111111101101101101111101101111111101101101101101101111101101101101111111101101111101111111111101101111111111111111111111101101111101101111111111111101111101111111101101111101111111111101101101111111101111111101111111111111111111101111111101101101101101111111101111111101111111111101101101101101111111111111111111111111111111111111111111111111111111111111111111111
111111111111111111111111111111111111111111111111111111111111111100001101101100001100000001100001101101101100001101101100001100000001100001100001100001101100000000001100000000001101100001101101100001100001101100001100000001100001100001111111100001100001100001111111100000001100001100001101100000001101101101101100000001100001100000000000001101101100001111111111111111111111111111111111111111111111111111111111111111111111
111111111111111111111111111111111111111111111111111111111111111111111101101101111111111101111111101101101111101101101111111101111111111101111101101101101111111111101101111111101101111101101101101101101101101101111101111111111101111101111111111111111101101111111111111111101101101101101101101111111101101101101101111111101101111111111111111101101111111111111111111111111111111111111111111111111111111111111111111111111111
111111111111111111111111111111111111111111111111111111111111111111111101101101111111111101111111101101101111101101101111111101111111111101111101101101101111111111101101111111101101111101101101101101101101101101111101111111111101111101111111111111111101101111111111111111101101101101101101101111111101101101101101111111101101111111111111111101101111111111111111111111111111111111111111111111111111111111111111111111111111
111111111111111111111111111111111111111111111111111111111111111111111101101100000001100001100000001101101100001101100000001100000001100001111101101101101100000000001100000001100001100001101101101101101101101100001100000000001100001100001111111100000001100001111111100001100001100001100001100001100001101101101100000000001100000000000001111100001111111111111111111111111111111111111111111111111111111111111111111111111111
111111111111111111111111111111111111111111111111111111111111111111111101101111111101101111101111111101101101111101111111101111111101101111111101101101101101111111111111111101111111101111101101101101101101101111101111111111101111101111101111111101111111111101111111101101111111111111111111111101101111101101101111111111111111111111111101111111111111111111111111111111111111111111111111111111111111111111111111111111111111
111111111111111111111111111111111111111111111111111111111111111111111101101111111101101111101111111101101101111101111111101111111101101111111101101101101101111111111111111101111111101111101101101101101101101111101111111111101111101111101111111101111111111101111111101101111111111111111111111101101111101101101111111111111111111111111101111111111111111111111111111111111111111111111111111111111111111111111111111111111111
111111111111111111111111111111111111111111111111111111111111111111111100001100000001101100001100001101100001111101100000001111111101101111111101101101101101100001100001100001100001100001101100001101101101101100001100000000001111100001100001111100000001100001100000001100000001111100000000000001101100001101101100000000001100001100001101111111111111111111111111111111111111111111111111111111111111111111111111111111111111
111111111111111111111111111111111111111111111111111111111111111111111111111101111111101101111101101101111111111101101111111111111101101111111101101101101101101101101101101111101101111101101111111101101101101101111101111111111111111101111101111111111101101111101111111111111101111101111111111111101101111101101101111111101101101101101101111111111111111111111111111111111111111111111111111111111111111111111111111111111111
111111111111111111111111111111111111111111111111111111111111111111111111111101111111101101111101101101111111111101101111111111111101101111111101101101101101101101101101101111101101111101101111111101101101101101111101111111111111111101111101111111111101101111101111111111111101111101111111111111101101111101101101111111101101101101101101111111111111111111111111111111111111111111111111111111111111111111111111111111111111
111111111111111111111111111111111111111111111111111111111111111111111111111100000000001100000001101100001111111101101111111111100001100001111100001100001101101101101101100000001100001100001100000001101100001100001100000001111111111100001100001111111100001111100000001100001100001100000000000001101100000001101101100001100001100001100001111111111111111111111111111111111111111111111111111111111111111111111111111111111111
111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111101111101111111101101111111111101111111101111111111111111101101101101101111111111111101111111101111111101111111111101111111101111111111111101111101111111111111111111111101101101111101111111111111101101111111111101101101101111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111101111101111111101101111111111101111111101111111111111111101101101101101111111111111101111111101111111101111111111101111111101111111111111101111101111111111111111111111101101101111101111111111111101101111111111101101101101111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111100001100001111111100001111111111100001100001111111111111111100001100001101100001100000001111111101100000001100000000001100000001111111111111100000001111111111111111111111101101100001100000000000000001101100000000001100001100000000000000000000001111111111111111111111111111111111111111111111111111111111111111111111111111111111
111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111101111101111111111111111111111111111101101111111111111111111111111111111101101101101111111111111101101111111101111111111101111111111111111111111111111111111111111111111111101101111101111111111111111111101101111111111111111111111111111111111111101111111111111111111111111111111111111111111111111111111111111111111111111111111111
111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111101111101111111111111111111111111111101101111111111111111111111111111111101101101101111111111111101101111111101111111111101111111111111111111111111111111111111111111111111101101111101111111111111111111101101111111111111111111111111111111111111101111111111111111111111111111111111111111111111111111111111111111111111111111111111
111111111111111111111111111111111111111111111111111111111111111111111111111111111111111100000001100001111111111111111111111111111100001111111111111111111111111100000001101101101111111111111101100001111101100000001100001111111111111111111111111111111111111111111111100001111100000001100000000001101100000000000001100000000000000000000000001111111111111111111111111111111111111111111111111111111111111111111111111111111111
111111111111111111111111111111111111111111111111111111111111111111111111111111111111111101111111101111111111111111111111111111111111111111111111111111111111111101111111101101101111111111111101111101111101101111101111101111111111111111111111111111111111111111111111111111111111111101101111111101101111111111111101101111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
111111111111111111111111111111111111111111111111111111111111111111111111111111111111111101111111101111111111111111111111111111111111111111111111111111111111111101111111101101101111111111111101111101111101101111101111101111111111111111111111111111111111111111111111111111111111111101101111111101101111111111111101101111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
111111111111111111111111111111111111111111111111111111111111111111111111111111111111111100000000001111111111111111111111111111111111111111111111111111111111111101100001101100001111111111111100000001111100001111100001101111111111111111111111111111111111111111111111111111111111111101101100000001101100000000000001100000000001100001111100001111111111111111111111111111111111111111111111111111111111111111111111111111111111
111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111101101101101111111111111111111111111111111111111111111101101111111111111111111111111111111111111111111111111111111111111101101101111111101101111111111111111111111101101101111101101111111111111111111111111111111111111111111111111111111111111111111111111111111111
111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111101101101101111111111111111111111111111111111111111111101101111111111111111111111111111111111111111111111111111111111111101101101111111101101111111111111111111111101101101111101101111111111111111111111111111111111111111111111111111111111111111111111111111111111
111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111101101100001111111111111111111111111111111111111111100001101111111111111111111111111111111111111111111111111111111111111101101101100000001100000001100001100001100001101100000001101111111111111111111111111111111111111111111111111111111111111111111111111111111111
111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111101101111111111111111111111111111111111111111111111101111101111111111111111111111111111111111111111111111111111111111111101101101101111111111111101101101101101101111101111111111101111111111111111111111111111111111111111111111111111111111111111111111111111111111
111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111101101111111111111111111111111111111111111111111111101111101111111111111111111111111111111111111111111111111111111111111101101101101111111111111101101101101101101111101111111111101111111111111111111111111111111111111111111111111111111111111111111111111111111111
111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111100000001100001111111111111111111111111111111111111111111100000001111111111111111111111111111111111111111111111111111111111111100001101101100000000000001101101101101100000001100001100001111111111111111111111111111111111111111111111111111111111111111111111111111111111
111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111101111111111101111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111101101101111111111111101101101101111111111101101101111111111111111111111111111111111111111111111111111111111111111111111111111111111111
111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111101111111111101111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111101101101111111111111101101101101111111111101101101111111111111111111111111111111111111111111111111111111111111111111111111111111111111
111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111100000000000001111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111100001100001100001100001101101101100000000001101100001111111111111111111111111111111111111111111111111111111111111111111111111111111111
111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111101101101101111101101101101111111111101111101111111111111111111111111111111111111111111111111111111111111111111111111111111111
111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111101101101101111101101101101111111111101111101111111111111111111111111111111111111111111111111111111111111111111111111111111111
111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111101101100001100001101101100000000001100001100001111111111111111111111111111111111111111111111111111111111111111111111111111111
111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111101101111111101111101101111111111101111101111101111111111111111111111111111111111111111111111111111111111111111111111111111111
111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111101101111111101111101101111111111101111101111101111111111111111111111111111111111111111111111111111111111111111111111111111111
111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111100001100000001100001101100001100001111100000001111111111111111111111111111111111111111111111111111111111111111111111111111111
111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111101111111101111101101101101111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111101111111101111101101101101111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111100001100001111101101101100000000001111111111111111111111111111111111111111111111111111111111111111111111111111111111111
111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111101101111111101101101111111111101111111111111111111111111111111111111111111111111111111111111111111111111111111111111
111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111101101111111101101101111111111101111111111111111111111111111111111111111111111111111111111111111111111111111111111111
111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111100001111111100001100000000000001111111111111111111111111111111111111111111111111111111111111111111111111111111111111
111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111

BIN
2023/day10/input_color.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 19 KiB

File diff suppressed because one or more lines are too long

5
2023/day10/test1 Normal file
View file

@ -0,0 +1,5 @@
-L|F7
7S-7|
L|7||
-L-J|
L|-JF

5
2023/day10/test2 Normal file
View file

@ -0,0 +1,5 @@
7-F7-
.FJ|7
SJLL7
|F--J
LJ.LJ

10
2023/day10/test3 Normal file
View file

@ -0,0 +1,10 @@
.F----7F7F7F7F-7....
.|F--7||||||||FJ....
.||.FJ||||||||L7....
FJL7L7LJLJ||LJ.L-7..
L--J.L7...LJS7F-7L7.
....F-J..F7FJ|L7L7L7
....L7.F7||L7|.L7L7|
.....|FJLJ|FJ|F7|.LJ
....FJL-7.||.||||...
....L---J.LJ.LJLJ...

BIN
2023/day10/test3.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 235 B

31
2023/day10/test3.pnm Normal file
View file

@ -0,0 +1,31 @@
P1 60 30
111111111111111111111111111111111111111111111111111111111111
111100000000000000001100001100001100001100000001111111111111
111101111111111111101101101101101101101101111101111111111111
111101111111111111101101101101101101101101111101111111111111
111101100000000001101101101101101101101101100001111111111111
111101101111111101101101101101101101101101101111111111111111
111101101111111101101101101101101101101101101111111111111111
111101101111100001101101101101101101101101100001111111111111
111101101111101111101101101101101101101101111101111111111111
111101101111101111101101101101101101101101000101111111111111
100001100001100001100001100001101101100001000100000001111111
101111111101111101111111111111101101111111000111111101111111
101111111101111101111000000000101101000111111111111101111111
100000000001111100001000000000100001000001100000001100001111
111111111111111111101000000000111111000101101111101111101111
111111111111111111101000000111111111101101101111101111101111
111111111111100000001000000100001100001101100001100001100001
111111111111101111111000000101101101111101111101111101111101
111111111111101111000111111101101101111101000101111101111101
111111111111100001000100001101101100001101000100001100001101
111111111111111101000101101101101111101101000111101111101101
111111111111111101111101101101101111101101111111101111101101
111111111111111101100001100001101100001101100001101111100001
111111111111111101101111111111101101111101101101101111111111
111111111111111101101111111111101101111101101101101111111111
111111111111100001100000001111101101111101101101101111111111
111111111111101111111111101111101101111101101101101111111111
111111111111101111111111101111101101111101101101101111111111
111111111111100000000000001111100001111100001100001111111111
111111111111111111111111111111111111111111111111111111111111

10
2023/day10/test4 Normal file
View file

@ -0,0 +1,10 @@
FF7FSF7F7F7F7F7F---7
L|LJ||||||||||||F--J
FL-7LJLJ||||||LJL-77
F--JF--7||LJLJ7F7FJ-
L---JF-JLJ.||-FJLJJ7
|F|F-JF---7F7-L7L|7|
|FFJF7L7F-JF7|JL---7
7-L-JL7||F7|L7F-7F7|
L.L7LFJ|||||FJL7||LJ
L7JLJL-JLJLJL--JLJ.L

15
2023/day11/day11.bqn Normal file
View file

@ -0,0 +1,15 @@
nminput'#'=>•FLines"input"
pos¨´m(÷˜|)/input
dists(+´|-)˜pos
emptyRows/(¬´˘)input
emptyCols/(¬´˘)input
nempty{x1y1𝕊x2y2:
a|-´emptyColsy2y1
b|-´emptyRowsx2x1
a+b
}˜pos
•Show 2÷˜+´dists+nempty
•Show 2÷˜+´dists+999999×nempty

140
2023/day11/input Normal file
View file

@ -0,0 +1,140 @@
.......#..............#.......................#............#.......#........................#.....#..................................#......
.................................#.................................................#........................................................
............................................................................................................................................
..........................................................................................................#.............#...................
...........#...............................................................#..............................................................#.
.#..........................................................................................................................................
................#.......#........................#....................#....................#.................................#..............
......................................#.....#.........................................................#.....................................
...................................................................................#..........................#......................#......
......#.....................................................................................................................................
.............#............................................#.......................................................#.........................
..................#.....................#..........#.....................................................#..............#.....#.............
.................................................................#.........#................................................................
..................................#.................................................................................................#......#
....#..........#...........#..........................#.....#................................................#..............................
................................................................................#...........................................................
.......................................#........#.......................#...........................#.......................................
.......................................................................................................................................#....
.#..............................#.......................#........#.................#..............................#.........................
......#..............#....................#............................................................#.................#..................
............#...............................................................................................................................
.....................................................................................................................#......................
.....................................................#...................................................................................#..
...............................................#...........................#.....#..........................................................
....................................#........................................................................#..............................
...........#.................#.........................................................#...........#............................#...........
.....#...............#....................................#...................................#........................................#....
..........................................................................................................#................#................
.......................................#..............#....................................................................................#
.................................#................................................#...................#.............#.......................
...#........#...............#.....................#............#.................................#.............#............................
............................................................................................................................................
.............................................#........................#.....................................................................
..........................................................#................................................#..............................#.
...................#...................#........................................#..............................................#............
....#.....#.......................#...........................................................#.....#.......................................
........................................................................................#...................................................
..............................................#.........................................................#...................................
..........................#................................................#.............................................#..............#...
........#.....................................................#.......#..........................................................#..........
.............#.............................#..........#..............................#.....................#................................
............................................................................................................................................
.#..............................................................................#.................#.........................................
......................#...............#.....................................................................................................
...................................................................#..................................................................#.....
..........#.................................................................................#......................#........................
.................#........................#............................#....................................................................
..........................................................#................................................#............#...................
..................................................#........................#...................................................#............
..............................................................................................#..................#..........................
............................................................................................................................................
.....#...............................................................................................#......................................
....................................#.......................................................................#........#......................
...................#............................................................#..........#................................................
.............................#..........................................................................................................#...
...............#...............................#..........#......................................#.....#.....................#..............
.......#...............#.............................................................#............................................#.........
............................................................................................................................................
...................................#.......#........#........#.................................................#............................
............................................................................................................................................
..........#..................#.........................................#..............................................................#.....
................................................#..........................................#................#....................#..........
.........................................................#...........................#......................................................
#....................#...........#.................................................................#..............#......#..................
.............................................#.......#...................................................#..................................
............................#...........................................................#.....#.............................................
.......#........................................................................#...........................................................
..........................................................#...................................................#....................#........
...#...................................................................................................................#....................
...............#.................#..........................................................................................................
....................#.................#.......#..................#.........................#.............#.............................#....
........................................................#...........................#.......................................................
...........................#...............................................#................................................................
.#.......#........................................................................................#........................................#
................................#................................................................................#...............#..........
....................................................#.......................................................................................
...................................................................#.....................................#...............#............#.....
....................................#......................#.............#..........#.....#.................................................
...........#................................................................................................................................
.......................#.....................#.................................................................#............................
.............................#..............................................#........................#......................................
..................#................................................................................................#................#.......
..................................................#.........#..........#..................................................#.................
.................................#.......................................................#.................................................#
....#.......................................#.........#.......................................................................#.............
............................................................................................................................................
............................................................................................................................................
........................................................................#...................................................................
..#.............................................#................#....................................................#.....................
..............#...............#.............................................................................................................
........................#............................#..........................#........#..................................................
...................................................................................................#...........#........................#...
....#.............#..............#............................................................................................#.............
............................................................................................................................................
......................................................................................................#.....................................
.................................................................#......................#...................................................
.....................#....................#...........#.................#...................................................................
................................................................................#......................................#..........#........#
........#........................................................................................#..........................................
..................................#.........................................................#....................#..........#...............
#...........................#...........................................................................#...................................
............#................................................#.........#...............#....................................................
....#.......................................................................................................................................
..........................................#.....................................................#..............#..............#.............
............................................................................#.........................#.............#.......................
................................#.....#.....................................................................................................
...................#......#.................................#.......................#.......................#...............................
...........................................................................................#......#...............................#.........
#.............#.......................................#.....................................................................................
.............................#..............#.............................................................................................#.
......................#..................................................#............................#..............#......................
........#........#.....................#...................#......#.............#............................#............#.................
.........................................................................................#......................................#...........
..................................#..................#............................................#...............#..................#......
..........................#....................#............................................................................................
..........................................#.................................................................................................
.#...................................................................#.......................#.............#...............................#
......#.......................#................................#.....................................................#......................
............#.....#...................#............#.....#.......................#.................#........................................
..........................................................................................................................#.....#......#....
..........................................................................................#.............#...................................
...........................................#........................................#.......................................................
..#...................................................................#.....................................................................
.........#...........................................#......................................................................................
....................................#............................................................#.................................#.......#
...........................#......................................................................................#.........................
..........................................................#............................................................#....................
...#..........#........#....................................................................................................................
....................................................................................#......#.................#..................#...........
..............................................................................#.............................................................
.............................#.......#.....#...................#........#......................#.....................................#......
............................................................................................................................................
..........#.....#...................................................#.............#.....................#....................#..............
........................#.................................#.............................#...........................#.......................
........................................#...........#........................................#...........................................#..
.....#.........................................#.................#.....#............................#.......................................
...................................#........................................#........#......................................................
...........................................................................................................................#................
.#............................#..........................#...................................................#.........................#....
.........#...................................#..........................................#.........................#.........................

10
2023/day11/test Normal file
View file

@ -0,0 +1,10 @@
...#......
.......#..
#.........
..........
......#...
.#........
.........#
..........
.......#..
#...#.....

6
2023/day12/day12.bqn Normal file
View file

@ -0,0 +1,6 @@
Split•Import"../bqn-libs/strings.bqn"
rowssizes<˘>" "Split¨•FLines"test"
sizes•ParseFloat¨¨","Split¨sizes
rows

1000
2023/day12/input Normal file

File diff suppressed because it is too large Load diff

6
2023/day12/test Normal file
View file

@ -0,0 +1,6 @@
???.### 1,1,3
.??..??...?##. 1,1,3
?#?#?#?#?#?#?#? 1,3,1,6
????.#...#... 4,1,1
????.######..#####. 1,6,5
?###???????? 3,2,1

5
2023/day13/day13.bqn Normal file
View file

@ -0,0 +1,5 @@
input>¨(0)¨/¨(+`(0=)¨)'#'=•FLines"input"
_F{0 1+/𝕩𝔽¨{2×(-)(𝕩÷2)1+𝕩}𝕩}
•Show +´1001×{𝕩𝕨}_F¨¨(¨)input
•Show +´1001×{2=+´|-𝕩𝕨}_F¨¨(¨)input

1325
2023/day13/input Normal file

File diff suppressed because it is too large Load diff

15
2023/day13/test Normal file
View file

@ -0,0 +1,15 @@
#.##..##.
..#.##.#.
##......#
##......#
..#.##.#.
..##..##.
#.#.##.#.
#...##..#
#....#..#
..##..###
#####.##.
#####.##.
..##..###
#....#..#

15
2023/day14/day14.bqn Normal file
View file

@ -0,0 +1,15 @@
input>•FLines"input"
Slide{
sinds¯1/'#'=𝕩
inds(sinds˙)+1+¨¨1-˜+˝sinds</'O'=𝕩
'O'˙¨(inds) '#'˙¨((1sinds)) (𝕩)'.'
}
Load+´((1+())×(+´˘'O'=))
•Show Load Slide˘ input
Cycle{Slide˘(˘) Slide˘() Slide˘ Slide˘ 𝕩}
c{(<Cycle𝕩)𝕩}•_while_{¬(<𝕩)1𝕩} input
am-˜`/((<)¨)c
•Show Load ((m×a÷m)+m|1e9)c

100
2023/day14/input Normal file
View file

@ -0,0 +1,100 @@
.O#O..##...#O#.#.......##.....O..#.O##.O#......O.........#....O.O..........#...O...#O.#.OO...OO.....
..............O.#OO..#.#..O..#O..OOO...O......O......O.....O.##.#O.#.O...#....O.#O.O......#OO.O....#
O.#.O.#..O..OO.#O.#.#.O.......O#.O#..#..#..#......O#..O.#...#O..O.........................#..O..#.##
....OO..O......OO...O.O.#...###.#.OO.#.OO.#O.....O#....#..#....O....##.O....#O...O...#.#.O#.#O.O#...
......O#...O..........#..#O...O...O...#.#.#.......O....#....#O....O..O#..O.#..O##..O..#....#..O.O#..
....O...O..O.#...O.O.....#..#....O.O.##O.#..O......OO..#......O.#O.#O..#.###...#O#..........O....OO#
#......#.O....#O.#.#O.#.#.O......O##O.##O#.#.......OO.#......O.##.O.###.#......#..###.....O.O.OOO#..
.#.#.#........#........O..O.O#O.O.O#OO....O#.O..O.....O.O....O#O.O##....#...O#.......#.#O...#..#O..O
.O.#.O.#...O...O#.OO.........#...O#O..OO..O#..O.O.O#..O#...O...OO#O...#..O...OO...OO.O#.....#....#..
...#...#............OO##O#...O.#O##O..#.#....#.O.O.O#...O.O..O.O.###..#.O.##.#O....##....#.......O.O
.#O....OO..OO....O.O.....#.....#...OO.O..#..#.#.OOO...#.O.#...OOO........#....OO#OOO...............O
.OO.#....O.#O.OO..#.OO.........O.#.O......#O......O#...###.#OO.#.#..........O.#O.#O..O#..#..#.O..OOO
#.......O.....#.#.##.#.#.#.....O....#.#..O#OO.OO..O#..O......OO#.O..#...OOO#.O..........O.OO.#..O#.O
....OO....O#OO...O#O#..O#.O.....O.O......#O.#O#......#.....#O.......#.#O....OO......##..##O#O.#..#..
..#...OO.O.#.#..OO...OO........##........O...OO...O....#.O...OO..O.O.OO.O.#....OOO..#..#.O#.OO..O.#O
#.#.#.#O..OOO..OOO..O#O.O..O..#O..OO....O#....O#..O.O...O#.....#.#..OO...#...O##O.#O.O.O#..OO.......
#..O....O....OO..O.....O....O....#O..........#O.O.O#..#...O...##.#.O.#O..#.O.##..OO.O..O..#...O.#..O
......#..O.#......O.....O#.OO#O.#.O.O.....O...#..O.#OO.......O....O........O.O.#.O.....O#.....##....
.#...#O..#.O...O#O...O.#..#.#OO...O.O.#O..###..O..OOO...O..#..O.O..O.#...OO.OO.#.O....#....#O.#...#O
.#OOOO..............#O##OO.....#O#.......O...##...O....O#O.......OOO.#O#OO.#......OOOOOO...##..O..#.
O....OO.OO.O.#.O#.#.O..OO......OO#..#O..#.#O.O..#OO.#.....#.O...O........OO..O#......OOOO..O.OO...O.
...OO.##.O.....O...#.O.OOO..O.....O#......#O#O#...#....O..#O...OOO#..O.#.O....O#.....#...O.O##O...#O
..O........#..###O...O##....O..#.O.##..O.O...O##O.O..O...#O..#OOO###O.O###O#O...#.#......O.OOO.#..O#
....O...O...#.##....#...OO.#O#O...O###..O...O..OO.O.O..#OO.O#.O...O#O.#..#.......#..O.##O.##.OO...#O
OO.#...O..O...OO.##..........OO.......#O#O.OO.#O.....O..OO...#O#O...##.O..##O.O.O.OO.OO.#.#O#O...O.#
......O##.#.#..O#........O....O............O##..#...#..#..#O......O...#...#O..O......#.#..O...O...O#
O.#..#.#..#..##..#........O#..#O.O....#..O...OOO......#......OO...O.O.#O..#........O....#....O#..#O.
.......OO.....O......#....OO.O.#O.O....O#..#...O.O.......#...OO.....#.......#...O..#...##.#.O.#..O#.
O###.........O........O.O..O..O...O#.#....#.OOO..O.O.#..O..##....O....O..#O.O..#........O.#O...O...O
#..........##....O.#O..#....OO..#...O.O.O..O..OO#..##..#O.OO..O.#..OO.........#.O....O..O...........
....#...#.....#..OO.O.##...OOO##O..#........OO..O.#.......#.OO#..O....O##.#.O.#.O.###....#..##O..#O#
..#..........O........#....OO.....O...#.##.#.....#....O..##..............O........#....#..O#...O.O#O
O...OO.O.......O....O...#...OO#O.....O.O....O#O.......#.#..O.....O...#.....#.#....#O..OOOOO.O...O.O.
#...O....O.#........#OO.O..O##.#.........O#.O##...#O#..O...#O.#..#...#O..#......O..........O....OO#O
O.....#O.........O#.O#..OO#...#O.O.....O.#..#....#.O..O..O..O#....O......O.O...O#O......#.O...#..O#O
#......O.....O#.O.#OO...........O.O...O#..O...OO.O###O...#O.....#..O...OO.O#.....#O.O.#....#..O..#..
....#.##..O..O.....OO#....O.........OOO###..O.OO.O..O.##.O.OO..#.#O..#..#.#.##......#...##....#.O..O
.......OO..........O..OO.#..#O.OO#.........O..O#.O..O.#O.O.#......O.....O#....OO..O...O....O..O#OO..
.O.OO.#OO#......O#O#OO...O#O....##OO.....O#........O....O..O.O..O..O..#....O....OO#..O....OO####O..O
.....O.O#.#.#.O#.OO.#...O#..OOO....O#O...OO......O.##.OO.......O.O....#...O....O....O..#..#..O.#O...
...O...O.......O...#.O...O...O....#...OO##..#.O....O.....#.#..O....O.O.....#..OOO....OO..#.###....#.
....#.O....##....O.#.......O#..###.##O.O.O.......#O#.#O.....O...O.#.O..#.#.....O#.O#......O#O..#O...
.#.O....O...#.#...O#.....#......O.O.......#....OO....O...O#....O.#......#.##OO...#..#O#...O#.O.##..O
O.#.#.....O....O....O.O...O..O.#....O....#O.......#.........#.......O.OO.....O.#.OO.#.#.O.OO..O.....
##..#..O.#...O......#..#.O.O..O...O..#.....##.#...#.O.O##.O....#OOOOOO....##....##.#O#..........#.O.
.#..#...O.O.O........OO.O..OOO....O#..##..#O..OO.........OO.........#....#.O#..O#..#.#..#O..O.O#....
..#..OO##..#.....O..##......O..OOO.#.....O.#..#O....#O#O.....#.O..OO.#...O..#...#O...#.........#....
.........#..O....OO..#OO..O.........#..#O..O..OO....O..##..#O..O.O.O...#O##OOO#.........O.......#...
...#...OO.....#.O..#........#.#...O.O....OOO.O#O....###..#.#.......#.O......O..#O....###.O##.#..OO.#
..##O#.#.........OO#O#..OO..O..##.O.O.O.O...O#..OO...#..O...O.O.#.O...#.O.O#....##...O.....#...O..O.
..#O..#..OOO....#.......#O.....#...O#..O##OOO#.#.....O#O..#O...#....#O.O#......#.OO..#.#.O.......O.#
O.O.....#O.#.OOOOOO..###..O.......O.#.O.OO...#..O..##.##.#..O..O..O...#O.....OO....O...O..#...#O....
..O.OO....#.O..O..#.#OO..#.O.......O.OO#....O..O...O#...O...O#...O...#.#O...#..OO....#.O........O...
.#....#.O#.#....O#O#.##.....O.#.....O..OO....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.....O.O..O...O#O...OO#..##.....O.......#....O..#...O....#..O..OO#.....O..O.O...#....O..O#.
O..O....O..O##..#....OO.#OO........#O.........O............O.#..#O.O.O##..#.###O..O...O#...#..#.....
O.......O........O...O...O.###.#.#OO.O.#.#.O.#O.OO....O..O.###....O.O.#.#O..OO##.O.#O#....#.....#...
..O..O#..OOO..O##O....O#.O.O.O#.#.O.##..O.....#.#..#O...O..O...O....#.......O.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...OO...O...#.OO#OO#.#O..#OO..#O.#OO....#..#...O#O.OO#...OOO..O..OO..#..#.....O.....#...
..O..##.##..O#.O..#.O.O.......#O.....OO..OO#.....O#.O.OOO....O...#..O#O#.#OO...#....#...O...........
.O.#.#...O.O.O.O.#.#O.O..#.OOOOOO.#.OO..#..###..#.#...#.O.O............OOO#O#.O..O....#...O...#.....
..#..OO..#O.....#.##..O...O.OO........#...OO..#...O....O..O....#O.........O...#.O.....O.#...O.....#.
#O..#..#O.O#.O...O...O....#O#O.#O#OO...O#.O........O#....#.....#O#...O..O..#O..OOO##.#...O#...#..O..
.....#O....O.OOO....#..#O......O.#..O.##.O.O.O...OO.O#...O..OO..#.#........##.....#............O.O..
.O..O..#.O#.OO.O#.....O.O..#O..O.O.....#...OO...O#.##O........#.O.........O#...OOO...#O###...O..#...
OO.#O....O.....#...#.O...O...O..#....O#....##....O.OOO.O...#.OO.O...O.O#O.....#.......O........O..O.
..O#O........O.O..O..#.##......#..#.OO......#.....#.O...#.#.OO#O.#..O....O#.O#..O.#..O#...O.O...O#..
O##..O.#..#...###.###O##....#OOO..O.#.O....O.OO#O...O..O.........O##....OO.O....#....OO...O.........
OOO..O.#.O.O.O...#.##..#.##.#...O#O..O.#.....#..O.#....O..O....O.....O...O..#.O.##.O#..O.....O...O..
#.###.OO.....O..O..O...O.O#..#....####..#.......#.#.....O#O...O..O##O.#..#OOO.O#...O..O....#O.#....#
.O#O.....O.#.#..OO....#.....#......#.....O.............O#..O..OOO#O#.OO#..O...O##..O.##O#...O#O.#..#
.#...#.O.#..O..#.....OO..#O#....#.O.#.#..O#...#...#..OO#....O#..##O.............O...O..#O..O..O.#O..
.....##OO.O..#..O#...O...O.#.#.##.O....OOO.#O..O.O.O##....O.O.#.O...OO.O...###O#.O.OO#..O....O......
.O#O..#.O...#.#O...O##....O..#....O.O#.OO#O#O..O...O.#...O.O.O...O#..OO.O....#..#...OO..O.O.......#.
O.O........OO...#.##..O........O....OO...O#..O.#OO.....O...O.O.......O....#O#O..O.OO............O..#
...#O...#O.O...O.##..O....OO#.##.....#...O....O.....#O..OO.#.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#OO..........O..###..#....O....O.....#..O#.O.....###......#..###..O
.O..#.....#..##.##.O......O..O.O...O.O.......#.O..#....#.....O.#.O............OO#...O##...O.O#.O....
.#.O.O#.#.#O.O..#....O.O..#.....#.#OO.O...##.OO..O.O......##.......O.O###.O..O.....#..OO#...#....#..
....#.#...#...#.OO..#..........OO......O#..#O##...OO.#..O.#..O.O.OO.....O#O.#..####.OO...#.O..#O..O.
O.O..O..OOOO....O..O.#.........O....O.#O.#O...O.#....#..O.#..OO.O.#.O#...#....##..#...........#.O#.O
.......O....#OOO.#.O.......#O#O....#.....OOO.#..#OO#..O.#O##O.O........O.#.O.OOO.....O......#.#....O
..O.....OO.#.#.O.....O##....O...OO......##..O#O.#O.O..#O.#.#....O...O.#.#..O.#.#OO..##....O......O..
..O#.#O.O.O..#...#O....O#O...O.........#.O...O#..O###O.....O..#.O....O#OO...O..O....OO#..#...#.....O
.O.#....OO..O.O...O....#..........OO.##OO##OOO.##OOO..O...#...##....O..O#...O.#O..#.#O.O.....O.##.#.
....OO#O.........OO.#.O.O.O.#O.O.##..............OO..........O...O.......O..O##.O..#..#...O........O
O.....#.....O#.#..#.O...O....##O#O.#.##...#..#........O#...#....##.O...#..O......O..OO#....OO.....#.
...O...#.#O.#..O...........O.O###.O.O...#..#O..O.OO..O..##O..#..#O#.O.OO.#O......O.O....#O.#..O...O#
..O......#...##.#..OOO....#..#.#.OOO....#.#OO#.#O.#.O.#...#.O.OOO.#...#..O..O..#..#.O....O##..O..#..
.##..OO...#...#O#.O.....O#...#....O...............#..O#.#.#..OO.#..O.O#.O.....#OO.O.#.O..##...#.O#.O
..#.O.#...O..##.O#.O....O.O.O#O#.OO....#...#.O.......O#...#O........O.O.O.O.OO.#O........O..OO.O#...
...#..#OO#...#..#OO.#..#.O.#..OO..O.O....O##..#...OO..O....O#O...#....#...#O#.........O#OO.O...O.#..
.O#OOO..#....O..#.O..#..OO##..OOO#O#O#O..#.O#.#......#.........##O..O...O#.....O.......###O#O.....OO
O..OO....O.#..O#.#O#....O.O...##O...#O#O#...O.O...O.O#O.......#..#...OO...#O.#...O#...#.........O##.
...O.#O.#...O............#...O......##.......O..##O.O.OO.O.O....#O#..#O...#........OO.O..##.O.#.#O.#
OO..O...#.....O..#OO..OO..#....#....O.O.#O.O.#O.OO...#..#OO..O#OO#.OO.....O...OO.O.O.....OO.#OO...O#
.#...O...O.#OOO....O#...O.OO.##O...##.##.....O.O..#.....#O......O#...###O.#OO.#O.O.O...#.....#.OOO..

10
2023/day14/test Normal file
View file

@ -0,0 +1,10 @@
O....#....
O.OO#....#
.....##...
OO.#O....O
.O.....O#.
O.#..O.#.#
..O..#O..O
.......O..
#....###..
#OO..#....

29
2023/day15/day15.bqn Normal file
View file

@ -0,0 +1,29 @@
Split•Import"../bqn-libs/strings.bqn"
input","Split•FLines"input"
H()0(256|17×+)`-@
•Show +´H¨input
Parse{
'='𝕩 ? •ParseFloat(1)'='Split𝕩 ;
'-'𝕩 ? 1'-'Split𝕩
}
Replace{tn𝕊𝕩:
(<t)¨𝕩 ? i/((<t)¨¨)𝕩 tn˙(i)𝕩 ;
𝕩𝕨
}
Run{
boxes256
Step{
𝕊t: boxes (((<t)¨¨)/)((H t)) ;
𝕊tn: boxes (tnReplace)((H t))
}
Step¨𝕩
boxes
}
Pow+´(1+())×
•Show Pow Pow¨ 1¨¨ Run Parse¨ input

1
2023/day15/input Normal file

File diff suppressed because one or more lines are too long

1
2023/day15/test Normal file
View file

@ -0,0 +1 @@
rn=1,cm-,qp=3,cm=2,qp-,pc=4,ot=9,ab=5,pc-,pc=6,ot=7

1
2023/day16/.gitignore vendored Normal file
View file

@ -0,0 +1 @@
img/

10
2023/day16/Makefile Normal file
View file

@ -0,0 +1,10 @@
anim.gif: day16.bqn
mkdir -p img
time bqn $<
parallel 'pnmtopng {} > {.}.png' ::: img/*.pnm
gifski -r 50 -o $@ img/*.png
.PHONY: clean
clean:
rm -rf img
rm -f anim.gif

BIN
2023/day16/anim.gif Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 63 KiB

29
2023/day16/day16.bqn Normal file
View file

@ -0,0 +1,29 @@
grid>•FLines"input"
PBM•Import"../../bqn-graphics/pnm.bqn"
Mat{1˙¨(𝕩)(grid)0}
Sim{
Step{𝕨𝕊ivnv:
{𝕊1: ("img/out"(1•Fmt 1e4+i)".pnm")•file.Chars PBM ¬Mat ¨v ; 0}𝕨
nexts{´(0<(grid))𝕩}¨/{𝕊pd:
{
𝕊'.'·: p+d,d ;
𝕊'/'·: p-d,-d ;
𝕊'\'·: p+d,d ;
𝕊'|'1: p+d,d ;
𝕊'|'0: p+10,10,p-10,-10 ;
𝕊'-'0: p+d,d ;
𝕊'-'1: p+01,01,p-01,-01
}pgrid,|d
}¨nv
i+1,nvv,(¬nextsv)/nexts
}
¨1𝕨Step•_while_{02𝕩} 0𝕩
}
•Show 1 Sim00,01
mngrid
starts(10¨0¨m)(¯10¨(m-1)¨m)(01¨0¨n)(¯10¨(n-1)¨n)
•Show ´¨Sim¨starts

110
2023/day16/input Normal file
View file

@ -0,0 +1,110 @@
\|.................................../....\\/........................-.....|.|..-.....|\...................../
|-.....|...\........|........................../-...../...--.|..\..........|......./.......-......|......./.-.
.....\..../......-......|.........................-............|..../.....|.......-........../................
........\..|.....|................/.......-\..............\...../....|............\....\......................
-................\....-..........-................./.......//...............|..|...................-..........
...................|..................................|.....|.....-....................../....|..\...\..\.|-..
.......-.............../......\...................................-......../.......-.\|.................../...
......\..................\.............-..........././....|-.....|......................../.-.....|......\....
......-............-..................|..................../......-...|.....................\.................
.........\..........-.......-./...-.../..\...../............................|................/....|...........
.\....../....|...............|..../.......................-...................................-......|..\.....
......................../...|.|........|.........|.....................-............../.-.../.-...............
..|..-.-......|.......\....................-|.......|............-............................................
.........................|.............-..........................-.\\......|.......|........-.........\......
.../....-....\............/...................|........./..\.......\...........||.|......\.......\..-./.......
.../..\.|..-....../.......................-.......-.......|/...........-.......-.......\......................
..\...........-...-.......-.........|\....................../.-...........................\...........-.......
..../.....||.....................-.........................................../............././................
...................-..\................\................................................../.../.........../...
\..................-.-..........//....|......./........-.............../.........\............................
................/...|................../......./..............|.....|..............|..-...........|...........
..../........-......\.|...-................./...................../|.........\................................
...../...................-........|.......................-...\.............................\.../.............
...../....-......................./..........................-............-........\......-.....\.../.\.\.....
..|......-.\..........\........................\........../.........|...|............./............../-.......
./..\-.......|.........|.\/........-........|.|...|..|....\...|.\.....|..|..-...............\.................
..|../..........\................./...\...........|.....................-\..................-..|.........-..-.
........./......||.....................................|..\.-|-................//..|-...|............-.\......
........\..........\..........\......................./......................./......|........-.......|...-...
.........././.....-...-..................-.|..........................-.............-......................./.
.\..........|...........--....................\...-.\.........\......-.................../....|./..\..........
......\.........\.|..||.....|...../........-..........|....|.....|....\..|..........\.........|...............
...........\....-.../......-............/.............-......../.-...................-....|.....-\.......|....
/.....................-.../...............-./....................../|....|.-...|.................\......../...
................../.............|..........\..|..\....|....-...../...-.......\../......\....-...../.||........
./-|.......\..../........../-....../......./...-....-................|............|.................-..../....
.....................\....................|\.-../.......................|.......|.....-........-./..|.........
..........|...\......\......................|./...........--................-..........-.......\...\-..\|.\..\
.......\...-|................\....|......................../............................\..........-.\........
./.......|................\...\........./.........|..................|.....-.......-.....|..|-............-...
...|............/....-.\...........\...../..|..-...../..|.......-........\...-..............-.................
.\-.....................-.........-.\.................|....-.....\....\.\\.//|.........\../.\.........../..-..
......................................|\-........../..-.........-.........................................-|..
........./.../..|.....-............./..\............./............../..............-\.......|....-....-.......
.|............|......-/.-......-......-............-........|...../......\/....\../........|.......|..........
.......|...........\.................-......................\..-...........................|..................
|.........\..\.....-.../.........................-\.................|.........\...............................
....-..........\.....././.............../..........-|...|...../........................-......|....-..........
....................\.|.........\....|..........-.............\..........................|...........\........
.............|.../......|.........../....................../....-..................../......................./
.\...|....-../.............|............-..-.......||..........|............\/..................\...-.........
........\/....-...................../..............-.....................-................................-...
/-..........-......\.....|.....\....\............./..../...........|........-....\...............\.........|..
...../..................\........................./.-...../.....\....-..-\.....\...|................./........
......../......./.......................-.......-..\//...........-|.............../...\.\./..\................
..............................|...................../......\..|.............\\......................./..-.....
....\.....|..............|..................|...|.............|............--.......-..-.................../..
....|.............../.\.............................................|...................../.........\.........
.........\...../.../......\....................................................|.....-.../...\..........\.....
-\............\.......................-...................-..../-........./.................................-.
|.....\.....................\...................|..|..\....../.......\...|......\.............../-.-......|...
.......|.........\.................|..-.............................\............................/............
........................-.-........./..../.|.|.../..............\../....-..........|............../.....\\....
...........\-...........||..........................................\.........|...........-...-...........-\..
..................|................................./.................||.|..........|.....................|.|.
....../.............................|.............................-/..|......./............................../
./................../.|................................-...\.......|..................|............\-..|.....|
\.....|.-...........-|.................../............\................../......................./.......\....
.\.....................\.............|...............-......\...-........-...............-..........|../......
.../..\...|........\\....\............-..|.....|........-/..........|....|.........\..|/...-.....-.\.../.....\
......................../....-................................\..|.........................\..................
..................\....-............\\\/..........|.................|...../..|.............|..................
..|./.......|.....-............|...............|....|............-...\...........................\.\..........
.....|-..\...\.........................|../...................../......\............\.........................
-..-...........-............|......../................./......\.....-...|...............|.....................
........|.......|.......\.|...\...../..\.../......................\.......\...\..................\....-..../..
....-.-./.|...............-.-.............-.............../......./..........|.|../...............|.-.........
...........\..-............../..........-..-../........../.....-/-|.........................-.............\...
............................\.......//.|......../...........|\.....\...........-..-.......-/-.................
..................................\..-..........|./..................../\............./............../........
.....\..........\.......-............/.....................-.|....-......................./.|.................
...............................|.......\........../.............-.....|.......\..\........................-...
......\.........\\............../..-..............\...|..--......-.....\......./................./............
.\.......\.....-...........-......................\........................../......../..../.-./..\........../
.......|.......|........|...\\................./..../..\....\...\...........-.....................\.........-/
....../........................................\..........-..|...............\....................|...-.......
.|.|......./..........\........|......-......-............................|..|..\.........\.......-...........
.....\.\-.-......\.........../.......\\..|..\........\/....\|.............................................\...
.....................-.......................|............................................../.................
..................\...-|............|........................-....../...........||............................
........./............................./.....-....../.-...........-...........................................
.........|...........-.........\......\.............\-.....|...-...|-.../..|.............\.....|....-.........
.....|.....................................|.../........./|...|.|..................\..........................
..\...........-.............|................//.............|........|.........../.\..............\...........
..-\..-............|.\............../../.....||.../......-......|...-/...|..../../...................-/.\.....
.......\.........../.\......\.........\...........-..............\..............|.........-..........-.-......
../...................\|............................../...................|.............../.............-/....
................/\.................|.....................\...|.\....................-.....-...................
......................................................|................................\..\../...|.......|.-./
.........//..|.......\.-...............|............................................................-.|.......
........../.\........\............-./.\....../..//...........\..........|.\.\...|/\...-...\...................
...-................/............../.............................................-../.-........\........../...
...................-...............-.....-............/................./|.-.|...\.\...............-..-......|
\....../.....|......\.........|../.....|......-..../....................-................/...\......\....../..
...../...-.......................\..|\...-...\.|.........|.......|.................\.............-............
...........................\/............................../...........-.......-..../......../......\...-.....
.............................|.-......................-|\...--...............................\..............\.
..............\.|......./..........\..........\/.../......|.....-../......../.....\...|-...........\........./
.............../........\...................../...|......................-...|.|......./.....-................
..-...............--..-...-............-..-\......................-.......|..............|........\.\.....-...

10
2023/day16/test Normal file
View file

@ -0,0 +1,10 @@
.|...\....
|.-.\.....
.....|-...
........|.
..........
.........\
..../.\\..
.-.-/..|..
.|....-|.\
..//.|....

28
2023/day17/day17.bqn Normal file
View file

@ -0,0 +1,28 @@
mngrid'0'-˜>•FLines"input"
dirs-01
Inbounds´(00<mn)
Step{ab𝕊qvdists:
u2q
d{𝕊000: 99 ; (2𝕩)dirs}q
ns(Inbounds¨¨)/ u+¨¨{𝕩ר¨((1+b)¨a+1+b-a)}¨dirs
ns((|d)¨|-u¨¨ns)/ns
nsns¨¨¨(dirs<)¨u-˜¨¨ns
ns(¬(¨ns)v)/ns
newdistsdists (((q)dists)++´¨grid¨2¨¨ns)((¨ns))dists
changedns((newdists<dists)¨¨ns) / ns
newq(newdists) (¨changedns)1q
newv1((q))v
newqnewvnewdists
}
Target´ ((n-1) (m-1)) #(m‿n-1)⊑⌊˝⎉1
q000
vmn40
ub1e4
dists0˙¨((00¨4)) mn4ub
··d113 Step•_while_{ub=Target 2𝕩} qvdists
•Show Target d1
··d2410 Step•_while_{ub=Target 2𝕩} qvdists
•Show Target d2

141
2023/day17/input Normal file
View file

@ -0,0 +1,141 @@
131423441435521335221545213152222413225464335632532423326434425325232563462254235463645422436326544353543662125112131342411352355153341411124
443221132314425151111213535451322542243266264463356666433535462333435446553664544653246454265325343552342454263124355512452154311122234312444
434413221534322523111155414334146364446323544336354443333234662626544624365355665622463243363233636232555533442355114223322334511514331431141
343433145425132341524124111532554633623445535436223644226623562355533262432633364365446353632543652232522656444522511425232252224342234221442
232321453324532152535352333152456546356462322364533523535433365434466456543463555334336552554263462632525542522453344254242134513355122514122
334131334115225443214314532322542626335326333463432524352325455636753374753747443223643433544536525425552365442466536245311144252552241153412
121245533343532234533421136254343552432444253224544254665673633567363734347764453567475463235644556656242326462265263515533414243242335544131
133445544312241213433155663353225424563454622626445356433464763773653343456734747435475473645226443354543653566366562422412231344335341512321
411243424411214212114325566446626356542434442652535747456475566736654563766636473757535466577455653224463522336534343244445542311515344414353
342554253355153524451653624245253663355424424667673565337764654455347356445547674356736446535343626642242333436254423634364442231432331231115
145441314541144123553434235656443555542344422747445353773556436366767344445546646455547663554667763633234253432236253265643415223454232152412
255244421341453413555634655244622662564635455553437566736535676337664666453464434745547735753634353466636344343362445543266522534453144415312
223453142532344552553565254354246625536444775563573747774633447633774436434773763473536663576567655575633323662635366546243544534452435355521
231313222234251456253353462463262632422667333367334367473643765647376755343557755366476655336454656654332244432425534323664363345152555444511
542113331151335224263446334526324223677473343646557573556557565775564553543755774466655633645335333643473355364325256564543524625514442124335
454343322334335663555222434533346234436446453456475467337466634764457764656763346476665654534733537745453743244223422353426435244415131152151
255313254422543456342622344452254543744567644654437557633435344444553755477777453575463666374737533566564675324266432222434632646655351413522
412523242441566422346644246423344374455655333663775736775556566767477673447673346776354635433566774674647455433265222426223262452211513314451
411124342455346332224253266452435664567473775774374473454453374466767786844687546475777463575334373346646735347532435564652324343633531312533
323525231453235666352622652646663534456534475764556676646355766475486788467647687774457746743644673673633647735736346565332254326426453334241
224331141346623666266526432433753635345564637533545354638448548464888444486686868747568665677775553343456754774437262233324353622262545242151
334232243636326546542265346747444754377375744576665744655484486468687585664454874756575486567373734633374334363546564543266665645556264151431
244311423523252224655445256475657463554433645377455766456678668568686548687455875877487477576334453376657733543735653625565345464365622545115
354424545325466554522642373656753554755555566777588568746556748686658745466847885864845754887645757667374744453774674656542525652343622545343
425411343354233364325225565333375377763564763656647547555675544656848677787564444778654775658474646556465534757767455664555555224645426222315
321224666554465435223463763436675756354733443445444854565464745865874645466655544455548578677556463453563677563356464574244445555524546545155
522146452343526466555255763645756443766744368675876776566485558866877557645666458855456688475545875867677576736365673546732254226624626242145
124215254522224662653454365444434766653345454788876767867854457457867745854764876578445857486888786567477565556366676443763634664335265542433
433144445436253223333764355733664776765664884486858865544544466876458648666744644687876747448848444887665557766454573443342323342563255325442
332236544456652546266535433664755356473684847777455478484786455654486466585864788885586784688866748655885665566737767443745455562666345432324
325425436524254535446466644376333656544546775787868854884688547677567776557564587584655456644678487646757864367347475677776425522263343432462
554323523466224452343477737734774664748865446786878548765668665777464857665766856684574778444884746884644456644665347457543476353644424333625
226545254263563327447566447354745654464574878567456564788864846978557898766796976457858558875866486465745567773754767677756453566554352325222
535362562522366644375737745674677574877488478884777568648566977956866785666796967775747488776454855554867445576333534555544755356252224425252
124624256632266243534344556663355487655685878887686776547755597685556977995557788796789744644464646484856676664645543455554565632242535455562
654533563534654463746563557567574686875556647656556658597576998757567768776965789768566785557778578567465487585567344735377644575346444453532
666343622226345376576636676435578446886787884746676665899855978567765856698695659598586698665585576444764456855744635334547554434634464425433
423526626444257766345543375536866484876748748566879586597758678869787567657799987869576688769444856488566876646573655574466675643432634346262
536222646322243367533636544345457884887884655644689969587765767786979898978888989757559687985845575588556887477565474334564647666255546665335
343266523536454577663645743444684765485546488865597965565565999985887788877866985886675997968885458584578448654765646646733435545343453544524
345463546252635356334333334785655456756657866557795556778955555755969759657759988878957699795856584754846767878886843446343434566553346452555
222223623625447777737334773485864657644546456869697979569966665686776988575567757677789759799877754858458848768685743644477543735736435452225
536542646436734553555367554775564854766864567656775867588987867757678879786788969987665788759895857757888664666755884553335775564656625556623
356546343645464647536643476858645476745787597986575976796888955857598885777765957585657566858769886775546454847488688556643344547454262455266
225634665344734445345537637574564448744545579875959579899877867885988789657896866798868587779699798757657555577884576655746744335733523365335
624422253345547474735563576654566666447775676678656867897697877978896696697875699555569958695887966599486874565547755843574367476374754442336
454365352443763465455754688768555474777598975699965567785876597767766897896697678986858669967685565599985448788487645556774444357665752323642
243433652736663566337664786574578755875565996998796955756877676897677876996777786899796899595558967596656474575486784865737357764337636645435
532444345335643375733377656467745887756676887755655785879967887668896969999987868979687889598797578595898845876787845874677567464375664536543
426464566756576357356768765464487447445569969877555796876766866667786766776687796798796576699898659755556464487467784877767566443755636244365
344552633374536546363444457755468874657657798997769856596786968868967799978896876997799658888995576796698778766846444644444576547475534546263
666553424773667477467648864565584487566868798989689688766886667888776697966969889669968665775969659597966977886748857446445677454347457325532
254435536376655346377588867778486464575556898985699798767967666676686696868696999867768698977566659769679755474888564555753553363437443535425
342342276567775356577447785878874574859998596857967787668798967797889767798999798989699779958965978569977888454447876875475764633346447534526
636535357355774435437456857586448677665899658799959799887967689986967877766999866678876678779786757588968665587686785488685564666653344354664
322245643666464437535856566877655648778988958666959998699778879668788898677967969997669789878678579869685866468885885557847777664774347752662
336643567455455374676548645586756559696755995857899998897979976789988898799687989976768699777665766868765797986867687757647634557645557543466
534454535655374534434876446878748477877965596676699879788978987969979699796977687766789689986679978575885857964785568878884763473765657646226
526665374646534373666784667544654568556575995776778886788679776768699877976899689876669788787769867677966959985645565847458736563666356734663
666426567735755756635575748476667998576859885597778979868778987789779779779776999886978986986978777566798599658455446676747576674367635653466
442255354476566564647676485847564575656687955776978798867686968977999879988989766979688868999897777888576557578867767644864844643775366644634
364262574653535644588548876767864895658959599996986676697786769889788879778989777988798668696798879959669955578778868578554474663637776676633
634426357444634654348555777766676759955885797576969898979867687879989878797877988999767968866977958598966977594476764874858837475746347667643
444423375575766575656746584775869867795685669899976789869787989789777778979788788768869688666886779969787887968878654476665655365533367456244
245554774557475766655684646576456758699789986897788697979679797798977787789779877789668987898967976787857788577455845546654756756447335544642
354634753557656533374648678444687569655956969996769966789989898987879877988898977786967669699798956799989655578754478464747754655473763536254
443337337655744633555654764676747795855676569889769688676797778989797789797998798798889978868777779887568786556775665457474664545443564446652
364346743547335577477774587548846999579996699787888987786778977889977878899798989987977878797866775867787968655865868484478785365573337755432
542556334734464473765478464674775685565668799776668997876798779798898997789899888877686779778968769755968968868574744557874563447763777533545
256344554675373545654658645686649875967967898786787669968988798777999877779897998997978877898868777686877685568546756588588765545436465446553
624365433453565767555558766576545959756859959686668679966897778989799979789987779898878966778886689567876788676765558546574665353746757753255
256426664447344554754757755844868779758597698877867698786879997989799789997987889878976896889988798598896695767867667568648666544375476345345
544643765673467563774686464575775665577965869977778998976988988889978888898977889889898887986768875887796965855455755788568674366336776445363
324333567433553676858684457565459857769979657896877979987797778898789999879979798899889869997868987986986866578676854546454764736747377363532
222657565455746654654644745855546865699685797999669987668877998977997788889978877887699898769968798568658689766565867847646886566675374555523
446445377353434563857648775645546968556788576977697689999679977788999888787997879777668878668667687996756968567558544667774686634657356347623
234225355535445343855558644456569885567779799777766789988897979997979999898779777888868667796897866687688869799667648556667886737437556335246
422246476636746563778686456886786979668589668986998986877866778977978978787787988986876766888777878878666975957585848577478436764375563775322
454636737766445437468868586658456857986756957999766888668977897888997879998889779897786768976688959988888676985648488678886433764654564537443
555467536743767365655746765786668769697897659866896978797767988779778879897877989868869989777897968768595886659776665587766643745466374665342
665555454355665435566487847485777897889675899696687967768787878998879897877999799776767876766669769895885858957785777744458866564534565633323
553565733564444744778886468667685955998689985569899787788697888789987897987779797797999898997669595998976596584787478848568635356545554373366
653665655645667373374558877478647778897659668789798777786679996678779999898897789697786768668889979556596687776447685588874467344643734672643
563443547735335673736467874465468989695989876675988699869698796888877789978897966897668999699888668875869665755546544476648666536373334463352
335524446456355454436566478467748467877569776567796888868899867887696979999797687998998997698887996755679869974684786585778443777463637453565
453262763434347465466775576648547487575559559798899767997688687699866678886677989789787668987855965595976678877444548677568363436337773773642
246445653566664674745645464755556666679795997859996686767866889686769868868979866696768766687989555697765577968784486558546563643575563622644
662254444563366346533786467478885745796778956688858686978967777978787866686888888777979996977766798557756578875454674874454665363664574536435
532536353334533636774468445875758655955798788899969698876769879779788868676679796776679777786577958695756658645464877766785755547355434455262
652422567664455363663867565574784564677656575775598897899789889697969866987998987697896677798679886877789888854457857845755745545663674463435
542465547537536663475676457788645875597657988965957897766669687666767787966988879878778688959989985788598756455878876686873336776633437435566
326322624437465635655348678567545767777695889759887589667788867867666898979966777766698867687887955875557747776575487654667436754544447444453
236463543467777375445358667577466688467767889577556679687978977768789798989689976797667999866555597979868854486775684567563374376734746635632
422466343657564657463376468674864876458786556689985669776697968868968669899888988787866796565556959678988775665864578486773475656444352342325
345443665743336453677458687848577864587967858868795965788977886679877987679777667979658755966778986965757754745477887556656553475345636336252
362355453544374763364777555756546785848588558955759659675765786667779776767899887867855667776567699966675455766665784785757563564544732333635
522244654557546747456456454745757566444688666879657697966968686689768698989888798869987566955888575858674758557555766566463767754635465562244
262454655634677774376655784444667555645777689799965875955566988888967997898677759695579697588957775969584855557488758455576544336544624345523
625652554547354544767476374767844665656758767699667876855875688896599988575987778958886559655658859855444654475668476636364533356666642625636
543342646454667334544736666668577647787545798789568798955597859798676578687678896865578588857968567656755556474678656345453367777354353352256
652445352452433753336446776655468745776675477957977877579685756577968689665966677686695768858787655454865486587865776446767754666533333465354
424644434542673667757745675474877755865866874969557899678657867588957996655859998798777686698795975765866565657668485544475343777664654425263
255556623556634477475434467447668575485587856489798975879559799887955695595758795877879856666959967865675867664748675777767746533524523224455
423262553424636633765345465647667586844774546544786767759786889888668576566897967978766678859888774644576885675776545636643635653364244543352
554625626333653573446364367437847877655644565777589889868755568998799888756857958896867769795774766446868876467676477634677456763426566456335
252332242626633665766546754473665785474567554754566996755889767666677898967566576857595555755765444486767887455553473356533334445423464324455
332556423533266445377676434456444774845568446678766766659955758759899697898596678599566779975855758844445564646647475544637476355563645632632
442533542564566737657753544374678477688767854557785547978977556659996695878595575996765778467565558656777676488456766457576545575625436522543
335424642426636647573677365475553656846856578644755747875557797787675957697579568578789556465588847757877864587677374534667364625264346532534
166255365665232664457374677745664476548786766687454656848686688888578878598858776876644788786658864584547854447763345633665337545425445266465
434643424366664623675536374566465538478665548656854875588648587977676689675778864446685758564587686544684784363444554743567664426356455366525
554663263533444422543477653476334753444784554886874447587684778778646586886744476856877884646887544888454446555773754575733755262322462266444
145334554662453443376377366464755577688748864866568475768556567584645564544887867654454787577468885747876544343777353464663443342555455242634
332564443523226265667776474477755365364875668665554877656487758885766554874874568885777487578486467585676535774546653675646446432522536624341
323536642443422565323577557434564477366364885565855647667645744867885678864585676575486675545574767865556364636746664437764425643234563334553
211122236445263532533435635663777747656458646758848565486685556557486487588485557776878644746877688647376646667773633364342624244644336633123
211552366443234434665363667743734737463363757464585487574647565658756465668665576458865867748688447535476333756547644745432644445423544225141
311125563426635255664535445447566336644434554546757487784457575586887885844454547577864676755564474335334443656736677436523325462355463263115
135251366223553543234326433346576633447547363544488654747877875748566654455444457758666587884778433544765445654773643476633633565523355634542
115432244453363636255233437635344437573334363445786785874644446855568767545558557557778745854853335774657635655734737534266523364336332124344
321223412324342322224562565676743644354463365447677764585677644644585775657444645544854786643546643374767676344635736362655453455423366135431
123523211343242536336536523367544733775654365354654654855548774757868455877878546545864455773457534655735637664653543622433336664452224543454
422345231346244526643434344234744654474766654566475364638665584748874464667564678846584743746656556337754463644474335563524635334425345315123
551223524253525652244566422554677545666454664344663367777333856575485665465658855875565747467366735763664674447343633365636536542255343233312
332351355125226452555432645456263767464646557367373536537547653453654584757665674673743777336345366775767537657732665464662652636361325321443
415455514152262533432552236342356574553346537556337567445534665675347755776334766346447356445645445564757733344266444445433333446614434541114
221155451455232363265336263335253574376735343464764434474534335567765466543476377634347574374545344333375476463253523526545543655344555142312
145231454554252663626423433343236626576676567777557354445753676336343646363544756476437457436434744356656577563626444664243462265454314424354
322532554313423353326466652563326345536646367766376447434354475747355474333374575357374647353545465444456432534442452552323646525412351315344
442225545331354264525335462454243265264735647557653663645533345434634336356756767364576444547366364553475545635564544432652636625154211152454
542355214245244215332425353455254665343263674446647753577545345774463737664345563357756537477474463555262635363244224662623335313335334354544
143155124531512354543362432224462266642223447554646477555455664576366667645737476463445575675754635766642553225233434642346211544535253342312
434225243151335534544444245453623634623552526545357345646573563373474553644567344665536764443576336645223526346366263345522333235344222425554
441121322341455542445423246326336432354265363554636445376647735775763466344637433544733647437333662433242662264333563566622115252524512445132
212455143242123152123534246542464564624552525625436437443473674534474663465574457445743347353364656665543352244265664463243553141521423124254
243153512411325245224431333243235465455552652362263646434566775567473777643365636665764753435462556444323566252255666622433511344323253234512
413345131221432542313333346323656465362223343455662642436347767565546563776577464647755653644253424454226465346565624332551223442131315231112
122133352234241515345331453655564356562456363424352422245242237477473455635547566623545466543264554256322555526346635224325222331321213434213
132241241523115414345353112243265632346442544423466332325232553443524466433632663352446345623552424355466333322222323543241231144544532241431
223124422143435351521312312344626324233462253666423666635646265555526352633452335625643364522443436365533655436556443212151332541514251342421
434313423252123454451433211311425243353442664223622634352235536434326533463524423636325552325345623232324665225621551544542522122115412143111

13
2023/day17/test Normal file
View file

@ -0,0 +1,13 @@
2413432311323
3215453535623
3255245654254
3446585845452
4546657867536
1438598798454
4457876987766
3637877979653
4654967986887
4564679986453
1224686865563
2546548887735
4322674655533

5
2023/day17/test2 Normal file
View file

@ -0,0 +1,5 @@
111111111111
999999999991
999999999991
999999999991
999999999991

13
2023/day18/day18.bqn Normal file
View file

@ -0,0 +1,13 @@
Split•Import"../bqn-libs/strings.bqn"
dslscs<˘>" "Split¨•FLines"input"
Area{𝕊dl:
p+`l×d01,10,0¯1,¯10
a|2÷˜-´+˝(˘1)×>p
a+1+(+´l)÷2
}
•Show Area"RDLU"ds,•ParseFloat¨ls
Hex2Num{16×+˜´("0a"+¨106)𝕩}
•Show Area <˘Hex2Num¨>5()¨2¨¯1¨cs

690
2023/day18/input Normal file
View file

@ -0,0 +1,690 @@
R 5 (#58a492)
U 5 (#630fe3)
L 3 (#7087b2)
U 5 (#5f3ee1)
L 3 (#313202)
U 5 (#03d101)
L 10 (#7c5562)
U 4 (#404f43)
L 3 (#412982)
U 7 (#79c1c3)
L 6 (#12d412)
U 4 (#083683)
L 4 (#775942)
U 6 (#030323)
L 6 (#0c9622)
U 8 (#6cdc33)
L 6 (#03d682)
U 2 (#0e9c53)
L 5 (#493272)
U 2 (#03d643)
L 2 (#3305b2)
U 9 (#244203)
L 6 (#6c6a70)
U 4 (#341f73)
L 8 (#28bb00)
U 3 (#74c533)
R 4 (#3cfdb0)
U 3 (#3fd773)
R 3 (#52a350)
U 9 (#3c2073)
R 3 (#316de0)
U 6 (#3c4213)
R 6 (#0b7720)
U 5 (#3734e3)
R 2 (#929370)
U 7 (#372c31)
R 7 (#503d70)
U 7 (#27d791)
R 5 (#4cac80)
U 6 (#24f401)
R 3 (#4c95a0)
U 6 (#43bb01)
R 5 (#2ff3b2)
U 4 (#2fb481)
R 2 (#7c5eb2)
U 2 (#141aa1)
R 9 (#1259d2)
U 4 (#4e9531)
R 4 (#2ad362)
U 3 (#27d1b1)
R 9 (#149920)
U 3 (#0b0163)
R 4 (#65fc30)
U 4 (#5f54e3)
R 3 (#473e00)
U 4 (#0d0da3)
R 8 (#327d60)
U 3 (#187fc3)
L 8 (#66f6c0)
U 3 (#6981f3)
L 3 (#42b9d0)
U 4 (#6f32f3)
L 3 (#42b9d2)
U 7 (#16b7a3)
L 5 (#66f6c2)
D 7 (#0298a3)
L 8 (#29c4a0)
D 2 (#4f2473)
L 4 (#266862)
D 10 (#436fd1)
L 4 (#3482b2)
U 5 (#30fad3)
L 4 (#6ac712)
U 6 (#30fad1)
L 2 (#4ee392)
U 4 (#436fd3)
R 6 (#59ff52)
U 4 (#73a323)
L 4 (#20ba82)
U 8 (#5e5873)
L 4 (#578df2)
D 7 (#47e4f3)
L 2 (#6a4792)
D 8 (#2a00b3)
L 6 (#854930)
U 8 (#594903)
L 3 (#854932)
D 3 (#53db83)
L 2 (#19e4f0)
D 8 (#7c7af3)
L 5 (#5062a0)
U 4 (#2d3db3)
L 3 (#2fe132)
U 7 (#7059f3)
L 3 (#4cc5b2)
U 5 (#2a28a1)
R 3 (#6d89e2)
U 3 (#4398a1)
R 3 (#09b672)
U 11 (#4a32e1)
R 3 (#0d6002)
D 10 (#3ece11)
R 2 (#81a642)
D 4 (#096ba1)
R 5 (#31df02)
U 8 (#7ccf71)
R 5 (#6239a2)
U 7 (#6584c1)
R 6 (#6c1fe0)
U 4 (#1e1b01)
L 3 (#5fbee0)
U 2 (#5bfc41)
L 12 (#49e020)
U 4 (#48a6d1)
R 8 (#6814a2)
U 2 (#226a71)
R 7 (#6814a0)
U 4 (#436dc1)
R 5 (#2a2f92)
D 4 (#28eaf3)
R 9 (#25ab52)
D 3 (#22bd81)
R 2 (#83aa92)
D 3 (#22bd83)
L 5 (#159182)
D 2 (#0387c3)
L 6 (#3599c2)
D 4 (#4e6413)
R 5 (#48f562)
D 7 (#564e23)
R 6 (#46fbf2)
U 6 (#1e12d3)
R 4 (#0bd062)
U 5 (#1ffbb3)
R 3 (#5fbb82)
U 3 (#2d0803)
R 6 (#101d70)
U 8 (#11b903)
R 6 (#9af6c0)
D 6 (#11b901)
R 9 (#1b70a0)
U 6 (#479173)
R 7 (#15cc02)
D 2 (#0aa953)
R 9 (#858072)
D 3 (#3e60f3)
R 3 (#2b3862)
D 3 (#1f4af3)
R 7 (#40b892)
D 3 (#4f9151)
R 3 (#343292)
D 5 (#0ec741)
R 6 (#549592)
D 3 (#7e9611)
R 5 (#0215c2)
D 6 (#57bdb3)
R 3 (#6964c2)
D 6 (#38c523)
R 4 (#172242)
D 2 (#80a643)
R 8 (#21dee0)
D 2 (#1a89e3)
R 8 (#5ea820)
D 2 (#2baab3)
R 4 (#6d2bb0)
D 5 (#4bfb93)
L 10 (#1f13e0)
D 5 (#4fa9d3)
R 10 (#8c3f92)
D 5 (#014b33)
R 4 (#0786d2)
D 5 (#713641)
R 5 (#30eb92)
D 5 (#4591f3)
R 4 (#44fef2)
U 3 (#4591f1)
R 2 (#5636e2)
U 9 (#0cfbb1)
L 5 (#2ded32)
U 4 (#06c881)
L 3 (#5c8ab0)
U 7 (#5ba411)
R 8 (#362110)
U 5 (#023861)
R 3 (#92abc2)
D 6 (#423051)
R 5 (#3bdda2)
D 4 (#59ab71)
R 2 (#103492)
D 4 (#1bc8b1)
R 5 (#739582)
D 5 (#4591d1)
R 3 (#03a662)
U 12 (#0934f1)
R 4 (#2a4662)
D 5 (#2b07d1)
R 3 (#49fd52)
D 7 (#6b8561)
R 3 (#18d152)
D 3 (#573fa1)
L 3 (#57c6b2)
D 2 (#664a03)
L 10 (#190712)
D 4 (#34c2b3)
R 3 (#21f322)
D 3 (#25dc13)
R 3 (#4be7d2)
D 11 (#469a13)
L 4 (#437350)
D 8 (#1a9503)
R 4 (#456d20)
D 4 (#49d533)
R 4 (#88e072)
U 3 (#250333)
R 8 (#4be7d0)
U 3 (#16f773)
R 3 (#8c07b2)
U 5 (#53ad91)
R 3 (#54b682)
U 3 (#3b3621)
R 3 (#54b680)
U 3 (#5bb551)
R 5 (#05def2)
U 5 (#2241f1)
R 4 (#7a0222)
U 2 (#0e6b23)
R 3 (#4b2592)
U 5 (#936c13)
R 2 (#48da12)
U 7 (#727bb3)
L 5 (#072a52)
U 2 (#5c9f13)
L 3 (#4592b0)
U 4 (#3eb493)
L 3 (#9828d0)
U 7 (#3eb491)
L 4 (#108bb0)
U 2 (#88ff83)
L 3 (#043dd0)
U 2 (#88ff81)
L 5 (#3ccdf0)
U 3 (#29f651)
L 5 (#3b58f0)
U 9 (#1dfe43)
L 3 (#3707e0)
U 7 (#1dfe41)
L 5 (#335470)
U 2 (#29f653)
L 3 (#0d04b0)
U 3 (#045723)
R 2 (#3df010)
U 6 (#1eaaa3)
R 6 (#390270)
U 5 (#1e73d1)
R 7 (#672f40)
D 5 (#1e73d3)
R 6 (#83a5d0)
D 6 (#50dd53)
R 2 (#48d590)
D 3 (#5e3bf3)
R 5 (#4064a0)
D 11 (#08fa63)
L 5 (#3f2af0)
D 5 (#3f7793)
R 5 (#6d57f0)
U 2 (#135f33)
R 3 (#445122)
U 10 (#5285b3)
R 3 (#3dc912)
U 6 (#5285b1)
R 4 (#355342)
U 2 (#53a883)
R 6 (#4c4be0)
U 8 (#0303f3)
R 4 (#6b2190)
U 4 (#62c1b3)
R 7 (#3241e0)
D 4 (#057a23)
R 3 (#692490)
D 3 (#0eadb3)
R 8 (#526c20)
D 4 (#5721d3)
R 4 (#33dd40)
D 3 (#4a6513)
R 2 (#1c8770)
D 5 (#0db573)
L 7 (#2a30a2)
D 6 (#186ba3)
R 7 (#788af2)
D 7 (#186ba1)
R 5 (#001542)
D 5 (#3830c3)
R 3 (#32b480)
D 9 (#73a7a3)
R 5 (#5b0230)
D 5 (#562d53)
R 8 (#7e0d30)
D 3 (#059e93)
L 6 (#3284d0)
D 3 (#373711)
L 2 (#4de350)
D 7 (#6179f1)
L 2 (#57f0b0)
D 6 (#4cd0b1)
L 6 (#6a0260)
D 3 (#4cd0b3)
R 4 (#47ed90)
D 8 (#4e4a61)
R 4 (#029330)
D 3 (#56c261)
R 4 (#029332)
U 11 (#08aee1)
R 4 (#3f9e40)
D 3 (#124841)
R 5 (#6af022)
D 10 (#189be1)
R 2 (#4058d2)
D 3 (#6cd791)
R 8 (#2c43c2)
D 5 (#36a191)
R 6 (#2c43c0)
U 5 (#3fff21)
R 3 (#4058d0)
U 8 (#06ad11)
R 4 (#6af020)
D 3 (#487a71)
R 3 (#77aa00)
D 10 (#335cc1)
R 4 (#445960)
U 5 (#36c3f1)
R 3 (#5d13b0)
U 9 (#1f2761)
R 2 (#49e9e0)
U 3 (#7eb501)
R 4 (#578e30)
U 2 (#66dd31)
R 7 (#469130)
U 4 (#7f9823)
R 6 (#1e1e90)
U 5 (#127fa3)
R 5 (#14ac40)
D 6 (#130523)
R 3 (#07a7b0)
D 6 (#5f7be3)
R 8 (#4fff10)
D 6 (#1ad8f1)
R 2 (#32df80)
D 5 (#57a811)
R 7 (#084830)
D 4 (#127fa1)
R 10 (#1fa950)
D 6 (#70fee3)
R 5 (#04f0e2)
D 2 (#4052d3)
R 5 (#3f7cc2)
D 6 (#8a1e13)
R 4 (#3be9a2)
D 4 (#8a1e11)
R 7 (#49c392)
D 3 (#4052d1)
L 6 (#1b27c2)
D 3 (#4ae683)
L 7 (#109120)
D 3 (#634013)
L 5 (#19bbb0)
D 6 (#21de43)
L 4 (#15dd60)
D 5 (#4b3bc3)
L 4 (#691db2)
D 5 (#2f3753)
L 4 (#0ed142)
D 5 (#4d2823)
L 5 (#378122)
D 4 (#5b8733)
L 3 (#35bdc2)
U 6 (#2d1093)
L 6 (#54e720)
U 8 (#12e8d1)
L 4 (#8bb140)
U 4 (#12e8d3)
R 6 (#049570)
U 4 (#01c483)
L 6 (#15dd62)
U 6 (#5d8b23)
R 4 (#4e5940)
U 7 (#92cae1)
L 8 (#1a3a50)
U 3 (#0f4801)
L 6 (#326690)
U 4 (#01c2a1)
L 5 (#051e00)
D 7 (#61eb71)
L 7 (#459650)
D 2 (#9994f1)
L 3 (#471090)
D 8 (#0e7a31)
L 2 (#550610)
D 8 (#194501)
R 6 (#4b09c0)
D 4 (#8e6791)
R 6 (#4b09c2)
D 6 (#0bd3d1)
L 8 (#4527f0)
D 7 (#30e601)
L 6 (#14a132)
D 3 (#795df1)
L 7 (#60edd2)
D 4 (#056141)
L 4 (#41dbc2)
D 3 (#488971)
R 8 (#38fef0)
D 4 (#2cb3b1)
R 3 (#38fef2)
D 3 (#369c41)
L 6 (#3e5bd2)
D 4 (#19bcb3)
L 4 (#173b32)
D 4 (#0de2b3)
L 12 (#377942)
D 3 (#899b43)
L 3 (#3e99b2)
D 3 (#00b211)
L 3 (#4b5ad2)
D 5 (#1f0501)
L 8 (#4abb70)
D 4 (#7f6001)
L 5 (#4abb72)
D 3 (#20c3d1)
L 7 (#1d68a0)
D 9 (#471091)
L 4 (#4c8650)
D 3 (#25ab01)
L 10 (#35f0b0)
D 2 (#695131)
L 10 (#051850)
D 5 (#60dd93)
L 9 (#567cc0)
D 4 (#2e1ea3)
L 5 (#2ffa30)
D 5 (#22b051)
L 5 (#911430)
D 4 (#396521)
L 4 (#11ec70)
D 3 (#356891)
R 8 (#6e13c0)
D 4 (#4d3291)
R 3 (#277462)
D 5 (#57f681)
R 3 (#2f8dc0)
D 3 (#020321)
R 9 (#628620)
D 6 (#152051)
L 6 (#9213e2)
D 5 (#4ec671)
L 6 (#277460)
D 8 (#13c7b1)
L 5 (#1b3e00)
U 6 (#5e57f1)
L 4 (#4a7b20)
U 6 (#5e57f3)
L 4 (#437f90)
U 3 (#020143)
L 4 (#034420)
D 9 (#152c63)
L 3 (#2296b2)
D 2 (#771a63)
L 4 (#2296b0)
D 5 (#251a83)
R 10 (#034422)
D 5 (#6b7823)
L 10 (#19c8c0)
D 3 (#87f251)
L 5 (#53ad40)
U 7 (#534f61)
L 7 (#3ee5c0)
U 6 (#0c6d71)
L 4 (#2d8ba0)
D 6 (#29a941)
L 5 (#0a35f0)
U 6 (#2e83e1)
L 2 (#0a35f2)
U 11 (#45afc1)
L 3 (#2a9d30)
U 3 (#366473)
L 8 (#1e5c90)
U 6 (#73e5e3)
R 8 (#01d790)
U 4 (#3b0e81)
L 2 (#155640)
U 4 (#0f5351)
L 8 (#608130)
U 2 (#7af281)
L 3 (#332700)
U 4 (#05b091)
L 2 (#0faf80)
U 9 (#0091e1)
R 3 (#0b3210)
U 6 (#1ee971)
L 7 (#24f6d2)
U 4 (#519181)
R 7 (#5e5392)
U 3 (#3f1351)
R 3 (#022282)
U 4 (#857db1)
R 9 (#09a712)
U 4 (#3c1341)
R 4 (#025442)
D 8 (#69a253)
R 4 (#767622)
D 7 (#69a251)
R 6 (#4267a2)
D 4 (#320361)
R 5 (#3c5870)
U 7 (#267773)
R 8 (#4b2b40)
U 4 (#267771)
R 4 (#3f77e0)
U 8 (#32f0d1)
R 3 (#834a60)
U 5 (#2e98c1)
R 3 (#635c80)
D 6 (#1e7241)
R 4 (#36a5c0)
D 9 (#3c5311)
R 3 (#0907f0)
U 6 (#394291)
R 2 (#952cc0)
U 9 (#394293)
R 4 (#6b81a0)
D 5 (#592621)
R 4 (#59ea50)
U 8 (#4ef493)
R 7 (#3e3f10)
U 3 (#514253)
L 7 (#3e3f12)
U 9 (#23e503)
L 3 (#3eb3b0)
U 5 (#2e6433)
L 3 (#67c590)
D 5 (#77b101)
L 3 (#21c682)
D 11 (#754aa1)
L 3 (#21c680)
U 6 (#058471)
L 3 (#0ec8c0)
U 10 (#76bdd3)
L 6 (#07fb80)
U 7 (#386853)
R 8 (#55a690)
D 4 (#02f453)
R 8 (#2fb280)
U 4 (#4e8811)
R 5 (#7c2910)
U 3 (#639261)
L 4 (#471b80)
U 5 (#592623)
L 5 (#42bc00)
U 9 (#62c471)
L 7 (#6a8c32)
D 4 (#13d861)
L 4 (#94bb72)
D 6 (#13d863)
L 5 (#2e3ba2)
D 3 (#24ee61)
L 4 (#888a22)
D 9 (#366271)
L 4 (#1201a2)
D 6 (#238401)
L 2 (#246412)
D 7 (#1c23f1)
L 4 (#41d152)
D 3 (#6b5d81)
L 6 (#659b22)
U 3 (#6f1a03)
L 3 (#32db02)
U 4 (#186773)
L 3 (#0043e2)
U 7 (#295c31)
L 3 (#3bd622)
U 8 (#25f1c1)
L 3 (#52ea70)
D 5 (#302c41)
L 4 (#52ea72)
D 5 (#4cb371)
R 4 (#0062e2)
D 6 (#016ab1)
L 4 (#6511c2)
D 3 (#1fae91)
L 3 (#5ca060)
U 7 (#6daef1)
L 5 (#5ca062)
U 7 (#4904a1)
L 7 (#6cc852)
U 3 (#0e2451)
L 3 (#109dd2)
U 5 (#5b3813)
R 8 (#6cb452)
U 2 (#25f353)
R 2 (#6cb450)
U 5 (#4bd743)
L 5 (#609a42)
U 4 (#774593)
L 3 (#609a40)
D 2 (#6dd693)
L 7 (#138f72)
D 7 (#37ed73)
L 7 (#0ad4c2)
U 6 (#32a9f3)
L 8 (#859122)
U 4 (#143d73)
L 11 (#64f202)
U 2 (#18d5c3)
L 3 (#24cb12)
D 10 (#2e7523)
L 2 (#461b52)
D 2 (#5d9883)
L 3 (#6ae660)
D 5 (#1ac423)
R 11 (#2c9fe2)
D 3 (#2e1f33)
L 11 (#8686b2)
D 5 (#0bbc53)
R 3 (#232a62)
D 6 (#3f85d3)
R 3 (#787172)
D 9 (#20eda3)
R 3 (#404292)
D 3 (#3ab463)
R 3 (#22a182)
D 6 (#08f6e3)
L 2 (#776202)
D 2 (#4f3193)
L 5 (#549e22)
D 2 (#5cf443)
L 5 (#549e20)
D 5 (#4e5523)
R 6 (#6f6852)
D 3 (#00e383)
R 10 (#4f9722)
D 5 (#24e003)
R 8 (#138892)
D 3 (#782033)
R 10 (#02bf92)
D 4 (#0d0ad3)
L 8 (#5a8342)
D 2 (#244f11)
L 3 (#182ce0)
D 4 (#6c4331)
L 9 (#140250)
D 5 (#325901)
L 3 (#033dc0)
D 3 (#0c7231)
L 11 (#54fbe0)
D 4 (#094653)
L 4 (#76ee60)
D 11 (#094651)
L 3 (#00f3f0)
D 8 (#0c7233)
L 4 (#255340)
D 5 (#332281)
L 3 (#487c52)
D 3 (#70ada1)
L 10 (#508b12)
U 5 (#1e0d21)
L 6 (#825812)
U 7 (#2f5771)
L 7 (#063ef2)
U 5 (#34f4c1)
L 5 (#1fa462)
U 7 (#74be53)
L 3 (#3c4402)
U 4 (#837ef1)
L 10 (#4fb490)
U 2 (#573091)
L 2 (#408920)
U 5 (#3969e3)
L 3 (#77eff0)
U 5 (#3969e1)
L 7 (#2bec10)
U 4 (#7ac481)
R 8 (#0b7162)
U 2 (#0d6aa1)
R 5 (#502642)
U 3 (#5169c3)
R 12 (#674d02)
U 3 (#5169c1)
L 5 (#713512)
U 7 (#6bd621)
L 7 (#69b9f2)
U 3 (#749153)

14
2023/day18/test Normal file
View file

@ -0,0 +1,14 @@
R 6 (#70c710)
D 5 (#0dc571)
L 2 (#5713f0)
D 2 (#d2c081)
R 2 (#59c680)
D 2 (#411b91)
L 5 (#8ceee2)
U 2 (#caa173)
L 1 (#1b58a2)
U 2 (#caa171)
R 2 (#7807d2)
U 3 (#a77fa3)
L 2 (#015232)
U 2 (#7a21e3)

25
2023/day19/day19.bqn Normal file
View file

@ -0,0 +1,25 @@
Split•Import"../bqn-libs/strings.bqn"
wsps01¨(+`¨)•FLines"input"
p•ParseFloat¨¨2¨¨","Split¨¯1¨1¨ps
idsprogs{":"Split¨¨","Split¨¯1¨𝕩}(1)<˘>"{"Split¨ws
ParseProg{𝕊tr: (("<>"1t)<>)(•ParseFloat 2t)(("xmas"𝕩)),r ; 𝕩}
wParseProg¨¨progs
Apply{n𝕊r: r ; fr𝕩 (F 𝕨)𝕨𝕊(1𝕩),r}
Sel{𝕊"A": "A" ; 𝕊"R": "R" ;(/𝕩¨ids)w}
Run{𝕩(ApplySel¨)•_while_{¬´¨"AR"¨𝕩}(𝕩)<"in"}
•Show +´('A'=Run p)/p
lsns<˘>(((•ParseFloat 2)+('>'=1)))¨¯1¨¨¨progs
b1¨¨ns¨¨"xmas"ls
db1¨+`¨4001¨b
c0
{
c+(×´𝕩¨db)×"A"Run𝕩¨b
i+´`0=𝕩
(i¯1+¨b)˙(i) -1(i) 𝕩
}•_while_{𝕩40}¯1+¨b
•Show c+("A"Run¨b)××´¨db

714
2023/day19/input Normal file
View file

@ -0,0 +1,714 @@
cqh{m>1849:R,A}
zs{a>1909:ql,x<1340:kxd,m>3378:kt,kbt}
sp{a<665:R,s>1356:A,A}
kf{a>1202:rkv,x>2756:A,jnv}
kck{s<1337:pgl,R}
tnp{x<3631:mm,x<3771:qbx,a>1403:kjs,lxf}
vnj{a>2884:fm,a>2424:gg,mgv}
zxv{s<436:R,a>261:A,R}
pjx{s<1500:A,x>2599:R,vg}
pc{s<2563:A,qx}
fv{m<1688:A,A}
zb{m>1561:A,m<1418:A,m>1510:R,A}
ss{x<1970:A,x>2017:R,m<2125:R,A}
zm{x>1228:R,R}
mhp{m<2647:R,a<1979:A,x<288:A,A}
nr{x<884:R,a<1947:ptj,sg}
vh{m>1512:jv,x<994:lr,pgt}
stn{s<3016:qpr,hq}
ktb{x<2371:A,R}
np{s<976:bkp,x>3236:jbl,x<2743:nlp,slc}
ssj{x<2301:cms,lxg}
dnj{x>1620:A,m>1035:A,A}
xj{s>396:qqp,m<2541:hlb,qsl}
nmd{a<2160:A,x<1946:R,A}
cnj{x>320:A,m<382:R,A}
nm{x<1499:A,A}
xnc{a>3633:phz,x<883:bs,R}
fzj{a>1543:hk,m>910:jl,s<211:R,A}
bp{a<3520:hv,s>1344:scf,R}
hjc{a<2654:gz,x>767:vv,lhv}
qz{s<1329:R,ktb}
gzf{a>1805:vvs,s>270:xtc,lx}
qvm{a<475:A,A}
tp{a<1875:dm,x>985:srh,x<802:jnl,zsp}
zq{s>726:R,s<584:R,a<479:R,A}
xl{m<2614:A,a<3274:R,m<3274:R,A}
in{s>1957:tv,zls}
gx{a<2631:clr,A}
gzv{a>1445:cg,ht}
hht{x>1393:khn,a>2195:cjd,xf}
vf{x>3490:A,R}
bz{a<3150:A,x<1283:R,x>1338:R,R}
tcp{s>2645:R,A}
shf{a>3449:A,m<1344:A,x<2754:R,R}
rl{a>3463:R,s>2705:R,m>1573:xh,A}
nk{a<1561:nff,s<244:snv,dd}
zj{m<2629:R,R}
hqq{s<1218:A,a<2865:hsq,s>1590:R,zg}
dh{a<142:R,m<1706:pzf,lnb}
jzp{m<3335:A,ckp}
xz{a>3623:R,R}
rc{x<272:A,A}
mls{a>2255:A,m<3473:R,R}
gl{a>661:A,a<297:R,x>604:R,R}
fsb{m<346:A,m>520:R,a<1609:R,R}
ptl{x>904:rd,x>863:rsq,a>2356:qdm,fv}
vb{x<157:R,s<88:A,s>125:R,R}
dzj{m<1110:R,s<864:R,m<1359:A,R}
vgf{x>1377:A,R}
pk{a>3637:R,a<3421:R,m<649:A,R}
sbb{s<732:R,s>864:A,A}
lpp{m>1116:A,m>914:A,s>442:R,R}
br{m<3228:R,m>3557:A,s>1588:R,R}
zls{x>2211:np,s<727:nqg,x>1092:pl,hgk}
bkp{m>1445:ckq,x>2982:gbh,a<2618:fz,bq}
lv{a<1050:R,x>1991:A,R}
pgt{x<1139:nrr,a<2036:rs,qv}
rsq{x>890:A,a>2384:R,s<2459:A,A}
lx{m>1867:krg,m<856:fx,qp}
lk{x<3205:A,a>2637:gp,x>3571:sq,nj}
kkx{m<3287:R,R}
lpc{x<1258:gtp,m<2505:dl,s<1541:vrv,qm}
pfr{x>242:A,R}
xd{x>637:R,A}
dgb{m<2887:A,m<3160:R,s<507:tlj,cl}
sz{a>2480:R,x<1077:A,m>369:A,R}
zt{a<2249:R,s>1173:R,s>1055:rt,jvj}
mjc{s>417:A,nbk}
vdz{a<2968:A,x>618:A,a>3118:A,R}
hjd{x<3042:A,a<479:A,s<1182:A,R}
fk{x>170:tlm,R}
jt{a<1904:A,A}
cm{m>2053:A,A}
pbc{x>2064:A,s>1335:A,x<2057:A,R}
jtn{m<3595:R,a<2443:dt,R}
fdr{x<170:zrm,zss}
qx{m<1330:R,A}
zvl{x>1154:A,a>3086:A,R}
xtc{m<2363:jxs,m<3368:dgb,m>3777:pgq,phq}
rjk{x>2343:R,R}
hn{s<2971:bph,m<1962:fl,zz}
gg{x<756:R,s<2434:A,A}
tps{a>2539:A,A}
tj{x>3769:A,a<2474:A,a>3050:A,A}
jgb{x>1394:vth,x>1340:R,a<2466:xsk,A}
txq{m<3293:A,m<3736:A,R}
srv{s<1686:R,a>934:R,x<1159:A,R}
dg{x>3478:R,td}
bs{m<1413:R,m<2741:R,R}
hv{a>3019:A,m>230:R,a>2889:R,R}
qct{x<2515:ttz,x<2620:R,tbd}
bph{m>1692:R,a<1706:A,s>2455:bdt,bhf}
xnp{a<2896:A,a>3434:ck,s>567:kgk,A}
zk{a>1220:R,m>2395:A,R}
nvj{x<2973:kbn,s<1742:vzv,R}
ndk{s>1154:R,s>893:A,s>831:A,A}
hkv{x>1420:R,m>389:A,A}
xxn{s>3361:htx,a>2268:A,R}
rr{s>2668:R,A}
jl{m<1582:A,m<2069:R,s<244:R,A}
fd{a>407:R,R}
rs{x>1258:vhq,a>1007:txn,R}
xm{a>3738:R,s>2755:A,A}
vzv{a>984:A,A}
hk{x<1994:A,A}
mfm{m<1032:hkv,a<1959:cf,x>1399:R,jb}
smq{m<194:R,a<3282:R,R}
hjx{s<1617:R,a<3296:R,R}
jrq{m>1955:A,R}
vg{x>2575:R,R}
jj{s<780:R,R}
vkf{m<1743:R,s>3082:A,a>95:R,R}
msf{a<2067:rqq,A}
mvk{x>922:dj,R}
rms{m>2987:grm,x>223:qdp,a>473:ml,kr}
cb{m>3701:cht,m>3491:jtn,s<3267:klg,smk}
sd{a<2635:hvd,vj}
tmm{x<2059:R,A}
xxh{m>2915:R,xt}
xkg{s>1039:A,R}
zf{s>453:A,A}
njl{a<1805:R,mtf}
zkn{m<3512:thg,s>1158:R,a<2484:R,R}
nh{m>2463:A,s<1228:tg,x>1940:jlj,pmk}
png{x>1162:R,m<571:ltg,A}
lzs{s<580:A,s<663:R,A}
tqf{s<144:hnl,R}
dfs{s<228:A,s>246:A,m>567:R,A}
pbd{m>784:A,m<522:R,x<607:A,R}
snv{a>3181:A,s<83:R,zm}
kgk{s<662:A,a<3145:A,A}
lkn{x>3048:R,x<2937:A,R}
fc{s<1346:R,s<1666:nmd,ss}
nlp{m<1429:gq,a<2208:kp,rmx}
zp{m>405:A,s<2848:A,m<159:R,R}
vs{s<3820:R,m<3596:R,A}
pf{m>3426:A,x<759:A,m<3114:A,A}
xqq{a>2142:gn,m>2425:kkx,nvj}
nvg{a<2121:R,x<981:R,m<2849:A,A}
ckq{a>2161:dff,ktx}
mlb{a<955:A,x>425:R,a>1165:A,A}
dfm{a<678:R,m<1355:A,R}
xn{s>224:R,R}
hm{m<3125:A,R}
pzf{s>2736:A,A}
jtc{x<3066:stl,A}
kxd{s<3843:vjf,m>3231:vzd,x>546:cgf,A}
bdt{a>2680:R,R}
vm{s<2777:A,s>2916:R,m<1063:zp,jrq}
pq{a>2418:zrk,a<958:fkr,a>1923:fc,nh}
pvl{a<1684:jtm,dpr}
zrm{s<1037:R,m>3099:R,R}
mdx{x<2534:R,s>1409:R,s>1161:R,R}
ql{a>3241:R,x>2544:nqj,a>2628:A,ljk}
mc{a>2835:A,s>2670:A,A}
svp{s<1194:R,a>1519:R,m>2815:A,srv}
pql{m<3552:A,R}
lxf{x<3868:cqh,s>1665:qdj,x>3947:cm,shz}
brn{x<1064:dcz,m>1683:nk,gqn}
qdp{x>346:R,a<436:A,R}
xb{a>2683:R,m<2188:A,a>2438:A,R}
jz{s<2926:A,a<782:R,R}
ch{s>953:A,A}
ptj{x<933:A,m>636:R,a>1087:A,A}
clr{s>2740:R,s>2233:A,R}
vqk{s<1332:xl,x<2703:hjx,m>2989:R,A}
thg{m>3370:R,s>1286:R,m>3250:A,R}
bjl{a>1210:R,A}
vj{m<1940:R,R}
prj{x<200:R,s>994:A,R}
qdj{x<3938:R,x<3968:R,a>870:A,A}
cgf{a<906:R,s>3921:A,A}
hgk{x<476:vfd,sdh}
ngd{x<1982:A,a>620:A,m<2486:R,R}
vx{a>334:R,x<474:xq,a>158:A,A}
xf{s>1642:R,x<1323:A,R}
xzp{x>311:R,R}
njm{x>1880:R,a<3319:A,m>1329:R,A}
zz{a>2616:A,x>164:R,zk}
nd{x<2080:pbc,m<2049:rvb,a>3279:xc,R}
qg{a>1460:A,R}
vvs{s>476:xnp,s>302:mjc,x<338:pj,ttp}
nkj{m<2932:R,A}
bj{a<2598:R,s>2994:A,A}
xfs{s<1908:R,x<911:R,m<785:A,R}
kh{s<3211:A,s>3474:R,a>1156:htz,R}
jmk{m<889:A,a>3482:A,x<227:A,A}
vr{m<1392:R,s>1268:A,R}
nqb{m<336:A,A}
bsq{x>2108:sds,a>1846:nd,x<2074:tq,sxr}
qb{x>1971:dc,xxh}
pl{x<1466:lpc,gmk}
gxv{s<480:R,x>1082:A,A}
dxk{x<950:R,s>2625:R,x>967:R,A}
qrr{m>1685:hx,s<2653:R,jz}
tvk{a>1391:A,m>566:A,s>554:R,R}
sb{x<1881:A,a<939:fd,m<3131:R,lzs}
gvz{s<3188:R,s>3633:nqb,x<1763:jq,lq}
xr{m>1097:A,a>1258:A,x>535:A,R}
zsq{s<2601:pf,x<615:A,a>3233:xm,R}
pmv{m>796:R,a<610:prv,mdx}
gs{m>1007:A,s<462:R,R}
vv{s<1330:A,s<1743:gpn,s<1839:kdq,xfs}
qqp{a>2612:dds,m<2536:lxn,sb}
cdf{m>1757:R,s>2842:A,m>1647:A,R}
cg{m<1137:tps,a<2714:lkn,x<3032:zb,R}
dm{a>1076:qg,a<423:dh,qrr}
pbn{m>253:R,x<1107:R,s<203:R,A}
phq{a>755:pql,A}
czk{s>281:A,A}
prs{m>2533:bf,a>3389:R,s<1343:db,R}
td{x<3266:R,R}
jpc{x<3729:A,x>3830:R,s<2843:A,R}
stl{a>2315:A,s>1415:A,m<2946:R,R}
ds{m<3188:hsg,zkn}
nqg{x>1400:xj,x>711:brn,gzf}
cms{s>2105:A,hm}
pg{s<1430:kd,A}
zsp{a>2971:lgb,a>2468:mvk,a>2239:ptl,vm}
xdx{a>528:A,m<1527:kz,x<1628:A,A}
zh{m>1731:rr,m<1283:qf,m<1467:R,bj}
lfr{a>1128:xzp,R}
th{a>843:lfr,s>1463:hnb,s>1042:rth,sgm}
ms{m>2316:bgr,s<1139:jmk,x<240:R,A}
xlp{x<2479:kh,a>699:cpn,a>248:dvn,xjz}
sv{x<481:mlb,a>1000:xng,gl}
gbg{s<408:hqf,jj}
qt{x>194:R,R}
hp{a>966:A,x>1290:R,a<422:R,A}
xc{s<1538:R,m>2811:R,s>1711:A,R}
jnv{m<519:A,a<721:R,A}
pgl{x<2400:A,a<1466:R,R}
cpn{x>3417:R,tkm}
dz{m<948:mk,x<328:hn,lt}
xng{a>1222:R,R}
hx{s<2470:A,a>776:R,A}
srh{x<1202:pc,sjc}
lnb{x<932:A,m>2319:R,A}
xs{s<3530:R,a>402:A,A}
gpn{x>922:R,a>3449:A,x>839:A,R}
ttz{s>1449:R,s>1256:R,a>3372:A,R}
sdh{m<2098:hjc,ds}
ptg{m<1800:A,a>3375:R,s>450:A,A}
dt{s<3323:A,a<1278:R,A}
lxn{m>1281:R,s>536:gxn,s<468:R,vcp}
lhv{a<3237:vdz,a<3550:pbd,A}
krg{a<1012:R,x<405:jnk,A}
gp{a>3394:A,A}
rvb{a<3145:R,a<3639:A,R}
tjc{a>2154:A,a<995:zq,sbb}
vhq{s<3713:R,s<3811:A,R}
hvd{m<2486:R,a<2454:R,s>1188:A,A}
jvj{a>3098:R,m<2985:R,x>3093:A,A}
xq{s>3200:A,R}
kz{a>206:A,x<1602:A,A}
fkr{s>1178:rqp,m>1684:ngd,s>940:nc,dzj}
rv{s<3916:A,x>2062:R,x<1939:R,A}
kbn{x<2874:R,x<2921:R,m>1259:A,R}
rt{a>3166:R,m>3250:R,R}
nrr{m>747:bfc,x>1046:R,x>1023:mb,hxf}
js{s>2620:R,a>2007:A,lv}
lpb{m>1348:A,s<625:R,A}
gtp{m>1915:svp,xbg}
xp{a>1571:R,A}
dff{m>2559:A,m<2049:R,m>2292:zf,bd}
rmx{x<2553:qz,x>2678:vqk,pjx}
vfd{a>1568:spp,m<1767:th,s<1319:fdr,blm}
nqj{s>3777:A,s>3673:A,R}
kd{m<2651:A,A}
sgm{a>342:qt,s<902:bfl,s>974:A,A}
sxr{m>2172:R,hsv}
sq{s>2682:R,m>3803:R,x<3716:R,R}
tf{m<2857:R,x>2020:A,A}
jv{a>2378:dq,sx}
hsq{s<1508:A,x>1701:R,R}
nj{m<3687:R,a>1009:A,x<3441:A,A}
zzx{x<1621:A,x>1774:A,s>175:R,A}
rh{x>313:R,m>1071:R,A}
sk{x<1284:A,x>1314:R,a<3785:R,R}
mn{s>2659:A,A}
ttp{s>165:mz,A}
jml{m>1947:R,a>2659:A,A}
cch{x<109:gd,x<196:R,R}
dds{s<547:ptg,A}
hnl{s>85:A,a<3120:R,a<3626:R,A}
gck{m<1499:R,A}
phz{x>926:R,s>383:R,a<3874:A,A}
vsf{m>1197:R,R}
bc{m<820:A,R}
thc{x>3440:R,A}
trh{a<3765:xz,x<2813:R,A}
grm{x<241:R,R}
ljk{x<1132:R,A}
gpr{s<404:A,s<594:xb,R}
vjf{s>3678:R,R}
rrd{x>1386:A,a>1016:R,a>571:R,R}
kbt{x>2381:bjl,s<3792:A,x<1720:A,rv}
qbs{x<1104:sz,x>1112:fsb,s<312:pbn,bg}
htz{x>1939:R,a>1496:A,A}
ft{x>1366:dnz,x<710:dz,s<3187:tp,vh}
qpr{x<1446:nbc,s<2323:ssj,tc}
zfp{a>1044:R,s<2040:R,m>2904:R,R}
jn{m>657:A,s>1507:R,R}
hhl{s<1408:A,a>451:R,R}
tkm{x>2963:A,a<1341:R,A}
lvf{x>561:kc,m>3525:A,xp}
stf{m>1450:A,s>3054:A,R}
mft{x<1216:A,m<3127:R,m<3477:R,A}
xgn{a<2241:R,a>2481:A,A}
jbl{s>1406:tnp,cj}
mm{s<1762:vf,a>1580:R,m<2202:R,nkj}
jb{x<1383:A,x<1390:R,R}
lxg{s>2147:R,m>3127:qk,a>2612:R,zfp}
rp{s>1327:R,fj}
jq{x<1598:R,a>2707:A,s>3379:R,A}
lp{x<1707:nm,m>2005:R,m<1558:njm,tcp}
xjz{x>2990:vkf,mbm}
bf{m<3420:A,R}
gk{a<3118:zzx,R}
fxd{x<2267:vsf,a<2779:A,fh}
cl{a<1085:R,A}
vzd{s<3937:R,R}
cgk{a<2582:A,jpc}
zr{x>3587:tj,m>1836:kx,xkg}
nff{m<2643:R,s<396:mft,s<566:txq,mq}
nbg{x<2377:R,m<136:R,R}
kr{m<2449:R,x<81:A,R}
xsk{x<1296:A,m<3176:A,A}
sds{a>1522:R,x>2154:qbr,vr}
jxs{s<453:A,m>1053:R,a>1121:tvk,A}
bfc{x<1068:R,a>2463:A,R}
pmk{m>1124:A,A}
cf{x<1390:R,m>1278:R,R}
klg{m<3284:pz,A}
mgv{a<2150:R,x<760:R,a<2269:A,A}
fhg{m>762:R,x>2348:R,a<3237:R,A}
qp{m<1438:rh,pfr}
zhm{m>292:R,m>121:kq,a>1833:R,A}
rd{m<1296:A,x<940:A,x>969:R,A}
tq{m<1442:R,m<3017:A,m<3652:R,tmm}
vcp{x<1921:R,s>512:R,s<495:R,R}
pnq{x>3852:A,m>1774:A,x>3724:R,A}
bhf{x>218:A,s<2239:R,A}
bls{m>1957:A,s<2577:A,x<770:cdf,A}
mtf{a>3150:R,a>2528:R,A}
rkv{m>778:R,A}
dpr{m>552:R,m>259:A,a>2918:A,A}
smk{x>1577:R,m>3242:gnn,s>3395:R,R}
vth{m<3431:A,R}
dcz{a<2168:czk,a>3385:xnc,x>889:gpr,nmv}
pqs{x<2970:bnd,s<1347:zt,jtc}
hlb{x>1866:fzj,a>1466:gk,xdx}
prv{x<2429:A,x<2574:R,R}
rq{m<3913:A,a<1087:R,R}
mq{s>627:R,x>1212:A,a>538:A,A}
kq{m>209:R,m<167:A,A}
bfl{s>810:A,R}
qdm{m>1189:A,R}
tbd{s<1325:A,R}
lc{a<1274:R,A}
lt{a>1572:zh,m>1604:sv,a>984:vl,vx}
nt{m<3894:R,A}
vxd{s>3177:A,A}
dnz{a<2029:xlp,x<2628:snc,a>3341:qcl,vms}
vrf{x<2829:A,R}
crd{x>3557:pnq,thc}
fz{x>2529:kf,m<769:vn,xtd}
pdx{a<2185:zgt,hqq}
cp{m>2598:A,A}
fl{x>133:A,m<1491:rm,s>3519:R,A}
pz{x>2347:R,m<3192:R,A}
tg{m>1371:A,m<663:R,R}
ggv{s<527:shf,s<710:lpb,R}
fj{s<1287:R,s<1302:A,s<1312:R,A}
kt{x<2253:R,a>1220:vs,R}
ht{a<781:hjd,xv}
xh{s<2309:R,a<3410:R,R}
qcl{x<3100:trh,a>3564:vxd,rl}
nbk{x>377:A,a<2893:R,s<365:A,A}
bnd{x>2843:A,x<2800:R,a>1769:kbb,cp}
hnb{m<805:rc,x>232:gt,A}
rm{m>1185:A,A}
fb{a<2398:A,s<3218:A,m>2850:A,R}
sx{x<1030:A,a<1219:A,x>1218:R,R}
bd{a>2890:A,a<2425:R,x>3323:A,A}
gmk{x<1864:pdx,x<2051:pq,bsq}
jlj{x<1982:R,s<1665:R,m<1026:A,A}
srb{a>2656:A,m>3514:R,a>1728:A,R}
cz{x>3027:A,A}
dvn{x<3341:cz,s<3231:A,xs}
hxf{s>3637:A,m<448:R,R}
qv{x>1236:A,a<3189:R,pk}
kx{m>3217:R,R}
gz{x>822:R,a<1663:dfm,xd}
gn{a<3047:R,R}
gt{m<1156:R,m>1548:R,a>430:A,R}
vzr{m<3451:tf,a<1010:A,x>2004:A,R}
qf{a<2801:A,R}
hsg{m<2529:hrv,x<807:R,nvg}
cht{x>2198:nt,R}
bq{x<2523:gm,m<700:gbg,m<1162:gs,ggv}
prc{m>1205:A,x<3047:vrf,m<630:R,mc}
gd{s>2846:R,m>424:R,A}
cjd{m<3360:R,m>3770:R,A}
qbx{m<2515:drv,x>3685:mls,s<1770:A,R}
vn{m<337:nbg,m>551:dcc,A}
ck{m<1618:A,m<2476:R,m>3165:A,R}
db{a>2890:A,s<1308:A,s<1323:A,R}
snc{x>1978:fxd,m>952:lp,gvz}
qsl{x<1835:jzp,a<2179:vzr,tqf}
rqq{m<2027:R,x<1384:A,s>1764:A,R}
gxn{s>635:A,a>1262:R,x<1802:A,R}
cj{s<1125:zr,s<1257:crd,a<2537:rp,prs}
lq{x>1836:R,a>3311:A,a<2551:A,A}
qzs{x<1384:A,x<1417:A,A}
spp{a>2881:ms,a>2360:sd,mhp}
ld{m>1052:lbq,a>1810:R,hp}
qk{s<2064:R,s>2098:A,x>3155:A,A}
hqf{x<2810:R,x>2881:R,a<3335:R,A}
txn{m<515:R,s<3547:A,R}
shz{m<2662:A,m<3548:R,R}
nbc{a>2381:zsq,lvf}
xtd{x<2377:lpp,R}
zg{s<1442:R,A}
lxq{a>1722:R,s<1419:sp,A}
ktx{m<2642:A,x<3186:R,s<439:lc,R}
jnk{x>241:R,x<86:A,A}
dl{s<1389:mj,m>1577:msf,x>1351:mfm,zqh}
kp{x<2526:kck,pg}
vrv{s<1238:csj,m>3267:srb,lxq}
tlm{m>2678:R,m<2159:A,A}
hrv{s<1266:R,s>1543:R,R}
fmk{s>595:R,a>2979:A,m<3119:R,R}
zgt{m>2441:ndk,a<782:hhl,a>1406:R,dnj}
gm{m<489:smq,m<988:fhg,rjk}
blm{a>858:br,s>1664:rms,fk}
dcc{a>1715:A,s>543:A,m<624:R,A}
lr{s>3670:nr,xxn}
mj{s>1107:A,s<971:qzs,A}
mz{m>2390:R,x<556:R,R}
mb{a>2399:A,A}
kjs{m>1519:zj,R}
sg{a<3129:A,m<764:R,m<1260:R,A}
dc{x>3285:A,fb}
zqh{x>1305:A,jt}
kbb{x>2822:A,A}
rqp{s<1487:R,m>2233:A,A}
vms{x<3479:prc,m>1779:gx,cgk}
kdq{x>936:A,A}
pgq{a>726:rq,s<564:zxv,s>670:pfq,A}
dq{a>3308:R,x<1086:R,a<2892:jml,A}
ltg{m>283:R,a>1543:R,R}
rth{m<769:qvm,x>198:A,x>107:A,sj}
bg{a<2443:A,s<530:R,m>366:A,R}
kc{x<1050:A,R}
dd{x>1210:R,a>2724:A,R}
fh{s>2664:A,m<1476:A,a>3397:A,R}
lgb{x>890:dxk,A}
jnl{m>1532:bls,vnj}
gnn{s<3393:A,s>3450:A,x<643:A,A}
jtm{m>383:R,x>3159:R,R}
hq{s>3559:zs,m<3117:qb,cb}
nmv{a<2742:blb,s<338:R,m>2532:fmk,R}
hsv{m<1102:R,a<641:A,a>1237:R,A}
csj{a>2052:vgf,x<1327:ch,rrd}
drv{s<1770:R,s<1861:R,s>1895:R,R}
bgr{s<1472:R,m>3076:A,A}
lbq{m<1314:R,x>1323:R,R}
vl{m>1211:stf,xr}
xv{m>760:A,R}
fm{x<755:A,R}
kjv{x>215:R,x>187:R,A}
pfq{m<3899:A,s>695:A,A}
gbh{s>420:tjc,m>867:dg,x>3474:zhm,pvl}
ml{m<2527:A,m>2768:R,a>618:R,A}
htx{a<1562:A,x<845:R,A}
ckp{x>1638:R,s<152:A,R}
tv{m>2668:stn,ft}
pj{s>146:xn,vb}
slc{s>1536:xqq,m>1881:pqs,gzv}
zrk{a>3081:gck,A}
xgb{x>1096:A,gxv}
qbr{s<1438:A,m>1436:R,m<750:A,R}
gq{a<1449:pmv,a<2656:cgs,m>522:qct,bp}
mk{x>293:mn,cch}
gqn{x>1195:ld,x>1126:png,m<679:qbs,xgb}
sj{a<314:A,a>578:R,x<55:A,R}
fx{s>163:dfs,a>898:A,cnj}
xbg{a<1791:bc,x>1166:R,x<1141:jn,zvl}
sjc{a<2847:R,a>3361:sk,m>931:R,bz}
qm{s>1778:jgb,hht}
xt{s<3374:A,m>2783:R,x<678:R,R}
tlj{m<3283:R,s<406:A,R}
nc{a>357:R,a>141:R,s<1071:R,A}
tc{x<2724:js,m<3426:njl,lk}
zss{x>278:A,a<663:kjv,x>242:A,prj}
blb{a>2363:R,s>460:R,A}
scf{m<219:R,x>2548:A,m>324:A,A}
dj{x<951:A,m<1084:A,x>963:A,R}
khn{m>3298:A,A}
mbm{s>3117:A,a<153:A,A}
cgs{x<2412:qh,xgn}
qh{x<2315:R,x>2377:A,A}
{x=1509,m=1127,a=482,s=1803}
{x=24,m=718,a=2879,s=978}
{x=211,m=1442,a=507,s=128}
{x=47,m=2266,a=1663,s=357}
{x=461,m=5,a=718,s=1969}
{x=184,m=414,a=1810,s=2958}
{x=754,m=521,a=41,s=2007}
{x=296,m=1438,a=18,s=1013}
{x=374,m=2888,a=234,s=797}
{x=1540,m=1164,a=3,s=26}
{x=1586,m=2318,a=1125,s=901}
{x=2243,m=1165,a=300,s=166}
{x=413,m=230,a=1284,s=101}
{x=816,m=1394,a=978,s=1190}
{x=813,m=2503,a=1809,s=640}
{x=439,m=1792,a=1540,s=287}
{x=237,m=2782,a=9,s=668}
{x=2142,m=1746,a=407,s=1855}
{x=1562,m=767,a=808,s=286}
{x=1410,m=268,a=163,s=971}
{x=255,m=548,a=1947,s=216}
{x=399,m=2458,a=1068,s=124}
{x=288,m=1284,a=174,s=597}
{x=933,m=697,a=310,s=173}
{x=1676,m=207,a=1084,s=80}
{x=1169,m=2438,a=226,s=919}
{x=387,m=1275,a=839,s=465}
{x=2757,m=100,a=2508,s=742}
{x=762,m=1067,a=372,s=253}
{x=495,m=423,a=443,s=838}
{x=239,m=3028,a=214,s=2055}
{x=150,m=1025,a=97,s=3859}
{x=1072,m=503,a=517,s=1973}
{x=127,m=580,a=218,s=852}
{x=1740,m=904,a=409,s=1214}
{x=164,m=2719,a=1951,s=339}
{x=334,m=45,a=1729,s=832}
{x=37,m=1776,a=118,s=1360}
{x=1223,m=486,a=168,s=680}
{x=1593,m=266,a=51,s=112}
{x=432,m=787,a=199,s=669}
{x=2,m=1196,a=500,s=823}
{x=386,m=567,a=728,s=459}
{x=2343,m=3452,a=199,s=749}
{x=604,m=272,a=529,s=3335}
{x=154,m=253,a=668,s=384}
{x=224,m=98,a=1345,s=948}
{x=145,m=1309,a=148,s=984}
{x=1872,m=1653,a=1716,s=692}
{x=3015,m=119,a=101,s=890}
{x=807,m=436,a=851,s=274}
{x=593,m=1025,a=431,s=1243}
{x=1607,m=275,a=1824,s=117}
{x=398,m=567,a=914,s=440}
{x=1606,m=33,a=46,s=402}
{x=1183,m=1444,a=645,s=276}
{x=125,m=248,a=86,s=2534}
{x=3374,m=71,a=37,s=884}
{x=810,m=255,a=819,s=1449}
{x=1592,m=2102,a=1264,s=2117}
{x=1998,m=1917,a=912,s=438}
{x=1057,m=2932,a=939,s=843}
{x=837,m=2185,a=1746,s=680}
{x=211,m=2513,a=596,s=1437}
{x=2265,m=35,a=778,s=3172}
{x=2574,m=1963,a=73,s=836}
{x=893,m=1770,a=714,s=325}
{x=387,m=147,a=81,s=314}
{x=2109,m=146,a=1650,s=1625}
{x=2318,m=800,a=1790,s=358}
{x=447,m=1497,a=1356,s=2604}
{x=1022,m=1118,a=590,s=1464}
{x=64,m=3472,a=3359,s=2289}
{x=697,m=735,a=2306,s=603}
{x=828,m=23,a=1165,s=1411}
{x=3615,m=463,a=328,s=969}
{x=3499,m=336,a=600,s=680}
{x=32,m=39,a=602,s=1528}
{x=21,m=2171,a=76,s=3824}
{x=1252,m=329,a=1989,s=1352}
{x=564,m=359,a=161,s=2211}
{x=2280,m=1449,a=914,s=304}
{x=821,m=1014,a=2535,s=700}
{x=1507,m=2523,a=102,s=406}
{x=1138,m=36,a=1011,s=413}
{x=333,m=92,a=424,s=1182}
{x=399,m=995,a=445,s=410}
{x=1131,m=78,a=777,s=1441}
{x=406,m=1665,a=2355,s=18}
{x=791,m=115,a=299,s=1460}
{x=721,m=3651,a=242,s=408}
{x=152,m=228,a=31,s=867}
{x=311,m=560,a=127,s=1385}
{x=414,m=1281,a=259,s=429}
{x=53,m=973,a=2397,s=438}
{x=388,m=106,a=1159,s=1170}
{x=272,m=1267,a=2995,s=203}
{x=1165,m=629,a=1135,s=102}
{x=739,m=2903,a=1458,s=56}
{x=484,m=2172,a=2249,s=117}
{x=1325,m=741,a=2516,s=543}
{x=458,m=57,a=606,s=331}
{x=1447,m=792,a=591,s=724}
{x=1219,m=1192,a=173,s=602}
{x=667,m=80,a=764,s=2201}
{x=2729,m=1465,a=447,s=1598}
{x=594,m=8,a=503,s=569}
{x=846,m=2072,a=57,s=1122}
{x=120,m=1390,a=100,s=27}
{x=111,m=2718,a=158,s=1095}
{x=26,m=741,a=82,s=194}
{x=268,m=64,a=678,s=2474}
{x=404,m=207,a=960,s=215}
{x=3014,m=297,a=853,s=145}
{x=1224,m=274,a=179,s=589}
{x=160,m=1842,a=2384,s=69}
{x=508,m=237,a=141,s=71}
{x=3797,m=2478,a=1134,s=70}
{x=28,m=3289,a=1711,s=607}
{x=1272,m=521,a=1221,s=228}
{x=264,m=2596,a=3321,s=1066}
{x=873,m=637,a=410,s=2601}
{x=2133,m=440,a=442,s=432}
{x=1553,m=108,a=1675,s=118}
{x=2374,m=236,a=2233,s=497}
{x=2378,m=197,a=178,s=1966}
{x=601,m=1589,a=2241,s=2551}
{x=1294,m=2663,a=489,s=1752}
{x=155,m=2493,a=83,s=208}
{x=317,m=1440,a=1396,s=514}
{x=1654,m=1919,a=26,s=1232}
{x=1430,m=539,a=1089,s=1259}
{x=642,m=1163,a=476,s=631}
{x=1379,m=5,a=48,s=642}
{x=2749,m=2562,a=2822,s=1541}
{x=1536,m=225,a=367,s=739}
{x=150,m=173,a=395,s=110}
{x=467,m=1035,a=255,s=1451}
{x=44,m=1085,a=843,s=729}
{x=48,m=579,a=70,s=852}
{x=50,m=84,a=4,s=1250}
{x=3128,m=1013,a=3367,s=479}
{x=345,m=1286,a=695,s=3472}
{x=57,m=1376,a=1786,s=815}
{x=1998,m=654,a=179,s=376}
{x=1469,m=1252,a=677,s=1839}
{x=1157,m=31,a=625,s=2022}
{x=1263,m=2576,a=538,s=909}
{x=168,m=462,a=2268,s=1809}
{x=1206,m=1152,a=2370,s=1918}
{x=131,m=207,a=2124,s=956}
{x=1826,m=39,a=144,s=651}
{x=503,m=65,a=142,s=1246}
{x=101,m=626,a=1261,s=414}
{x=2453,m=333,a=968,s=198}
{x=280,m=466,a=1607,s=773}
{x=3177,m=531,a=579,s=76}
{x=838,m=386,a=144,s=607}
{x=1516,m=574,a=329,s=214}
{x=404,m=2017,a=2317,s=654}
{x=2698,m=2050,a=10,s=1956}
{x=1004,m=3340,a=2190,s=768}
{x=777,m=2294,a=845,s=1058}
{x=402,m=796,a=820,s=3105}
{x=568,m=169,a=40,s=133}
{x=454,m=1910,a=496,s=8}
{x=27,m=123,a=2739,s=30}
{x=2090,m=795,a=167,s=1506}
{x=1854,m=74,a=308,s=252}
{x=990,m=1048,a=2142,s=1317}
{x=36,m=196,a=3199,s=212}
{x=394,m=2379,a=535,s=2703}
{x=1664,m=8,a=413,s=337}
{x=192,m=2158,a=1213,s=667}
{x=1597,m=865,a=595,s=55}
{x=1231,m=947,a=339,s=306}
{x=347,m=2771,a=2154,s=993}
{x=1186,m=126,a=552,s=407}
{x=1747,m=1326,a=1974,s=270}
{x=1880,m=1319,a=658,s=27}
{x=1124,m=160,a=350,s=3227}
{x=19,m=1712,a=1866,s=757}
{x=739,m=944,a=890,s=2785}
{x=260,m=1279,a=454,s=95}
{x=90,m=635,a=1189,s=874}
{x=3102,m=39,a=559,s=497}
{x=227,m=1174,a=2384,s=2043}
{x=908,m=957,a=554,s=771}
{x=1176,m=15,a=675,s=2289}
{x=280,m=491,a=1021,s=1174}
{x=2277,m=316,a=1675,s=1308}
{x=56,m=1303,a=1558,s=259}
{x=32,m=125,a=209,s=405}
{x=284,m=2162,a=2769,s=403}
{x=1018,m=1472,a=28,s=134}
{x=2775,m=542,a=127,s=749}
{x=6,m=356,a=3287,s=277}
{x=1993,m=66,a=1202,s=1851}
{x=352,m=1071,a=33,s=175}
{x=807,m=622,a=3419,s=2345}

17
2023/day19/test Normal file
View file

@ -0,0 +1,17 @@
px{a<2006:qkq,m>2090:A,rfg}
pv{a>1716:R,A}
lnx{m>1548:A,A}
rfg{s<537:gd,x>2440:R,A}
qs{s>3448:A,lnx}
qkq{x<1416:A,crn}
crn{x>2662:A,R}
in{s<1351:px,qqz}
qqz{s>2770:qs,m<1801:hdj,R}
gd{a>3333:R,R}
hdj{m>838:A,pv}
{x=787,m=2655,a=1222,s=2876}
{x=1679,m=44,a=2067,s=496}
{x=2036,m=264,a=79,s=2244}
{x=2461,m=1339,a=466,s=291}
{x=2127,m=1623,a=2188,s=1013}

21
2023/day21/day21.bqn Normal file
View file

@ -0,0 +1,21 @@
mninput>•FLines"input"
sm(÷˜|)/input='S'
grid1˙(s)input='.'
dirs-2
•Show {(grid¨)/𝕩+dirs}64s
ps{(mn|grid˙)¨/𝕩+dirs}((m÷2)+m×3)s
# Lagrange polynomial interpolation, arbitrary nodes and values
Lagrange{x𝕊y:
dx
w÷×˝1˙¨((˜¨d))-˜x
{+´y×w××´¨𝕩-¨/x¨¬(d1)¨1+d}
}
f(ps) Lagrange ¨ps
•Show F (26501365-65)÷m
# Lagrange polynomial interpolation with nodes at 0‿1‿2 and values at 𝕩
LagrangeCoeffs{+˝[[1,-3,2],[1,-2,0],[1,-1,0]]×[0.5,¯1,0.5]×𝕩}
•Show (LagrangeCoeffs ¨ps)(+´×(3))(26501365-65)÷m

131
2023/day21/input Normal file
View file

@ -0,0 +1,131 @@
...................................................................................................................................
...............#.....#...#......#...............#.....#...#...........#..#....##.#..#.........#..............#...........#..#......
........#.#..........#.##..#.......#.#.#.......#..#........................#............#...#....#.............#....#.........#....
.....#......#...................#...#......#.............#..............#.#....#.......#...#...#......##.#.#...........#..###......
.........#............#...##.........#.#....#........#..........................#....#.#......#......#....#....#............#.#....
...#.....#................#.#..........#..........#.#.#...........#.......#..............#......#.......##.....#.........##.#......
..........#....................#............#........#............#............#....#..........#.........................#.........
...#.#...................#.#......##..#........#.##.....................................#........##............#.##....#...........
.........................................#...#.......................#...........................#..#........#....##.#...##........
...#.......#...#.......#..#.#.......#.......#........................#........#....#....#...#.#.....#...#...........#........##.#..
..#....#.............#........................#..##.............................#..#.................#....##.......#.......#....#..
.........................#.......#...#...........#..................#..............#.#....#.....#...#........#...........#......#..
............#..................#...#.......#...#.#.........#.......................#............#.......#....#.....#..........#....
..........#........#......##.#.....#...#................#....##...........#................#.......#........#......#...#....#..#...
.................#.......................##...............#.....#.....#............#.................#..........#......#.....#.....
.....#.###................#..........#...................#.##........#...............#....#...............#..#................#.#..
.#..#..........#..................#...................................#......#.................#.#..................#..............
..........#..#...#.#...........#.#..#....................#....................#..........#.#.#.....#....#...........#........#.....
.#.............#.......##.##.........#.#..............#.......#.............#.........................................#....#.#.....
.............#.....#.#........#..........#..............#.....................#..................#..#........#.#.....#...#.........
....#.......#..............#.....#.......#...........#.............#.##..................#.................#..#......#.#...#....#..
..#....#.....#......................#.....................#..........#..##........#.........#.............#......#.................
...##.......#.......#...#..##..................#.........##....................#.#...................................#..#..........
........#.........#..##........................#......#........#...#...#........#......................................#.......#...
....#..#....#.#.#.................#.............#.........#.............#....#................#..#.....#...##.....#.........##.....
...................#................#...............................#.................#...........#.....##.#.......................
.....#........#........#........................#..............#.............................................#........#...#........
.......#............#.................................#.......#........#...#..............................#.....#.#.#......#.#.#...
.....................###....#.#................#.#....#........##.#..#.......#...#............................#..........###....#..
.#.....##.#......#.#........#.#..............#...............#.........#.........#.....#...........#.............................#.
...#.....#...........#.#......#................#..#....#...#..#......#................#....#.............#.#....#..................
..#....##......#.............#...............#.................................#.......#................#...........#.#............
..........#....#....##.......................#.#.#..................#.....#..............#................#..................#.....
.....#......................................#....#......................#..........#........#........................#.............
..#.#..#........#...#..#...................#............#..#...#......#.#...#............#.....#...............#..............#....
..#....#..##..........#...........#......................##................#...#...............................#..#....#........#..
......#........#...................#.#.......#..#.#....#..##...#.........##......#....#..........#....................#....#.......
.#.##.....#.....#..................#.....#..#..#....#....#......#...........#......#....#.........#........##..#.#..##.............
........#..#.....#.....#.......#.#......................#..................#.#.......##...................................#..#.....
..#........#.........................#.......#..............................#.....##.........#..#.##...............................
..............................#....................#......................#.....#..#.............................#..........#......
........#.#.....................#......#.....#.............##...............#....#.#...#..........................#...#....#.......
........#...................#.#.##.##........................#.#........................#...............................#..#...#.#.
.............##.................#......#.#.##.......#.........................#.......................#.................#..........
..##.....#..........................##..........#....#.............................##.....###......#...........................#...
...#.......#...#..............#................#.#.....#..#..................#..#...##....#....#.......#...........#.........#.....
.....#.......#.........#..#.......##.............#.##...#.......#................#..........#............#.................#.......
..............#..........##....................#......#...##..................................#.#.......#.#..............#.........
..#.....#..#.#.............#................#......................#.#.................##.......###.#....#..............##.........
....................#.........#...#............#.#......#..........#........#..........................#..#.#............##........
.......#...#..........#.........#........#....#......###.......#..#.........##....#..............#.......#..#..........#...........
.....##.#.................................#.....#.............#.#.......#..##.............#........................................
.......#..................##.##..#............#......#...#....##........##.#................#....#..#..##..........................
..##.#..............###..#........#...#...#.........#.....................#....#.......##............#...#..................#......
....#..............#...........#.....##................##...##.......#...#....#...#............#..#..............................#.
.........................#.........#..................##................#....#...#...........#......#..#....####.............#.....
.....................#...#....#........#...........#..........#....................#..#..#..........#..............................
.#..................#..................#........#............#.#..............#....#...............#........#....##............##..
...............#....#.#.........#...#.......#...#.......#.......#................#.##................#.................#...........
..............#.#.......#...#....#......#.............#...................##...#.......##......##..................................
..........##.#..#.......##........#.##......#............#.#..##...............#...#.....#...#............#......#.................
........#.#.#........................................##....#..#...............#.......##......#......#...........#..##.............
......................................#........................#.........#.....#...................#...............................
.........................#....#.......#...................#..#..#.#.....#..................#......##.......................#.......
......#....#.......#.............#.........................#........#.#...#.....#..#....#......#....#.#.......#...........#........
.................................................................S.................................................................
...........#...#.....#......................#.......#.............#.#............#.##.#...#........#.......#........#.......##.....
................#..#........#...#.....................#...............#...........................##.....#.........#...............
.............##.##.#...#........#..#...#....................#...#.......................#............#.............................
................#....#.#.#...#...............#...........#..............................##........................#................
.......................................#.....#...........#.........#...................#..#..#.................#.........#.......#.
..#...............#....#.#.#............................#.#..#............#.........#......#........#....#......................#..
...#......................#....#.#....................##..........#......#...#........#....#.....................#.#...........#.#.
...............#...#.................................##...#.#.......#...#...........#...................#...........#..............
................#......#.............#.#...##...##......#......#..#..........#..#......#...........................................
..................#.#.....#.##.....#....#..........................##.#.#....#.........#...#.....#........#...##.#...............#.
........................#...#..............#....#.......#......#......#......#..#...............##.............##..................
..#...##.............#..................#....#.......................#..........#...##......................#..#..#..........#...#.
....##.#..........#...#..........#.......#...#............#.#.........#..#...#.#.......##......#..###..#.........#.................
.........#.............#...#..........#........#..##..................#..#.........................#.....#...#..............#......
.......#...#.............#.#....###................#...#.................#.#.............#..................##...............#.....
....#....##..............#......#.....#.....#...#..#............#...##.......#.#....#...#........##.#..#...............#...#.......
.#..#....#............#.........#...........#......#...#............#...........#......##....#........#..........................#.
....###...#.................#.......#............#.#.........#...................#.##............#....................#............
........#...............................#..........#................#......#....#.............#..........##..........#.....#..##...
....#.....###...................##..##.##...#..##...##...#....#.......#..................#........#..#...................#.........
..#.#............#................#...#.#.......#.........#.....#.#.....#.............#.....#..#.....................#..##.........
............#.#..#....................#.....#..........#.#...................#....................#..#.......................#..#..
....#....#.....#..................##................#..#...#.......##...............#.....##..#................#..##..##...#.......
..................#..............................##................#....#....#........................................#...#...##...
.............##........................#....#........##......#.............#.#...#................#..........#..#.#.....#.......#..
....#.#..#...#..#..................#..#..#..#.#......#..#..#.#.....####......#...........##.#....#..#..............#............#..
.#...#.................................#............##...#....................#.#..#....#.......#................#..#..........#...
..#.................#.................#...................#.#.......#....#...............#......#.#...............#................
......###.....#.........#.................#.#.............#..#..#.......#.....#.............................#....##..##..#.........
..........###....#.#.#....#........#............###..#.........#....#...........#.......#......#........#......#....#............#.
.....##...#.#.##....................##...#.#..#......#.......#......#...#........#.....................#.......#......#.....##.....
.#.....#..#...............................#....#.................................##...................#.......#...............#....
.....................##.....#...................#......................#.#..#................................##....................
....#....#..........#........#.........#...##..........#.....#..#..#.............#..##....................................#........
..........#.#.............#.................#............#.....#......#...............................#.................#....#.#...
......#...#.#.....#.#.##..#.#............###....#.....#................##......#.......#..#....................#.....#.............
.....#....#....................#.....................#..........#.....#.............#..#.......................#.#.................
......#....#...............................#...#........#.......................#....................##...#..#......#...##....#....
....#..............#...........#................#.#......#........##...#..#....###..................#.........#.............#......
......#....#....#.....#..##.#.#.............##.......#.......#....#...##..........................#....###...#...#.............#...
.#....##......#........#.#..........#..........................................#................#..................#...............
..#......#...#....#.......##.....#.....................#.....#.#..#...#...#......#.......................................#..#......
......#..............#.......#.#..........................#.............#.......#.#.............#......#....................#..#...
..#...#.........................#.#....#............................#.....................#.....#.................#................
...................##......#.....#.............................#......##....#............#...#......................#..............
......#...#..#.##.............#........#..#.........##...#....#......#..#......#..........#...........#..........#.#..#.#..........
.#..#..#.........#.......#.......#.........#..........##...##...#.#...#........................................#....#..............
.#..#.#.#....#......#................#........................#.#.....#........................#...#......................#......#.
...............##...............##....................#..#.#.........................#.......#.......#...........#............#....
..........#.........#.#.............#....#..#.#.............##....#......#.#.........................#..#.....#.......#........#...
....##......#...#.............................#...............#......#................#.....................................#......
....###.#..#.......#...................#....#..........................#..#..................#.....#....#.....#................#.#.
............#.#..#.#.###........##..#.##...........................#.................#.#.............#.............#.....##........
..#......#................................#.#.....................#......................#........#.....#.....#.#...#.....#........
.............#..........#.#.##......#..#....................##................................#..............#......#...........##.
.....#...#..............#..#....#..#..............................#..........................#.###..............#...##.....##......
.#...#..#.......#.#...............#....#.....#..#....#..............#...................................................#.#.#......
.......##.........#.#....#...........#.....#....#...............#....................#..................##......#........#.........
...#.#.....#....#.................#..#................#........#..................#......#............#....#...........#..#........
.....#...#..................#.......#.........#...#....#...................#...##..#.#....#....#.##..#..##.##..................#...
.....................#..#...#.....#............#..........................#.##.....................#..#...#......##.....#.....#....
..#........#.......##.#..............#..##................................#..#.#....#.....#...............#.................#.#....
...#.................................#.........#...........................#....##.#...................#......##.................#.
.........#..........#.#......#....##....#.#...#.........#................................#....#..#..............#....##...#........
...................................................................................................................................

11
2023/day21/test Normal file
View file

@ -0,0 +1,11 @@
...........
.....###.#.
.###.##..#.
..#.#...#..
....#.#....
.##..S####.
.##..#...#.
.......##..
.##.#.####.
.##..##.##.
...........

23
2023/day22/day22.bqn Normal file
View file

@ -0,0 +1,23 @@
Split•Import"../bqn-libs/strings.bqn"
bricks(2¨˝¨)>¨•ParseFloat¨¨¨","Split¨¨"~"Split¨•FLines"test"
xmaxymaxzmax1+˝´bricks
hxmaxymax0
segs{(𝕩)+¨1+-˜˝𝕩}¨2˘¨bricks
zs1+2¨(˝-˝)¨bricks
h{segszs𝕊𝕩: zs+(segs)𝕩}´segs¨zs
Covered´(2˘(1))
es¯2¨¨2¨¨/¨{Covered𝕩¨bricks}¨xmaxymax
a1˙¨(es)(˜bricks)0
Fall{𝕊bricks:
newz{1+0´𝕩/2¨˝¨bricks}¨<˘a
{𝕩+newz-2¨˝¨bricks}(2˘¨)bricks
}
#fallenbricks←Fall⍟zmax bricks
fallenbricksFall{𝕊𝔽𝕩} bricks
es2{1=|-´2¨˝,˝{𝕎𝕩}¨𝕩fallenbricks}¨/es
b1˙¨(es2)(˜bricks)0
+´0=+˝(1+˝b)/b

1323
2023/day22/input Normal file

File diff suppressed because it is too large Load diff

7
2023/day22/test Normal file
View file

@ -0,0 +1,7 @@
1,0,1~1,2,1
0,0,2~2,0,2
0,2,3~2,2,3
0,0,4~0,2,4
2,0,5~2,2,5
0,1,6~2,1,6
1,1,8~1,1,9