From 971c1b0dda2dcc64bbbb1e9cf60f152d35dc4ed4 Mon Sep 17 00:00:00 2001 From: Mikael CAPELLE Date: Tue, 13 Dec 2022 08:54:15 +0100 Subject: [PATCH] Add day 13. --- 2022/day12.py | 14 ++ 2022/day13.py | 53 +++++ 2022/inputs/day13.txt | 449 ++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 516 insertions(+) create mode 100644 2022/day13.py create mode 100644 2022/inputs/day13.txt diff --git a/2022/day12.py b/2022/day12.py index bc8c145..e03bb54 100644 --- a/2022/day12.py +++ b/2022/day12.py @@ -12,6 +12,20 @@ def dijkstra( neighbors: Callable[[Node], Iterator[Node]], cost: Callable[[Node, Node], float], ) -> tuple[dict[Node, float], dict[Node, Node]]: + """ + Compute shortest paths from one node to all reachable ones. + + Args: + start: Starting node. + neighbors: Function returning the neighbors of a node. + cost: Function to compute the cost of an edge. + + Returns: + A tuple (lengths, parents) where lengths is a mapping from Node to distance + (from the starting node) and parents a mapping from parents Node (in the + shortest path). If keyset of lengths and parents is the same. If a Node is not + in the mapping, it cannot be reached from the starting node. + """ queue: list[tuple[float, Node]] = [] diff --git a/2022/day13.py b/2022/day13.py new file mode 100644 index 0000000..df5c21f --- /dev/null +++ b/2022/day13.py @@ -0,0 +1,53 @@ +# -*- encoding: utf-8 -*- + +import json +import sys +from functools import cmp_to_key + +blocks = sys.stdin.read().strip().split("\n\n") + +pairs = [tuple(json.loads(p) for p in block.split("\n")) for block in blocks] + + +def compare(lhs: list[int | list], rhs: list[int | list]) -> int: + if len(lhs) != len(rhs): + m = min(len(lhs), len(rhs)) + r = compare(lhs[:m], rhs[:m]) + + if r != 0: + return r + else: + return 1 if len(rhs) > len(lhs) else -1 + else: + for lhs_a, rhs_a in zip(lhs, rhs): + if isinstance(lhs_a, int) and isinstance(rhs_a, int): + if lhs_a != rhs_a: + return 1 if rhs_a > lhs_a else -1 + elif isinstance(lhs_a, list) and isinstance(rhs_a, list): + r = compare(lhs_a, rhs_a) + if r != 0: + return r + else: + if not isinstance(lhs_a, list): + lhs_a = [lhs_a] + else: + assert isinstance(rhs_a, int) + rhs_a = [rhs_a] + assert isinstance(rhs_a, list) + r = compare(lhs_a, rhs_a) + if r != 0: + return r + return 0 + + +answer_1 = sum(i + 1 for i, (lhs, rhs) in enumerate(pairs) if compare(lhs, rhs) == 1) +print(f"answer_1 is {answer_1}") + +dividers = [[[2]], [[6]]] + +packets = [packet for packets in pairs for packet in packets] +packets.extend(dividers) +packets = list(reversed(sorted(packets, key=cmp_to_key(compare)))) + +d_index = [packets.index(d) + 1 for d in dividers] +print(f"answer 2 is {d_index[0] * d_index[1]}") diff --git a/2022/inputs/day13.txt b/2022/inputs/day13.txt new file mode 100644 index 0000000..cf66fc0 --- /dev/null +++ b/2022/inputs/day13.txt @@ -0,0 +1,449 @@ +[[],[],[[],10,[[7,0,1,1,10],9,6],[1,[4,9,1],6,[4,6,0]],[0,3,0]],[1,[10,[7,4,3,4],[]],[2,2],7,[[10],5,3]]] +[[8,1,[2,3,3,[6,7,7,2,6]],[[8,10,1]],[9]],[1,7,[7,[3,6],7,7,10]]] + +[[[[3,0,4,4],9,2],8,[[1],3,[2,0,9,3],[5,3,6,4,5]]],[],[]] +[[[],[]],[[[8,4],[5,5,9,9],[1,9,1,8],0]]] + +[[5,[4,[8,3,4],1,1,[3,8,9,4,0]],4]] +[[7,1,[[9,0,5,5,9],[5,0,3],[0,5,5,10,0],3,7],1],[9,[[1,6,3,2,2],7,[8,9],[7,7,2,10]],[],[]],[[8,0,[0],5],[[3]],3,[[1,0,0,9],[10,7,0,10]]],[[],8,2,3,[[10],[10,6,10],0,9]]] + +[[4,8,6,8]] +[[[3,[],[4,7,4,4],1],1,[6,[5],[1,1,6,8]],3,10],[2,[3,6,[],6],10]] + +[[1],[[0],5]] +[[10,[[2],10,[6,4,0],[],9]],[4,9,[[9,6,10,7]]]] + +[[8,[[4,1,1,4],[6,10,6,6],7,6,[9,9,1]],[[0,9],3]],[1,[5],5,[]]] +[[],[[]]] + +[[[[3,9],[],[5,9,8,3]],2,5,9,8]] +[[[9,0],4,[9,10],[5,6,10,0,[6]]]] + +[[],[9],[4,[[10]],8,10,[10,10,[],[]]],[[],[[10,4,6]],[[1,1,6],[]],5],[[[1,7,5],[10,1,6],6,[]],[],2,3,9]] +[[],[[4,[5,4,8,7],[10]]],[10,7,[3],8],[[6,[1,2,9,5]],[],[[2,4,3]],[3,[3,8,9,8],[9]]],[[[6,0,0,7,3],9,3],[9,[0,4]],[[8,8],[2,1,8],[]],3,[]]] + +[[[9,0,9],3,10,5,7],[8,10],[[[1,6],[3,5,2,7],[2,3,0,5,8],[1,3],10],[],8],[[4,[]]]] +[[7,[3,10,3],[[],[3],2,[5,4,3,10]],5,2],[6],[3,[],[[3,0,4,0]]]] + +[[[10,3,[8]],10,1]] +[[[],5,1,[10,[3,8,7],[5],[1,3,6,0],[4,8,10,6]],[[7,7,1],[0,2],8,[2,1,9,8],8]]] + +[[6,[9,[1]],10,[7],10],[[10,4,9],5]] +[[6,10,[[7,10,1]]],[[[2,9,0,3],[4,5,10,0,6],[2,4,2],9]],[],[[[5,0,8],[2,2,1,1],[1,6],5],[]]] + +[[3,10,[7]],[4,[[0,3,8]],5,10],[],[[[8,9,4,8,10],[5,9,7,1,0],[6,5],8,7]],[]] +[[2,6,[7,7,[3,8]],[[1,6,7,1,9],7,7,[5]],3],[8,[8,[4,7,1,2,4],[2,8],[6,9,9,8,4],9],[[3,10,2,0]]],[[5,[6,9],[]],0],[7],[[[]],3,[3],1]] + +[[6],[],[[[1,5,1,9,5]],7,10]] +[[],[5,[]],[[[1,2,1,1,7],[5,4,5]],8,3,3,8],[1,[5,[10,0,7],[7,4,9]]]] + +[[1,2,8,[[4,10,2],[7,4,1,2,5],9],[7,0,[5,10,2,5,1],[5,4,9,2],0]],[1,10,[[5,10,4],[6],[8]],[[8],[2,9,10,1,3]],5],[[4],0],[]] +[[9,[[2,9,6,7],6,[6]],7]] + +[[[]],[[],5,[2,3]],[],[8,[],3],[9]] +[[9,[6,6,9,[6,3,6,8],[]],[[],8,[0,8],[9],0],1,[]]] + +[[0,[],10,[4,[8,7,10]],8],[[[],[10,6]]],[10,[1,[1,8,1,2],5,2],[[0,8,0],[1,9,1,1],[3,8,3],0],7,[0,5]]] +[[8,4,[6,9,2,[4,5,6],4],[[10,9,0,0,1],[6,7,8,8]]],[[[2,5,6,1],2,8,[6,8,3,9]],[[4,10,0]],0,9]] + +[4,6,8,10,9] +[4,6,8,10] + +[[[10,2,[0,1,2,0],0],7,[2],[[],[0],9]]] +[[],[[]],[9]] + +[[1]] +[[],[[10],10]] + +[[],[],[],[[[1]],9,10,[1,0,5]],[]] +[[6,[[4,4,9],[10,3,10,1,4],[10,5]],4,[[1,7,5,0,1],[3,7,10,1,1]]]] + +[[[[9],[8]],[6,3,4],5],[[6,3],[7],[[5,10]],10],[],[3,5,[3,0,[0,3,3]],8,[]]] +[[3,[10,10],4],[8,[[7,1,0,6]],1],[8,[[5,0,7,4],[1,4],1],5,[[7,1],[2],[0,9,5,7,5]]],[[5,[6,3],[0,8,3,2],10,[10]]]] + +[[],[[[1],0],[9,7,7,[3,9,3,9,10]],8,[5,10,[5,5,8,3,7],7,[9,0,7]]],[[8,2,[0],7],4]] +[[[8,0,4],5,3,2,5],[4,7,6]] + +[[3,1,[[6],[2],[4,8,7,10],2],1],[[[6,2,8,6,4]],6,[9]],[8,[0],1],[]] +[[],[[[0],3,[2,10],10,[2,0,6,3]],9],[1,[[],10,[],8],[[6],2,7,8],[10,[4,3,4],[10,3,5,3,5]]],[[2,[],8],2,0,8]] + +[[],[[[1,7],[0,2],[3,2,8],[7]],0],[1,[1,[7]]],[6],[[[7],[],[8,8,10],[0,5,1]],2,5,[[4,6,6,8],8,[0,9,4,5,4],4],[1,5,6,[2,4,6],[4]]]] +[[4,[5,[5],6]]] + +[[[[6,10,4],7,[],[5],[5]],1,9,7]] +[[[]],[[[5,0,6,3,5],[]],8,[8,10,5,2],4,10],[7,[[8,0,9],9,[6,9],1,1],4,10],[6,4,6,9,5],[]] + +[[[],1,9],[6,3,[[8,10,4,1]]],[[[0,4],9,7,[0,0,5]]],[[]]] +[[[9,3],[[]]]] + +[[9,0,8,0],[[1,[0],8,[]]],[],[5,8,[[8,9,0,8,0],0,8,[],[]],[1,2,5],[[],5]],[[3,1,6,[],[4,9,3,6]],[5,[10,10,4],3]]] +[[6,[[],2,9],[1,9,[6,2,5,1],[1,5,0,8]]],[[2,[4,4,2,6,1],6],[],[],8,[[]]],[[[7,8,10,2,10],[1,4,9,5,2],7,[6,6,4,10,9],[7,3,3,0,0]]],[],[7,3,[2,[1,2],[2,2]]]] + +[[1,[[2,6,1,6],[4,6],[3],[],[1]],8],[[8],6,5,[5,[4]],6],[[[],5,10,[10,7],[3,7,5,9,10]],0]] +[[[9,[7],1,[],5]]] + +[[[9,2,1,0,6],[[0,4,8],5],[[],[],0,[8]]],[[[],2],[[7,7,7,8,10],10,[0],[0,2]],[],[]],[],[]] +[[],[5],[[[],5,[8,8,1,5],9],[7],[1,3,5,[0,0,0]]],[]] + +[[[],[5,4,[],10,[1,8,1]]],[7],[[[1,4,10,10,4],[],9,[7,10,10,0,2],[10,4]],[4,[3,5,1],6,1]],[[[1,1,9,3,5],10,[2,1,3,9,3],[6,10]],[[],[]],2]] +[[[[1,3,7,8,5]],[1,[1,8,3],[4,1,3]],0,2,4],[],[],[[5,[7,9,2,5,2]],[[10,10,10,8,3],2,[]]]] + +[[[[1,0,3],[10,8],[],[9,1,9],[0,5,2,4]],[],3,[[6,8,7],[6,0,7,1,0],3,10],2],[1,7,[4,[5,7],[4,6]],9],[[],[[1,2,0,5],1,3,[9],0],5],[]] +[[[[7,7,1,2]]]] + +[[5,9],[[9,[1,9,2,2]],[[],8,[1,1]],[[],[6,4,0,3,3],[8,0]],[8],7],[[1],5,6,10],[]] +[[[]],[[[0,2,8,5,4],[4,5],5],7],[[[0,10,3,4],8,[0,7,10,2],[6,1,9,9,10]],9,2,6],[1,[2,7,[6,6,2,2],[10,0,9,4,3],2],6,[[2,1,4,1],10,[7,5]]]] + +[[[[5,2,7,9],[10,0,8,1,1],[]],[6,6,3,[8,7,1,9,1],4],[[6,1,4,8,1]],[0,[5,10,2],5],1],[[],[5,10,1,4]],[0,[10,10],[1,[7,0,5],[4],[10,5,3,4,2],[8,10,1]],[],[5,[0,6,3,7,4],2,9,4]],[[6],[],0]] +[[[2,[10,9,9,9],7],[9,[1],10],1,[[5,10,5,4],2,1,1,[]],[10,[2,10],[0,7,2,5],0,1]]] + +[[[4,9,[5,6,9,6],[7],[0,9,5,8,1]],[[8,0,2,5]]],[],[6,[[7,10],9]],[[5,2,[]],2],[[9,0],5,[[2]]]] +[[[]],[],[[[2,9],0],2,[[6,2],6,[3,8,1,1],1]],[]] + +[[3,6,4,[2,5,0,[8,6,8],4],[[1],[5]]],[0,[2]],[],[5,[],[5,4,[10,9,4],9,6]]] +[[[[5,10,3],6,[2],[]],[[8,1,7,7,10],0,[6,8,9,3,9],[10,5,4],[9]],[[]],[[6,1,4,3,9],[10,9,9]],8],[9,7,6,[[3,8,0,1,1],1],8]] + +[[[[0,3,8,10,5],2,[],[],[9]],3,6,[5,[0]],[5,[]]],[]] +[[0,3]] + +[[[3]],[9],[],[[4,1,9,[5],[]]]] +[[[9,[5,6,3],4,[4]],[[],[5,6,4],[7,5,10,8]]],[[0,[8,3],4,6,[9,9,4,1,0]],[[3,5,1,7]],8,[]],[[],0,[8,2,9]],[4,[[],5,[10,10,10,6,6],[8,7,3]],[5,[1]]]] + +[[[[1,0,3,6],6,[10,10,6,8]],[]],[[1,2,[9,7,1,10],[]],[[10,3,0,8,8]],2,8,[7,4]],[[[10,8,4]],[2,3],6],[[[10,6],[5],9,1],[],7]] +[[],[[],[[3,8,4],0,[]],[],6,[[3,7,1,0],10,8]],[[9,4,[]]]] + +[[[8,[4]],6,3,10],[[5,1,8,[0,6],2]],[],[[],[[10],[6,6],0,[1,7]],8],[[[1],0,5,[],10],7,2,[10,[8,3],9,3,[]],4]] +[[[6],3,[]],[[[1,3,1],[1],[9,7]],[6,[1,9,9,7,9],2]]] + +[[],[[8,4],0,[10,[]],5],[5]] +[[[4,[],[],7]],[[6,[3,5],[0,5,8],8,7],[7,0,[8]]]] + +[[[2,[6],[9,7,1,2,5]],8,[3,[4,0,4,7,3],[],3],[[1,3,1,8],[5],4],4],[10,4,7,3],[[]]] +[[9,0,7,[],[8,5,10,[2,0,1,7,4],6]],[[8,[],10,6],1,[[5,0,7,0],[]]],[[9,[8,4,0],[0,8,8]]]] + +[[[7]],[[3,1,3,[6,3],8],[],[[10,3,1,5],[9,5,6,4],1,[],5],2]] +[[5]] + +[[[1,2,0],[[2,7,3,5],0,[9,7,0],10]],[6],[3,7]] +[[[[6,0,7],7,0],0,6,2,2],[5,6,5,7],[8,[]],[],[[[1],[0,5,10,6,9],[10],8,10],[[8,10,8,7],[],4]]] + +[[4,[6,2,[9]],3],[0,8,10,[[2,9,1,1,8],7,5,5],[9,[],6]],[],[4]] +[[9,[[10,3,10,8]],4],[0],[],[7,[[5,0,9],9],[[7,5,3,9,0]]],[]] + +[[[7],1,[9,0,4,[4,10,9],[4]],10],[6,4,[[]]],[[[3]],[[4,1,0,9,4],4],9,[[9,0,2,10]]],[[2,9,[0,3,10,7],8,8],[[10]],5,[[3,7,4]]]] +[[[10,[7,0],0,6,[3,3]],[[3,5,10,3]]],[[[1,6],[2,7,3,3,8],[8,0,7,3],8,[10,9,7,8]],2,[7,[1,9,0,9,1],2],[5,10,0,8,2]],[[[9,6,9,0,3]],9,3],[[[6,8,9,8],[0,2],[4,1,0,6,5],7]],[3,[[1],[7],1],[[3,7],10,[8,4,7,6],10],[9,[3,5,3,9],[6,3],3,[3,1]],[[5,3,10],[10,10,5,7],7,[0,1,5,1,3],8]]] + +[[10,[8,[7,7,3],7,[5,3,8]],[1,2,10,[]],6]] +[[3,[3,[7,6,3,6,10],9,[6,9,1],[1,3,1]]],[3,[8,10,[1],[8]]],[[[1,4,4,8]],[]],[[2],[[4,8],[9]],[[5,3,5,4]],9,[2,10]]] + +[[4,1]] +[[[10,[5,5,9,2,6],[],[3,2,0,4],10],[6,[8,7,7,4]],8,[]],[3,[0,[10,10,10,1]],[0,8,4],[[4,4,10,7,1],2,[],[2]],[5,2]],[[[10,6],7,[8,6,3],10,[5,8,0,6]]],[],[[]]] + +[[[],7],[3,[5,[5,8,8,7,4],[2,6,2,10]],2,7,8],[5,[[],[1,8,1,2,5]],0,0],[]] +[[4,[3,7,0,9],8,0],[[[3,2,3],8,[10],[7]],9],[1,[[],[2,3,1],2]],[0]] + +[[[[8,2,1],8,10,10]],[[5,4,[4,9,2,6]],3],[],[10,[[3,8,7,4],8,7,[3,10,1,2,7]],[4,5],1]] +[[4,[],4,[2]]] + +[[[10,4]],[0,1,[]],[],[9,10,10,2]] +[[],[[[7,9],10,8]],[8,4,2,[[6,7]],5]] + +[[],[[[0],2,7,[8,5,6],[6]]],[[3,[0,9],1,[9]],2,[[6,5,2,7,9],[],[3,8,3,0,2]]],[[3,[],[10,2,9,2],[9,3,1]],[1,7,[6,2],[9],6]],[[[10,4,0,9],[8,8,0],10,2],[8],6,[4],3]] +[[[[5,0],6]],[10,[]]] + +[[[7,[4,6]],4,[5,7,[8,5,3,5],[2,9,5,5,5],7]]] +[[[[8,2],0,[0,8,10]],[],[8]],[[[1,10],10,1],[10,[5,1,4],6,6,0],6,[9]]] + +[[[[4,9,7,1],[8,0,10]],[[8],0],9],[4,[7,[5,10,9],8],[[],[3,4],[9,4,9],[2,9,9]]],[],[],[[3,0,[7,8,5],9,2],[[],[],[0,5,2,1,1]]]] +[[0,[],9],[],[]] + +[[5,[5,[5],[]],8,0],[3,[[]]],[6,[[7],[6],8,7,2],[[]],[],4]] +[[6,2,3],[0,[[6,1,9],[2,10,5],0],[1,0,8,[10,0,9],[]],[[0,1,5,2,2],[],1,1,6],[[4],[]]]] + +[[[0,[5,9,0,1],5,[3,6,4,7],[3,0]],[],[7,[],4],1,[7,4,8]]] +[[[[2,0],0,[],6,1],[],[]],[1,5,[[],[3,0,3]],[6,3],[]],[[[9,9,0,3],5,[]],0,[[5,3],[6,9],[3,0,4,5,3]],[[7,6,2,6],[]]]] + +[[5,[[3,5,10,7],3,[]],4,[]],[8,4,9,0],[[2,[10,2,8],[8,6,10],[9,8,0,3],[0,5,5]]],[[[6]],[6],3,4,[]]] +[[[],[],0,2],[0,[[9,1,4,8,5],2,7]]] + +[[9,6,[4,[7],[9],10,5],[8,[4,5,1,0,3],[9,6,7]]],[8]] +[[2,[5,[6,1,3,6,8]],7],[[5,3,7,7,0],10,[8,6,6],[[1,2,3,8,5],[6,5],[9],[]],6],[[5,5,[],[0,4,5,5]]],[[5,2,2],5,[8,8,[8,9,5,1]],[],[6,7,3,8]],[8,3]] + +[[9,2,[[],8,7]],[[[]],4],[[],[8,[6,1],[3],8],[[8,0,0]],3],[7,4,[[3,5,8,9,0],3],[],5]] +[[9,0,[],[2,[6,2,1,7],1],[10,2,[6,2,7],[9,2,0],[8]]],[3,9,6,[6,0]]] + +[[0,[4,[],[]],[]],[[8],[],5,0,[]],[10,[7,9],[3,5,5],[3,[3,3],[6,7,3],[4,0,2],[6]]],[5,[],10,8]] +[[1],[],[[]],[7,[[],[0,1,3],[2],[],[4,0,7,7,9]]]] + +[[[8,[2,4,7]],0,[0],[0,[],1,0,7],7],[0,8,4,4,[6]],[[],6,[[10,2,8,8],8,[7,2,4,9],1,5],[0,4,10,9]]] +[[[1,[7,6,1],8,[6],[5,9,8]],1,[[3,7,3,7,2]]],[],[8,[4,10,2],[8,[]],4,5],[[3,[5,10,1,6,10],2],10,0,[[10,2,2,5,5],9,[4,3,7,4],6]],[0,8]] + +[[[0,[],[2,5,7,8,10],[4,0,7,7]],1,2,4,7],[[7,[6,0,0]],[2,[],9,[7,0,5,7,10]],[[0,7],[],[3,10]],[1,10,8,0,[1,8,5]]]] +[[],[8,[[1,10,3]],0,[],[[],8,5,4,7]],[[0],5,5],[[4],[5,8,[6,2,8],4,[1,4,2]],2,[[7,7,3]],[6]]] + +[[8,[[6],1]],[0,8],[[7,2,[6,1],3],9,[6,[2,5],[5],[6],[6,1,0,1,10]],3,[[1,9,3,7],2,[]]]] +[[6,[]]] + +[[6,6,[5]]] +[[9,[[],[4,8,1,2,10],[2,9,6,1],2],[[5,4]],3,[4,[1,1,10,5,10],4,[0,0],[7]]],[],[2,[1,[3,1,7,1],10,3]],[[[9,7,3,4]]]] + +[[[]],[[8,[3,5,5,7,1],0],[10],0],[5,2,[[]],[2]],[]] +[[6,0,5,[[1],[6,8],3]]] + +[[10,[3,[],10]],[0],[[4,[],2,7]],[[9]],[[[0,7,5],[]],[[9,4,4],[1,5,8],[4,10,7,6]],[[8,5,4],8,[9,3,1,4,2]]]] +[[1,[1,[5,2,7],0,[6,4,8,2,4],10],[],9,[1,3]],[[7,9,7,[7,5]]],[[[0,10,6,1]],[7,[8],6]]] + +[[[0]],[[9,10],[9],[2,4,9,3],[[],[],1,7],10]] +[[[[0,7,4,7,7],[3,6],[5],[1]],[],[8,9,[2,5],[10,3,10],[10,4]]],[[[9,7,1,6,2],3,0,[7],1]],[[7,[4,3,6,6,9]]],[[],[],[[],[8,8,2],3]],[[9,[8,2,5,4],[8,9]],[]]] + +[[[],[4,[7,5,10],9,6,10],4,3],[]] +[[6,4]] + +[[[[],0,[8,8],3,[]],4,[4,[9],1],[[5,7,6,1],4,5,7,[]]],[1,5,1,[10],[]]] +[[[[3,8,9,2,7],[3,0],2],[2,[8,0,4],2,5],[[8,0,6,0,2],[0,4],4,[5,10]]],[2,[]],[[1,[5,9,9,1],[10,7,2,10],3]]] + +[[],[],[8,[[6,1]],9,[1,3,2],8],[5,2,[[7,7,8],[9,5,0],[10,4,7],2,[0]],7,5]] +[[0,1,10],[4,3,[0,[5,4],4,5,2],[7,7,8],[[6,8,1,1,4],[6,3]]],[[[9,7,7,5,0]],6,[[5,0],[4,7,0],[5],9,8],[],[1,[8,8,9],[8]]],[[[7,8],6]],[]] + +[[[[9,9,7],7,1,4,[9]],[],[4,8,6,[7,4,4,4],0]],[[2,[3,6,2],[0,8,0],[9,3],2]],[[[8,10,1],[9,7,8],[0,8,4,7,7],[0,7,7],5]]] +[[6,[[]],0,[[],[2,3],1],7],[],[0],[2,[5,0,[2,5,8,6,2],3],[10,[0,10,5],[9,7,3,7,10],[]],[9]]] + +[[1],[[[],[5,4,4,8,8],6,3],6,[8,0],1]] +[[[1,9],1],[]] + +[[[[0,6,6],[],0,3,[4,4]],[[10]]],[[[0]],8,0,0,9],[0,10,[7,[3,1,10],5,6,[1]],2,1],[[5,6],[[10,2,9,5]],6,[]]] +[[],[],[[]],[[[6],[2,0,7],0,10,5],1]] + +[[[[8,0,3,6,10],[4,8],5,9,[7]],[[8],[3,10,2,10],[4,5,4,7],5,[]],0,7],[2],[3],[[5,6,3,4],[[2,0,3],[6,0,9,0],3,[2,5,4,1,6]],[4,[3,4,10,1],1,0],[7,[5,2]],3],[8,6]] +[[3,9],[5,[9,1,[7,1,1,8,7]],[6,[2],[4,8,4,2,10],[6,4,5,0],[]]],[[[1,2,3],[8,6,9]],7]] + +[[[0,7,2,4,0]],[6,2,7,10,6]] +[[0,1],[2],[6]] + +[[[[5]],4,2]] +[[[],7],[[[4,1],4,[2,0,3]],5],[[8],[1],2,[9,8,9,0,[2,3,9]],[9,[10,8,2,4,0],9,[6,0,2],6]],[[[5,5],[],1,5,[10,0,7,4,10]]],[8,7,3]] + +[[[[1,1,1,9,2],[1,9,7,4,4],[],[0]],[2,[5,9,4,4],[7,5]],4,7],[1,7,5,[[],2,5]]] +[[2,[[7,6,4],[3,5,3,10,4],5,[8]],8,4,3],[1,5],[],[2,[[0],[4,5]],[8,[9,8]],[8,[]],0]] + +[[5,[[3,8,7],[10,9,4,3],[1,9,9,4],4],6],[[3,1,0],[[2],6]],[[1],0,[[4,3,1,2,0]],7],[]] +[[9],[],[0,10,0],[1,5,[[8,6],[9,8,0,9],6,[0,10,1,9]],[[3],[2]],0]] + +[[9]] +[[6,[[],2,3,10],7,8],[],[[3,9,0],5,[[4,0]],2],[[],2,3,[[2,6,0,5],10,6,[1,0,0,0],2],1]] + +[[],[3,4,[[],[],[],[]]],[3,[8],[],8,[8,[0,10,0],2,3]],[[2,[8,7,3,5],[0,10,6]],5,[[7,10,6],[3,7,9,7],5,[8,4,2],9],5],[[0,[8,0],5,[4,6,4,6]]]] +[[5],[4,1,[[],7,[6,0,6,9]]],[[[6,3,3,9,8]],[],0,[[3,3],[8,7,8]]]] + +[[[[10,4],[0,7,7,9],[10,6,0],[2,7,1,5,3],4],[4,[4],[1,8,0,2],[5,8,4],7],[9,10,6],3,5],[[[1,10,3,10,9]],4,[3],[7,0,3]],[7,[],[[2,5,1,3]],[7,[2,2,4]],[[4,6,4,10],2,[6,7,8,6],[3,7,3,2,0],1]],[3,2,[[2,3,10,2,0],9,1,[]]]] +[[9],[2,3,[[],9]],[[2,10],[]],[9,[2,[4]],7,[6,7,[10],[10,8,2],0]]] + +[[1],[[6],4,0,[7,4,6],5]] +[[[[6,6,9],[1,2,2],[5],6,[8,8,8]],3],[[[],2,0],[],[],3,[[5,0,0],[2,0,1,5],0,[9]]],[[[],9,7],3,9]] + +[[5,9,[],9,4],[[[9,8],0,2],8,5,[7,7,10,2]]] +[[[5]],[7,4,6,7],[],[[2,[3,5],[7,8],0],[]],[]] + +[[[[5,9,9,8]],[8,[8,1],8],6],[[8,[4],8,8,[8,5,6]],[8,[],2]],[0,4,6],[],[7,[2],[4,5,[10,8],[1,6,3]],4,[10,[7],3,7,3]]] +[[0,[2],[],[5,[2,7,4,4,0],7,4]]] + +[[10],[[[1,3,6,10],2,1],0,[],[3,[8,5],[3],8]],[0,[2,[],4,[1,10],[6,1,6,6,8]],[3,[0,8,7,3],10,9,5],6],[7]] +[[9,[]]] + +[[],[[9,[],1],[9,[0,2,0,7,8],8,10,[0,6,3,5,0]],[10]],[7,1,[[6,2,3,0],0,5,4],10,[[1],6,[9,4,7,3],[6]]],[0,10,[6,[8]],5,[2,2]],[9,1,2]] +[[2,6,5,[2,7,[7,6,8,4,0]],[[3,0],3,[6,7],[10],4]]] + +[[[],7,10,[[],7],3],[8],[[[],[7,8,0,0],[2,9,5,3,2],0],6,3]] +[[[[1,1,9,2,1],[],7,[5,8]],[4,[8,4,1],9],[[4,4,6],[5,8,2],[5],[5,7,0]],7,[0,3,[10],[],[4,2,0]]],[],[],[1]] + +[[],[0],[[[8,0,7],5],0,[10,6,9,10,5],10,[]]] +[[[0,[6,1,6,10],[10,3,7,3],[1,4,9,3,8],[5,9]],0,[10],8,10],[],[7,3,[5],1]] + +[[2,6],[8,0,[[10,8,7],[],[],[7]]],[[8,4],[],9,[7],2],[0,6],[[5,9],[2],[6,10,[3,2,2,6,0]],7,[[2,6,0,8,5],[],[9,4,10],2]]] +[[[2,[],0],[[1,10,7,0,5],[7,9,7,2,5]]],[[[0,5,7,2,5],4,[],2,4],9,2,[]]] + +[[[[],8,6],[[5,7,0,8],1,10,9,[4,4,7,7]],6,[[10]],[]],[[10,3,[5,7,9,2,7]],[[10,0],5],[7,10,9],4],[],[[0,0],6],[]] +[[],[[[0],1,5],5],[[[6,2,4],0,[],6,5],[[7,1,8,1],[9,9,10,5,5],10,1,1],[3,10,10,10],2],[],[1]] + +[[[],[[5,4,1,5],0,[],6],[6]],[4,0],[]] +[[[[],2,5,2,3]],[[[6,5]],[]],[[5,0]],[[],6,[[4],10,[0,7,9]]],[]] + +[[[3,7,[8,4,7,6,3],[5,1,7,6],[2]],8,3,[[0],1,[10,2,6,3,8],[9]],[5,6,1,[],[9,6,7]]],[[10,7,6,[7],[1,3,4,2,4]],[7,[5,2,5,9,0],[0,1],[5,10,6]]],[[[6,2,0],6,3,9,[3,3]],[7,8]],[0,1,[[5,9,6]],[[9,8,10,0],[6,3,7,8],8,5]]] +[[],[[9,2,[0],[7,4,9,2],7],[[],[1,4,5,4],[2,10,8],0,5],1,3,[[7],9,9,[5,7]]],[[],4,[6,3,[3,0,1,6],5],[[],3]],[],[6,[1,[3,10,9,10,10],8,5,[4,3]],[10,4],[9]]] + +[[[[7,2,3]]],[6]] +[[[2,[3],[]],4,4,8]] + +[[0,[10,6,[6],4,4]],[6],[[6,[8,4,6,7],7,7,0],9,[],10],[[[5,5,10]],9,[[10,6,5,6]]]] +[[6,2,1,10]] + +[3,6,5,10] +[3,6,5,10,10] + +[[4],[1,[10,[2,9,9,1,6],[],7,[9,3,8,9,0]],[10,[9,7,2,2,3],[0,2,3],5]],[[10,[10],[9,2]],6,7,[4,[1],[]],[[],10,[9,7,5,4],[1,4,3,3,4]]],[]] +[[10,[9,[],0],4,[[],10],[0,0,6]],[],[5,[],8,[7,7,[4,7,0,9,6],5,1]],[],[[7,9],[[],5,5,[]]]] + +[[[],0,5,[3,[5,1,1]],5],[[4,[6,5,2],[0,9,7,0],1,1],[],[1,10],4,10],[9,[1,9,9],[10],[[5],[5,9,0],[2,9,5],[7,2,3],1]]] +[[4,10],[5],[[[2,0,7],5,[0],[],[4,10,3]],1,[[9,4,4],6,[8],[7],0],[],[1,1,[8,4,5,7],[3]]],[7,7,[[],[1,1]],2,7],[9,[[2,6,9],[6,5,6,2,4],[4,8,10],[3,0,2,9,10],8],6,3,[[7,2,7],[3],[4,3,10,1,3],[5,2,10,4,5]]]] + +[[[7,[4,7],[8,8,2],[6,3,9]],[[1],0,[10,3,10,7],[9,2,9,4],1]]] +[[],[[1]]] + +[[[[4,1,10,4],2],[],[6,[]],5],[[[5,3,4,8],10,[]],[10,4,[0,7,9]],[],7],[[],4],[3,4,[],7]] +[[[0,[2,5,1,5],6,[]]]] + +[[[3]],[],[7,[[],[1,7,7,8]],[],[1,8]]] +[[[0,[5,5,9,5],1,5]],[],[[[7,4,1,2,3],3,[],3],2,[[6,0,4],[0]],[[4,4,2,6,6]],[[9,0]]]] + +[[4,4,8],[0]] +[[6,5]] + +[[5,9,[[5,5,3,3],[],[8,5,0,4,1],1,2]],[5,1,[3,4]],[8],[[[9],8,8,[8,0,2,3,8]],[8,[9],4,[7,1,0]],8,[]]] +[[],[0],[],[4,4,[4,6,[10,1,1,0]],5,[3,6,[2,1,2,1],[5,8,7,10]]]] + +[[7],[[10,[4,3,6],[6,9,10]],8,2,10]] +[[3,2],[[7,[10,2,5,1],[2,7,0,0],[],[0,10,1,3]],9,7]] + +[[[[7,7],[0,9,4,2],[7,0,2,9,6],2],2]] +[[[[5,5,9]],[[7,4,4],[9,6]],6],[6,[8,1,6],3,7,4],[5,[6]],[],[[0,5],[8,1,3,4,9],[[],[3,4,9,10],6],[10]]] + +[[6,[1,[6],6]]] +[[6,[0,5],[[5,6,4,7],7]]] + +[[],[[5,8],3,0],[[9],9,[5],[[],[3,2,4,4],1,[3,6,8,7,1]]],[[[],0,1],[3,5,[4,10,4]],[],[[2,2,5],[5,10],[6,6,10,0,7],[10,10,5,3,10]],[[1],9,5,[3,3,8,1,5],[5,4,5]]]] +[[[[10,4,3,7,7],[3,6,6],[],[3]]],[5],[8,10,[7,3,5],7]] + +[[9,7],[7],[]] +[[5,[[8,8,8,3,9],5],5]] + +[[1],[[3,[5,7],[3,4],[6,4]]],[[],[[6,7,5,8]]]] +[[[[6,8],[],[]],0,[4,[]],1],[]] + +[[],[[5,[2,9,0],3],1,[[]],[4,10,[]]],[[0,3,[4,1],[5,9,0],2],1,[]],[0],[[[4],5,6,4,3],3]] +[[7,[4,[9,6,1,3]],[[9]]],[[6,[2,1,10,2],[9],8],[8,6],[[5,2,8,10,9],[8,8,3,0,5],[5,10,8,3]],[],8]] + +[[],[3,[],5]] +[[2,[],[[3,10,6,10],4]],[],[0,[10,8,[4,8]],[8,3,[9,8,3],[3,6],[10,9,9,6]]],[[[4],2,2,4],9],[[],[[],5,[],6]]] + +[] +[[],[[4],4],[[8],6],[0,1,3]] + +[[[3,10,3,[9,3,9,9,4],8],[3,[]],[[7,8,6,0]],[[],[10,1]]]] +[[0,3,10,2],[[[1],10],[3,0,4],9,[[4,8,6,7],[0,8,5],[],[9,5,3,1,4]]],[0,5,8,2],[2,[]],[]] + +[[[1,[]]]] +[[[],5,2],[],[[[8],[3,4,1,7],[0,7,10],7,[]],1,1]] + +[[[[4],[0,9,7,6,0]],[[1,7,7,1,10],[],5]],[[0,[7,9,0,9,9],[3,10,6]],10,[[1,6],[10],[10],[6,2,2,2,4]]],[[]]] +[[[4,[],0,[2,7,8,2,3]],8,[9,0,[1,9,1,2]]],[],[8,[3,2,0,[1,1,7,0]],[8,9,3,[10,5,1,5,4],[9,3]],[6,8,4,[3,3,4],[5,2,3]],1],[[3],5,[],[6,[2,4,9],[2,3],2,[]]]] + +[[0,7,[10,3],10]] +[[],[]] + +[[[6,[6,6,5,6],[3],[9]]],[4],[3,[]],[[6,8,[3,0,6,7]],[5,[7,4,5,6],3,[0,7,2,8,3]]],[[10,7,10,2,3],[2,1,[7,2,10,1,3]]]] +[[9],[[],3,0],[8,[10,[9],10]]] + +[[10,[[5,9],10,[10],[10,7],4]],[0],[0,[9,[5],[5,6]]],[3]] +[[4],[[[7,4]],0,6,2],[9,[4,2,5,[4,10,3,10]],[4,10,[4,0,5,1,4],1,1],10],[]] + +[[[4,[9],8],[7,5],[],[[8],[],[6,9,10,4]],2],[],[],[],[[[3,10,0,3,0],[8],5,8],10]] +[[[[1,2,1],10,[2,9]]],[4,[[6,0,4,3],[10,2],[],2,1],[[3,3,10,0,9],[3,7,2,5],[5,9]],10]] + +[[[[8],[3,2,9,8,6]],[10,[3],5]]] +[[],[[[8,3,10]]],[[4,[1,5,3,6,2],[3,6,5,8,7],7],0,[6,[10,4,9,8,9]],[]]] + +[[9,[6],0,[9,[8,4,5,7]],[9]],[7,[[9,9,10],[9,4,0]]],[[4,[6,1,5,6]],[[6,7,0],[]],0,[[3,1,10,9,10],[0,6,6,10],6,[6,1,3,9,9],[9,0,10]]]] +[[0,[10],8],[]] + +[[0],[7,[[7,7,9],6],2,[],3]] +[[[7,6,5,[9],[8,1,0,3]]],[4,[],[6,4,[7,6]],6],[],[[],0,9,8,[[8,5],6,1,[1,2]]],[[],4]] + +[[4,[8,[5,1,7,6,2],6,[7]]],[[8,8,4],[9,5,8]]] +[[5,[[10],2,[8,7,7,0],[9,0,7,5],3],6],[],[4,3,[]]] + +[[2,3,7,1],[9,4,[],[[8,2,9,0,3],[]],[[6]]],[]] +[[2,[[5,2,10,8],4]]] + +[[[[3,7,0,8,3],4,10,[4],4]],[[[2,4],6,6,3],[[5,2,8],[6,3,6,6],9,10],4,[1,9,[],[1,2,4,8],2],9],[6,[[6],[2,9,8,7],1,[10,10,5,0]],[10,7,[8,0,2,6],10,3],1,3]] +[[8,[7,[4,10,6,5],1,[]]],[[[0,0,2,9]],[10,2,0,[10,9,7,9,1],4],[5]],[[3,[10,5,1],1]]] + +[[]] +[[],[5],[0,9],[8,[[5],10,2],7,[[9,6,5],[9,6,4,1]]],[[[],[8,10,0,2],[0,9,3,7,2],3,[2,7,1,6]],2,[],[],3]] + +[[[3,4,[7,2,4]],7,[1,6,[7]],6],[1,[[1],8,8],[1,1]],[[[5,3],[]],[1],[[4,2,1],3,0],6,0],[[[],[2,0,8,0]],5,[]]] +[[],[[4,9],[8,3,[]]],[7,1,8,0]] + +[[[[],9]],[],[7,2,10,1,[[6],6,[],3,[]]],[]] +[[[[1,10]],6,[],5],[4],[1,[[1],2,[5,4,4,4,4],2],[4,4,[2,2,8],8]],[1,[],6,2,1],[[[2],[10,8,6],[6,3]],3,1,[9,3,10,9,3]]] + +[[5,6,8,3],[9]] +[[[],4],[[[],2,10],[5,[9,9,3],0,[]],4,3,[0,9]]] + +[[10,3,0,[[7],8,3,7,5]],[[[6,9],[3,5],2],2,[[7,7,10],[5]],0],[[8,6,4,10,[7,10,5]]],[[4,[],[10,2,7,10,3],[10,3,7]],3,7,7],[[[2,0,2,0],[5,8,10,6,4],[3,10,10,0],[4,2,6,1]],10,3,[6]]] +[[[[1],[],5,[]]],[4,8,3]] + +[[10,[8,5]],[1,[0,4,[0]],1,3,[[0]]],[1,4,[[3,4,0,1,3],9],[10]],[],[10,[],[1,8,1,[5,2,10],1],[8,3,[1,4,7,1],1,[8]],[0,3,[8,5,0,3,0],[]]]] +[[10,0,[7,[5,2,5,7],2,3,8]],[9,[[4,9,10,3],10,[],[1,1,5,2,2],[1,2]],3,[[9,1,9]],[[8,8],8]],[[5,8,[0,1,1],[7,7]],1,[3,[2,1],[10]],[]],[[10],3,[3,1,5],[4,[7],[2],2,[7,10,10]]]] + +[[],[5,10,[[1,2,6,0],[2,9]],[2,[9,10,6],[2,7,4]]]] +[[7,[[2,9,4,10,5],6],[[4],9,[0,4,3,5],0,0],4]] + +[[[],[4,[1,6,7,7,3],[7,5,2,4],[5,10,1,2,7],[]]]] +[[[8],[3],8,4]] + +[[2,8,0],[[]],[],[[]],[1,[2]]] +[[[4,0,[9,3,2,5,3],[1,4],[2,0]],0,0,[[7,9],[3,9,1,5,9]]],[[[6,0,9],[10,5,0,5],0,[1],[5]],8,10],[],[6,[10,1,[9,9,6,4],[8,8,7,6,0]],[[6,1,9,0]]]] + +[[2,5,[[],2],[]],[6,[],1,1],[[7,8,3,8,5]],[[2,3],1,8,7],[]] +[[[[],[],6,6]],[[7,1]]] + +[[9,6,[9],4],[],[],[[[],3,6],[10],[1,[9,9,1,6,6],[],9,6]]] +[[7,5]] + +[[[2,[0,0],8,7,[7,6]],5,[[9,7,7,0,3]]],[[0,7,4]],[7],[]] +[[[4,2,4,9]]] + +[[5,2,[[10,8,8,1],1,8,4],0,[[9,8,4,4],[4,1],4]],[],[1]] +[[4,7,[[7],0,8,0,1],[6],0],[4,4,9,[[1,3,0,5],[],[3,5,0,3,3]],[6,[9,2,7,9]]],[9],[8,6,7],[[10,[3,2,9]]]] + +[[[[8,7,7,9,4]]]] +[[2,[3,[9,8,5,6,2],[3,3,6,2]],8],[],[3,8],[[[0,0,2],6,3,7],9,[[3,8,8,0],[6,8],[5,9,6],0,7]]] + +[[10],[[[8],2,[8]],[],7],[[2,2,[4,6]],5,6],[[],[[],3],[[9],3]],[3]] +[[[[3,6,7,0],[9,8,8,3,0],5],[10],6]] + +[[[4,[6,3,10,5],5,9,4]]] +[[[[7,0,8,3],10],[[1,4]]],[4,4,[[5,2,6],[3,1,6],[10],[]],[7,3,[],[5],[7,1]],[7,[],1,9,[7]]],[7,[]]] + +[[0,[6,[3,3,6,7,5],[6,5]]],[[9],[]],[[4,[7,10,7],[7,5],8,[0,2,2,3,6]],0,1,5,2],[[8,8,[9,8,4],8,6],0,[[9,6,7,7,5],7]],[]] +[[4,5,4,[[3,2]],[7,5,[9],0]],[[],[],3],[[3,9,[7,3,8,6],[7,10,10]],0,[[0,5],[2],[]]],[]] + +[[],[[[4],9,7],9,[[6,9,10],[8]]],[[1,[1,10,6,4],[4,9,6],[5,8,6,5,6],5],[0,[2],9],5,4,[7,2,10]],[9,4,2]] +[[2,[[1,0,0],4,2,[10,0,9,5,3]],[8,1,2,[6,4],1]]] + +[[2,2],[[4,[1,7,7],[4,2]],[4,9,[10,5,10,1],[3]],[5,[],9,[7],3]],[[],[9]]] +[[[[7]],[2],[2,[3,2],[0],9],10,5],[4,3,2,[[7]],3],[[[7,2,4],0,0,[3,8]],[]],[[],0,[],[[],[5,0,0],[0,4,6],3,2]]] + +[[],[[2,[0,1,1],10],[2,6,4,[0]]],[6,9,[[0,0,10,7,5],[],[10],[8,7,10,10]],7],[[2]]] +[[10,[[4,6,0,5]],9,[[3,1,0,9],5,[6,7],7],[[8,9,2,7],[4,6]]],[[8],1]] + +[[[],[[10,3],5,[6,10,2,8]]]] +[[0,9,6]] + +[[9,6,0],[[],5,10,10],[],[3,1,[[4,9,7,6,10],10],[[9,6,4,5,2]],6],[10,8,5]] +[[2,8],[[],[]]] + +[[6],[0,[4,[9,9,0,0,7],[9,10],[7]],6,1],[[6],9,[0,8,[3,5]]],[4],[[[0,9,2,4,1],3,5],3,[3],[7],[[6,0,1],[2],[7,1,7,5,5]]]] +[[9,7],[7,5,[[],[2,0,9,0,0],9,[8,1,3,10]],2]] + +[[],[[5],[1,[1,2,6,10,1]],[]],[[],1,8,[[8,7],[7],[4,4,7],[4,9,8]],[[2,6,4],4]]] +[[6,[10],1],[[9,8,[]],[1,[7,7,1,1,2]],5,[[5,8,9],[10,6,10,6],0,3,9],[7,2,[1,5]]],[4],[3,[2,[8,6,7,2],7]]] + +[[9],[8,[[3,0,1,5,5],9],0,6],[1,[],1],[8,3,6,[[8,9],[10,9,6,8,4],[]]],[[],[3,5,1],2,6]] +[[4,[]],[5],[[],[]]] + +[[5],[[[],[2,2]],4],[5,[[],[9,3,0,1,4],[0,2,1]],[[3],[8,4,10],[]]],[]] +[[10,[6,10,3,7],[0],3,4]] + +[[1,[[5]],[4,1,[]],10,[4,[2,6,5,4,2]]]] +[[[],5,[],5],[8,3,4,6,7],[1,[]]]