## ~pmikkelsen/aoc2022

249a8e84115cb707bdb2676e3266aec69d3f8154 — Peter Mikkelsen 1 year, 6 months ago
```day 11, 12, 13
```
```4 files changed, 841 insertions(+), 5 deletions(-)

M aoc.pl
A input11.txt
A input12.txt
A input13.txt
```
`M aoc.pl => aoc.pl +296 -5`
```@@ 7,6 7,8 @@
:- use_module(library(dif)).
:- use_module(library(ordsets)).
:- use_module(library(charsio)).
+:- use_module(library(arithmetic)).
+:- use_module(library(tabling)).
:- use_module(library(debug)).
:- use_module(library(time)).
:- set_prolog_flag(double_quotes, chars).

@@ 32,6 34,7 @@ solve(9, Part, R) --> parse_day9(Part, R).
solve(10, Part, R) --> parse_day10(Part, R).
solve(11, Part, R) --> parse_day11(Part, R).
solve(12, Part, R) --> parse_day12(Part, R).
+solve(13, Part, R) --> parse_day13(Part, R).

% Time the stuff and test that I got the correct answer
% It will print the time for each solution, then a 0 for the first fail,

@@ 57,11 60,13 @@ test(results) :-
solution(9, 1, 6011),
solution(9, 2, 2419),
solution(10, 1, 16880),
-	solution(10, 2, "\n###..#..#..##..####..##....##.###..###..\n#..#.#.#..#..#....#.#..#....#.#..#.#..#.\n#..#.##...#..#...#..#..#....#.###..#..#.\n###..#.#..####..#...####....#.#..#.###..\n#.#..#.#..#..#.#....#..#.#..#.#..#.#.#..\n#..#.#..#.#..#.####.#..#..##..###..#..#.\n").
-%	solution(11, 1, _),
-%	solution(11, 2, _),
-%	solution(12, 1, _),
-%	solution(12, 2, _).
+	solution(10, 2, "\n###..#..#..##..####..##....##.###..###..\n#..#.#.#..#..#....#.#..#....#.#..#.#..#.\n#..#.##...#..#...#..#..#....#.###..#..#.\n###..#.#..####..#...####....#.#..#.###..\n#.#..#.#..#..#.#....#..#.#..#.#..#.#.#..\n#..#.#..#.#..#.####.#..#..##..###..#..#.\n"),
+	solution(11, 1, 102399),
+	solution(11, 2, 23641658401),
+	solution(12, 1, 412),
+	solution(12, 2, 402),
+	solution(13, 1, 5198),
+	solution(13, 2, 22344).

%% Parsers for each day

@@ 395,8 400,294 @@ day10_crt([X|Xs], Cycle) -->
day10_crt(Xs, Cycle1).

% day11
+parse_day11(Part, R) -->
+	day11_monkeys(Monkeys, 0),
+	{
+	maplist(monkey_test, Monkeys, Tests),
+	product_list(Tests, TestLCM),
+	( Part = 1
+	-> monkey_rounds(Monkeys, Counts, 3, TestLCM, 20)
+	;  monkey_rounds(Monkeys, Counts, 1, TestLCM, 10000)
+	),
+	sort(Counts, Sorted),
+	reverse(Sorted, [A,B|_]),
+	R is A * B
+	}.
+
+day11_monkeys([M|Ms], N) -->
+	day11_monkey(M, N), nl, !,
+	{ N1 is N + 1 },
+	day11_monkeys(Ms, N1).
+day11_monkeys([M], N) --> day11_monkey(M, N).
+
+day11_monkey(monkey(N, Items, Op, Test, True, False), N) -->
+	"Monkey ", integer(N), ":", nl,
+	"  Starting items: ", monkey_items(Items), nl,
+	"  Operation: ", monkey_operation(Op), nl,
+	"  Test: divisible by ", integer(Test), nl,
+	"    If true: throw to monkey ", integer(True), nl,
+	"    If false: throw to monkey ", integer(False), nl.
+
+monkey_items([I|Is]) --> integer(I), ", ", monkey_items(Is).
+monkey_items([I]) --> integer(I).
+
+monkey_operation(op(Op, Operand)) --> "new = old ", [Op], " ", monkey_operand(Operand).
+
+monkey_operand(old) --> "old".
+monkey_operand(N) --> integer(N).
+
+monkey_rounds(Ms, Cs, WorryDiv, TestLCM, Rounds) :-
+	length(Ms, N),
+	length(Cs0, N),
+	maplist(=(0), Cs0),
+	monkey_rounds(Ms, _, Cs0, Cs, WorryDiv, TestLCM, Rounds).
+
+monkey_rounds(Ms, Ms, Cs, Cs, _, _, 0).
+monkey_rounds(Ms, Ms2, Cs, Cs2, WD, LCM, N) :-
+	N > 0,
+	N1 is N - 1,
+	monkey_turns(Ms, Ms1, Cs, Cs1, WD, LCM, 0),
+	monkey_rounds(Ms1, Ms2, Cs1, Cs2, WD, LCM, N1).
+
+monkey_turns(Ms, Ms, [], [], _, _, N) :- length(Ms, N).
+monkey_turns(Ms, Ms2, [C|Cs], [C1|Cs1], WD, LCM, N) :-
+	nth0(N, Ms, M),
+	monkey_turn(Ms, Ms1, WD, LCM, M),
+	M = monkey(_, Items, _, _, _, _),
+	length(Items, Inspections),
+	C1 is C + Inspections,
+	N1 is N + 1,
+	!,
+	monkey_turns(Ms1, Ms2, Cs, Cs1, WD, LCM, N1).
+
+monkey_turn(Ms, Ms, _, _, monkey(_, [], _, _, _, _)).
+monkey_turn(Ms, Ms2, WD, LCM, monkey(N, [Item|Items], Op, Test, True, False)) :-
+	Level0 = Item,
+	monkey_op(Op, Level0, Level1),
+	( WD = 1
+	-> Level2 is Level1 mod LCM
+	;  Level2 is Level1
+	),
+	Level3 is Level2 div WD,
+	( 0 =:= Level3 mod Test
+	-> To = True
+	;  To = False
+	),
+	monkey_throw(Ms, Ms1, Level3, N, To), !,
+	monkey_turn(Ms1, Ms2, WD, LCM, monkey(N, Items, Op, Test, True, False)).
+
+monkey_op(op(Op, old), Old, New) :-
+	monkey_op(op(Op, Old), Old, New).
+monkey_op(op(+, N), Old, New) :- New is Old + N.
+monkey_op(op(*, N), Old, New) :- New is Old * N.
+
+monkey_throw(Ms, Ms2, Item, From, To) :-
+	monkey_give(Ms, Ms1, From),
+	monkey_take(Ms1, Ms2, To, Item).
+
+monkey_give([], [], _).
+monkey_give([monkey(N, [_|Items], Op, Test, True, False)|Ms], [monkey(N, Items, Op, Test, True, False)|Ms1], N) :-
+	monkey_give(Ms, Ms1, N). % fill in the rest
+monkey_give([M|Ms], [M|Ms1], N) :-
+	monkey_give(Ms, Ms1, N).
+
+monkey_take([], [], _, _).
+monkey_take([monkey(N, Items, Op, Test, True, False)|Ms], [monkey(N, Items1, Op, Test, True, False)|Ms1], N, I) :-
+	append(Items, [I], Items1),
+	monkey_take(Ms, Ms1, N, _). % fill in the rest
+monkey_take([M|Ms], [M|Ms1], N, I) :-
+	monkey_take(Ms, Ms1, N, I).
+
+monkey_test(monkey(_,_,_,X,_,_), X).
+
% day12
+parse_day12(Part, R) -->
+	day12_map(Map, 1, StartX, StartY, EndX, EndY),
+	{
+	day12_dist_map(Map, EndX, EndY, Dists), !,
+	( Part = 1
+	-> nmth1(StartX, StartY, Dists, R)
+	;  findall(Dist,
+		(
+		nmth1(X, Y, Map, 1),
+		nmth1(X, Y, Dists, Dist),
+		integer(Dist)
+		), Rs),
+	   sort(Rs, [R|_])
+	)
+	}.
+
+day12_map([R|Rs], Y, StartX, StartY, EndX, EndY) -->
+	line(Row0),
+	{
+	day12_special('S', 'a', Row0, Row1, 1, Y, StartX, StartY),
+	day12_special('E', 'z', Row1, Row2, 1, Y, EndX, EndY),
+	Y1 is Y + 1,
+	maplist(day12_char_to_height, Row2, R)
+	},
+	day12_map(Rs, Y1, StartX, StartY, EndX, EndY).
+day12_map([], _, _, _, _, _) --> "".
+
+day12_special(_, _, [], [], _, _, _, _).
+day12_special(A, B, [A|Row], [B|Row], X, Y, X, Y) :- !.
+day12_special(A, B, [R|Row0], [R|Row], X, Y, SpecialX, SpecialY) :-
+	X1 is X + 1,
+	day12_special(A, B, Row0, Row, X1, Y, SpecialX, SpecialY).
+
+day12_char_to_height(Ch, H) :-
+	nth1(H, "abcdefghijklmnopqrstuvwxyz", Ch).
+
+day12_dist_map(Map, X, Y, Dists) :-
+	length(Map, Rows),
+	length(Dists, Rows),
+	Map = [R|_],
+	length(R, Cols),
+	maplist(length_r(Cols), Dists),
+	nmth1(X, Y, Dists, 0),
+	day12_dist_map(Map, Dists).
+
+day12_dist_map(Map, Dists) :-
+	day12_reachables(Map, Dists, Locs),
+	( Locs = []
+	-> true
+	;  maplist(day12_next(Map, Dists), Locs, NewDists),
+	   maplist(day12_apply(Dists), Locs, NewDists),
+	   day12_dist_map(Map, Dists)
+	).
+
+day12_reachables(Map, Dists, Locs) :-
+	findall(L,
+		(
+		nmth1(X, Y, Dists, D),
+		integer(D),
+		nmth1(X, Y, Map, Alt0),
+		member(o(Dx, Dy), [o(1,0), o(-1, 0), o(0, 1), o(0, -1)]),
+		X1 is X + Dx,
+		Y1 is Y + Dy,
+		nmth1(X1, Y1, Dists, D1),
+		var(D1),
+		nmth1(X1, Y1, Map, Alt1),
+		Dif is Alt0 - Alt1,
+		Dif =< 1,
+		L = loc(X1, Y1, Alt1)
+		), Locs).
+
+day12_next(Map, Dists, loc(X, Y, Alt), D) :-
+	findall(Dist,
+		(
+		member(o(Dx, Dy), [o(1,0), o(-1, 0), o(0, 1), o(0, -1)]),
+		X1 is X + Dx,
+		Y1 is Y + Dy,
+		nmth1(X1, Y1, Dists, Dist),
+		integer(Dist),
+		nmth1(X1, Y1, Map, Alt1),
+		Dif is Alt1 - Alt,
+		Dif =< 1
+		), Ds),
+	sort(Ds, [Min|_]),
+	D is Min + 1.
+
+day12_apply(Dists, loc(X, Y, _), D) :-
+	nmth1(X, Y, Dists, D).
+
+length_r(N, List) :- length(List, N).
+
+nmth1(X, Y, Mat, V) :-
+	nth1(Y, Mat, Row),
+	nth1(X, Row, V).
+
% day13
+parse_day13(1, R) --> day13_pairs(1, 1, 0, R).
+parse_day13(2, R) -->
+	{
+	DecoderA = [[2]],
+	DecoderB = [[6]]
+	},
+	day13_pairs(2, 1, [DecoderA, DecoderB], Pairs),
+	{
+	day13_sort(Pairs, Sorted),
+	nth1(IndexA, Sorted, DecoderA),
+	nth1(IndexB, Sorted, DecoderB),
+	R is IndexA * IndexB
+	}.
+
+day13_pairs(Part, I, R0, R) -->
+	day13_pair(Part, I, R0, R1), nl,
+	{ I1 is I + 1 },
+	day13_pairs(Part, I1, R1, R).
+day13_pairs(Part, I, R0, R) -->
+	day13_pair(Part, I, R0, R).
+
+day13_pair(Part, I, R0, R) -->
+	day13_packet(A),
+	day13_packet(B),
+	{
+	day13_order(Ord, A, B),
+	( Part = 1
+	-> ( Ord = lt
+	   -> R is R0 + I
+	   ;  R = R0
+	   )
+	;  R = [A,B|R0]
+	)
+	}.
+
+day13_packet(P) -->
+	day13_list(P), nl.
+
+day13_list(L) --> "[", day13_list_elements(L), "]".
+day13_list_elements([E,E1|Es]) -->
+	day13_list_element(E),
+	",",
+	day13_list_elements([E1|Es]).
+day13_list_elements([E]) -->
+	day13_list_element(E).
+day13_list_elements([]) --> "".
+
+day13_list_element(E) --> integer(E).
+day13_list_element(E) --> day13_list(E).
+
+day13_order(Ord, A, B) :-
+	integer(A), integer(B), !,
+	( A < B
+	-> Ord = lt
+	;  ( A = B
+	   -> Ord = eq
+	   ;  Ord = gt
+	   )
+	).
+day13_order(lt, [], [_|_]) :- !.
+day13_order(gt, [_|_], []) :- !.
+day13_order(eq, [], []) :- !.
+day13_order(Ord, [A|As], [B|Bs]) :- !,
+	day13_order(Ord0, A, B),
+	( Ord0 = eq
+	-> day13_order(Ord, As, Bs)
+	;  Ord = Ord0
+	).
+day13_order(Ord, A, B) :-
+	integer(A),
+	\+ integer(B),
+	!,
+	day13_order(Ord, [A], B).
+day13_order(Ord, A, B) :-
+	\+ integer(A),
+	integer(B),
+	!,
+	day13_order(Ord, A, [B]).
+
+day13_sort([], []).
+day13_sort([A|As], Bs) :-
+	day13_sort(As, AsSorted),
+	day13_insert(A, AsSorted, Bs).
+
+day13_insert(A, [], [A]) :- !.
+day13_insert(A, [B|Bs0], [B|Bs]) :-
+	day13_order(gt, A, B),
+	!,
+	day13_insert(A, Bs0, Bs).
+day13_insert(A, Bs, [A|Bs]) :- !.
+
% day14
% day15
% day16

```
`A input11.txt => input11.txt +55 -0`
```@@ 0,0 1,55 @@
+Monkey 0:
+  Starting items: 50, 70, 54, 83, 52, 78
+  Operation: new = old * 3
+  Test: divisible by 11
+    If true: throw to monkey 2
+    If false: throw to monkey 7
+
+Monkey 1:
+  Starting items: 71, 52, 58, 60, 71
+  Operation: new = old * old
+  Test: divisible by 7
+    If true: throw to monkey 0
+    If false: throw to monkey 2
+
+Monkey 2:
+  Starting items: 66, 56, 56, 94, 60, 86, 73
+  Operation: new = old + 1
+  Test: divisible by 3
+    If true: throw to monkey 7
+    If false: throw to monkey 5
+
+Monkey 3:
+  Starting items: 83, 99
+  Operation: new = old + 8
+  Test: divisible by 5
+    If true: throw to monkey 6
+    If false: throw to monkey 4
+
+Monkey 4:
+  Starting items: 98, 98, 79
+  Operation: new = old + 3
+  Test: divisible by 17
+    If true: throw to monkey 1
+    If false: throw to monkey 0
+
+Monkey 5:
+  Starting items: 76
+  Operation: new = old + 4
+  Test: divisible by 13
+    If true: throw to monkey 6
+    If false: throw to monkey 3
+
+Monkey 6:
+  Starting items: 52, 51, 84, 54
+  Operation: new = old * 17
+  Test: divisible by 19
+    If true: throw to monkey 4
+    If false: throw to monkey 1
+
+Monkey 7:
+  Starting items: 82, 86, 91, 79, 94, 92, 59, 94
+  Operation: new = old + 7
+  Test: divisible by 2
+    If true: throw to monkey 5
+    If false: throw to monkey 3

```
`A input12.txt => input12.txt +41 -0`
```@@ 0,0 1,41 @@
+abacccaaaacccccccccccaaaaaacccccaaaaaaccccaaacccccccccccccccccccccccccccccccccccccccccccaaaaa
+abaaccaaaacccccccccccaaaaaaccccccaaaaaaaaaaaaaccccccccccccccccccccccccccccccccccccccccccaaaaa
+abaaccaaaacccccccccccaaaaacccccaaaaaaaaaaaaaaaccccccccccccccccccccccccccccccccccccccccccaaaaa
+abccccccccccccccccccccaaaaacccaaaaaaaaaaaaaaaacccccccccccccccccccccccccccaaaccccccccccccaaaaa
+abccccccccccccccccccccaacaacccaaaaaaaaccaaaaaccccccccccccccccccccccccccccaaaccccccccccccaccaa
+abcccccccccccccaacccaaaccccccaaaaaaaaaccaaaaaccccccccccccccccccccccccccccccacccccccccccccccca
+abcccccccccccaaaaaaccaaaccacccccaaaaaaacccccccccccccccccccccccccciiiicccccccddddddccccccccccc
+abcccccccccccaaaaaaccaaaaaaaccccaaaaaacccccaacccccccaaaccccccccciiiiiiiicccdddddddddacaaccccc
+abccccccccccccaaaaaaaaaaaaacccccaaaaaaacaaaacccccccaaaacccccccchhiiiiiiiiicddddddddddaaaccccc
+abcccccccccccaaaaaaaaaaaaaacccccccaaacccaaaaaacccccaaaaccccccchhhipppppiiiijjjjjjjddddaaccccc
+abcccccccccccaaaaaaaaaaaaaaccccccccccccccaaaaaccccccaaaccccccchhhpppppppiijjjjjjjjjddeeaccccc
+abcccccccccccccccccaaaaaaaacccccccccccccaaaaaccccccccccccccccchhppppppppppjjqqqjjjjjeeeaacccc
+abccccccccccccccccccaaaaaaaacccccccccccccccaacccccccccccccccchhhpppuuuupppqqqqqqqjjjeeeaacccc
+abcccccccccccccccccccaacccacccccccccccccccccccccccccccccccccchhhopuuuuuuppqqqqqqqjjjeeecccccc
+abacccccccccccccaaacaaaccccccccccccccccccccccccccccaaccccccchhhhoouuuuuuuqvvvvvqqqjkeeecccccc
+abaccccccccccccaaaaaacccccaaccccccccccccccccccccccaaaccccccchhhooouuuxxxuvvvvvvqqqkkeeecccccc
+abaccccccccccccaaaaaacccaaaaaaccccccccccccccccccaaaaaaaaccchhhhooouuxxxxuvyyyvvqqqkkeeecccccc
+abcccccccccccccaaaaacccaaaaaaaccccccccccccccccccaaaaaaaaccjjhooooouuxxxxyyyyyvvqqqkkeeecccccc
+abccccccccccccccaaaaaacaaaaaaaccccccccaaaccccccccaaaaaaccjjjooootuuuxxxxyyyyyvvqqkkkeeecccccc
+abccccccccccccccaaaaaaaaaaaaacccccccccaaaacccccccaaaaaacjjjooootttuxxxxxyyyyvvrrrkkkeeecccccc
+SbccccccccccccccccccaaaaaaaaacccccccccaaaacccccccaaaaaacjjjoootttxxxEzzzzyyvvvrrrkkkfffcccccc
+abcccccccccccaaacccccaaaaaaacaaaccccccaaaccccccccaaccaacjjjoootttxxxxxyyyyyyvvvrrkkkfffcccccc
+abcccccccccaaaaaacccaaaaaacccaaacacccaacccccccccccccccccjjjoootttxxxxyxyyyyyywvvrrkkkfffccccc
+abcccccccccaaaaaacccaaaaaaaaaaaaaaaccaaacaaacccccaacccccjjjnnnttttxxxxyyyyyyywwwrrkkkfffccccc
+abcaacacccccaaaaacccaaacaaaaaaaaaaaccaaaaaaacccccaacaaacjjjnnnntttttxxyywwwwwwwwrrrlkfffccccc
+abcaaaaccccaaaaacccccccccaacaaaaaaccccaaaaaacccccaaaaacccjjjnnnnnttttwwywwwwwwwrrrrllfffccccc
+abaaaaaccccaaaaaccccccaaaaaccaaaaacaaaaaaaaccccaaaaaaccccjjjjinnnntttwwwwwsssrrrrrllllffccccc
+abaaaaaaccccccccccccccaaaaacaaaaaacaaaaaaaaacccaaaaaaacccciiiiinnnntswwwwssssrrrrrlllfffccccc
+abacaaaaccccccccccccccaaaaaacaaccccaaaaaaaaaaccccaaaaaaccccciiiinnnssswwsssssllllllllfffccccc
+abccaaccccccccccccccccaaaaaaccccccccccaaacaaaccccaaccaacccccciiiinnsssssssmmllllllllfffaacccc
+abccccccccccccccccccccaaaaaaccccccccccaaaccccccccaaccccccccccciiinnmsssssmmmmlllllgggffaacccc
+abcccccccccccccccaccccccaaacccccccccccaaccccccccccccccccccccccciiimmmsssmmmmmgggggggggaaacccc
+abcccccccccaaaaaaaaccccccccccccccccccccccccccccaaaaaccccccccccciiimmmmmmmmmgggggggggaaacccccc
+abccccccccccaaaaaaccccccccccccccccccaacccccccccaaaaacccccccccccciiimmmmmmmhhggggcaaaaaaaccccc
+abccccccccccaaaaaacccccccccccccccccaacccccccccaaaaaacccccccccccciihhmmmmhhhhgccccccccaacccccc
+abccccaacaaaaaaaaaaccccccccccccccccaaaccccccccaaaaaaccccccccccccchhhhhhhhhhhaaccccccccccccccc
+abccccaaaaaaaaaaaaaaccccccccccaaccaaaaccccccccaaaaaacccaaacccccccchhhhhhhhaaaaccccccccccccccc
+abcccaaaaaaaaaaaaaaaccccccccaaaaaacaaaacacaccccaaaccccaaaacccccccccchhhhccccaaccccccccccaaaca
+abcccaaaaaacacaaacccccccccccaaaaaaaaaaaaaaacccccccccccaaaacccccccccccaaaccccccccccccccccaaaaa
+abcccccaaaacccaaaccccccccccaaaaaaaaaaaaaaaaccccccccccccaaacccccccccccaaacccccccccccccccccaaaa
+abcccccaacccccaacccccccccccaaaaaaaaaaaaaccccccccccccccccccccccccccccccccccccccccccccccccaaaaa

```
`A input13.txt => input13.txt +449 -0`
```@@ 0,0 1,449 @@
+[[4,[1,[]]],[8,3,[[0,2],[5,2,6],[7,0,10,0],2,[5,7,10,2]],[[5,9],5,10,[9,7,7]]]]
+[[[],9],[[[3,2,6,3],[7,8]],10],[1]]
+
+[[],[0,4,[[2,9,0,1,2],[1,1,1,1],9,[2]]],[[],5]]
+[[[[4,6],[9,4,9,5],7,[1,3,6],[]]],[1,[]],[8,[6,[8],0,5],[],[[7,4,9],[4,2,8,2,2],[10,5,5,4],4]],[8,[7,[7,3],[4],10],[10],[[10,1]]],[]]
+
+[[0],[[[1],0,[],2,[4,5,6,3,2]],5,[],3],[[0,[8,8,5,2],10,[7,6,4,8],[4,9,3,9,5]],9,[4,6]],[[10,6,[10,2],8,[]],[10,[10,8,10,1,4],[0,6],4],8,[6,[5,3,3],6,[3,9,4,0],7]],[[4,8],[1,3,9],[[2],6],5,[0,[5,0],0,5]]]
+[[[[10,8],[3,6,7],3,[4]],[[8,10,8,4,0],[7,2],7,[2],[1,3]],3,[[0,7,9,1,10],[8,1,6]]]]
+
+[[[1,[5,2,6,6,0]],[[7,7],[]],[[4,5],[],[],[3,7,1,8],1]],[9,[[],[8,7,8,9]],[2,4,0,[7,4,4]],[1],[]],[[[],[4,7,0,4],[1,0]],5,4],[],[[9,[],[7]]]]
+[[[3],[[5,2,1]],2]]
+
+[[[[5,8,8,6],0]]]
+[[[[3,0,10,1,5],10,[7,0]],8,[0,9,4,[8,10]],[[6],[4,4,8],7,9,[9]]],[[7,[],0,2],[[]],5,6,[]],[0,[[1,10,8,8,1],2,[2,6],[10,9],[7]]],[2],[[[],2,5,[2,9,6,0],8],9]]
+
+[[],[6],[[0,[2],8,[]],[[0],9,5,[7,6,6,6,9],[3,1]],4,10],[[4,[5,1,9,4],2]]]
+[[[],[[3,7,5,4,1],[9,0,2,5,6],[4,3],2,[0,1,2,7,2]],[]],[[],2,5,3],[[2,9],1,10,0,1],[[4,9],[],[6,[],7,10,[10,9,1,10,9]],1,7]]
+
+[[10],[],[6,[],[]],[],[2,0,5]]
+[[6,1,[8,6,9]]]
+
+[[8,[[0,0],[],1,[8],8],4,[7,8,1,10],10],[]]
+[[[0],6],[[],3]]
+
+[[[8,[5],[4],[2,0]],[[1],1,[4,2,10,6]]],[[],[6,5,[6],[9,2,3]],[[6]]]]
+[[[6,2,4,[4,9],[2,4,10]]],[[3,[5,5,10,9,9],10,[6,2,8,7,9]],[],4],[[[3,2],[]]],[[[10,9],[3,10]],[0,1]]]
+
+[[[[8,10,1],10]],[7],[[9,[7],[0,9,8,4]]],[[4],4,0]]
+[[1,[],[[9,9,2],[10],[]]],[[[7],[],[],[],4],[[3],0,[5,7,1],6],3,10],[2]]
+
+[[10],[],[]]
+[[2,4,2,[[6],[1,10],4,9],3],[7,8,5],[[],0],[[5,[],[]],7]]
+
+[[5,3,[[7,6,10],10,7,[6,5,7,9],8],[],4],[0,[[6],[2,2,1,5,7],[1],[2],1],[2],[1,[7,1,3,0,3],[9],7,[1,9,6]]]]
+[[[4,[5,9,6,5,6],1,[6,4,4,4,9]],[[],6,[8,3],[2,1],9]],[6,[[10,1]],[7,[6,1]],[[6,3,8,2],8]],[2,7,[],7],[0,7,[[6],9,[4,10,6,6,4]],[]],[7,4,[8,[1,6,8,7]],9]]
+
+[[8],[[1,0,2,10,3],5],[],[9,[[1],[3,6,6,6,8],2,5,8],10,9,[3]],[4,6,1,[8]]]
+[[3,4],[[],[7,[1,10],[9,9,7,5,2],5]],[],[[0,[4,7],[2,7,3,8],3],[3],[[],[],9,[2,7,9]],[8,2,6]],[9,[]]]
+
+[[[[2,0,1],6,[1],7]],[7,10,2],[],[[]],[2,1,[[],9],[[6,9,9,6,0],[],[10,2]]]]
+[[4,[],6,5],[[],[[],[5,2]],[1,4],0,[[5],[9,9,4,1,5]]],[[],10,10,[8],[1,[8],2,9,2]],[7,3,[[0,8,5,2],[4,2,10],0]],[1,[[1,9,5],3,10,[10,8]],9,[[]]]]
+
+[[5,7,8,9],[6,9,[5],0,[7,[4],[9,7,1,1],7,6]],[[[8,2,9,6]],[8,5,[4,1,0]],[[2,6,3],[2],[4,0],[2,0,5]],6,[[9,6,7,4],[4],4,8,[9]]]]
+[[[8,3,[3],[7,5,10]],3,[5],9,0],[3],[[[9,6,0]],1],[3,10,[[9,8,6,10],4,[10,10],[10],[2,7]],2,10],[5]]
+
+[[],[4,[[7]],[[3,10],[5]]]]
+[[[[0,5,7],0,10],[[],2,8,3],1,[5,8]],[]]
+
+[[[],[[4,5],9,8,[4,2,7],[1,6]],[[]],1,[[1,10,9,10,4],2,4]],[8,[0,7,2,[3,8,4,9]],[[5,9,3],1]],[[[4],10,[5]],4],[5,[4,9,[]],1,1,8]]
+[[4],[1],[],[[[3,2,1,5,6]],[[4],[2,1,3]],[10,5]]]
+
+[[0,6],[],[[],7,9,5],[]]
+[[[5,[2,5,0,8,10],5,[10,8,10,7]],5,6],[[7,[]],10]]
+
+[[[[7,0,7],[8,4,10,2,6],[10,8,9],[10,3]],[[1,9,5,0],2,[1,8,1,8,2]]],[[[],[9,3],10,[1],9],[[9,9,6]],1,[0],9]]
+[[[[5,1,9,10,6],7]],[10,[4],[7],0],[1,8,[[],4,[10]],[[6,8,4,2],6,[],[10,8]]]]
+
+[[10,[[6,7,7],[5,5,1,4]],[1,0,0,7,[1,8,2]]],[4],[9],[[5],[10,[2,5,10]],5,[]]]
+[[8],[4,5],[6,[[9,1,5],[2,10,3,7,7],9]],[9,0,0,[],[0,[7,3],3]]]
+
+[[],[[[4,7,9,6]],2,10,[6]],[[[3,3,10,5],[2,6,1,5,2],[3],[],8],2,7],[6,9,[0,8,9,10,8]]]
+[[[4,0,[5]],0,[[],[1,6,5,5,5],[5,2,7,5],2],3,[9,[9,3,9,7,4]]],[8,[],[[1,1]],[[4,8,1],[7,6,8,8],[],10]],[4,[[6,6,3,10,2],[8,1,1,1,7]],[[3],9,[4,3,9,1,7]]],[[1,[8,6,3,1],[2,10,9]]]]
+
+[[[[1,4,10,6],10,[5,6,10,3]],8,[[]],[],6],[],[[9,[5,6],8],10],[2,[9,[5,3,10,4],10,[],[7,4,1,9]]]]
+[[4,[[]],[1,[10,8],7,[4],[0,3,2]]],[[[6,4,7,0]]],[10,7,[6,[1,2,8,4]],[9,[3,8,4,7,2]]],[4,[8,[6,10,10,9],[],9],6,[[4,8,3],10,1,2],8],[[7,7,[8,8,7,1,1],6],[[8,8,10,2,4],0]]]
+
+[[],[8],[8,10,0],[7,[[4,1,0],5]],[[[6,9,4],[9,1],[6,4,6,6,10],[]],3,7]]
+[[9],[3,6,[[1,7],[],9,[8]],[7,[9],3,[]],9],[0,[0,2]],[3]]
+
+[[7,[10,[3,0,10],5,[5,3,2],4]],[]]
+[[[5,8,3,[0,2,2,7,0],7],[[10,2,0,10,7],[0,3,10,10,5]],3,[8],[10,4,7,0]],[]]
+
+[[[0,[0,8,1],2],4,[],[9],10]]
+[[[3,6,[2,0]],5,[[7,2],[],3,5,4]],[[9]],[7,[6,[1,5],[9,6]],[[],9,[1],3],[10,[],0]],[[1,[5,6],9,[10,7,4,7,4]],[5,[0,7,0,0],6,[0,0]],[],[[10,1,9,9,6],[1,3],[8],3]],[[[],[]]]]
+
+[[9,[[4,3,0]]]]
+[[10,9],[[],[[0,8,0,8],[0,10,4,2]],[10,[0,0],[5,10,0,5],5],5]]
+
+[[[[8,5,4,6]]],[8,[2,0,[3,6,7,8],10,[3,8]]],[0,2,[[3,6,10,4],[8,7,6,6,2],9,[7,3,9,7]],[3,9],[9,[3,8,0],2,9,[4]]]]
+[[6,[6],4,[[10],[0,1,3,3,8],1,2],9],[[[0,5,7,6,7],[3,3,10,9,2],4],[[],5,1,4],[[8,10,1,4,1],3,5,1,2],[[1,6,6,0],[9,7,6,7]]],[]]
+
+[]
+[[8,0,[7,[10,10,8,6],5],6],[],[]]
+
+[[[[9,10,3],10,5,4],[[7,2]],1,6],[9,[5,[7,3,3,5,2]]],[6,[[1],[],[8,4,6,3,2]]]]
+[[[[2,8,2],[4,9],2,10,[3,6]],6],[1,8,2],[2,8],[[1,[5],6,[]],1,[1]]]
+
+[[[[0,2,1],9,1,[6,2]],8,1],[10,[],6,8,[1,0]],[1,2,[3,9,[3,6],[9,0,10],7]]]
+[[[[1,7,3,9,6],[],[],4],[],1,1],[[],10,10],[],[[3,5],[[10,3,10,9],3,9]],[0,[[],4,[6,2,3,9,7],[4,10,4,4]],[7,10,3,[1,0,4],[10,9,4]],4]]
+
+[[],[],[],[7],[0]]
+[[1,[]],[],[5,6]]
+
+[[6,2,0],[]]
+[[5,7,5,[[2],[3]],[[1],[2,9]]],[1],[[[5,1,1,9],[]],2,1,[9]],[[9,[],[9,4],0],3,2]]
+
+[[[2,10,0,2],[],5,[[7],[],[],[5,3],[7,9]],7],[],[],[]]
+[[1,8,[4,[],[],[5],[6]]]]
+
+[[2,[3,[],10]],[[],5,[],[[8,8,7]]],[4,[4,[2],[6,0,0,10,3]],[[1,4]],2]]
+[[8],[[[]],7],[10,9,2,[[8],6,6,[8,1,4,5]]]]
+
+[[8],[[8,[10,10,9]],3],[4,[],[1]]]
+[[4,[6],[5]],[],[[10,0,3],10,5,3]]
+
+[[],[[[10,2,6],[1,4,9,2,5]],[],[5,2],[1,3,5]],[[[7,2,2,0],[0,1],10],10,[9,[4,8],[8,2,10],[1,4,2]],7,[[2]]]]
+[[],[[[],[],[9,10,5,6],2,[0]],10],[[],[[4,9,3,7],7,4],[],2,2],[8,[6,8,[7,5,5],[2,4,8,0,7],[3,1,7,3,9]],[[9,1,5,1],[5,1,1],[],[2,1,2,1]],[[0,9,1,10],5,[],10,[5,0,10,2]],[10,[3,4,8,8,4],5]]]
+
+[[[[8,6,7,6,1],[4,2,7,1,3],[]],[]],[[7,[3,10,6],[3,6,5,8,0]],0,[],0],[6,[6,8,[5],4,2],7,[[0],5]]]
+[[6,5,6,10],[[[1,3,3]],1,2,[[5,0,10,2,10],[4,7,7,0],2,[2]],7],[[2,4,6,6],9,[[0,1,9],[10],9,[2,7,6,5,2],3],3,7],[[[8,4,6,1,1],[9],2]]]
+
+[[6,1,[],1],[[],[[],3,8,[6,1,10,9,2],[7,0,1,10,2]],[]],[9,[6,9,[4,10],7],1,9]]
+[[[],[[]],5,[[7,8],[3,0,9,2,0],7]]]
+
+[[[],[[2,6],6],[],10],[],[[[6,6,10,2,8],[7,4,2]],[8,4,7,5],[5,[6,10],[]],[3],8]]
+[[[],6,3,[[3,4,8]]],[1,3,[5,4],[[4]],2]]
+
+[[],[[[5,10],6],2]]
+[[[7,[3,9,2],[],1],[3,7,[2,9,0,0],[3]],9],[[],[[4,10],4,[],[10,3,7,3],[10,0,7]]]]
+
+[[9,7,5],[3,4]]
+[[],[],[5,8,[[8,3,2],[6,1,0,7],[],[9,0,9],[8]],2]]
+
+[[[4,4,0,6,[8]],[1,[2,0],[4],[5,6,0,4,9]],3,[[6,1,7,7,4],[],[6,9,9,10,10],[4,3,9,3,4],[1,2,1,3]],1],[5,6,8,[],3],[[[9,3,10,3,3],9,[3,8,9,10,10]]],[[[5],6]]]
+[[],[[5,1,5,5],0,[7,3,[6,6,9],[10,5,6],[0,7,4,2]],1],[4,1,[[6,2,8,1,0],[8],[5,4]],2,6],[[[8],7],[1,1,7],[[5]]]]
+
+[[[[],4,[]],[[3,3,7],[3,4,10,1,9],2],[[5,8,9,5,7],[4,3,4,9],9,1],5],[[[6,7,6,10],[2,4,0,3],5,[0,0,8,6,8],8],[2,8],10]]
+[[[4,[2,0,6,6,7],[8,4,8,5,2]]],[[],2,[5,[],3,[8,10]],[],2],[],[],[[0,[4,9,2],[5,5,1,5],10,6],8,[10,[1,8,4,7]],[[0,1,5,5,2]],[]]]
+
+[[[2],[[3,10,0,5],[10,3,10,8],0,[]],8,[10,6,[5,2,4,5],[1]]],[],[[],[7,[0,10,4],[6,2,7],1,[1,4]]],[7,[],[[7,9],3,3]],[8,[[],[1],8],3]]
+[[[]]]
+
+[[[[0,1]]],[2,[10,[3,8,3],[3],[]],4,[[10,5,9,0],[5,2,8],[8,7,7,0,6],9],3],[10,[3,9,9,[7,4,0,9]],3]]
+[[],[[[5,8,0,4,8]],10,[5,[]],9],[[[8,1,6,4],5,4,[8,9,0,5]],1],[],[[[],7]]]
+
+[[[8],6,[3,[0,10,2],5,7,[2]],[10,9,7],3],[[[7,0,10,8,4],[6],7,8],[[7,4,7,6]],[[1],[4],2],[],[3,[4]]],[10,[]],[0,[[2,3,10,5],10,[10,10,0],[5,0],[8]],8,[[8,2,2],4,[],[0,3,10,4]]],[0,[10,[4,2,4,2,2]],8,[[9,1,2],5,[9,0,8,3,4],6,[10,3,4,5,2]],1]]
+[[[],[9,8]],[],[[[8],3,[0,1,6],[1,3],[9,8,9,8]],7,[[3,1],[2,0,1,6,10],4],5,[0,[0,6,1,5],[8,8,2,8,6],6,7]],[[8,6],9,8],[]]
+
+[[[10,[3,4,1,1]]],[[],9,8]]
+[[1,8,8,4,[6]],[]]
+
+[[0,0,6],[2,6,[[],[0,2],10,[10,9],2]]]
+[[1],[[[3,4,1,10,4],[7,10,3],[],[3,10,10,0]],[],4,[[0,5,0,0,9],6,[7,4,8,10,3]]]]
+
+[[[],[0,[9,9,5],[4,6],[1,7],[1,3,6,10,1]]]]
+[[],[],[0,[9,6],[2,7,[4,6]],[[2,5],10,[3,0,10]],0]]
+
+[[],[8,[2,3,[0,6],7]],[]]
+[[2,7,2,[0,[2,6],[],3,[9,3,9,6]],8]]
+
+[[[[5,8,8,10],1,[10,8,10,5],[5,2,0],[0,7,0]],[]],[[[10]],[],10],[[],[],6]]
+[[[3,[2,1],[],[],[]],0,3],[[],8,[],1,[7,0,[2,3,1,9],[9,0,4,6,2]]],[[[0,9],7,9,2,[4,3]],5,[3,[5,3,6],[],[]],[[7,10,0],[9,5,6],[0,8,4,1],[5,4,8],1]],[],[[[9,4,6],[9,4,3,8,5],4],[7,[6,2,7,3]],4,[]]]
+
+[[7,[[7,10],[0,1,3],[2,7,4,10],7,[1,2]],9],[[[],[10,6,3,4],[10,7,1]],[[],[10,8,10,6],[7,7,3,6,0],[7,5],[1,8]],1,0],[[],1]]
+[[],[[8,5],7,10,[10]],[[[],[4,0],[10,0,0,2,1]],[[9,7,9,9,0],9,9,[6,5],[4,9,7,3,10]],1,[[8,2,8,9]],0],[0,[[],10,0,3,3],5,[]]]
+
+[[],[7,[0]],[9,[3,[7,3,9],1,[8,1,5,3,6],[]]],[10],[2,5,7,6]]
+[[],[4,[],10,8,[9,7]],[8,10,9,[0,10]]]
+
+[[[],[],[2,[7,8],10]],[[],[2,[8,6,2],3,[7,3,9]],8],[5,[[1,7,2,6,6],0,6,[8,0],[6,10,0]],7],[]]
+[[4,3,[[6,6]],0,7],[[[4,0,2,9]],[4,[1,10,9,5],1,[],[4,4,2]],[1,[],[4,5,5,0,8],[9,5,10,7],7],8,2],[[[7,0],7,2],8,[],[[5],1,0,[0,2,6,7],[5,6,5,5,2]],8],[8,1,[6,4,[5]],0,[4,9,[],[4,3,0,3,8],[]]]]
+
+[[9,[[5,10,9,4],4],7],[[9,[],2,3,[2]],5,0,[[4,10,1,7,6],4,7,9],[4,[6,4,3],[6,4],[5],8]],[[[0,10,1,4,9],6,[9,2,1],[5,2,3]],[],[9,0,[1,0,9,6],[2]],[3,[9,2]],[10,[5,7,5,2,1],10,9,3]]]
+[[0,[[4,2,5,8],[8,7,9]],[6,0,10],9,[[2,9,1,9,3]]],[3,[2,[0,0],[4,3,0]],[1]],[],[3,[[5,1,3,2],7,2]]]
+
+[[[[9,5,5,1,1],10,7],[[3,9],9,[8,6,3,6,1]],[],[[2]]],[[1,[8],4],[10,10,3,3]]]
+[[[[3,5,8,1],9,[6,6,3,3,2]]],[3],[7]]
+
+[[[[0,10,1,4],4,[3,8],7],0,2,[[5,2,4,0,6],[7,5,9],[],[2,2,2,6,8],[6,9,9,3]]],[5,4],[],[[0,5],7,7,7]]
+[[10,[[5],[10],6,10,3],[[4,10,2],0,[10]],8],[[[],4,[7,6,6]],5,[3,3,[0,7],8],2,9],[]]
+
+[[3],[[]],[10,[1,1,[2,10,1]],[[1],2,[0,10,4],4,6]],[],[8,[3,5],[10,0,10,4,[]],[[0,4,6],3,3]]]
+[[[],[[0,7],7,4,[0,6,1],[8,3,7]],5,3,0],[],[[5,7,10,2,4],[],7,6,[]],[4],[]]
+
+[[0,1,9,[[8,0],[9],[4,0,4,5,1],[4,10,0,6,2],[9,0,0,8]],9],[9,[0,[8,10,7],10,1,8],[7],[0,5,[10,4],8,[]]]]
+[[0,9,8],[5,8],[0,[2,8],6,[],[[8]]],[[[1,8,4,4]]],[]]
+
+[[[[0,7],10],[[1,10,4],[2,9,2],[9,9,3,6]],5,4,6],[[7],9],[[],[],[[0]],2]]
+[[[[],5,10,3],[0,7,2,1,[9,1]]],[],[[[8,5]],[[1,5,1,7,2],[8,6,1,7,9]],2,7],[]]
+
+[[[6,[9,5],[3,8,5,2],1],[[9,0,6,0,4],10],[[6,8],[6,6,6,8],6,[],0],0,7],[0,5,2,[[6,10,2,4]]],[[7]]]
+[[2,[2,[]],[[3,9,1,4,3],4,9,[5,0,6]]],[9,[[6,10,6]]],[10,[10],[0,5,[6,9,2,4,6],[8,6,6],[4,4,7,0,10]]],[5,[]]]
+
+[[[[]],[],[[8,9,9,10,7]]],[9,[4,[0],[2,2,7,6,7],5,[1,2]],8],[[[7,6],[4,5,6],[5,4,9,2,2]],2,2,2,[[4,3,8,6],[0,10,4,0,0],[7,1,4]]],[[],[9,10,9,[2,6,1,2,5],[5,9,5]]],[[[5,10,10],0]]]
+[[[]],[],[]]
+
+[[[5],5,1,6,[[10,0,5],[6],[5,0,10]]],[],[[8],[[9,0,3,4],0,[4,6,1],[1,1,2,2],7]],[3,7,3,7,0]]
+[[[6,5,[2,7,3],3,[]],[[4,1,10,1,10],[]],2],[[[4,5,7,8],7,[6],7,4],[[4,2,3,2]],9,[[9],[],6,7],1]]
+
+[[[4,[2,4,10],[],10,[10,0,7]],[5,[],10,6,2],[[0,6,7],3,0,9,[5]]],[4],[3,7,2],[[9,0,[2],[4,10,9,4]]]]
+[[[6,10,8,[],[3,0,9,3,0]],1,[[],[8],7,[8],[]],[10,1]],[[[2,9],[10]]],[2],[9,[]]]
+
+[[],[[]],[7,4,8]]
+[[[9,[7,6,5,0,4],8,3]]]
+
+[[[4,3],7,9,4,10],[[9,[3]],5,[6],[[],[4]]],[[9,1,5,[7,0,4],9],[3,8,0,0],[8,3,2,7],3,[6,3]],[]]
+[[[[10,3,4],5,4]],[[[1,1,3],[1,4],6],[[8,7,9,6],[4,10],6,[9,6,3],[]],[[8,2],1,8,10,8],6],[[8,[6],5],[[5,3]]],[[1,[9,5],0,[9,7]]]]
+
+[[[5],2,7,[[],[10,10,0,5]],[]],[[[6,8,5],[1,6,0],6,[10]]],[[[0],[6,8,7,0],[4,8,9,10,8]],[[],[10,6,1,0],3,[4,1],3]],[9,[[],[],3,1],7,[[8,1,10,10,9],[3,8],[2,4,8]],0]]
+[[]]
+
+[[[7,[]],[3,[1,9,1,9,0]],[3]],[]]
+[[2,6,[[],3,6]],[7,2,2,[[0,9,5,9],[7],9,6,6],10],[],[8,2,[4,[4,3]],1]]
+
+[[9,[10,[8,1,0,9],[2,4,6,4,6],[4,4,1]]]]
+[[5,3,[[2,0,3],[1,1],[7],7],[[],0],[[0,4,8,3,9],4]]]
+
+[[[[4],8,3,6,6],[[],6,[6,8,4,7]]],[0,9],[],[[[],4,[8,4],[2,7],[7,1,10]]]]
+[[7,8,[[1,5]]],[6,1,7,[8,10,9,[]]],[],[[[2,7,0,8,10]]]]
+
+[[9,[1,[7,6],10,10],3,[],[[]]],[]]
+[[[[0,0],3,[0]],10,6,6],[],[[[2,0,3,8],4,0,3,[8,6,6,5,3]],[7],2,[[9,7],[],2,[0,6]]]]
+
+[[[5,[0,0,3,7,6]],7,10,5,[[5,4,4,3,10],[4,5,2,0,0],0]],[],[[1,0,4]]]
+[[8,[[5],[],5,8,[9,10,4,1,8]],6],[8],[[],9],[],[7,[],[]]]
+
+[[[8,[8,6,7]],[5,0,9],4,[7,10,6,[1,4,1,1],3],[6,[3,2,8],10,[9,4],[4,3,3,8]]],[],[1,[[9],0,2],9,[6,0,0,4,[1,3,7]],[3]],[]]
+[[0,[],6,[8,[0,2],[0,6],[7,4,1]],10],[8,[4,3,[9,10,0,4,7]],0],[[],0,7]]
+
+[[2,[[],[4],4]]]
+[[6,[8,[0,7,0,3],2]],[6]]
+
+[[[0,0,[0,8,5],[4,2,4]],[7,[2],[0,4,9,5]],7,[[1,1,4,3]]],[],[],[]]
+[[[4,[]],6]]
+
+[[],[[0,10,1]],[[]],[4,[[6,7,6,1]],[3,3,[],7],[[5,6,8,6,8],[8,7],[1]],0]]
+[[[5,4,[8,3,7],[2,6]],[]],[],[0],[1,6]]
+
+[[2,[7],[9,0,1],1],[10,[5,[10,9,2,8],8,[8,0,0,10,3]],3,[[7,5,9]],9]]
+[[6,8],[5],[[[3,0],[],1,6],[[3,0]],3,8,[[6,5,1,8,8],1]],[1,8,2,[[]],4]]
+
+[[[[9,7,2,6,7],6,3],4,[[6,4,9,7,3],4],[10,0,4,[5,2,4,6,3],[6,6,4]],2],[[9,[3,9],[4,2],[5,0]]],[[0,[6,10,7,2],[7,7,3]],5],[0]]
+[[[[9,10,9,0],8,[2]]],[9],[1,10,[3,[]],[8,[8,2,6,6],[3,8,4],0]]]
+
+[[8,3]]
+[[6],[3,[5,6,0,10,4],7,[[7,2,2],[]]],[],[3,[1],[2,[]],[9],3],[7]]
+
+[9,1,9,8,2]
+[9,1,9,8]
+
+[[[10],[8,0,[]],10,[[6,3,8,8]],[9,5]],[0,9],[[10,[2,3,5,4,10],3,[],[0,8,2,4]],[[7,9,4,7],[8,6,0]]]]
+[[2,[8,[5,0],2,9,[9,6,4,2,7]],2,[[]]]]
+
+[[],[7,[9,2,[3,9,2,4],[1,3],[0,10,4,3]],6],[],[[],2,9]]
+[[8,10],[1,[[10,8]],[],0,2]]
+
+[[9,[[],[1,2,2],0,1,[5,4,5]],[0,3,[0,8,4,6,3],[2,5,6,2],[9,5,9,0]]],[2,[6,[],4,9],8,[7]],[5]]
+[[[[2,4,6,4,0],[2,9,4]],5,10],[2,[6,10],6,[],[3,2,[6,6],[1,5,10],[]]],[[6],1,5,9],[[7,7,6],[6,[]]],[[7,9,10,[9,3,2],5],[[5,8,1],[4,1,6],[1,5,3,0,9]],2,8,5]]
+
+[[[[3,0],[10,8,0]],1],[7,[4,[0,5],0,[],[1,0,7,2,8]],[[],[7,5,1,1],[0,8],[7,6],[10]]]]
+[[[],8,2]]
+
+[[7,[[1],[],6,[2]],[[4,5,4,8]],[]],[0,[[1,8,4],10,[2,3,2,3,4]]],[[10,[1,5],[9,3,1,1,6],4,[]],4,9,[[5,9,2,10,10]]],[7,4,[[1,3,9],0,[7]]],[4]]
+[[0,7,4,[6],[]],[[0,[0,2],3,[4],[1,1,10,3]],[1,5,9,6,2],10],[[6],[8],[[1,10,3],[7,5,7],1,[5]],[]],[]]
+
+[[1],[6,[2,0,10],[[8,7],7,[3,9]],[1,[0,8,10,8],9]],[5],[6,[3,1,[10,10,10,9,5],[9],0],0,[[9],[]]]]
+[[5]]
+
+[[10],[]]
+[[[1,3,7,6]],[9,9,[0,[10,2],2,9,4],6],[],[[[7,10],[5],4,8,[5]],8,2]]
+
+[[2,[],2,6],[10,9],[2,8,2]]
+[[[[9],3,3],2],[[0,[]],2,3,[[3]],[5,6,3,[4,2,7]]],[10,[8,8],8,5]]
+
+[[[[8,1,8],[5,8],6,9],7,2,6],[[2],5,[[],[8,8,0,0],4,[1,4,10,10,4]]],[1,10,[9,4,[]],[],9],[6,8,[[10,2,0,10,10],5,4,[2,6],3]],[[6,0,[6,4],3],[[0,4,6],7],2,[6,[]]]]
+[[4,[[5,5,0,1],[8,9]],0,[2,[]]],[6,9,[[9,10,6,7]]],[[],8,[],0],[[],[[1]],[],5,[[6,6,0,2,2],[9],9,[7,3,4]]],[[[3,10,4,4],1],[10,[2]],[1,[6],5,8,4],[]]]
+
+[[],[1,9,[[],6]]]
+[[1,[[9,1],[6,3,1],[1,10,9,2],[4]]],[2,3,[2,8,7],3,8],[8,[3,1,[],9,0],[5]],[[0,4],7,[[10,9,1,4,2],0],[[3,1,7],4,[10,8,7],[0]],2],[10,[9,7,[10,3,2,2]],[[10,5,4],[3],[4]]]]
+
+[[[9,8,8],[0]],[[],2,1,3],[4,[[]],[8,[4,0,6],7,2,[2,1]],[0,8,[5]],[5,9,[],5,6]],[4,[1,[6,7],1],10],[1,[1]]]
+[[7,[[2,3,0,5,8],7,[],8,[]]],[[0],0,[[2],[0,0,2],[1,0]],4]]
+
+[[[[1,8,6],[4,1,6,4],8,[7,7,8],3],[[2,1,1,8],0,10,7,[]]]]
+[[[[9,10,7,1],8,0]],[[]],[4,[2,0,[4,2,10,8,0]],[],[[10,9,10,7],5,5,1,0]]]
+
+[[4,7,7],[],[[0,[10,7,3,8],8,[10,0]]],[[9],0]]
+[[[2,[9,7],[4,2,8,5]]],[[[6,7,4],2,1,[4,1,8],[6,10]],[[4,10,6],[6,2]],[],6,[4]],[[3,1],[[5,10],3],[0]]]
+
+[[[[7,0],1,[0,10,4,0],[8]],0],[],[2],[10,[[0],[10,1,0,4,1],5,10,4],9,7]]
+[[[[]],[[],[7],[],[5,5,5],[8,7,1]],3],[[[9],[],3,4,[7,5,2]],[0,[7,8,0,4,8],[2],[8,4]],[]],[7,[1,9,[5,9,0,4],[]],[[7,8,10,5],[10,6,10,9],0,9,6],[6,4,[]]]]
+
+[[9],[[[9,9,7],0,[1,10,4]],8,[[1,9,4],[4,10,2,4],[5,6,9,9,8]]],[[],[7,[1]],[4,10,1,[],[1]],[[4,10,8,4],[9,4,8,1,0]]],[10,10],[[[0,4,3],[5,8,4,5]],[],[1]]]
+[[[1,[],4,[10,1,7,4,0]],7,[[6,8,9,10,9],[4,10,2],[1,5,3,3,10],6],[[5,2,5,9],[8,8,9]]],[[0]],[10,[5,[9,3],2],[],[0,7,[9,10,3,5,9],1,1]]]
+
+[[7,[],0,[[4],[9,1,10,9,0],[],8],[3,[1,8],7]],[1],[]]
+[[1,[3,6],[5,3,0,5,4],5],[[[8,3,1],2,[10],[],7],[1,[4],[6,10,0,8,6]],[[1,10,7,4],8],10],[5,[5,3,6],6,1]]
+
+[[4,1,6,7,8],[],[4]]
+[[[],[1,3,8,7,5],1]]
+
+[[],[],[[3,[7,2,5,0],5],[4,[3,10,9,4,1],5,6,[7,7,10,0]],7],[9,8]]
+[[[],10,2,[[9,9,8],0,[8,2,3,9,1],[5,3,4],1],[2,7,[1,8,0,6],[8,8]]],[[[7],[4,5,7,8],5,7,5],7],[[6],5],[[[3,0,6,4],10],8,[],[9,[]]]]
+
+[[[],3,[2,[],[8],4,[9,5,9,9,4]],[[],[0]],[1,5,[4]]]]
+[[[2,4,1,[3,5,6,2],9],4,[1,1,[],[3,2,7]],4],[[],8,4],[3]]
+
+[[[[0,6,8],[8,7,7,10,4],[1]],[[2,7,3],3]],[],[]]
+[[4,7,4,6,[0]],[[[6,9,2,5,8],6,[7],10],4,1],[[[4,5,5,2,9],6,8,9],[[1,6,4,3]],7,[]],[[[4,4],[3,6],[5,9,7],4,6],2,5,6]]
+
+[[[0,[9,4]],8,[8,10,8,[8,10,8]],[8,[3,9,6],10]],[[10,[7],8],2],[],[]]
+[[1,3,[10]],[4,1],[0],[[0,10,8,6],2,[[7,3]]]]
+
+[[[0,[0],3,[3]]],[],[7,4]]
+[[6,[],9,[[2,10,8,6,2],[6]],[[2,10,0,0,6],7,5,[8,1,10],9]],[[[],[3,1,1,1],[9]],7,1,7,[]],[],[1]]
+
+[[1,1,[]],[8,2,9,5],[[6,8,[10,6,9],[9,1,4,8],[3,7,0]],[]]]
+[[[10,[9,5,9],9],[4,8,0,4,[5,4]],9,[4],0],[[6,[0,2]],10,5],[],[[[1,5]],4,[3,[1,4,4],[7,10,5,6],6,0]],[]]
+
+[[8,6,[],7],[[],[],3,[[2,4,6]],[[3,9],5,[8],[6]]]]
+[[6,[[10,9,9],6,[1,1,8,1]],[[4,6,10,3,1],[4,2,10,1,9],0,1],[[]]],[6,[[1,7,0,8,5],[5,2],[4,8,7,10],[4,4],[4,6,4,10,9]]],[[8],[[6,4,10,8],[3,9,9],[5,4,5],[3,4,10,5,6]],6,[0,[2,5,0,2,0]]]]
+
+[[8,[4,6,[1],[9,6,3]],[7],10,7],[10,3],[[4,1,[8,4,8,7,2]],1,10]]
+[[[[9,7,8],4,[2,6,6],3,7]],[8,0,10,[[1,5,3,6],4,[],[7]]],[[]],[[[7,10]],0,2,8,[[],[7,4,8],6,4]]]
+
+[[4,[[5,3,9,4,0]],4,[[],[3,9,3,1,1]],10],[[3,[7,3,9]]],[[5]],[[[1,8,4,0],[5,4,5],[10],6,[7,10,9]],10,[3],[5]]]
+[[],[8,4,10],[2,3,[10],7],[[[9,1,2],5,6],[],6,6],[[[7,9,10,0,7]]]]
+
+[[0,6,5,[3]],[9,[],[]],[],[[1,9,[2],8]],[[[3],[7,4,4],[]],[6],[[7,5,2,1],[9,5,8,0],[4,5,10,8,5],9],2]]
+[[10,[[2,7],0,[4,10]]],[0],[[],9],[6,[[10,1,5],[0,3,8,0],10,[3,10]],0,5]]
+
+[[4,7,6,[[10,4,1,8,3],6,[4,4,7],8]],[4]]
+[[6,[[5,8,8,10],[7,2],1]],[[[1,10,9],[2,1,8,6],[6,10]],[4,2]],[0,[[1],10,[1,7,4,6],3,2],3,[0,4,[]],[[9],[3,3,5,9],5]],[[5,8,4,[0]]]]
+
+[1,10,7,0]
+[1,10,7,0,7]
+
+[[[],6,[[8,7,7],[]],[],[[1,0],4,10]],[6,[[6,0,1],[2,5,3,9],[1,3,7]]],[4,7,[4],[[3,7]],7],[[10,9],[9]],[[[7],8,[],[6]],[[4,10,4],[]],1,[0,4,[5,4,1,4,6]],6]]
+[[[],[3,7]],[3],[],[[],[[4,2,10],[2,2,2,9],[8,5,0,7]],0],[[[8],[4,10,7,4]]]]
+
+[[[],[4,3,[8,9,4,2],10],[3,6,5,[]],[]]]
+[[6,5],[[8],1],[10,[2,1],0,3],[[[0,3,1,8]],[],0,4,[3,3,6,[5,3,8]]],[[7,[5,10,2,7,5],10],[[0,2,7,4],2,[8,10,10,0,6]],[[5],[],[0],[]],[[9,0,6,9],9,1,[9]]]]
+
+[[[4],[3,5,9,[]]],[6,10],[9,[[6],[],[2],[2,1]],0,[]]]
+[[[1,0,9,10,[9,5,1,2]],[],0,[[6,1,8,9,5]],[[],2,7]],[[10],7,[9,[1,5,8],[8,7],4,3],[2,[5,3,9,8,2],4]],[2,7,[[6,10,6,2,3],6]],[[[9,4,4,8],4,0,[3,7,2,8]],[[],8,[]]]]
+
+[[4],[[[1,3,2,8,10],[],[0],5,[2,6]],[0,[5,0,10]],[],9,1],[],[[[0],9],[[3,0,8],1],5,[3,[1],[4,3,6]]],[8,1,[0,[4,7,3,0],[3,1,1],5,10],10,6]]
+[[[5,9,[7]],9,6,[10]]]
+
+[[5,[[2,9]],[[6,0,3,10]],3,4],[3,4,8],[9]]
+[[3,[],3,8,3],[1,6,[[10,2],[2,4,10]],7,[]],[4],[[],[],4,3,8],[[],3,0,6]]
+
+[[4],[],[[[1,5,0,10,1],10,5,3,[9,3,7]],[6,4],8],[]]
+[[],[0,1,[4,0,3,1],3,5],[10,[[4,9,2,8]]]]
+
+[[[8,[3,4]],7,[]],[[8,3,4],[7,[5,0,3,3,0],[10,5,6,10],1],[5,1,[8],10,9]]]
+[[1],[9,4,[4,[2,1,8,2,6],7,[]],[0,7,4],[]]]
+
+[[[[1,7],[10,7,2],8],4,[[5,10],3,[6,7,8]],[[0],2,6,8],3],[9,[[4,10,2]]]]
+[[[10],7,[[],[],0,1],7,[]],[]]
+
+[[[2,0,[0,8,10,3]],0,2,[9,0,[0,2,7],[10,2,2],7],[5]],[],[[8,1,10],2],[]]
+[[10,7,2,2,[]],[[[2,2,6,2,5]]],[],[9,8,7]]
+
+[[5,5,[[10,1],[]]]]
+[[9,2,3,[8,3,[0]],0],[[[10],[10,8],10],6],[[[1],[7,8,1]],4]]
+
+[[6,[],6,6],[[]],[1,[[9],9,6]]]
+[[[[]]],[3,6,7],[7],[3]]
+
+[[8,10],[[0,8,4,9,5],[6,4,9,[5,8]],8,[10,[9,9,6,5],[1,7,1,0,10],2,5]],[1,8,[1],8,7],[]]
+[[[0,2,3,[8,2,8,1]],[8,8,1,[4,10]],2],[3,8,3,2],[6,2,[],2]]
+
+[[[[1,2,4],0,7],[4,[8,9,3],[8,3,3,0,3],[6,2]]],[8],[]]
+[[],[[[9,2,7,9],[1,4,1],7],[[6,8],5,[6,7]],[6,3,[0,1,3,8,0],[]],[[]],1],[5,5,9,6],[1]]
+
+[[5,8,[10,5],[6],[]],[[10,6,[0,5],10]],[6,[],[],9,10]]
+[[7],[[[6,5,1,5],[5,10,0,5],6,[]],9],[],[5,2,[2,4,[5],1]],[5]]
+
+[[[4,[0],2,[2],[8,2,9,10,10]],[0]]]
+[[4,3,[[5,9,9,9],9,[0,10,5,6],0]],[[2,5,7,[2,10,5,9,9]],3,[10,[4]],9,1],[[[10,9,1,8,3],6,[2,6],[5,6,10,3],7],5,[2,[2,9,0,4],6,0,[5,8,8,1,0]],[[7],[4,3],[10,8,5,0,4],[8,4,4,7],5],1],[[[],[3]],[[9,5,2,1,1],[5,9]]],[3,4,7]]
+
+[[10,9,10,3,[]]]
+[[[[],[8,7,7,5,8],6,[7,7,8],[3,2,5]]],[4,6,[[4,1,0,6],4,[10,8,6,2,1],4]],[],[[[6],[],6],10,10,2],[6,[[1,5,10,5,9],6],[[4],5,[10,10,9]],10,9]]
+
+[[9,0],[],[[5,[],[4,5]],8]]
+[[7,[[1],6,5,4]],[[6,0]]]
+
+[[[[9,1],[6,5,2,8,8],2,2,7],[[5,3],[8,1,4,9,1]],4],[[2]],[6,4,0,7,3]]
+[[[4],[],[0]],[5,[[7,0,5,0,4]],4,8]]
+
+[[1,[[7],[],5,5,3]]]
+[[],[5],[[8,[5,4,8],[]],3,[3,[10,1,2,2],[7],9],5,0]]
+
+[[3,[1,8],6],[9]]
+[[1,[[3,9,7],4,[4],4,[]]],[[8],[[0],4]],[6],[1,10],[[0]]]
+
+[[1,0,[[7,4,4,8],[],[8,2,3]]],[4,9,0,[[3,3],3]],[3,[]],[1,10,0,9,[3,8,[9]]]]
+[[[10,[5,4,2,1],4,[9,3,8,4]]],[[4],1],[]]
+
+[[4,10,4,1],[[1,10]],[[6,[1,7],[8,0],6],1],[5,[[],[3,4,2]],[]],[9]]
+[[[[3,6],[4,4,0,6],6,[4,4,8],[6,8,4,9]],[10],[6,[6,1,6,7]],5]]
+
+[[[[0,8,1,4],[],7,4,[3]],[5,7,3,[6,6]]],[[[],[4,3,4,0],7,4],[3,[2,4,2],[]],[[4],7],6,[]],[0,[1,5],10,[[6,10,7,3]],[6,[]]]]
+[[[[8]],8,2,[[0,7,7,4,1],[7,9],[],[],4]],[[6],[]],[[],9,6]]
+
+[[[],[0,[4],10,[4,9,10],3],2,4,[]],[7,1,[10,10,5,10,2],7,[0,9,[6,4]]],[[[],5],9,3,7,9]]
+[[[[6,1],2,[6,4,10,3]],[10,[],8,4,[0]]]]
+
+[[[[6,2,7,2],[4],[5,2,0]],[[0,2]],[[3,7,10,8,5],[],[2],4,8],4]]
+[[[],[8,[0],7,[5,6,3,7,3]],6],[[],[[6,10],2,[3,1,7,6]],[6,[]],[[]],4],[[0,[1,8,10,2,5]],3,10,[9,9,[],8],10],[6,7,[[4,9,10,8],1,[]],1,[[8,9],[],1]]]
+
+[[5,[5,[9,6,1,9],[7]],6,[],[]],[10]]
+[[[[9,1],[8],[2,6],[10,4,1],[2]]],[10,0,9,[0,[9,2,5,3],7,4,1]],[7,[[1,1,4,1,2],[10,5,6,9,6],[6,9],6,3],[]]]
+
+[[2,[[4,7,2,8,9],5,4,2,[2]],[[7],[5,6],3,[]]],[9,6,6,[2,2,8,[],[0,3,6,4]],[6,2,8]],[[[2,1],2,[8],[0,5,7,9,10],10],0,[],1,[6,3,10,3,[]]],[[1,9,9],[[10,3,7]],3,[4,[6,3,1],[],[9],6]]]
+[[3,2],[],[[],0,[[2,3,9,4],9,[6,6,1]],[[10,5,1,4],4,2,[5]]],[[[1,0,4],[5,4,4,1,2],[1,6],[4,5],[]],[[0,6,3]],[5]],[]]
+
+[[6],[],[0,[7],[],8,0]]
+[[],[[8,[8,0,0,4],9,7,2],[[2],[9],[1,8,5,0],[5,5,7,3]]],[9],[[],[9,10,[5,5,4,7],[5,1,2,0,5]],[[1,0],10,[5,10,1],9],0]]
+
+[[8,[[3,0,2,2,7],7,7,[0,3,0]]],[[[0,3,4],[9,7,0,4,1],9],[[3,10,10,4]],8,8]]
+[[3],[4,6,6,10,[]],[[[7,1,5,10],[5],[10,3],5],6]]
+
+[[10,8,[[3,6,9],10,0],7,2],[[],[]],[6,[[]],[]]]
+[[[[9,10],7,4,0,[6]]],[5]]
+
+[[1,[]]]
+[[[2,8],7,[[10,4],10,[]]],[[[],[2,1],[10,6,2,7],[9]],[[],3,[],[6,4,3,6,3]],[0,[4,8,3,0,5]],8,3],[2,[[5,10,5,0],[6,4,8,4],3,[3,10,5,3],[6,5,3,8,7]],[[10,8,9]]]]
+
+[[[[],9],2,2,8],[3,[[],[10,1,1,4,2],[0,7,3]],8],[[],[4]],[[[]],9,4,[5,[3,5,4,4],[],8]],[]]
+[[6,[8,3,[7],[9,6]]]]
+
+[[[[],7],9,[],1,[[],10,2,9]],[[[8,1,6,6],0],2,5,5,[[8,6,5,3],1,6,4,0]],[[8],10,[],2],[[10,2,7,5,[10,3]],[[10,10],7]],[7]]
+[[10],[5,[1,[0,10,4,4,6],2,[3],7],9],[8,4,6,2]]
+
+[[],[[3,6],[],0,[0,[1],[4,10],4],[[7]]],[8,[[2,8]],[[5,3,6,7]]]]
+[[[8,[1,1,6,7,1]],[],4],[[6,[],[6,7],[5],[5]]],[[[],0],5],[6,10,6,[]]]
+
+[[[],[5,[9],[10,4],[1],7]],[1,[2,[10,1,9,0,6],5]],[[[2]],[],[[8,1,9,8,8],8,[],6,8]],[[[6,3,6,4,2],1,[4,6,6,10,9],8,[9,7,7,10]],10],[2]]
+[[4],[[],7,9,[[0,8,1,2],[9,8],0,[5],8]],[[8,[9,6],3,[5,6]]],[6,[5,[9,10,4,7],4],[],2,6],[[],8,[[7,7]],[6,0,[8]]]]
+
+[[9],[1,[],2,[[],5,[7,9,2,1],[7],[]],3],[0,[],[[5,1,2,0],0,[10,9,10,6,10],[8,1],5]],[7,[[3,8,9,10],[0,2]],[2,0],9,[[1,3,9,3,9],[6,6,3],[]]],[4]]
+[[[6,3,7],9,[[1,3,5,8,10],1,[6,10,10,9],3,[1,7]]]]
+
+[[],[[],5]]
+[[8],[7,2,10]]
+
+[[6,[4,[3],[],[1,7,4,2,5],[3,10,10]],8,[],[9,8,[]]],[[0,0,3],[5,[5,2,5],4,[5,1,2,8,6],9],4],[[]]]
+[[1,10],[4],[[0],3,[[8],5,[2,6,10,3]]]]
+
+[[],[8,5,9],[[[5],[3]],7,4,4],[8]]
+[[],[]]
+
+[[8,[],0]]
+[[4,4,6],[9,5,[[3,8,4,5],5],9,[[5,3],[0,4,0,3],3,[4,10],7]]]
+
+[[[[6,2,3,9,9],[4,1],10,[],3],[4,1,[8,5,5,8],[6,7,2],[4]]],[[[10,4,2,10,9],[2],[2,4,6],3],[[0,8,10],[4],[0,7,0,9,0]],[3]],[4,7,3,8]]
+[[[6,5,0],9,5,7,2],[[[],[],7,3,0]],[[7],[],4],[1,6,6,[],9]]

```