Day 05
Mix.install(
[
{:kino, "~> 0.7.0"},
{:kino_aoc, git: "https://github.com/ljgago/kino_aoc"}
],
force: true
)
* Getting kino_aoc (https://github.com/ljgago/kino_aoc)
remote: Enumerating objects: 58, done.
remote: Counting objects: 100% (58/58), done.
remote: Compressing objects: 100% (39/39), done.
remote: Total 58 (delta 16), reused 51 (delta 10), pack-reused 0
origin/HEAD set to main
Resolving Hex dependencies...
Resolution completed in 0.126s
New:
castore 0.1.19
finch 0.14.0
hpax 0.1.2
jason 1.4.0
kino 0.7.0
mime 2.0.3
mint 1.4.2
nimble_options 0.5.1
nimble_pool 0.2.6
req 0.3.2
table 0.1.2
telemetry 1.1.0
* Getting kino (Hex package)
* Getting req (Hex package)
* Getting finch (Hex package)
* Getting jason (Hex package)
* Getting mime (Hex package)
* Getting castore (Hex package)
* Getting mint (Hex package)
* Getting nimble_options (Hex package)
* Getting nimble_pool (Hex package)
* Getting telemetry (Hex package)
* Getting hpax (Hex package)
* Getting table (Hex package)
==> table
Compiling 5 files (.ex)
Generated table app
==> mime
Compiling 1 file (.ex)
Generated mime app
==> nimble_options
Compiling 3 files (.ex)
Generated nimble_options app
==> kino
Compiling 36 files (.ex)
Generated kino app
===> Analyzing applications...
===> Compiling telemetry
==> jason
Compiling 10 files (.ex)
Generated jason app
==> hpax
Compiling 4 files (.ex)
Generated hpax app
==> nimble_pool
Compiling 2 files (.ex)
Generated nimble_pool app
==> castore
Compiling 1 file (.ex)
Generated castore app
==> mint
Compiling 1 file (.erl)
Compiling 19 files (.ex)
Generated mint app
==> finch
Compiling 13 files (.ex)
Generated finch app
==> req
Compiling 5 files (.ex)
Generated req app
==> kino_aoc
Compiling 3 files (.ex)
Generated kino_aoc app
:ok
Section
{:ok, puzzle_input} = KinoAOC.download_puzzle("2022", "5", System.fetch_env!("LB_SESSION"))
{:ok,
"[J] [B] [T] \n [M] [L] [Q] [L] [R] \n [G] [Q] [W] [S] [B] [L]\n[D] [D] [T] [M] [G] [V] [P]\n[T] [N] [N] [N] [D] [J] [G] [N]\n[W] [H] [H] [S] [C] [N] [R] [W] [D]\n[N] [P] [P] [W] [H] [H] [B] [N] [G]\n[L] [C] [W] [C] [P] [T] [M] [Z] [W]\n 1 2 3 4 5 6 7 8 9 \n\nmove 6 from 6 to 5\nmove 2 from 5 to 9\nmove 8 from 9 to 1\nmove 3 from 5 to 4\nmove 9 from 1 to 8\nmove 2 from 1 to 5\nmove 1 from 1 to 8\nmove 14 from 8 to 2\nmove 1 from 1 to 2\nmove 2 from 6 to 8\nmove 2 from 5 to 7\nmove 6 from 8 to 6\nmove 4 from 4 to 2\nmove 2 from 4 to 9\nmove 5 from 7 to 4\nmove 2 from 7 to 5\nmove 6 from 2 to 4\nmove 2 from 4 to 7\nmove 4 from 5 to 8\nmove 1 from 5 to 2\nmove 3 from 3 to 5\nmove 3 from 8 to 3\nmove 4 from 3 to 7\nmove 2 from 9 to 8\nmove 1 from 3 to 7\nmove 1 from 6 to 8\nmove 5 from 7 to 1\nmove 3 from 7 to 2\nmove 1 from 6 to 3\nmove 2 from 5 to 9\nmove 5 from 4 to 2\nmove 3 from 5 to 9\nmove 5 from 9 to 6\nmove 2 from 1 to 3\nmove 4 from 4 to 1\nmove 2 from 8 to 1\nmove 18 from 2 to 5\nmove 3 from 4 to 1\nmove 1 from 1 to 2\nmove 1 from 6 to 8\nmove 1 from 7 to 1\nmove 10 from 1 to 5\nmove 1 from 1 to 5\nmove 3 from 8 to 1\nmove 2 from 1 to 5\nmove 3 from 6 to 5\nmove 8 from 2 to 9\nmove 2 from 9 to 7\nmove 3 from 3 to 8\nmove 1 from 4 to 8\nmove 3 from 5 to 3\nmove 15 from 5 to 8\nmove 4 from 6 to 1\nmove 2 from 7 to 4\nmove 9 from 5 to 7\nmove 1 from 6 to 8\nmove 5 from 3 to 5\nmove 5 from 7 to 5\nmove 3 from 1 to 5\nmove 2 from 4 to 8\nmove 3 from 1 to 6\nmove 20 from 5 to 4\nmove 1 from 7 to 6\nmove 21 from 8 to 2\nmove 1 from 3 to 7\nmove 2 from 4 to 2\nmove 1 from 7 to 1\nmove 18 from 2 to 8\nmove 3 from 9 to 2\nmove 1 from 6 to 4\nmove 1 from 1 to 9\nmove 8 from 8 to 6\nmove 4 from 8 to 2\nmove 1 from 2 to 6\nmove 7 from 8 to 5\nmove 2 from 5 to 3\nmove 1 from 9 to 5\nmove 5 from 2 to 4\nmove 1 from 3 to 7\nmove 2 from 5 to 7\nmove 4 from 4 to 9\nmove 2 from 5 to 9\nmove 6 from 2 to 8\nmove 3 from 7 to 3\nmove 2 from 5 to 4\nmove 4 from 8 to 2\nmove 2 from 7 to 4\nmove 7 from 6 to 4\nmove 1 from 8 to 4\nmove 3 from 6 to 7\nmove 2 from 7 to 2\nmove 7 from 9 to 7\nmove 1 from 9 to 2\nmove 3 from 3 to 6\nmove 3 from 7 to 4\nmove 2 from 7 to 9\nmove 6 from 4 to 1\nmove 3 from 7 to 9\nmove 1 from 8 to 5\nmove 1 from 3 to 6\nmove 3 from 9 to 4\nmove 2 from 6 to 4\nmove 3 from 9 to 1\nmove 4 from 2 to 8\nmove 1 from 8 to 5\nmove 9 from 1 to 2\nmove 1 from 6 to 5\nmove 1 from 7 to 2\nmove 1 from 8 to 1\nmove 2 from 8 to 9\nmove 1 from 9 to 8\nmove 1 from 5 to 7\nmove 1 from 7 to 6\nmove 1 from 9 to 8\nmove 1 from 6 to 3\nmove 26 from 4 to 3\nmove 1 from 5 to 8\nmove 3 from 6 to 3\nmove 7 from 4 to 3\nmove 1 from 1 to 3\nmove 1 from 4 to 8\nmove 13 from 3 to 1\nmove 1 from 3 to 4\nmove 12 from 2 to 5\nmove 20 from 3 to 2\nmove 1 from 4 to 1\nmove 4 from 5 to 7\nmove 1 from 7 to 8\nmove 9 from 5 to 2\nmove 5 from 1 to 5\nmove 21 from 2 to 8\nmove 5 from 8 to 4\nmove 4 from 5 to 2\nmove 6 from 1 to 7\nmove 1 from 5 to 4\nmove 4 from 3 to 1\nmove 6 from 1 to 3\nmove 1 from 1 to 9\nmove 6 from 8 to 7\nmove 4 from 8 to 2\nmove 4 from 2 to 7\nmove 5 from 4 to 1\nmove 8 from 8 to 4\nmove 1 from 9 to 6\nmove 18 from 7 to 6\nmove 15 from 6 to 5\nmove 2 from 6 to 8\nmove 2 from 6 to 3\nmove 8 from 3 to 7\nmove 15 from 5 to 7\nmove 3 from 4 to 9\nmove 12 from 2 to 3\nmove 3 from 9 to 4\nmove 6 from 7 to 9\nmove 9 from 4 to 5\nmove 10 from 3 to 5\nmove 9 from 5 to 2\nmove 14 from 7 to 8\nmove 14 from 8 to 5\nmove 4 from 2 to 4\nmove 1 from 4 to 6\nmove 2 from 8 to 4\nmove 3 from 8 to 9\nmove 18 from 5 to 1\nmove 1 from 5 to 9\nmove 1 from 7 to 4\nmove 5 from 5 to 9\nmove 3 from 2 to 4\nmove 13 from 9 to 2\nmove 13 from 2 to 6\nmove 1 from 7 to 3\nmove 3 from 3 to 1\nmove 9 from 6 to 5\nmove 1 from 7 to 8\nmove 20 from 1 to 8\nmove 2 from 2 to 8\nmove 5 from 6 to 9\nmove 15 from 8 to 7\nmove 3 from 5 to 3\nmove 5 from 1 to 3\nmove 2 from 3 to 4\nmove 3 from 9 to 5\nmove 4 from 5 to 2\nmove 4 from 5 to 7\nmove 3 from 4 to 9\nmove 10 from 7 to 8\nmove 2 from 9 to 4\nmove 1 from 5 to 6\nmove 8 from 7 to 9\nmove 1 from 6 to 7\nmove 6 from 3 to 4\nmove 12 from 9 to 8\nmove 1 from 1 to 5\nmove 2 from 7 to 8\nmove 1 from 7 to 5\nmove 1 from 9 to 5\nmove 2 from 2 to 9\nmove 11 fr" <> ...}
Puzzle
test_input =
" [D] \n[N] [C] \n[Z] [M] [P]\n 1 2 3 \n\nmove 1 from 2 to 1\nmove 3 from 1 to 3\nmove 2 from 2 to 1\nmove 1 from 1 to 2"
" [D] \n[N] [C] \n[Z] [M] [P]\n 1 2 3 \n\nmove 1 from 2 to 1\nmove 3 from 1 to 3\nmove 2 from 2 to 1\nmove 1 from 1 to 2"
defmodule Day05 do
def cols("", acc), do: acc
def cols(x, acc) do
{a, b} = String.split_at(x, 4)
cols(b, acc ++ [String.trim(a)])
end
def transpose([]), do: []
def transpose([[] | _]), do: []
def transpose(a) do
[Enum.map(a, &hd/1) | transpose(Enum.map(a, &tl/1))]
end
def remove_items(stacked_columns, num_to_remove, from) do
IO.puts("remove-items: num_to_remove: #{num_to_remove} from: #{from}")
IO.inspect(stacked_columns)
{removed_items, remaining_items} =
Enum.split(Enum.at(stacked_columns, from, nil), num_to_remove)
stacked_columns = List.update_at(stacked_columns, from, fn _x -> remaining_items end)
{stacked_columns, removed_items}
end
def add_items(stacked_columns, items_to_add, to) do
stacked_columns = List.update_at(stacked_columns, to, fn x -> items_to_add ++ x end)
end
def apply_commands(crane_type, stacked_columns, []), do: stacked_columns
def apply_commands(crane_type, stacked_columns, [[num_to_move, from, to] | commands]) do
IO.puts("apply command: #{num_to_move}, #{from}, #{to}")
IO.inspect(stacked_columns)
# Remove items
{stacked_columns, removed_items} = remove_items(stacked_columns, num_to_move, from)
removed_items =
case crane_type do
9000 -> Enum.reverse(removed_items)
9001 -> removed_items
end
IO.inspect(stacked_columns)
IO.inspect(removed_items)
stacked_columns = add_items(stacked_columns, removed_items, to)
IO.inspect(stacked_columns)
stacked_columns = apply_commands(crane_type, stacked_columns, commands)
end
def debugaboo(a) do
IO.inspect(a)
a
end
end
warning: variable "stacked_columns" is unused (there is a variable with the same name in the context, use the pin operator (^) to match on it or prefix this variable with underscore if it is not meant to be used)
2022/day05.livemd#cell:3wzin4sixl5ep5k7nom3qtbmgyqqrgq7:23: Day05.add_items/3
warning: variable "crane_type" is unused (if the variable is not meant to be used, prefix it with an underscore)
2022/day05.livemd#cell:3wzin4sixl5ep5k7nom3qtbmgyqqrgq7:27: Day05.apply_commands/3
warning: variable "stacked_columns" is unused (there is a variable with the same name in the context, use the pin operator (^) to match on it or prefix this variable with underscore if it is not meant to be used)
2022/day05.livemd#cell:3wzin4sixl5ep5k7nom3qtbmgyqqrgq7:42: Day05.apply_commands/3
{:module, Day05, <<70, 79, 82, 49, 0, 0, 18, ...>>, {:debugaboo, 1}}
Part 1
# Two sections, the stack and the commands
[stack, commands_raw] = String.split(test_input, "\n\n")
# Compute columns
stack_rows = String.split(stack, "\n")
numbers_row = List.last(stack_rows)
numbers_columns =
numbers_row
|> String.split(" ", trim: true)
|> List.last()
|> String.to_integer()
stacks = stack_rows -- [numbers_row]
IO.inspect(stacks)
stacked_columns =
stacks
|> Enum.map(fn x -> Day05.cols(x, []) end)
|> Day05.transpose()
|> Enum.map(fn x -> Enum.filter(x, fn x -> x != "" end) end)
[" [D] ", "[N] [C] ", "[Z] [M] [P]"]
[["[N]", "[Z]"], ["[D]", "[C]", "[M]"], ["[P]"]]
commands =
commands_raw
|> String.split("\n")
|> Enum.map(fn str -> String.split(str, " ") end)
|> Enum.map(fn command ->
[
String.to_integer(Enum.at(command, 1)),
String.to_integer(Enum.at(command, 3)) - 1,
String.to_integer(Enum.at(command, 5)) - 1
]
end)
[[1, 1, 0], [3, 0, 2], [2, 1, 0], [1, 0, 1]]
Day05.apply_commands(9000, stacked_columns, commands)
|> Enum.map(fn x -> List.first(x) end)
apply command: 1, 1, 0
[["[N]", "[Z]"], ["[D]", "[C]", "[M]"], ["[P]"]]
remove-items: num_to_remove: 1 from: 1
[["[N]", "[Z]"], ["[D]", "[C]", "[M]"], ["[P]"]]
[["[N]", "[Z]"], ["[C]", "[M]"], ["[P]"]]
["[D]"]
[["[D]", "[N]", "[Z]"], ["[C]", "[M]"], ["[P]"]]
apply command: 3, 0, 2
[["[D]", "[N]", "[Z]"], ["[C]", "[M]"], ["[P]"]]
remove-items: num_to_remove: 3 from: 0
[["[D]", "[N]", "[Z]"], ["[C]", "[M]"], ["[P]"]]
[[], ["[C]", "[M]"], ["[P]"]]
["[Z]", "[N]", "[D]"]
[[], ["[C]", "[M]"], ["[Z]", "[N]", "[D]", "[P]"]]
apply command: 2, 1, 0
[[], ["[C]", "[M]"], ["[Z]", "[N]", "[D]", "[P]"]]
remove-items: num_to_remove: 2 from: 1
[[], ["[C]", "[M]"], ["[Z]", "[N]", "[D]", "[P]"]]
[[], [], ["[Z]", "[N]", "[D]", "[P]"]]
["[M]", "[C]"]
[["[M]", "[C]"], [], ["[Z]", "[N]", "[D]", "[P]"]]
apply command: 1, 0, 1
[["[M]", "[C]"], [], ["[Z]", "[N]", "[D]", "[P]"]]
remove-items: num_to_remove: 1 from: 0
[["[M]", "[C]"], [], ["[Z]", "[N]", "[D]", "[P]"]]
[["[C]"], [], ["[Z]", "[N]", "[D]", "[P]"]]
["[M]"]
[["[C]"], ["[M]"], ["[Z]", "[N]", "[D]", "[P]"]]
["[C]", "[M]", "[Z]"]
puzzle_input = " [J] [B] [T]
[M] [L] [Q] [L] [R]
[G] [Q] [W] [S] [B] [L]
[D] [D] [T] [M] [G] [V] [P]
[T] [N] [N] [N] [D] [J] [G] [N]
[W] [H] [H] [S] [C] [N] [R] [W] [D]
[N] [P] [P] [W] [H] [H] [B] [N] [G]
[L] [C] [W] [C] [P] [T] [M] [Z] [W]
1 2 3 4 5 6 7 8 9
move 6 from 6 to 5
move 2 from 5 to 9
move 8 from 9 to 1
move 3 from 5 to 4
move 9 from 1 to 8
move 2 from 1 to 5
move 1 from 1 to 8
move 14 from 8 to 2
move 1 from 1 to 2
move 2 from 6 to 8
move 2 from 5 to 7
move 6 from 8 to 6
move 4 from 4 to 2
move 2 from 4 to 9
move 5 from 7 to 4
move 2 from 7 to 5
move 6 from 2 to 4
move 2 from 4 to 7
move 4 from 5 to 8
move 1 from 5 to 2
move 3 from 3 to 5
move 3 from 8 to 3
move 4 from 3 to 7
move 2 from 9 to 8
move 1 from 3 to 7
move 1 from 6 to 8
move 5 from 7 to 1
move 3 from 7 to 2
move 1 from 6 to 3
move 2 from 5 to 9
move 5 from 4 to 2
move 3 from 5 to 9
move 5 from 9 to 6
move 2 from 1 to 3
move 4 from 4 to 1
move 2 from 8 to 1
move 18 from 2 to 5
move 3 from 4 to 1
move 1 from 1 to 2
move 1 from 6 to 8
move 1 from 7 to 1
move 10 from 1 to 5
move 1 from 1 to 5
move 3 from 8 to 1
move 2 from 1 to 5
move 3 from 6 to 5
move 8 from 2 to 9
move 2 from 9 to 7
move 3 from 3 to 8
move 1 from 4 to 8
move 3 from 5 to 3
move 15 from 5 to 8
move 4 from 6 to 1
move 2 from 7 to 4
move 9 from 5 to 7
move 1 from 6 to 8
move 5 from 3 to 5
move 5 from 7 to 5
move 3 from 1 to 5
move 2 from 4 to 8
move 3 from 1 to 6
move 20 from 5 to 4
move 1 from 7 to 6
move 21 from 8 to 2
move 1 from 3 to 7
move 2 from 4 to 2
move 1 from 7 to 1
move 18 from 2 to 8
move 3 from 9 to 2
move 1 from 6 to 4
move 1 from 1 to 9
move 8 from 8 to 6
move 4 from 8 to 2
move 1 from 2 to 6
move 7 from 8 to 5
move 2 from 5 to 3
move 1 from 9 to 5
move 5 from 2 to 4
move 1 from 3 to 7
move 2 from 5 to 7
move 4 from 4 to 9
move 2 from 5 to 9
move 6 from 2 to 8
move 3 from 7 to 3
move 2 from 5 to 4
move 4 from 8 to 2
move 2 from 7 to 4
move 7 from 6 to 4
move 1 from 8 to 4
move 3 from 6 to 7
move 2 from 7 to 2
move 7 from 9 to 7
move 1 from 9 to 2
move 3 from 3 to 6
move 3 from 7 to 4
move 2 from 7 to 9
move 6 from 4 to 1
move 3 from 7 to 9
move 1 from 8 to 5
move 1 from 3 to 6
move 3 from 9 to 4
move 2 from 6 to 4
move 3 from 9 to 1
move 4 from 2 to 8
move 1 from 8 to 5
move 9 from 1 to 2
move 1 from 6 to 5
move 1 from 7 to 2
move 1 from 8 to 1
move 2 from 8 to 9
move 1 from 9 to 8
move 1 from 5 to 7
move 1 from 7 to 6
move 1 from 9 to 8
move 1 from 6 to 3
move 26 from 4 to 3
move 1 from 5 to 8
move 3 from 6 to 3
move 7 from 4 to 3
move 1 from 1 to 3
move 1 from 4 to 8
move 13 from 3 to 1
move 1 from 3 to 4
move 12 from 2 to 5
move 20 from 3 to 2
move 1 from 4 to 1
move 4 from 5 to 7
move 1 from 7 to 8
move 9 from 5 to 2
move 5 from 1 to 5
move 21 from 2 to 8
move 5 from 8 to 4
move 4 from 5 to 2
move 6 from 1 to 7
move 1 from 5 to 4
move 4 from 3 to 1
move 6 from 1 to 3
move 1 from 1 to 9
move 6 from 8 to 7
move 4 from 8 to 2
move 4 from 2 to 7
move 5 from 4 to 1
move 8 from 8 to 4
move 1 from 9 to 6
move 18 from 7 to 6
move 15 from 6 to 5
move 2 from 6 to 8
move 2 from 6 to 3
move 8 from 3 to 7
move 15 from 5 to 7
move 3 from 4 to 9
move 12 from 2 to 3
move 3 from 9 to 4
move 6 from 7 to 9
move 9 from 4 to 5
move 10 from 3 to 5
move 9 from 5 to 2
move 14 from 7 to 8
move 14 from 8 to 5
move 4 from 2 to 4
move 1 from 4 to 6
move 2 from 8 to 4
move 3 from 8 to 9
move 18 from 5 to 1
move 1 from 5 to 9
move 1 from 7 to 4
move 5 from 5 to 9
move 3 from 2 to 4
move 13 from 9 to 2
move 13 from 2 to 6
move 1 from 7 to 3
move 3 from 3 to 1
move 9 from 6 to 5
move 1 from 7 to 8
move 20 from 1 to 8
move 2 from 2 to 8
move 5 from 6 to 9
move 15 from 8 to 7
move 3 from 5 to 3
move 5 from 1 to 3
move 2 from 3 to 4
move 3 from 9 to 5
move 4 from 5 to 2
move 4 from 5 to 7
move 3 from 4 to 9
move 10 from 7 to 8
move 2 from 9 to 4
move 1 from 5 to 6
move 8 from 7 to 9
move 1 from 6 to 7
move 6 from 3 to 4
move 12 from 9 to 8
move 1 from 1 to 5
move 2 from 7 to 8
move 1 from 7 to 5
move 1 from 9 to 5
move 2 from 2 to 9
move 11 from 8 to 1
move 7 from 1 to 5
move 3 from 1 to 6
move 5 from 8 to 9
move 8 from 4 to 3
move 4 from 4 to 6
move 5 from 9 to 3
move 4 from 4 to 5
move 2 from 6 to 7
move 1 from 9 to 5
move 2 from 7 to 4
move 12 from 5 to 2
move 8 from 8 to 9
move 8 from 8 to 6
move 9 from 6 to 2
move 4 from 9 to 2
move 1 from 5 to 1
move 5 from 2 to 1
move 2 from 5 to 4
move 5 from 2 to 5
move 5 from 5 to 6
move 3 from 4 to 7
move 11 from 2 to 7
move 2 from 2 to 1
move 4 from 3 to 7
move 2 from 2 to 4
move 6 from 1 to 4
move 1 from 2 to 8
move 2 from 9 to 5
move 4 from 4 to 3
move 5 from 4 to 1
move 2 from 2 to 1
move 1 from 8 to 5
move 14 from 7 to 6
move 3 from 9 to 2
move 15 from 6 to 8
move 4 from 1 to 3
move 2 from 2 to 3
move 1 from 1 to 7
move 2 from 3 to 5
move 4 from 5 to 4
move 1 from 3 to 5
move 5 from 1 to 6
move 12 from 6 to 7
move 7 from 8 to 4
move 12 from 7 to 9
move 4 from 7 to 9
move 1 from 2 to 8
move 12 from 9 to 4
move 23 from 4 to 3
move 1 from 6 to 5
move 3 from 9 to 3
move 1 from 7 to 9
move 1 from 9 to 1
move 1 from 9 to 7
move 42 from 3 to 1
move 3 from 5 to 4
move 5 from 1 to 3
move 3 from 4 to 7
move 1 from 1 to 9
move 4 from 3 to 8
move 1 from 3 to 7
move 1 from 9 to 1
move 2 from 7 to 8
move 8 from 1 to 6
move 2 from 7 to 5
move 9 from 1 to 2
move 5 from 2 to 3
move 3 from 2 to 4
move 20 from 1 to 2
move 1 from 1 to 5
move 1 from 6 to 7
move 3 from 4 to 7
move 2 from 3 to 6
move 3 from 6 to 1
move 1 from 6 to 4
move 2 from 1 to 6
move 3 from 5 to 9
move 1 from 4 to 3
move 2 from 7 to 4
move 6 from 8 to 4
move 1 from 1 to 9
move 1 from 2 to 9
move 2 from 8 to 7
move 3 from 6 to 2
move 5 from 7 to 5
move 4 from 2 to 5
move 4 from 4 to 6
move 3 from 9 to 6
move 4 from 3 to 1
move 1 from 9 to 2
move 7 from 8 to 9
move 4 from 2 to 4
move 2 from 1 to 7
move 3 from 4 to 5
move 4 from 2 to 4
move 1 from 7 to 4
move 4 from 2 to 9
move 7 from 4 to 3
move 1 from 7 to 3
move 6 from 2 to 3
move 2 from 1 to 5
move 10 from 3 to 6
move 2 from 6 to 1
move 2 from 2 to 7
move 2 from 3 to 1
move 1 from 7 to 8
move 11 from 5 to 3
move 2 from 3 to 1
move 4 from 6 to 1
move 1 from 4 to 6
move 8 from 3 to 4
move 2 from 5 to 6
move 3 from 3 to 5
move 1 from 8 to 4
move 1 from 4 to 9
move 2 from 6 to 1
move 1 from 5 to 1
move 9 from 4 to 3
move 5 from 6 to 9
move 5 from 6 to 7
move 13 from 9 to 3
move 5 from 1 to 8
move 4 from 8 to 4
move 10 from 3 to 2
move 3 from 6 to 1
move 2 from 7 to 9
move 1 from 8 to 3
move 1 from 7 to 3
move 1 from 9 to 5
move 1 from 6 to 3
move 7 from 2 to 4
move 3 from 5 to 2
move 8 from 3 to 5
move 7 from 4 to 3
move 5 from 9 to 7
move 1 from 7 to 1
move 9 from 1 to 8
move 9 from 5 to 8
move 2 from 7 to 8
move 3 from 8 to 1
move 10 from 3 to 6
move 1 from 1 to 6
move 5 from 1 to 7
move 3 from 2 to 8
move 7 from 8 to 6
move 7 from 8 to 6
move 1 from 3 to 5
move 5 from 7 to 9
move 4 from 8 to 4
move 3 from 2 to 8
move 1 from 7 to 8
move 3 from 3 to 9
move 3 from 7 to 4
move 1 from 7 to 2
move 9 from 9 to 1
move 5 from 1 to 9
move 4 from 8 to 6
move 1 from 2 to 7
move 1 from 5 to 3
move 1 from 3 to 7
move 1 from 1 to 9
move 1 from 1 to 7
move 5 from 9 to 6
move 2 from 7 to 6
move 10 from 4 to 8
move 1 from 4 to 2
move 1 from 4 to 1
move 1 from 9 to 2
move 3 from 1 to 2
move 1 from 7 to 3
move 1 from 2 to 1
move 16 from 6 to 3
move 9 from 6 to 1
move 6 from 6 to 1
move 5 from 6 to 1
move 3 from 8 to 1
move 11 from 3 to 4
move 1 from 6 to 2
move 3 from 8 to 2
move 4 from 1 to 6
move 5 from 3 to 2
move 1 from 2 to 5
move 1 from 8 to 5
move 5 from 8 to 3
move 4 from 6 to 9
move 2 from 9 to 6
move 3 from 3 to 9
move 1 from 5 to 7
move 5 from 1 to 6
move 3 from 6 to 4
move 2 from 2 to 9
move 8 from 4 to 2
move 9 from 1 to 7
move 3 from 3 to 5
move 3 from 5 to 7
move 12 from 7 to 1
move 5 from 4 to 6
move 1 from 4 to 5
move 7 from 1 to 8
move 5 from 9 to 3
move 1 from 7 to 4
move 10 from 1 to 8
move 1 from 4 to 8
move 4 from 6 to 8
move 1 from 6 to 9
move 2 from 5 to 1
move 4 from 3 to 4
move 1 from 1 to 8
move 4 from 4 to 7
move 2 from 1 to 8
move 4 from 6 to 1
move 3 from 9 to 5
move 1 from 6 to 5
move 1 from 3 to 7
move 24 from 8 to 6
move 3 from 6 to 5
move 4 from 6 to 7
move 1 from 1 to 7
move 7 from 7 to 6
move 7 from 5 to 3
move 13 from 6 to 8
move 3 from 1 to 2
move 7 from 6 to 3
move 12 from 2 to 4
move 4 from 6 to 9
move 6 from 3 to 1
move 1 from 2 to 4
move 2 from 8 to 7
move 2 from 2 to 9
move 6 from 3 to 4
move 12 from 8 to 2
move 18 from 2 to 5
move 10 from 4 to 3
move 4 from 7 to 3
move 5 from 4 to 7
move 3 from 5 to 2
move 4 from 7 to 9
move 1 from 5 to 4
move 3 from 2 to 1
move 4 from 3 to 6
move 7 from 5 to 6
move 2 from 5 to 7
move 5 from 1 to 7
move 9 from 7 to 6
move 8 from 9 to 8
move 1 from 1 to 3
move 1 from 3 to 1
move 10 from 3 to 9
move 8 from 8 to 4
move 1 from 3 to 8
move 1 from 1 to 3
move 6 from 9 to 1
move 5 from 5 to 3
move 5 from 3 to 6
move 1 from 8 to 9
move 19 from 6 to 2
move 13 from 4 to 1
move 4 from 1 to 5
move 6 from 2 to 1
move 2 from 9 to 4
move 1 from 3 to 1
move 9 from 2 to 3
move 4 from 5 to 1
move 5 from 9 to 6
move 4 from 3 to 4
move 3 from 2 to 7
move 2 from 4 to 8
move 6 from 1 to 9
move 1 from 8 to 6
move 4 from 1 to 5
move 3 from 4 to 5
move 1 from 7 to 2
move 11 from 1 to 6
move 1 from 2 to 7
move 5 from 3 to 7
move 1 from 3 to 4
move 1 from 4 to 8
move 3 from 5 to 6
move 8 from 1 to 7
move 1 from 8 to 9
move 1 from 6 to 9
move 1 from 8 to 5
move 11 from 6 to 5
move 12 from 5 to 2
move 1 from 5 to 2
move 8 from 7 to 3
move 1 from 5 to 6
move 2 from 5 to 6
move 3 from 7 to 1
move 6 from 2 to 6
move 1 from 3 to 1
move 1 from 4 to 1
move 4 from 6 to 2
move 5 from 1 to 5
move 10 from 2 to 3
move 2 from 9 to 4
move 4 from 5 to 8
move 2 from 2 to 7
move 12 from 6 to 7
move 1 from 8 to 2
move 10 from 3 to 4
move 2 from 3 to 5
move 1 from 3 to 1"
# Two sections, the stack and the commands
[stack, commands_raw] = String.split(puzzle_input, "\n\n")
# Compute columns
stack_rows = String.split(stack, "\n")
numbers_row = List.last(stack_rows)
numbers_columns =
numbers_row
|> String.split(" ", trim: true)
|> List.last()
|> String.to_integer()
stacks = stack_rows -- [numbers_row]
IO.inspect(stacks)
stacked_columns =
stacks
|> Enum.map(fn x -> Day05.cols(x, []) end)
|> Day05.transpose()
|> Enum.map(fn x -> Enum.filter(x, fn x -> x != "" end) end)
[" [J] [B] [T] ", " [M] [L] [Q] [L] [R] ",
" [G] [Q] [W] [S] [B] [L]", "[D] [D] [T] [M] [G] [V] [P]",
"[T] [N] [N] [N] [D] [J] [G] [N]", "[W] [H] [H] [S] [C] [N] [R] [W] [D]",
"[N] [P] [P] [W] [H] [H] [B] [N] [G]", "[L] [C] [W] [C] [P] [T] [M] [Z] [W]"]
[
["[D]", "[T]", "[W]", "[N]", "[L]"],
["[H]", "[P]", "[C]"],
["[J]", "[M]", "[G]", "[D]", "[N]", "[H]", "[P]", "[W]"],
["[L]", "[Q]", "[T]", "[N]", "[S]", "[W]", "[C]"],
["[N]", "[C]", "[H]", "[P]"],
["[B]", "[Q]", "[W]", "[M]", "[D]", "[N]", "[H]", "[T]"],
["[L]", "[S]", "[G]", "[J]", "[R]", "[B]", "[M]"],
["[T]", "[R]", "[B]", "[V]", "[G]", "[W]", "[N]", "[Z]"],
["[L]", "[P]", "[N]", "[D]", "[G]", "[W]"]
]
commands =
commands_raw
|> String.split("\n")
|> Enum.map(fn str -> String.split(str, " ") end)
|> Enum.map(fn command ->
[
String.to_integer(Enum.at(command, 1)),
String.to_integer(Enum.at(command, 3)) - 1,
String.to_integer(Enum.at(command, 5)) - 1
]
end)
Day05.apply_commands(9001, stacked_columns, commands)
|> Enum.map(fn x -> List.first(x) end)
...
"[N]", "[V]", "[N]"],
[],
["[N]"],
["[M]", "[D]", "[T]"],
["[W]", "[H]", "[H]", "[L]", "[P]", "[J]", "[Z]", "[D]", "[H]", "[C]", "[W]",
"[M]", "[T]", "[G]"],
["[P]", "[C]", "[S]", "[J]", "[R]", "[W]", "[T]", "[M]", "[N]", "[B]", "[L]",
"[W]", "[D]", "[R]", "[T]", "[G]"],
[],
["[G]", "[P]", "[P]", "[D]", "[H]", "[G]", "[B]", "[B]"]
]
apply command: 8, 6, 2
[
[],
["[S]", "[W]", "[Q]", "[N]", "[W]", "[Q]", "[L]", "[N]", "[C]", "[N]", "[L]",
"[N]", "[V]", "[N]"],
[],
["[N]"],
["[M]", "[D]", "[T]"],
["[W]", "[H]", "[H]", "[L]", "[P]", "[J]", "[Z]", "[D]", "[H]", "[C]", "[W]",
"[M]", "[T]", "[G]"],
["[P]", "[C]", "[S]", "[J]", "[R]", "[W]", "[T]", "[M]", "[N]", "[B]", "[L]",
"[W]", "[D]", "[R]", "[T]", "[G]"],
[],
["[G]", "[P]", "[P]", "[D]", "[H]", "[G]", "[B]", "[B]"]
]
remove-items: num_to_remove: 8 from: 6
[
[],
["[S]", "[W]", "[Q]", "[N]", "[W]", "[Q]", "[L]", "[N]", "[C]", "[N]", "[L]",
"[N]", "[V]", "[N]"],
[],
["[N]"],
["[M]", "[D]", "[T]"],
["[W]", "[H]", "[H]", "[L]", "[P]", "[J]", "[Z]", "[D]", "[H]", "[C]", "[W]",
"[M]", "[T]", "[G]"],
["[P]", "[C]", "[S]", "[J]", "[R]", "[W]", "[T]", "[M]", "[N]", "[B]", "[L]",
"[W]", "[D]", "[R]", "[T]", "[G]"],
[],
["[G]", "[P]", "[P]", "[D]", "[H]", "[G]", "[B]", "[B]"]
]
[
[],
["[S]", "[W]", "[Q]", "[N]", "[W]", "[Q]", "[L]", "[N]", "[C]", "[N]", "[L]",
"[N]", "[V]", "[N]"],
[],
["[N]"],
["[M]", "[D]", "[T]"],
["[W]", "[H]", "[H]", "[L]", "[P]", "[J]", "[Z]", "[D]", "[H]", "[C]", "[W]",
"[M]", "[T]", "[G]"],
["[N]", "[B]", "[L]", "[W]", "[D]", "[R]", "[T]", "[G]"],
[],
["[G]", "[P]", "[P]", "[D]", "[H]", "[G]", "[B]", "[B]"]
]
["[P]", "[C]", "[S]", "[J]", "[R]", "[W]", "[T]", "[M]"]
[
[],
["[S]", "[W]", "[Q]", "[N]", "[W]", "[Q]", "[L]", "[N]", "[C]", "[N]", "[L]",
"[N]", "[V]", "[N]"],
["[P]", "[C]", "[S]", "[J]", "[R]", "[W]", "[T]", "[M]"],
["[N]"],
["[M]", "[D]", "[T]"],
["[W]", "[H]", "[H]", "[L]", "[P]", "[J]", "[Z]", "[D]", "[H]", "[C]", "[W]",
"[M]", "[T]", "[G]"],
["[N]", "[B]", "[L]", "[W]", "[D]", "[R]", "[T]", "[G]"],
[],
["[G]", "[P]", "[P]", "[D]", "[H]", "[G]", "[B]", "[B]"]
]
apply command: 1, 4, 5
[
[],
["[S]", "[W]", "[Q]", "[N]", "[W]", "[Q]", "[L]", "[N]", "[C]", "[N]", "[L]",
"[N]", "[V]", "[N]"],
["[P]", "[C]", "[S]", "[J]", "[R]", "[W]", "[T]", "[M]"],
["[N]"],
["[M]", "[D]", "[T]"],
["[W]", "[H]", "[H]", "[L]", "[P]", "[J]", "[Z]", "[D]", "[H]", "[C]", "[W]",
"[M]", "[T]", "[G]"],
["[N]", "[B]", "[L]", "[W]", "[D]", "[R]", "[T]", "[G]"],
[],
["[G]", "[P]", "[P]", "[D]", "[H]", "[G]", "[B]", "[B]"]
]
remove-items: num_to_remove: 1 from: 4
[
[],
["[S]", "[W]", "[Q]", "[N]", "[W]", "[Q]", "[L]", "[N]", "[C]", "[N]", "[L]",
"[N]", "[V]", "[N]"],
["[P]", "[C]", "[S]", "[J]", "[R]", "[W]", "[T]", "[M]"],
["[N]"],
["[M]", "[D]", "[T]"],
["[W]", "[H]", "[H]", "[L]", "[P]", "[J]", "[Z]", "[D]", "[H]", "[C]", "[W]",
"[M]", "[T]", "[G]"],
["[N]", "[B]", "[L]", "[W]", "[D]", "[R]", "[T]", "[G]"],
[],
["[G]", "[P]", "[P]", "[D]", "[H]", "[G]", "[B]", "[B]"]
]
[
[],
["[S]", "[W]", "[Q]", "[N]", "[W]", "[Q]", "[L]", "[N]", "[C]", "[N]", "[L]",
"[N]", "[V]", "[N]"],
["[P]", "[C]", "[S]", "[J]", "[R]", "[W]", "[T]", "[M]"],
["[N]"],
["[D]", "[T]"],
["[W]", "[H]", "[H]", "[L]", "[P]", "[J]", "[Z]", "[D]", "[H]", "[C]", "[W]",
"[M]", "[T]", "[G]"],
["[N]", "[B]", "[L]", "[W]", "[D]", "[R]", "[T]", "[G]"],
[],
["[G]", "[P]", "[P]", "[D]", "[H]", "[G]", "[B]", "[B]"]
]
["[M]"]
[
[],
["[S]", "[W]", "[Q]", "[N]", "[W]", "[Q]", "[L]", "[N]", "[C]", "[N]", "[L]",
"[N]", "[V]", "[N]"],
["[P]", "[C]", "[S]", "[J]", "[R]", "[W]", "[T]", "[M]"],
["[N]"],
["[D]", "[T]"],
["[M]", "[W]", "[H]", "[H]", "[L]", "[P]", "[J]", "[Z]", "[D]", "[H]", "[C]",
"[W]", "[M]", "[T]", "[G]"],
["[N]", "[B]", "[L]", "[W]", "[D]", "[R]", "[T]", "[G]"],
[],
["[G]", "[P]", "[P]", "[D]", "[H]", "[G]", "[B]", "[B]"]
]
apply command: 2, 4, 5
[
[],
["[S]", "[W]", "[Q]", "[N]", "[W]", "[Q]", "[L]", "[N]", "[C]", "[N]", "[L]",
"[N]", "[V]", "[N]"],
["[P]", "[C]", "[S]", "[J]", "[R]", "[W]", "[T]", "[M]"],
["[N]"],
["[D]", "[T]"],
["[M]", "[W]", "[H]", "[H]", "[L]", "[P]", "[J]", "[Z]", "[D]", "[H]", "[C]",
"[W]", "[M]", "[T]", "[G]"],
["[N]", "[B]", "[L]", "[W]", "[D]", "[R]", "[T]", "[G]"],
[],
["[G]", "[P]", "[P]", "[D]", "[H]", "[G]", "[B]", "[B]"]
]
remove-items: num_to_remove: 2 from: 4
[
[],
["[S]", "[W]", "[Q]", "[N]", "[W]", "[Q]", "[L]", "[N]", "[C]", "[N]", "[L]",
"[N]", "[V]", "[N]"],
["[P]", "[C]", "[S]", "[J]", "[R]", "[W]", "[T]", "[M]"],
["[N]"],
["[D]", "[T]"],
["[M]", "[W]", "[H]", "[H]", "[L]", "[P]", "[J]", "[Z]", "[D]", "[H]", "[C]",
"[W]", "[M]", "[T]", "[G]"],
["[N]", "[B]", "[L]", "[W]", "[D]", "[R]", "[T]", "[G]"],
[],
["[G]", "[P]", "[P]", "[D]", "[H]", "[G]", "[B]", "[B]"]
]
[
[],
["[S]", "[W]", "[Q]", "[N]", "[W]", "[Q]", "[L]", "[N]", "[C]", "[N]", "[L]",
"[N]", "[V]", "[N]"],
["[P]", "[C]", "[S]", "[J]", "[R]", "[W]", "[T]", "[M]"],
["[N]"],
[],
["[M]", "[W]", "[H]", "[H]", "[L]", "[P]", "[J]", "[Z]", "[D]", "[H]", "[C]",
"[W]", "[M]", "[T]", "[G]"],
["[N]", "[B]", "[L]", "[W]", "[D]", "[R]", "[T]", "[G]"],
[],
["[G]", "[P]", "[P]", "[D]", "[H]", "[G]", "[B]", "[B]"]
]
["[D]", "[T]"]
[
[],
["[S]", "[W]", "[Q]", "[N]", "[W]", "[Q]", "[L]", "[N]", "[C]", "[N]", "[L]",
"[N]", "[V]", "[N]"],
["[P]", "[C]", "[S]", "[J]", "[R]", "[W]", "[T]", "[M]"],
["[N]"],
[],
["[D]", "[T]", "[M]", "[W]", "[H]", "[H]", "[L]", "[P]", "[J]", "[Z]", "[D]",
"[H]", "[C]", "[W]", "[M]", "[T]", "[G]"],
["[N]", "[B]", "[L]", "[W]", "[D]", "[R]", "[T]", "[G]"],
[],
["[G]", "[P]", "[P]", "[D]", "[H]", "[G]", "[B]", "[B]"]
]
apply command: 3, 6, 0
[
[],
["[S]", "[W]", "[Q]", "[N]", "[W]", "[Q]", "[L]", "[N]", "[C]", "[N]", "[L]",
"[N]", "[V]", "[N]"],
["[P]", "[C]", "[S]", "[J]", "[R]", "[W]", "[T]", "[M]"],
["[N]"],
[],
["[D]", "[T]", "[M]", "[W]", "[H]", "[H]", "[L]", "[P]", "[J]", "[Z]", "[D]",
"[H]", "[C]", "[W]", "[M]", "[T]", "[G]"],
["[N]", "[B]", "[L]", "[W]", "[D]", "[R]", "[T]", "[G]"],
[],
["[G]", "[P]", "[P]", "[D]", "[H]", "[G]", "[B]", "[B]"]
]
remove-items: num_to_remove: 3 from: 6
[
[],
["[S]", "[W]", "[Q]", "[N]", "[W]", "[Q]", "[L]", "[N]", "[C]", "[N]", "[L]",
"[N]", "[V]", "[N]"],
["[P]", "[C]", "[S]", "[J]", "[R]", "[W]", "[T]", "[M]"],
["[N]"],
[],
["[D]", "[T]", "[M]", "[W]", "[H]", "[H]", "[L]", "[P]", "[J]", "[Z]", "[D]",
"[H]", "[C]", "[W]", "[M]", "[T]", "[G]"],
["[N]", "[B]", "[L]", "[W]", "[D]", "[R]", "[T]", "[G]"],
[],
["[G]", "[P]", "[P]", "[D]", "[H]", "[G]", "[B]", "[B]"]
]
[
[],
["[S]", "[W]", "[Q]", "[N]", "[W]", "[Q]", "[L]", "[N]", "[C]", "[N]", "[L]",
"[N]", "[V]", "[N]"],
["[P]", "[C]", "[S]", "[J]", "[R]", "[W]", "[T]", "[M]"],
["[N]"],
[],
["[D]", "[T]", "[M]", "[W]", "[H]", "[H]", "[L]", "[P]", "[J]", "[Z]", "[D]",
"[H]", "[C]", "[W]", "[M]", "[T]", "[G]"],
["[W]", "[D]", "[R]", "[T]", "[G]"],
[],
["[G]", "[P]", "[P]", "[D]", "[H]", "[G]", "[B]", "[B]"]
]
["[N]", "[B]", "[L]"]
[
["[N]", "[B]", "[L]"],
["[S]", "[W]", "[Q]", "[N]", "[W]", "[Q]", "[L]", "[N]", "[C]", "[N]", "[L]",
"[N]", "[V]", "[N]"],
["[P]", "[C]", "[S]", "[J]", "[R]", "[W]", "[T]", "[M]"],
["[N]"],
[],
["[D]", "[T]", "[M]", "[W]", "[H]", "[H]", "[L]", "[P]", "[J]", "[Z]", "[D]",
"[H]", "[C]", "[W]", "[M]", "[T]", "[G]"],
["[W]", "[D]", "[R]", "[T]", "[G]"],
[],
["[G]", "[P]", "[P]", "[D]", "[H]", "[G]", "[B]", "[B]"]
]
apply command: 6, 1, 5
[
["[N]", "[B]", "[L]"],
["[S]", "[W]", "[Q]", "[N]", "[W]", "[Q]", "[L]", "[N]", "[C]", "[N]", "[L]",
"[N]", "[V]", "[N]"],
["[P]", "[C]", "[S]", "[J]", "[R]", "[W]", "[T]", "[M]"],
["[N]"],
[],
["[D]", "[T]", "[M]", "[W]", "[H]", "[H]", "[L]", "[P]", "[J]", "[Z]", "[D]",
"[H]", "[C]", "[W]", "[M]", "[T]", "[G]"],
["[W]", "[D]", "[R]", "[T]", "[G]"],
[],
["[G]", "[P]", "[P]", "[D]", "[H]", "[G]", "[B]", "[B]"]
]
remove-items: num_to_remove: 6 from: 1
[
["[N]", "[B]", "[L]"],
["[S]", "[W]", "[Q]", "[N]", "[W]", "[Q]", "[L]", "[N]", "[C]", "[N]", "[L]",
"[N]", "[V]", "[N]"],
["[P]", "[C]", "[S]", "[J]", "[R]", "[W]", "[T]", "[M]"],
["[N]"],
[],
["[D]", "[T]", "[M]", "[W]", "[H]", "[H]", "[L]", "[P]", "[J]", "[Z]", "[D]",
"[H]", "[C]", "[W]", "[M]", "[T]", "[G]"],
["[W]", "[D]", "[R]", "[T]", "[G]"],
[],
["[G]", "[P]", "[P]", "[D]", "[H]", "[G]", "[B]", "[B]"]
]
[
["[N]", "[B]", "[L]"],
["[L]", "[N]", "[C]", "[N]", "[L]", "[N]", "[V]", "[N]"],
["[P]", "[C]", "[S]", "[J]", "[R]", "[W]", "[T]", "[M]"],
["[N]"],
[],
["[D]", "[T]", "[M]", "[W]", "[H]", "[H]", "[L]", "[P]", "[J]", "[Z]", "[D]",
"[H]", "[C]", "[W]", "[M]", "[T]", "[G]"],
["[W]", "[D]", "[R]", "[T]", "[G]"],
[],
["[G]", "[P]", "[P]", "[D]", "[H]", "[G]", "[B]", "[B]"]
]
["[S]", "[W]", "[Q]", "[N]", "[W]", "[Q]"]
[
["[N]", "[B]", "[L]"],
["[L]", "[N]", "[C]", "[N]", "[L]", "[N]", "[V]", "[N]"],
["[P]", "[C]", "[S]", "[J]", "[R]", "[W]", "[T]", "[M]"],
["[N]"],
[],
["[S]", "[W]", "[Q]", "[N]", "[W]", "[Q]", "[D]", "[T]", "[M]", "[W]", "[H]",
"[H]", "[L]", "[P]", "[J]", "[Z]", "[D]", "[H]", "[C]", "[W]", "[M]", "[T]",
"[G]"],
["[W]", "[D]", "[R]", "[T]", "[G]"],
[],
["[G]", "[P]", "[P]", "[D]", "[H]", "[G]", "[B]", "[B]"]
]
apply command: 1, 2, 0
[
["[N]", "[B]", "[L]"],
["[L]", "[N]", "[C]", "[N]", "[L]", "[N]", "[V]", "[N]"],
["[P]", "[C]", "[S]", "[J]", "[R]", "[W]", "[T]", "[M]"],
["[N]"],
[],
["[S]", "[W]", "[Q]", "[N]", "[W]", "[Q]", "[D]", "[T]", "[M]", "[W]", "[H]",
"[H]", "[L]", "[P]", "[J]", "[Z]", "[D]", "[H]", "[C]", "[W]", "[M]", "[T]",
"[G]"],
["[W]", "[D]", "[R]", "[T]", "[G]"],
[],
["[G]", "[P]", "[P]", "[D]", "[H]", "[G]", "[B]", "[B]"]
]
remove-items: num_to_remove: 1 from: 2
[
["[N]", "[B]", "[L]"],
["[L]", "[N]", "[C]", "[N]", "[L]", "[N]", "[V]", "[N]"],
["[P]", "[C]", "[S]", "[J]", "[R]", "[W]", "[T]", "[M]"],
["[N]"],
[],
["[S]", "[W]", "[Q]", "[N]", "[W]", "[Q]", "[D]", "[T]", "[M]", "[W]", "[H]",
"[H]", "[L]", "[P]", "[J]", "[Z]", "[D]", "[H]", "[C]", "[W]", "[M]", "[T]",
"[G]"],
["[W]", "[D]", "[R]", "[T]", "[G]"],
[],
["[G]", "[P]", "[P]", "[D]", "[H]", "[G]", "[B]", "[B]"]
]
[
["[N]", "[B]", "[L]"],
["[L]", "[N]", "[C]", "[N]", "[L]", "[N]", "[V]", "[N]"],
["[C]", "[S]", "[J]", "[R]", "[W]", "[T]", "[M]"],
["[N]"],
[],
["[S]", "[W]", "[Q]", "[N]", "[W]", "[Q]", "[D]", "[T]", "[M]", "[W]", "[H]",
"[H]", "[L]", "[P]", "[J]", "[Z]", "[D]", "[H]", "[C]", "[W]", "[M]", "[T]",
"[G]"],
["[W]", "[D]", "[R]", "[T]", "[G]"],
[],
["[G]", "[P]", "[P]", "[D]", "[H]", "[G]", "[B]", "[B]"]
]
["[P]"]
[
["[P]", "[N]", "[B]", "[L]"],
["[L]", "[N]", "[C]", "[N]", "[L]", "[N]", "[V]", "[N]"],
["[C]", "[S]", "[J]", "[R]", "[W]", "[T]", "[M]"],
["[N]"],
[],
["[S]", "[W]", "[Q]", "[N]", "[W]", "[Q]", "[D]", "[T]", "[M]", "[W]", "[H]",
"[H]", "[L]", "[P]", "[J]", "[Z]", "[D]", "[H]", "[C]", "[W]", "[M]", "[T]",
"[G]"],
["[W]", "[D]", "[R]", "[T]", "[G]"],
[],
["[G]", "[P]", "[P]", "[D]", "[H]", "[G]", "[B]", "[B]"]
]
apply command: 1, 3, 0
[
["[P]", "[N]", "[B]", "[L]"],
["[L]", "[N]", "[C]", "[N]", "[L]", "[N]", "[V]", "[N]"],
["[C]", "[S]", "[J]", "[R]", "[W]", "[T]", "[M]"],
["[N]"],
[],
["[S]", "[W]", "[Q]", "[N]", "[W]", "[Q]", "[D]", "[T]", "[M]", "[W]", "[H]",
"[H]", "[L]", "[P]", "[J]", "[Z]", "[D]", "[H]", "[C]", "[W]", "[M]", "[T]",
"[G]"],
["[W]", "[D]", "[R]", "[T]", "[G]"],
[],
["[G]", "[P]", "[P]", "[D]", "[H]", "[G]", "[B]", "[B]"]
]
remove-items: num_to_remove: 1 from: 3
[
["[P]", "[N]", "[B]", "[L]"],
["[L]", "[N]", "[C]", "[N]", "[L]", "[N]", "[V]", "[N]"],
["[C]", "[S]", "[J]", "[R]", "[W]", "[T]", "[M]"],
["[N]"],
[],
["[S]", "[W]", "[Q]", "[N]", "[W]", "[Q]", "[D]", "[T]", "[M]", "[W]", "[H]",
"[H]", "[L]", "[P]", "[J]", "[Z]", "[D]", "[H]", "[C]", "[W]", "[M]", "[T]",
"[G]"],
["[W]", "[D]", "[R]", "[T]", "[G]"],
[],
["[G]", "[P]", "[P]", "[D]", "[H]", "[G]", "[B]", "[B]"]
]
[
["[P]", "[N]", "[B]", "[L]"],
["[L]", "[N]", "[C]", "[N]", "[L]", "[N]", "[V]", "[N]"],
["[C]", "[S]", "[J]", "[R]", "[W]", "[T]", "[M]"],
[],
[],
["[S]", "[W]", "[Q]", "[N]", "[W]", "[Q]", "[D]", "[T]", "[M]", "[W]", "[H]",
"[H]", "[L]", "[P]", "[J]", "[Z]", "[D]", "[H]", "[C]", "[W]", "[M]", "[T]",
"[G]"],
["[W]", "[D]", "[R]", "[T]", "[G]"],
[],
["[G]", "[P]", "[P]", "[D]", "[H]", "[G]", "[B]", "[B]"]
]
["[N]"]
[
["[N]", "[P]", "[N]", "[B]", "[L]"],
["[L]", "[N]", "[C]", "[N]", "[L]", "[N]", "[V]", "[N]"],
["[C]", "[S]", "[J]", "[R]", "[W]", "[T]", "[M]"],
[],
[],
["[S]", "[W]", "[Q]", "[N]", "[W]", "[Q]", "[D]", "[T]", "[M]", "[W]", "[H]",
"[H]", "[L]", "[P]", "[J]", "[Z]", "[D]", "[H]", "[C]", "[W]", "[M]", "[T]",
"[G]"],
["[W]", "[D]", "[R]", "[T]", "[G]"],
[],
["[G]", "[P]", "[P]", "[D]", "[H]", "[G]", "[B]", "[B]"]
]
apply command: 4, 5, 1
[
["[N]", "[P]", "[N]", "[B]", "[L]"],
["[L]", "[N]", "[C]", "[N]", "[L]", "[N]", "[V]", "[N]"],
["[C]", "[S]", "[J]", "[R]", "[W]", "[T]", "[M]"],
[],
[],
["[S]", "[W]", "[Q]", "[N]", "[W]", "[Q]", "[D]", "[T]", "[M]", "[W]", "[H]",
"[H]", "[L]", "[P]", "[J]", "[Z]", "[D]", "[H]", "[C]", "[W]", "[M]", "[T]",
"[G]"],
["[W]", "[D]", "[R]", "[T]", "[G]"],
[],
["[G]", "[P]", "[P]", "[D]", "[H]", "[G]", "[B]", "[B]"]
]
remove-items: num_to_remove: 4 from: 5
[
["[N]", "[P]", "[N]", "[B]", "[L]"],
["[L]", "[N]", "[C]", "[N]", "[L]", "[N]", "[V]", "[N]"],
["[C]", "[S]", "[J]", "[R]", "[W]", "[T]", "[M]"],
[],
[],
["[S]", "[W]", "[Q]", "[N]", "[W]", "[Q]", "[D]", "[T]", "[M]", "[W]", "[H]",
"[H]", "[L]", "[P]", "[J]", "[Z]", "[D]", "[H]", "[C]", "[W]", "[M]", "[T]",
"[G]"],
["[W]", "[D]", "[R]", "[T]", "[G]"],
[],
["[G]", "[P]", "[P]", "[D]", "[H]", "[G]", "[B]", "[B]"]
]
[
["[N]", "[P]", "[N]", "[B]", "[L]"],
["[L]", "[N]", "[C]", "[N]", "[L]", "[N]", "[V]", "[N]"],
["[C]", "[S]", "[J]", "[R]", "[W]", "[T]", "[M]"],
[],
[],
["[W]", "[Q]", "[D]", "[T]", "[M]", "[W]", "[H]", "[H]", "[L]", "[P]", "[J]",
"[Z]", "[D]", "[H]", "[C]", "[W]", "[M]", "[T]", "[G]"],
["[W]", "[D]", "[R]", "[T]", "[G]"],
[],
["[G]", "[P]", "[P]", "[D]", "[H]", "[G]", "[B]", "[B]"]
]
["[S]", "[W]", "[Q]", "[N]"]
[
["[N]", "[P]", "[N]", "[B]", "[L]"],
["[S]", "[W]", "[Q]", "[N]", "[L]", "[N]", "[C]", "[N]", "[L]", "[N]", "[V]",
"[N]"],
["[C]", "[S]", "[J]", "[R]", "[W]", "[T]", "[M]"],
[],
[],
["[W]", "[Q]", "[D]", "[T]", "[M]", "[W]", "[H]", "[H]", "[L]", "[P]", "[J]",
"[Z]", "[D]", "[H]", "[C]", "[W]", "[M]", "[T]", "[G]"],
["[W]", "[D]", "[R]", "[T]", "[G]"],
[],
["[G]", "[P]", "[P]", "[D]", "[H]", "[G]", "[B]", "[B]"]
]
apply command: 5, 0, 4
[
["[N]", "[P]", "[N]", "[B]", "[L]"],
["[S]", "[W]", "[Q]", "[N]", "[L]", "[N]", "[C]", "[N]", "[L]", "[N]", "[V]",
"[N]"],
["[C]", "[S]", "[J]", "[R]", "[W]", "[T]", "[M]"],
[],
[],
["[W]", "[Q]", "[D]", "[T]", "[M]", "[W]", "[H]", "[H]", "[L]", "[P]", "[J]",
"[Z]", "[D]", "[H]", "[C]", "[W]", "[M]", "[T]", "[G]"],
["[W]", "[D]", "[R]", "[T]", "[G]"],
[],
["[G]", "[P]", "[P]", "[D]", "[H]", "[G]", "[B]", "[B]"]
]
remove-items: num_to_remove: 5 from: 0
[
["[N]", "[P]", "[N]", "[B]", "[L]"],
["[S]", "[W]", "[Q]", "[N]", "[L]", "[N]", "[C]", "[N]", "[L]", "[N]", "[V]",
"[N]"],
["[C]", "[S]", "[J]", "[R]", "[W]", "[T]", "[M]"],
[],
[],
["[W]", "[Q]", "[D]", "[T]", "[M]", "[W]", "[H]", "[H]", "[L]", "[P]", "[J]",
"[Z]", "[D]", "[H]", "[C]", "[W]", "[M]", "[T]", "[G]"],
["[W]", "[D]", "[R]", "[T]", "[G]"],
[],
["[G]", "[P]", "[P]", "[D]", "[H]", "[G]", "[B]", "[B]"]
]
[
[],
["[S]", "[W]", "[Q]", "[N]", "[L]", "[N]", "[C]", "[N]", "[L]", "[N]", "[V]",
"[N]"],
["[C]", "[S]", "[J]", "[R]", "[W]", "[T]", "[M]"],
[],
[],
["[W]", "[Q]", "[D]", "[T]", "[M]", "[W]", "[H]", "[H]", "[L]", "[P]", "[J]",
"[Z]", "[D]", "[H]", "[C]", "[W]", "[M]", "[T]", "[G]"],
["[W]", "[D]", "[R]", "[T]", "[G]"],
[],
["[G]", "[P]", "[P]", "[D]", "[H]", "[G]", "[B]", "[B]"]
]
["[N]", "[P]", "[N]", "[B]", "[L]"]
[
[],
["[S]", "[W]", "[Q]", "[N]", "[L]", "[N]", "[C]", "[N]", "[L]", "[N]", "[V]",
"[N]"],
["[C]", "[S]", "[J]", "[R]", "[W]", "[T]", "[M]"],
[],
["[N]", "[P]", "[N]", "[B]", "[L]"],
["[W]", "[Q]", "[D]", "[T]", "[M]", "[W]", "[H]", "[H]", "[L]", "[P]", "[J]",
"[Z]", "[D]", "[H]", "[C]", "[W]", "[M]", "[T]", "[G]"],
["[W]", "[D]", "[R]", "[T]", "[G]"],
[],
["[G]", "[P]", "[P]", "[D]", "[H]", "[G]", "[B]", "[B]"]
]
apply command: 10, 1, 2
[
[],
["[S]", "[W]", "[Q]", "[N]", "[L]", "[N]", "[C]", "[N]", "[L]", "[N]", "[V]",
"[N]"],
["[C]", "[S]", "[J]", "[R]", "[W]", "[T]", "[M]"],
[],
["[N]", "[P]", "[N]", "[B]", "[L]"],
["[W]", "[Q]", "[D]", "[T]", "[M]", "[W]", "[H]", "[H]", "[L]", "[P]", "[J]",
"[Z]", "[D]", "[H]", "[C]", "[W]", "[M]", "[T]", "[G]"],
["[W]", "[D]", "[R]", "[T]", "[G]"],
[],
["[G]", "[P]", "[P]", "[D]", "[H]", "[G]", "[B]", "[B]"]
]
remove-items: num_to_remove: 10 from: 1
[
[],
["[S]", "[W]", "[Q]", "[N]", "[L]", "[N]", "[C]", "[N]", "[L]", "[N]", "[V]",
"[N]"],
["[C]", "[S]", "[J]", "[R]", "[W]", "[T]", "[M]"],
[],
["[N]", "[P]", "[N]", "[B]", "[L]"],
["[W]", "[Q]", "[D]", "[T]", "[M]", "[W]", "[H]", "[H]", "[L]", "[P]", "[J]",
"[Z]", "[D]", "[H]", "[C]", "[W]", "[M]", "[T]", "[G]"],
["[W]", "[D]", "[R]", "[T]", "[G]"],
[],
["[G]", "[P]", "[P]", "[D]", "[H]", "[G]", "[B]", "[B]"]
]
[
[],
["[V]", "[N]"],
["[C]", "[S]", "[J]", "[R]", "[W]", "[T]", "[M]"],
[],
["[N]", "[P]", "[N]", "[B]", "[L]"],
["[W]", "[Q]", "[D]", "[T]", "[M]", "[W]", "[H]", "[H]", "[L]", "[P]", "[J]",
"[Z]", "[D]", "[H]", "[C]", "[W]", "[M]", "[T]", "[G]"],
["[W]", "[D]", "[R]", "[T]", "[G]"],
[],
["[G]", "[P]", "[P]", "[D]", "[H]", "[G]", "[B]", "[B]"]
]
["[S]", "[W]", "[Q]", "[N]", "[L]", "[N]", "[C]", "[N]", "[L]", "[N]"]
[
[],
["[V]", "[N]"],
["[S]", "[W]", "[Q]", "[N]", "[L]", "[N]", "[C]", "[N]", "[L]", "[N]", "[C]",
"[S]", "[J]", "[R]", "[W]", "[T]", "[M]"],
[],
["[N]", "[P]", "[N]", "[B]", "[L]"],
["[W]", "[Q]", "[D]", "[T]", "[M]", "[W]", "[H]", "[H]", "[L]", "[P]", "[J]",
"[Z]", "[D]", "[H]", "[C]", "[W]", "[M]", "[T]", "[G]"],
["[W]", "[D]", "[R]", "[T]", "[G]"],
[],
["[G]", "[P]", "[P]", "[D]", "[H]", "[G]", "[B]", "[B]"]
]
apply command: 2, 8, 3
[
[],
["[V]", "[N]"],
["[S]", "[W]", "[Q]", "[N]", "[L]", "[N]", "[C]", "[N]", "[L]", "[N]", "[C]",
"[S]", "[J]", "[R]", "[W]", "[T]", "[M]"],
[],
["[N]", "[P]", "[N]", "[B]", "[L]"],
["[W]", "[Q]", "[D]", "[T]", "[M]", "[W]", "[H]", "[H]", "[L]", "[P]", "[J]",
"[Z]", "[D]", "[H]", "[C]", "[W]", "[M]", "[T]", "[G]"],
["[W]", "[D]", "[R]", "[T]", "[G]"],
[],
["[G]", "[P]", "[P]", "[D]", "[H]", "[G]", "[B]", "[B]"]
]
remove-items: num_to_remove: 2 from: 8
[
[],
["[V]", "[N]"],
["[S]", "[W]", "[Q]", "[N]", "[L]", "[N]", "[C]", "[N]", "[L]", "[N]", "[C]",
"[S]", "[J]", "[R]", "[W]", "[T]", "[M]"],
[],
["[N]", "[P]", "[N]", "[B]", "[L]"],
["[W]", "[Q]", "[D]", "[T]", "[M]", "[W]", "[H]", "[H]", "[L]", "[P]", "[J]",
"[Z]", "[D]", "[H]", "[C]", "[W]", "[M]", "[T]", "[G]"],
["[W]", "[D]", "[R]", "[T]", "[G]"],
[],
["[G]", "[P]", "[P]", "[D]", "[H]", "[G]", "[B]", "[B]"]
]
[
[],
["[V]", "[N]"],
["[S]", "[W]", "[Q]", "[N]", "[L]", "[N]", "[C]", "[N]", "[L]", "[N]", "[C]",
"[S]", "[J]", "[R]", "[W]", "[T]", "[M]"],
[],
["[N]", "[P]", "[N]", "[B]", "[L]"],
["[W]", "[Q]", "[D]", "[T]", "[M]", "[W]", "[H]", "[H]", "[L]", "[P]", "[J]",
"[Z]", "[D]", "[H]", "[C]", "[W]", "[M]", "[T]", "[G]"],
["[W]", "[D]", "[R]", "[T]", "[G]"],
[],
["[P]", "[D]", "[H]", "[G]", "[B]", "[B]"]
]
["[G]", "[P]"]
[
[],
["[V]", "[N]"],
["[S]", "[W]", "[Q]", "[N]", "[L]", "[N]", "[C]", "[N]", "[L]", "[N]", "[C]",
"[S]", "[J]", "[R]", "[W]", "[T]", "[M]"],
["[G]", "[P]"],
["[N]", "[P]", "[N]", "[B]", "[L]"],
["[W]", "[Q]", "[D]", "[T]", "[M]", "[W]", "[H]", "[H]", "[L]", "[P]", "[J]",
"[Z]", "[D]", "[H]", "[C]", "[W]", "[M]", "[T]", "[G]"],
["[W]", "[D]", "[R]", "[T]", "[G]"],
[],
["[P]", "[D]", "[H]", "[G]", "[B]", "[B]"]
]
apply command: 4, 4, 7
[
[],
["[V]", "[N]"],
["[S]", "[W]", "[Q]", "[N]", "[L]", "[N]", "[C]", "[N]", "[L]", "[N]", "[C]",
"[S]", "[J]", "[R]", "[W]", "[T]", "[M]"],
["[G]", "[P]"],
["[N]", "[P]", "[N]", "[B]", "[L]"],
["[W]", "[Q]", "[D]", "[T]", "[M]", "[W]", "[H]", "[H]", "[L]", "[P]", "[J]",
"[Z]", "[D]", "[H]", "[C]", "[W]", "[M]", "[T]", "[G]"],
["[W]", "[D]", "[R]", "[T]", "[G]"],
[],
["[P]", "[D]", "[H]", "[G]", "[B]", "[B]"]
]
remove-items: num_to_remove: 4 from: 4
[
[],
["[V]", "[N]"],
["[S]", "[W]", "[Q]", "[N]", "[L]", "[N]", "[C]", "[N]", "[L]", "[N]", "[C]",
"[S]", "[J]", "[R]", "[W]", "[T]", "[M]"],
["[G]", "[P]"],
["[N]", "[P]", "[N]", "[B]", "[L]"],
["[W]", "[Q]", "[D]", "[T]", "[M]", "[W]", "[H]", "[H]", "[L]", "[P]", "[J]",
"[Z]", "[D]", "[H]", "[C]", "[W]", "[M]", "[T]", "[G]"],
["[W]", "[D]", "[R]", "[T]", "[G]"],
[],
["[P]", "[D]", "[H]", "[G]", "[B]", "[B]"]
]
[
[],
["[V]", "[N]"],
["[S]", "[W]", "[Q]", "[N]", "[L]", "[N]", "[C]", "[N]", "[L]", "[N]", "[C]",
"[S]", "[J]", "[R]", "[W]", "[T]", "[M]"],
["[G]", "[P]"],
["[L]"],
["[W]", "[Q]", "[D]", "[T]", "[M]", "[W]", "[H]", "[H]", "[L]", "[P]", "[J]",
"[Z]", "[D]", "[H]", "[C]", "[W]", "[M]", "[T]", "[G]"],
["[W]", "[D]", "[R]", "[T]", "[G]"],
[],
["[P]", "[D]", "[H]", "[G]", "[B]", "[B]"]
]
["[N]", "[P]", "[N]", "[B]"]
[
[],
["[V]", "[N]"],
["[S]", "[W]", "[Q]", "[N]", "[L]", "[N]", "[C]", "[N]", "[L]", "[N]", "[C]",
"[S]", "[J]", "[R]", "[W]", "[T]", "[M]"],
["[G]", "[P]"],
["[L]"],
["[W]", "[Q]", "[D]", "[T]", "[M]", "[W]", "[H]", "[H]", "[L]", "[P]", "[J]",
"[Z]", "[D]", "[H]", "[C]", "[W]", "[M]", "[T]", "[G]"],
["[W]", "[D]", "[R]", "[T]", "[G]"],
["[N]", "[P]", "[N]", "[B]"],
["[P]", "[D]", "[H]", "[G]", "[B]", "[B]"]
]
apply command: 2, 1, 6
[
[],
["[V]", "[N]"],
["[S]", "[W]", "[Q]", "[N]", "[L]", "[N]", "[C]", "[N]", "[L]", "[N]", "[C]",
"[S]", "[J]", "[R]", "[W]", "[T]", "[M]"],
["[G]", "[P]"],
["[L]"],
["[W]", "[Q]", "[D]", "[T]", "[M]", "[W]", "[H]", "[H]", "[L]", "[P]", "[J]",
"[Z]", "[D]", "[H]", "[C]", "[W]", "[M]", "[T]", "[G]"],
["[W]", "[D]", "[R]", "[T]", "[G]"],
["[N]", "[P]", "[N]", "[B]"],
["[P]", "[D]", "[H]", "[G]", "[B]", "[B]"]
]
remove-items: num_to_remove: 2 from: 1
[
[],
["[V]", "[N]"],
["[S]", "[W]", "[Q]", "[N]", "[L]", "[N]", "[C]", "[N]", "[L]", "[N]", "[C]",
"[S]", "[J]", "[R]", "[W]", "[T]", "[M]"],
["[G]", "[P]"],
["[L]"],
["[W]", "[Q]", "[D]", "[T]", "[M]", "[W]", "[H]", "[H]", "[L]", "[P]", "[J]",
"[Z]", "[D]", "[H]", "[C]", "[W]", "[M]", "[T]", "[G]"],
["[W]", "[D]", "[R]", "[T]", "[G]"],
["[N]", "[P]", "[N]", "[B]"],
["[P]", "[D]", "[H]", "[G]", "[B]", "[B]"]
]
[
[],
[],
["[S]", "[W]", "[Q]", "[N]", "[L]", "[N]", "[C]", "[N]", "[L]", "[N]", "[C]",
"[S]", "[J]", "[R]", "[W]", "[T]", "[M]"],
["[G]", "[P]"],
["[L]"],
["[W]", "[Q]", "[D]", "[T]", "[M]", "[W]", "[H]", "[H]", "[L]", "[P]", "[J]",
"[Z]", "[D]", "[H]", "[C]", "[W]", "[M]", "[T]", "[G]"],
["[W]", "[D]", "[R]", "[T]", "[G]"],
["[N]", "[P]", "[N]", "[B]"],
["[P]", "[D]", "[H]", "[G]", "[B]", "[B]"]
]
["[V]", "[N]"]
[
[],
[],
["[S]", "[W]", "[Q]", "[N]", "[L]", "[N]", "[C]", "[N]", "[L]", "[N]", "[C]",
"[S]", "[J]", "[R]", "[W]", "[T]", "[M]"],
["[G]", "[P]"],
["[L]"],
["[W]", "[Q]", "[D]", "[T]", "[M]", "[W]", "[H]", "[H]", "[L]", "[P]", "[J]",
"[Z]", "[D]", "[H]", "[C]", "[W]", "[M]", "[T]", "[G]"],
["[V]", "[N]", "[W]", "[D]", "[R]", "[T]", "[G]"],
["[N]", "[P]", "[N]", "[B]"],
["[P]", "[D]", "[H]", "[G]", "[B]", "[B]"]
]
apply command: 12, 5, 6
[
[],
[],
["[S]", "[W]", "[Q]", "[N]", "[L]", "[N]", "[C]", "[N]", "[L]", "[N]", "[C]",
"[S]", "[J]", "[R]", "[W]", "[T]", "[M]"],
["[G]", "[P]"],
["[L]"],
["[W]", "[Q]", "[D]", "[T]", "[M]", "[W]", "[H]", "[H]", "[L]", "[P]", "[J]",
"[Z]", "[D]", "[H]", "[C]", "[W]", "[M]", "[T]", "[G]"],
["[V]", "[N]", "[W]", "[D]", "[R]", "[T]", "[G]"],
["[N]", "[P]", "[N]", "[B]"],
["[P]", "[D]", "[H]", "[G]", "[B]", "[B]"]
]
remove-items: num_to_remove: 12 from: 5
[
[],
[],
["[S]", "[W]", "[Q]", "[N]", "[L]", "[N]", "[C]", "[N]", "[L]", "[N]", "[C]",
"[S]", "[J]", "[R]", "[W]", "[T]", "[M]"],
["[G]", "[P]"],
["[L]"],
["[W]", "[Q]", "[D]", "[T]", "[M]", "[W]", "[H]", "[H]", "[L]", "[P]", "[J]",
"[Z]", "[D]", "[H]", "[C]", "[W]", "[M]", "[T]", "[G]"],
["[V]", "[N]", "[W]", "[D]", "[R]", "[T]", "[G]"],
["[N]", "[P]", "[N]", "[B]"],
["[P]", "[D]", "[H]", "[G]", "[B]", "[B]"]
]
[
[],
[],
["[S]", "[W]", "[Q]", "[N]", "[L]", "[N]", "[C]", "[N]", "[L]", "[N]", "[C]",
"[S]", "[J]", "[R]", "[W]", "[T]", "[M]"],
["[G]", "[P]"],
["[L]"],
["[D]", "[H]", "[C]", "[W]", "[M]", "[T]", "[G]"],
["[V]", "[N]", "[W]", "[D]", "[R]", "[T]", "[G]"],
["[N]", "[P]", "[N]", "[B]"],
["[P]", "[D]", "[H]", "[G]", "[B]", "[B]"]
]
["[W]", "[Q]", "[D]", "[T]", "[M]", "[W]", "[H]", "[H]", "[L]", "[P]", "[J]",
"[Z]"]
[
[],
[],
["[S]", "[W]", "[Q]", "[N]", "[L]", "[N]", "[C]", "[N]", "[L]", "[N]", "[C]",
"[S]", "[J]", "[R]", "[W]", "[T]", "[M]"],
["[G]", "[P]"],
["[L]"],
["[D]", "[H]", "[C]", "[W]", "[M]", "[T]", "[G]"],
["[W]", "[Q]", "[D]", "[T]", "[M]", "[W]", "[H]", "[H]", "[L]", "[P]", "[J]",
"[Z]", "[V]", "[N]", "[W]", "[D]", "[R]", "[T]", "[G]"],
["[N]", "[P]", "[N]", "[B]"],
["[P]", "[D]", "[H]", "[G]", "[B]", "[B]"]
]
apply command: 1, 7, 1
[
[],
[],
["[S]", "[W]", "[Q]", "[N]", "[L]", "[N]", "[C]", "[N]", "[L]", "[N]", "[C]",
"[S]", "[J]", "[R]", "[W]", "[T]", "[M]"],
["[G]", "[P]"],
["[L]"],
["[D]", "[H]", "[C]", "[W]", "[M]", "[T]", "[G]"],
["[W]", "[Q]", "[D]", "[T]", "[M]", "[W]", "[H]", "[H]", "[L]", "[P]", "[J]",
"[Z]", "[V]", "[N]", "[W]", "[D]", "[R]", "[T]", "[G]"],
["[N]", "[P]", "[N]", "[B]"],
["[P]", "[D]", "[H]", "[G]", "[B]", "[B]"]
]
remove-items: num_to_remove: 1 from: 7
[
[],
[],
["[S]", "[W]", "[Q]", "[N]", "[L]", "[N]", "[C]", "[N]", "[L]", "[N]", "[C]",
"[S]", "[J]", "[R]", "[W]", "[T]", "[M]"],
["[G]", "[P]"],
["[L]"],
["[D]", "[H]", "[C]", "[W]", "[M]", "[T]", "[G]"],
["[W]", "[Q]", "[D]", "[T]", "[M]", "[W]", "[H]", "[H]", "[L]", "[P]", "[J]",
"[Z]", "[V]", "[N]", "[W]", "[D]", "[R]", "[T]", "[G]"],
["[N]", "[P]", "[N]", "[B]"],
["[P]", "[D]", "[H]", "[G]", "[B]", "[B]"]
]
[
[],
[],
["[S]", "[W]", "[Q]", "[N]", "[L]", "[N]", "[C]", "[N]", "[L]", "[N]", "[C]",
"[S]", "[J]", "[R]", "[W]", "[T]", "[M]"],
["[G]", "[P]"],
["[L]"],
["[D]", "[H]", "[C]", "[W]", "[M]", "[T]", "[G]"],
["[W]", "[Q]", "[D]", "[T]", "[M]", "[W]", "[H]", "[H]", "[L]", "[P]", "[J]",
"[Z]", "[V]", "[N]", "[W]", "[D]", "[R]", "[T]", "[G]"],
["[P]", "[N]", "[B]"],
["[P]", "[D]", "[H]", "[G]", "[B]", "[B]"]
]
["[N]"]
[
[],
["[N]"],
["[S]", "[W]", "[Q]", "[N]", "[L]", "[N]", "[C]", "[N]", "[L]", "[N]", "[C]",
"[S]", "[J]", "[R]", "[W]", "[T]", "[M]"],
["[G]", "[P]"],
["[L]"],
["[D]", "[H]", "[C]", "[W]", "[M]", "[T]", "[G]"],
["[W]", "[Q]", "[D]", "[T]", "[M]", "[W]", "[H]", "[H]", "[L]", "[P]", "[J]",
"[Z]", "[V]", "[N]", "[W]", "[D]", "[R]", "[T]", "[G]"],
["[P]", "[N]", "[B]"],
["[P]", "[D]", "[H]", "[G]", "[B]", "[B]"]
]
apply command: 10, 2, 3
[
[],
["[N]"],
["[S]", "[W]", "[Q]", "[N]", "[L]", "[N]", "[C]", "[N]", "[L]", "[N]", "[C]",
"[S]", "[J]", "[R]", "[W]", "[T]", "[M]"],
["[G]", "[P]"],
["[L]"],
["[D]", "[H]", "[C]", "[W]", "[M]", "[T]", "[G]"],
["[W]", "[Q]", "[D]", "[T]", "[M]", "[W]", "[H]", "[H]", "[L]", "[P]", "[J]",
"[Z]", "[V]", "[N]", "[W]", "[D]", "[R]", "[T]", "[G]"],
["[P]", "[N]", "[B]"],
["[P]", "[D]", "[H]", "[G]", "[B]", "[B]"]
]
remove-items: num_to_remove: 10 from: 2
[
[],
["[N]"],
["[S]", "[W]", "[Q]", "[N]", "[L]", "[N]", "[C]", "[N]", "[L]", "[N]", "[C]",
"[S]", "[J]", "[R]", "[W]", "[T]", "[M]"],
["[G]", "[P]"],
["[L]"],
["[D]", "[H]", "[C]", "[W]", "[M]", "[T]", "[G]"],
["[W]", "[Q]", "[D]", "[T]", "[M]", "[W]", "[H]", "[H]", "[L]", "[P]", "[J]",
"[Z]", "[V]", "[N]", "[W]", "[D]", "[R]", "[T]", "[G]"],
["[P]", "[N]", "[B]"],
["[P]", "[D]", "[H]", "[G]", "[B]", "[B]"]
]
[
[],
["[N]"],
["[C]", "[S]", "[J]", "[R]", "[W]", "[T]", "[M]"],
["[G]", "[P]"],
["[L]"],
["[D]", "[H]", "[C]", "[W]", "[M]", "[T]", "[G]"],
["[W]", "[Q]", "[D]", "[T]", "[M]", "[W]", "[H]", "[H]", "[L]", "[P]", "[J]",
"[Z]", "[V]", "[N]", "[W]", "[D]", "[R]", "[T]", "[G]"],
["[P]", "[N]", "[B]"],
["[P]", "[D]", "[H]", "[G]", "[B]", "[B]"]
]
["[S]", "[W]", "[Q]", "[N]", "[L]", "[N]", "[C]", "[N]", "[L]", "[N]"]
[
[],
["[N]"],
["[C]", "[S]", "[J]", "[R]", "[W]", "[T]", "[M]"],
["[S]", "[W]", "[Q]", "[N]", "[L]", "[N]", "[C]", "[N]", "[L]", "[N]", "[G]",
"[P]"],
["[L]"],
["[D]", "[H]", "[C]", "[W]", "[M]", "[T]", "[G]"],
["[W]", "[Q]", "[D]", "[T]", "[M]", "[W]", "[H]", "[H]", "[L]", "[P]", "[J]",
"[Z]", "[V]", "[N]", "[W]", "[D]", "[R]", "[T]", "[G]"],
["[P]", "[N]", "[B]"],
["[P]", "[D]", "[H]", "[G]", "[B]", "[B]"]
]
apply command: 2, 2, 4
[
[],
["[N]"],
["[C]", "[S]", "[J]", "[R]", "[W]", "[T]", "[M]"],
["[S]", "[W]", "[Q]", "[N]", "[L]", "[N]", "[C]", "[N]", "[L]", "[N]", "[G]",
"[P]"],
["[L]"],
["[D]", "[H]", "[C]", "[W]", "[M]", "[T]", "[G]"],
["[W]", "[Q]", "[D]", "[T]", "[M]", "[W]", "[H]", "[H]", "[L]", "[P]", "[J]",
"[Z]", "[V]", "[N]", "[W]", "[D]", "[R]", "[T]", "[G]"],
["[P]", "[N]", "[B]"],
["[P]", "[D]", "[H]", "[G]", "[B]", "[B]"]
]
remove-items: num_to_remove: 2 from: 2
[
[],
["[N]"],
["[C]", "[S]", "[J]", "[R]", "[W]", "[T]", "[M]"],
["[S]", "[W]", "[Q]", "[N]", "[L]", "[N]", "[C]", "[N]", "[L]", "[N]", "[G]",
"[P]"],
["[L]"],
["[D]", "[H]", "[C]", "[W]", "[M]", "[T]", "[G]"],
["[W]", "[Q]", "[D]", "[T]", "[M]", "[W]", "[H]", "[H]", "[L]", "[P]", "[J]",
"[Z]", "[V]", "[N]", "[W]", "[D]", "[R]", "[T]", "[G]"],
["[P]", "[N]", "[B]"],
["[P]", "[D]", "[H]", "[G]", "[B]", "[B]"]
]
[
[],
["[N]"],
["[J]", "[R]", "[W]", "[T]", "[M]"],
["[S]", "[W]", "[Q]", "[N]", "[L]", "[N]", "[C]", "[N]", "[L]", "[N]", "[G]",
"[P]"],
["[L]"],
["[D]", "[H]", "[C]", "[W]", "[M]", "[T]", "[G]"],
["[W]", "[Q]", "[D]", "[T]", "[M]", "[W]", "[H]", "[H]", "[L]", "[P]", "[J]",
"[Z]", "[V]", "[N]", "[W]", "[D]", "[R]", "[T]", "[G]"],
["[P]", "[N]", "[B]"],
["[P]", "[D]", "[H]", "[G]", "[B]", "[B]"]
]
["[C]", "[S]"]
[
[],
["[N]"],
["[J]", "[R]", "[W]", "[T]", "[M]"],
["[S]", "[W]", "[Q]", "[N]", "[L]", "[N]", "[C]", "[N]", "[L]", "[N]", "[G]",
"[P]"],
["[C]", "[S]", "[L]"],
["[D]", "[H]", "[C]", "[W]", "[M]", "[T]", "[G]"],
["[W]", "[Q]", "[D]", "[T]", "[M]", "[W]", "[H]", "[H]", "[L]", "[P]", "[J]",
"[Z]", "[V]", "[N]", "[W]", "[D]", "[R]", "[T]", "[G]"],
["[P]", "[N]", "[B]"],
["[P]", "[D]", "[H]", "[G]", "[B]", "[B]"]
]
apply command: 1, 2, 0
[
[],
["[N]"],
["[J]", "[R]", "[W]", "[T]", "[M]"],
["[S]", "[W]", "[Q]", "[N]", "[L]", "[N]", "[C]", "[N]", "[L]", "[N]", "[G]",
"[P]"],
["[C]", "[S]", "[L]"],
["[D]", "[H]", "[C]", "[W]", "[M]", "[T]", "[G]"],
["[W]", "[Q]", "[D]", "[T]", "[M]", "[W]", "[H]", "[H]", "[L]", "[P]", "[J]",
"[Z]", "[V]", "[N]", "[W]", "[D]", "[R]", "[T]", "[G]"],
["[P]", "[N]", "[B]"],
["[P]", "[D]", "[H]", "[G]", "[B]", "[B]"]
]
remove-items: num_to_remove: 1 from: 2
[
[],
["[N]"],
["[J]", "[R]", "[W]", "[T]", "[M]"],
["[S]", "[W]", "[Q]", "[N]", "[L]", "[N]", "[C]", "[N]", "[L]", "[N]", "[G]",
"[P]"],
["[C]", "[S]", "[L]"],
["[D]", "[H]", "[C]", "[W]", "[M]", "[T]", "[G]"],
["[W]", "[Q]", "[D]", "[T]", "[M]", "[W]", "[H]", "[H]", "[L]", "[P]", "[J]",
"[Z]", "[V]", "[N]", "[W]", "[D]", "[R]", "[T]", "[G]"],
["[P]", "[N]", "[B]"],
["[P]", "[D]", "[H]", "[G]", "[B]", "[B]"]
]
[
[],
["[N]"],
["[R]", "[W]", "[T]", "[M]"],
["[S]", "[W]", "[Q]", "[N]", "[L]", "[N]", "[C]", "[N]", "[L]", "[N]", "[G]",
"[P]"],
["[C]", "[S]", "[L]"],
["[D]", "[H]", "[C]", "[W]", "[M]", "[T]", "[G]"],
["[W]", "[Q]", "[D]", "[T]", "[M]", "[W]", "[H]", "[H]", "[L]", "[P]", "[J]",
"[Z]", "[V]", "[N]", "[W]", "[D]", "[R]", "[T]", "[G]"],
["[P]", "[N]", "[B]"],
["[P]", "[D]", "[H]", "[G]", "[B]", "[B]"]
]
["[J]"]
[
["[J]"],
["[N]"],
["[R]", "[W]", "[T]", "[M]"],
["[S]", "[W]", "[Q]", "[N]", "[L]", "[N]", "[C]", "[N]", "[L]", "[N]", "[G]",
"[P]"],
["[C]", "[S]", "[L]"],
["[D]", "[H]", "[C]", "[W]", "[M]", "[T]", "[G]"],
["[W]", "[Q]", "[D]", "[T]", "[M]", "[W]", "[H]", "[H]", "[L]", "[P]", "[J]",
"[Z]", "[V]", "[N]", "[W]", "[D]", "[R]", "[T]", "[G]"],
["[P]", "[N]", "[B]"],
["[P]", "[D]", "[H]", "[G]", "[B]", "[B]"]
]
["[J]", "[N]", "[R]", "[S]", "[C]", "[D]", "[W]", "[P]", "[P]"]
Part 2
"hi" <> "there"
"hithere"