advent-of-code

Perserverance, or the lack thereof

git clone git://git.shimmy1996.com/advent-of-code.git
commit aa20bd9fb6a9b0525ebe17297b1c6e8c92eea545
parent 1ce671e08a6511e52ac4bad02a4e49af4906a0c5
Author: Shimmy Xu <shimmy.xu@shimmy1996.com>
Date:   Tue, 13 Dec 2022 20:37:02 -0500

Add 2022 day 13

Diffstat:
A2022/day13/Cargo.toml | 8++++++++
A2022/day13/input.txt | 449+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
A2022/day13/src/main.rs | 144+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
3 files changed, 601 insertions(+), 0 deletions(-)
diff --git a/2022/day13/Cargo.toml b/2022/day13/Cargo.toml
@@ -0,0 +1,8 @@
+[package]
+name = "day13"
+version = "0.1.0"
+edition = "2021"
+
+# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
+
+[dependencies]
diff --git a/2022/day13/input.txt b/2022/day13/input.txt
@@ -0,0 +1,449 @@
+[[[[8,6,7],9,7,10],[[2,2,4],0,[4,9,10],[4,8,1,1],9],5],[8,8,[5,7],1,3],[],[6,[1,[0,1],[6,10,9]]],[]]
+[[[6,7,0,[0,3,9],8],[9,[],[10,0,5,6,8],[1,8,1],[]],[],[[0,6],5,[5,8,9],1]],[0,[10],[],8,[[5],6,10,10,2]],[[1,6,[6,0,4],[9,8],[5,5]]],[3,1,5,6]]
+
+[[4,[[]]],[],[[1]],[]]
+[[5,[[7,3,2,4]],3,[]],[[[4,5,3],6,10,[5,3,3],5],[[],10,1],3,[9,[8,9,2]]],[1],[3,[[5,3,9,5],[8,6,2,7]],[],2,2]]
+
+[[[2,0,[8],7,[5]]],[],[[[],0,0,[]],[[1,2,10,5],[10],[6],1,1]],[0,[],[],9],[]]
+[[[6,6,[5,5,2],[2],[7,2,10,8]]],[[9,10,[10,0,2,4]],[[4,10,9],[1],4]]]
+
+[[[[],1],5,1],[[0],2,[[]]]]
+[[0,[[7,4,0],5,2,4,[]]],[6,5],[[[2],7,6,[3,9,3,0,3]],1,[[0,1,5,10],1,[]]],[2,[[4,5,10,4,3],7,6,[2,5,4],[8,9,7,2,7]],7,[[2,9,10,3,10],8],5]]
+
+[[9,[3,[9,8,10,5],4,[8],[8,7,0,5]],6],[],[5]]
+[[[[10,4,8],[1,6,8,3]]],[4,4,7],[[[9,2,6],[2,8],[5,9,0],2,0],5],[]]
+
+[[[0,[9,3,1],[8,10,5,0,0]],4,[[0,8,8,7,0],[6,10],[5]]],[[8,[4,8,3,1],3]],[2,[],7,[0,5]]]
+[[],[[8,[10,1,4,6,4],[0]],10,[5],[],[[],10]],[3,[],8]]
+
+[[[7,7,9,[8,9,6,2,3],[10,2]],4],[[[1,7,7,3],[4,7,6]],[[1,5,4,2,7],6,4,[1,8,6,4,6],6],6]]
+[[],[],[[],[],[],[[3,3,8,1,3],5,[9],[6,0,1]],[[8,4,10,1]]],[7,10,[[],6,9,[8,2],[4,3,5,9,10]]],[7]]
+
+[[[5,[],8],[2,10],[3,5],7,[2,0,9,1,4]],[[[3],[9,7,9],[9,6,2,10],[0]],3],[],[[10,6,[10,5,8,5,5],5],0,7],[10,9,2]]
+[[],[2,6,2,[2,[4,1,6,10,4],7,6],[[0,2,0,4,9],[5,3],7,9]],[[[9,7,1,9]],[[],1],[]]]
+
+[[4,[8,[],[5,7,2],7,7],[[7,10],2,1,4,5],[3,[10],7,[],1],9],[[]]]
+[[[9,[9,2],3,[],[0,5,10]],9,9,3]]
+
+[[[],10],[9,3,[[8,5],[],[],9,[]],9,4],[9,4],[[2,1,[9,10,2],[2,9,9]],0],[2]]
+[[4,3],[0,8,2,5,9]]
+
+[[7],[1,8,[[],[],[9,7,5,3,8],[10,3,7]],[7],1],[[]]]
+[[[[8,10,3]]],[],[5,[[1,9,4,0],[]],[9,[10,4,5],[4,0,6]],5],[[10,4],[]],[0,[1,6]]]
+
+[[[[10,2,4,8,1],10],[[],[1],[8],6,[10,9,7]],10,[[7],9,[5,7]]],[10,[[9,9,1],[]]],[[5,7,[8,0,10],[9,0,8,0]],[[8,9,3,5],1,[2,10,3],9],3,[0,5,[6]]],[2,2,8],[[],[[8,2,7,3]],7,[],5]]
+[[9,[1,2]],[4],[4,1,1,[],1]]
+
+[[[10,9,[5,7],8],[[8,10,0,4,0]],4,[]]]
+[[1,7,[],5],[],[9],[]]
+
+[[[5,[3,6,8,4],[10,3,0,6],[9],[2,10,4,2]],[1,[7,3]],[[1,2],6,3],[[3,3,10],[10,2],8,[4,8,6,0],[9,6,0,0]]],[2,5,5,3,10],[]]
+[[[7,[8,6,1,2,1],9,[6,7,7]],[[0,4],[5,0,5],[2,3]],[[],[1,8,3,9,2],[]],0]]
+
+[[10,9,5,6,[]],[6,9,[[5,4,7],0,[7,10],[3,5,1,0]],[[9]]],[[1,[6]]]]
+[[[4,3]],[1,1],[[],8,1,[],6]]
+
+[[[1],6,[],[[4]]],[],[[6],[3,3,3,7],[[9,8],7,[7,0]],[[6],7],6]]
+[[[6,[7,7,0],8,[0,5,3]],[[4],4,[1],5,[10]]],[3,[10,1],[[1,7,6,5],0],7],[[[3,6,8]],5,8,2,[[1,2,10],[2,10,0,2,8],8,8,[3]]],[],[]]
+
+[[],[[[0,5,4,0,1],1],[]],[1,1,2],[10,[0,10],2,6]]
+[[],[[[9],3,[6,0],[10,3]],[5,2,[9,8,4,5]],[0],[5]]]
+
+[[],[[[2,2,6],[8,10]],[4,[0,0,8],8],4,10],[[[7],[8,10,1],6,[8]]],[0,8],[[[0,0,10,5]],[[9,5,4]],[9,[],[5,3,3],1,[3,8,3,6,1]],3]]
+[[4,[[7,3,3,5,7]],7],[[[2,1],3,[8,2,3,2,1]],[10,[0,8,5,8,3],3,9,3],4],[],[4,[8,[0,5,2,3],[]]],[[[3],10],5]]
+
+[[[[10,7,4,7,6],[7,5],4,[2,1,2,3],[5,3,5,3]],[[9,3,3,3,0],9,[4,5,6,3,3],5,[7]]],[[9]]]
+[[[0,[],3],1,[4],0],[7,6]]
+
+[[1],[[1],5,4,6,6]]
+[[[0,5,[5,1,3,0]],[10,[0,2,10],[9,10,5],[9,1]],7,[7,3,[6,8]],1],[[]],[9,[8,[0,6,7,6,0],[9,4,0,8,8],7,7],10,[[],[],7,[0,6]],[1]],[[[],1,4,[3,5],7],7]]
+
+[[[],[1,4,[5,4,5,1],[6,8,2,2],4],[9],5,10],[[[8]]],[5],[[]]]
+[[[]],[7,2],[[6,[10,4,1,5],3]],[[],9,[2,[7,7,8,1],[5,7],5,[9,4,5,10]]],[[0,[7,7],[4,3,3,5,10],4,[]],4,[8]]]
+
+[[[2,[9,8,10],[2,5,9]],6]]
+[[5,[],3,[3],0]]
+
+[[[[],[10],0],[9,[6,1],[3,4,5],[1,3,7,8,5]],2],[1,8,7],[[[6],[8],[2,0],7]],[],[7,9,0,[],[]]]
+[[[10,8,4]],[[[],2,2,[]],6,0]]
+
+[[7,[[5,5,5],[3],[3,0,10],[6,4,10]],2],[],[],[1],[[2],10]]
+[[[],6]]
+
+[[[],9,[5],0],[],[6]]
+[[6,[],[0,4,2,6]],[[9,[1],[8,6,1,7,9],3],10,[[],5,[8,6,0,7,10],3,0],3,[3,5,[6,5]]],[[[3],[0],10],[[0],[]]],[]]
+
+[[10,9,10],[8,4,[3,5]]]
+[[[],[[4,7,3],[8,1,1],4,[10,5],3]],[]]
+
+[[],[],[[6,[4],[8,9,9,6,2],[5,1,8,6],8],[1]],[[]]]
+[[[4,10,9,[1,1,6,5,8],[8,10,8,6]],10],[[[10,0,8,7,4],[2,8,5],[4,6,5,2],9,[10]],[2],[9,[8],7,2],9,[2,5]]]
+
+[[2,[5,[3,7,5,7],[8],[1],9],6,[[4,0,2,7,0],[6,6,1,4,0],0],[5,[8,6,9,8,2],[6,0]]],[2,8,[[5,6,9],7,9,[9]],3,4],[],[[1,[6,8,2,5]]],[1,10]]
+[[[[7,7,7],0],[5,[0],6,0,[7,3,9]],[7,2]],[[[3,9,5,2,5],[2,9]]]]
+
+[[7,[3,2,9,[6]],[3,[0,5],[3,6,8,2,8],[6,0,5,5,5],[]]],[6,10,[8],2],[]]
+[[[8,2,9,[1],2],10],[],[9,[0,1,[10,5]],3,2,3],[3],[[0],2]]
+
+[[6,9,3],[],[5,[[],2,[1],[1,4],3],[[6,8,10,7,8],[],[9,6,9,2,10],[8,10]]],[[8,6],[0],9]]
+[[],[[[8],[9,1],0,[6],1],0,5,1,[[]]],[9,6],[10,1,4,[],1],[10]]
+
+[[2,[],[]],[[[3,2,8],7,10,10],[[],[],[0,8],[8,6,7,6,3]],9,[10,[2,3,9],0]],[4,10,[],7]]
+[[2,[5,[4,5],1,[5,3,6,0,10]]],[[],[0,10,[4],[]],6,4,[6,[0,7,1],[3,8],[4,9,4,2]]]]
+
+[[[[0]],[3,[0,10],[4],0],0,0,[[1],6,[0,2,4,8,6]]],[[]],[[],1]]
+[[],[8,[3,7,[10,10,2,4],2,[3]]],[4,[],[1],[[6,7,6],9]],[[[3,7],[0,6],1,[],[3,4,10,6,4]]]]
+
+[[[],1],[[[1]],10,[[9,0,8],[5,2,6,9,0],1,[7,2,4,3]],6],[[9,7]],[1,0,4,1],[5,4,[4,2,[4,3],[],[4,9,1]]]]
+[[[[],4,9],[[2,3,3,3],6,0,[]],[3,5,[8,10,0],6,[1,8]],[[],8,7],7]]
+
+[[[[7,6,3,2,5],[0,2,8],10,[6,6]]],[[3,1,1,9],9,3],[[7,5],4],[4,3,3,1,10],[[]]]
+[[[0,[5],3,[7,10,2]],[[3,2,5,7,5],6],[6,[5,3],[],[0,3,7,4,0],4],[[],0]]]
+
+[[[10,[0],5],[]],[[1,[]],[[]],[0,[6,1,0,2,4],3,9]],[9,[[10,9,1]],7,8],[[[9,0,2],3,10],10,8]]
+[[[[7,3,6]]],[7,6,[5,2]],[[[],2,[],4],[[],[10]]]]
+
+[[[[1,9,6,2]]],[[],[[],[6,0,8,8,2],4],[],1,[10]],[],[[[2,5,6,8],9,[9,8,7],[0,0,5,9,9],0]]]
+[[8,[4,9,9],[[],[2,4],9]],[9],[[],5,[[0,0,8,0,4],2,[2,2],4]],[1,[[3,6],[7,4],[4],8],2,[6,3,[10],[7,0,4,1,4]],4],[[5,5,3],1,[1],4,[10,[3,9,6],[],6]]]
+
+[[[4,[5,10,6,7,6],10,5,6],[4],[],2,5],[],[]]
+[[[0,[8,9,5,0],4]],[[8,2,7,1,[2,3,4]],4,[]]]
+
+[[[[1,5,3,8]],6,8,[2,0,9,[6],[]]],[],[4,5],[2,7,6],[]]
+[[],[[[6,7,6,0,2],10,9,4],3,5,[],[]],[],[[[10,8,5]]],[0,[],[[2,3,10],9]]]
+
+[[[7,0,[4,3,1,8],4],3]]
+[[4,[8,0]],[4,[[1,7],2,[7,5,9]],10,[[8,7,5,8,4],6,4,[],3],[9,[8,8,5],10,8,[]]],[[[4,2,2]]],[1,[9,5,[3,9,2,7],[10,1,6,8],[4,5]],[4,[4],[8,4,2,1]],5,1],[]]
+
+[[[[9,1,5,0,3],4,0,5],[1,0,1],[],0,2]]
+[[0,9,6,[]],[[4,5,[],6,[10,6,0]],6,5],[[[3,3,7],7]],[10],[]]
+
+[[[]],[[3,9],[[7,8,6,9],[]],[[3,5,10,2,7],[9,3,1,3,4],[],7],7,[2,[0,1,0],[10],4]]]
+[[0,1],[[7,9,[10,9],[5,7,10,6,5]],[],[],2],[1],[[[5,5],[8,9,3,10]],[[2,6,9,6]]],[[10,[6]],5,[1,7,9],[7,7],3]]
+
+[[2],[8,7,[10,[7,6]],[[4,9],8],1],[[6,[],1],[[],1,8,[3,6]]],[[[10,6,2,2,9],[1],[8,10,0,9],9,0],0,10,[],[[6,5,6,2],[],[3,3],0]],[[10,4,6,7],[9],[],10,[9,6]]]
+[[[0,10,6],3]]
+
+[[4,7,[2],5],[[[8,8,6,6,7],2],[4,[],0],[[],[],4,6],4,[10,[],5]],[],[[1,[]],[0,[1,5,0,9,1]]],[1]]
+[[5,[],[],5],[[[6],[],[5],[],8],8,[[5,4,9]],[6,[]],1],[[[10],[3],[9],[],[6,4,10,0]]],[7]]
+
+[[6],[[[9,8,7],2,[2,1,7,7,8],[0,7,7]],9,5,7]]
+[[[5],[[0,0],[10,3,3,0],[7,5],[1],6]],[[[7,2,6],[8,0,8,2,8]],7,2],[[[3,4,7],[1,0,9,5],1],[],[[1,9],4,4]],[],[[10,0,[10],[],[6]]]]
+
+[[[[4]],4,[[6,1,3,7],[],8,[6,2,9,9],[9,9]]],[2,10,[7,[7,8,6],8,[1,0,6]],[10,1,5,[10,6]],6],[9,[4,9],3,5],[1]]
+[[2,6,0],[[1],10]]
+
+[[[],3]]
+[[],[],[4,[8],[4,[4,4,8,10,6],8,9],5]]
+
+[[[[4,10,9,0],[]]],[]]
+[[3],[9],[]]
+
+[[4,10,[[4,3,9],[8,8,3,9,9],[6,7,1],[7,4,6,7]],[[7],[6],9],[[],8,[6,3],[10,1,8,6,4]]],[0,[9],4,9],[[1,[6,3,7,1,4]],9],[0,1,5,4,1]]
+[[9,4,6],[[[5,1,4,3,4],5,[4,5,1,7],6,[6,8,9,0]]],[3,10,[7,[6,2],7,2,9],[[0,9],[2,3,10,4,8],3,1,[4]]],[6,8,5],[3,0,[]]]
+
+[[4,[3],[[5,9,5,5],6,4,4,5]],[[[3,0,3,8],[],[9,8,10],6],1,[[8,8,7,9],2,8,[1],10]],[7,9],[[]],[]]
+[[1,5,[],3,[[],8]],[2,10],[[[10,5,7],8,[8,10,10,6],0,[4,1,10]],[[2,4,6,6],[8,4,10],5]],[],[7]]
+
+[[[4,6],[],6,[[10,2],9,7,[7],7]]]
+[[[10,[2,10,7,9,7],[3],[2,7,7,5]]],[[4,[5,7,3],[2,7,2,1]],0],[[[1,10,9],[2,4],9,1],2,[[5,1,6,7],[0,0,1,10],[4,8,8],0]]]
+
+[[6,[],0,[9,[1,5,8]],[[8],5]],[],[[7,9],[0,[4,4,0],1,5,[8,2]],5]]
+[[[[7,6,4],10,0,2],[[1,3,9,2,6],[2],0,9],9,0,2],[2],[0],[6],[[7,5]]]
+
+[[6,3,[5,[4,7],[]]],[9,9,8,[8,5,0,1,0]],[4]]
+[[],[[1,3,[7,0,2,2,0]],[[9,7,4,7,10],0,[]],[1,1,4],6,5]]
+
+[[[5,[2],6],[[9,5],[1]],[3],[3,[],8],0],[[8,5,5,5]],[1,[1,5,[8,5,4],1]]]
+[[2,[4,0,9,1,0],3],[[],[[8],3,10,[1]]]]
+
+[[7,9,[2,5,[4,10],[1]],[9,7,1,0]],[[7],[[3],[5,0]],[]],[[[0,3,7,6,6]],[[8,0,2],10,[1,10,1,10,1],2,[1,9,5,9,6]],9,1,7]]
+[[[[1,7,4,4],[]]],[[[9,1],3],2,[[9],8],[[]]]]
+
+[[[[9,9],[1,10,9,9],[],5,8]],[1,1,7,[[6],0],[7,3]],[[8,[3,10,2,4,2],[10],9]]]
+[[[8,1,[9]]],[],[]]
+
+[[2,[]]]
+[[],[[[],[5,0,1],[2,5,2,1],[]],[[4,0,4,7],[9]],[[1,9,6,10]],4],[4,[6,[8],3],3],[3]]
+
+[[6,10,10,[4,[0,5],4],[[3,9,1,10],[1,10]]],[[3,[5,7],[9,5,8],[5,2]],6,7,6,5]]
+[[[4,6,[5,8,6,8],[4,9]]],[2,[[8],9,1,[4,10,10,1,5],[8,6,0]],[[10,7,2,3,6],5,9]],[5],[2]]
+
+[[],[1]]
+[[[[8,10,3,5,8],0,[9],2],[2],[[0,5,9],[0]],10],[6,4,[2,8,5,[9]],6,2],[[[],5,1],[],9,9,[]],[7,[2,[0,0,4],4,6],[[1,10,5,9]],1]]
+
+[[8],[],[1],[6,[3,[3,1,10],9,3],9]]
+[[],[[[4,1],5,[7],[9,7]],[[5,7,10,4],9,[4,4],2,[5]],7,[[0,8,9]]],[[2],7,4]]
+
+[[10,[6,[8,1,0,4]],[1,[6,0,3,10,7],[],9]],[8,[],[[3,0,7,4],5,1],[[6,1],[],[3],0,[3,10,0,0,6]],5],[4,[],[8,10,7,7],[]],[[[7,10,0,8],[2],[],2],10,[6,[9,5,10,2,0],[10,1,5,4],9,[8,3,6,6]]],[]]
+[[[[2,7,2,1],[6,8],3],9,[[6,7,3,5],[0,4]]],[]]
+
+[[10,7,9,8]]
+[[],[],[]]
+
+[[[[],[9,1],[7]],9,8],[[[8],1,[0],4],6],[5],[[],[[],10,3],0,8],[[[8,10,1],[3,6]],5,[6,3],[[8,8,6,7],6,[8,3,7,7]]]]
+[[[[2,10,1],[]],[[5,2,8],[4,0,2,2],0],[[9,3,6,9]]],[[6],8],[[[],[0,3,1,1],[8,3,0]]]]
+
+[[7,4,[2,6,7]],[8,2,8,3,[5,8]]]
+[[[2],[7],6,9,0]]
+
+[[1,[4,6],4,[7,[7,7],[1,3,9],[7,8,0,10,4]]],[[9,9,[10,5,6],9],[2,[]],4,[3],[3,6,10,2]]]
+[[[4,6,6]],[[6],6,[2,1],[1],[[8,5,8]]],[]]
+
+[[[]],[4],[[8,[10,5,1,10],1,[4]],9]]
+[[[],5,1,2,9],[]]
+
+[[[],10,[[]],[0,[8]],0],[7,[6,4,7,8],[]],[[9,3,[1,8],[4,8,6,9]],[5,1,[2],7,[3,10,2,8]],8,2,[3,[8]]]]
+[[[5,8],[[7,3],[2,8,4,8,5],7,10],[9,[6,8]],6,2],[6,[[9,0,4,7,0],[7]],[9,5]],[[]],[5,2,[[2,2],9]],[]]
+
+[[[[],10,[2,5],8]],[8,0,[[4,9,1,0]]]]
+[[8,5,2,[[1,7,7,2,6]]],[],[9,8,5,7,10],[7,0,2,9]]
+
+[[7,6],[3,5,[],4,4],[6,[[0,9,2,3],2],6],[]]
+[[],[10,[],2]]
+
+[[[1,[4,9]],9,[],7],[]]
+[[9],[],[6,7,10],[0,[10,9,[4,10,3]],[4,10,0,[4,8,9,9,0],2],[4,[0,7]],[[7,3],10]],[[0,[5,9,0,9],7,[5,5,8]]]]
+
+[[[[4,9],[0,10,4],1],5,1,[[5,7,4],[1],7],[9]],[],[[[]],8,5],[]]
+[[],[5,2,[[1],[],[2,8,10,4,4],2,7],10]]
+
+[[],[],[[3],[6,[2,3],[9,7],9,10],10,1],[],[10,[3,1,[9,0,6,2,9],[6]],[0,10,6],3,[2,[3,3,10,6],[],[10,0,1,1,2]]]]
+[[[[],[2,7,4,5,10],4,10,6],6,[7,0],[3,[1,3,3],[9,6,6,10,7]]],[],[7,3,9],[],[[0,[1],[0,0,9,5]],6,6]]
+
+[[[[],[10,0],7]]]
+[[[7,[8,4,8,3,0],8,[3,3,3,7,6],6],8,[7,6,[7,4,6],[],[7,4]],[9,7,7,1],[[4,3]]],[0,5,9],[[0],[0],[[],9],5],[]]
+
+[[4,2,4],[],[[9,9],6]]
+[[10,[[6,3,10,5,5],[4],[4,2,2,1]]],[10]]
+
+[[]]
+[[[[0,9,8,8],[5,3,9,2],5,[],4],4,8]]
+
+[[[]],[[7,[5,9,7]],[[6,4,9,9],1,[6,1,7,10,6],[0,6,5,1,4],6],[[0,9,8,5,4]],[[6,8],[],[1,9,2,5],[6,2,7]]],[[],[5],5]]
+[[[2,6,8,[1,6]],[[4,5,4],[6,10,3,8,7],[7,5,1,5,9]],5],[8,[[8,1,7]],[0]]]
+
+[[[],2],[0,10,1,9,[0,3,1]],[]]
+[[5,[[0,0,2,10],7],5,[[1,6,7,5],[0,2],6]],[[],[6],4],[0]]
+
+[[[[10,3,3],8,3,[5,2,8,3,4],5],[[5,10,10,1],[8,1,4],[10,5,1],[5],[2,2]],4,8],[4]]
+[[6],[6,6,4,0,[0,8]],[[[9,4,1],5,8,[9,4]],4,7,[[7,1,1,7]],[7,[3,7,7]]]]
+
+[[10,[[7],8,10,1,[4,3]],[4,10,8,5,[6,10,10,1]]],[],[9,[3,[6,2,1]],0],[[[1,9,1],8,[9,3,4],1],4,0,[[6,1,10,1,1],[],[1,10,10,5,9],7],[2,8,[8,1,4,3]]],[6]]
+[[[],3,6],[5,5],[[2]]]
+
+[[9,10,3,1,[3,6,7,3]],[0],[[5,[6],5,1],[],[[],[5,3,8,5],2,9],2],[[7,4,0,1,[4]],6],[[[],[1]],[6,4,[4]],6]]
+[[[10],10,[],2,7],[],[9]]
+
+[[2,8],[4],[[],[[0,0],[7,9],9,4,10]],[4,[5,1,10,9,3],[[5,9],6]],[6,9]]
+[[[],[9,4,4,10],8],[0,[[8,8],[5,6],[6,4,6,6,0],10,[7,2]]],[[[7],10,1,[8,7]],5,[5,2,[7]],0,9],[[8],[9],[9,1,[1,5],9],[[],5,3]]]
+
+[[[[6,5],1,0,4]],[[1,9],[6,[5,1],[8]],6,0,2],[[6,[3]],5,[],3]]
+[[[],4,10],[]]
+
+[[[7,10],[[3],1],0,[8,[3,1,2,8,3],[7,2,10,9,1],[10],[10,1]]],[[6,7,5]],[[2,8,3,[]],[[],[0]],[[],9,7,[9],[1,8,8,10,3]]],[[10,5,8,1,[6,8,2,9]],2,7,7]]
+[[0,6,2,[[6,4],0,4,[1],7],6],[[[7,8],3,6,[10,3],2]],[4,[[],[6,3,7,6,9],10],10,[1,2,[5,9]]],[[10,9,8,10,[8,7,8,4]],2,8],[[8,0],4,[]]]
+
+[[1,[2,8,[3,2,1,0]]],[[[2,0,5],[],[10,3,3,6],[4,9,3],[0,8]],10,4],[4,[2,[10,6]],4],[0,1,2]]
+[[6,3,[2,[3,9,6,4,5],5,[9,10,2,7]],2,[10,[9],5]],[],[0,[3,[6,10,4,5,5],[5,4],3,[0]],4],[2,[[2,7,1,5],[7,2,4,4,3],[5]],[[8,1,8,8],[8,10,6],4,[5,5,4,6,0],[4,4]]],[7,[[6,0,2,7,7],5],[9]]]
+
+[[7],[[10,[6,2,5,10,4]],[4,[],[3,1,4,5,7],[2,0,4],7],[[4,2,3,4,2],9,[4,4],9,7],[[8,9,9,6],[],[6,7,1],8]],[[1,[9,10,8,8,8],7,7,[4,7,1]],9],[[],[[0],1,8],[],[[10,7],5,8,10,1]]]
+[[5,9,6,[7,[9],[0,6,0],0,[0,4,8,8,7]]],[0],[[[6,7,6,7],4,[2,2,2,7],2],[[7],[],[],8],[[7,2,5],8,[1,4,3,5]]],[6,[7]]]
+
+[[3,0,4,[7],[[1,0,7,2,7],[],9,5,[1,3,0]]],[[[],[8,3,8],6,10,0],9,3,[3,[4],[4,4],[10,10,3,1]]],[2,[],10,10],[[],5]]
+[[2,[[2,6,5,9],5,[0],[2,1,1,4]],[[9,8],[3],5,6,5],6,0]]
+
+[[],[[10,6]]]
+[[6,[1,2,8],6,8],[4,[[6,1,0,3,3],[3,7,6]]]]
+
+[[[[8,4],2,9]],[[[2],[9,10]]]]
+[[0,4],[],[[[3,8,4,5,7],[3,0,1],[2,5,9,1],[10,4,2],2],[[3],[8,6,9,8,3]],[[1,9],0,5,1,1],7]]
+
+[[[[9],3,4,3],8],[[4,6,[4,2],[1]],5]]
+[[[[],[10,2],8,10],[]]]
+
+[[[[1,3,10,9],[0],8,[]]],[],[10,0,5],[[1],7]]
+[[[[2],4,[],[10,10,0]],[3,9,[4,0]],10],[[0],2,[]],[[],[[4],4,9]],[5,3]]
+
+[[10,2,10,[6],0]]
+[[[2,0],[[2]],[[],6,3,[3,6]]],[2],[[10,[],5]],[[[8,1,3,7,5],5,[]],5,[[]],[]]]
+
+[[7,0,[1,[0,10]]],[[7,7]],[9,[[10,10,1,3,6],10],5],[[[]],[[4,9,8],6],[10,3],[[5,4],[5,8,3,8,8]]]]
+[[5,7,2,4,10],[[[5,0,2,7,3],[0,3,5,4,8],3,[5],[3,5,8,0]],[4],1,[]],[[6,[7,6,1]],2,[10,7],6],[5,[1]]]
+
+[[[[2,0,8,3,6],0,7,0,[5,1,4,4]]],[[3,8,7,[2,7,10,1]],8,[9,[2,6,8],8],7,9]]
+[[2,[],0,[5,[5],[],1]],[4,[3,0],0],[4,7,10,[[4,2,0],[4],7]]]
+
+[[0]]
+[[9,6,4,2,[9,3,8,[10,2,8,7,4]]],[[[3,3,1,10],[3,9,2,2,6],3,[9,2,8,3,3]],10,[[7,10,3,4]],[5,3,[1,3],[0],2],[6,[9,8,3,10,5],[1,8,0,0],[5,10,9,10]]],[4],[],[]]
+
+[[7],[[7,[],6,5,[8,10]],[0,[]]],[3],[2,9,7,[3,[0,6,2],[]],[]]]
+[[2,8,[4,[2,6,2],[2,10,5],[],[0]],[],4],[],[[[6,9,10],[8],[2,5]]],[[[9],10,[2],1],3,[[7]],[[],5]]]
+
+[[6],[]]
+[[7],[],[[2]],[],[[[5,0,0,2],1],[]]]
+
+[[2,[9,[],[7,6,7,10,10]],2,1],[[10,[9,7,1],9,9]],[[[6,3],[9,4,7,7],[4,9,2],[0,5,5,1]],[[2,7,10,6,3],4,10,0,4],1],[[],8,0,6],[9,3,7]]
+[[[[8,10,4],5,[7,8,4,1],9,9],[[]],[[10,2],[5,6,9,3,6],3,2,2]],[1,9,[5],[[8,6,3],3,[9],4]],[[9],[[0,5,5],[],1,[]],[]],[4,[[3,10]],6],[[[3,9,2,6],5]]]
+
+[[],[7,[]],[[[6,2,7],[],7],0]]
+[[2,[3,[10,5,10],[9,4,7,6,3]]],[[7]],[],[2]]
+
+[[[[8,4,4,9],[10,5,9,6,6],[9,6,9,8,4],3,[9,3,8,8]],[0]],[1],[],[[4,[2,10],[],[]],[[7,10,6]],[10,3],5,8]]
+[[9,8,[],8],[[[2,3,0,4,3]],9,[6,8]],[[],[1],4,[[1,8,5,4]]],[[],7,[[],6],[[],0,[8,4,1,7,0]]],[5,9,4]]
+
+[[7],[[[5,3,3,4],[0],[1,7,2,4,2],4,[10,8,3,1]],1,9,8]]
+[[],[[],8],[]]
+
+[[[3,6,9],8,2]]
+[[8,0,7],[7,[[8,8,1,4,5],9]],[9,9]]
+
+[[6,3,[[],[4,4],[1,3,7,7],[1,10,9,0],10],[],10],[[],8,[[9,7,2],[9,10],[5],6,[7]],9,10]]
+[[7,[],1],[[[],[1,10,3],[2],7,7],5,[[3,2],10],8,9]]
+
+[[0,[[],5,6,[9,3]]]]
+[[[0,[0,0,8]],7,[[7,9],[0,9,6,6]],[[0],0,[6]]],[[[5,5],[8,0,3,0],6,[6,3],[6,4]],[4,2]],[],[[[2,1,2]],8,[2,[0,6],[2],[6,0,9,1]],[[10],10,5]]]
+
+[[[[2,3,9,10]],3,4,7]]
+[[],[4,5,7,[4,10],[]]]
+
+[[],[]]
+[[6,6,[4,1,8],[5,10],[]],[[6,[8,8,6],[0],[8,2,10,3,7],[3,3,8,4,0]]]]
+
+[[[[],1],10,1,10,[8,[3,5],[9,9,2],[6,10,9]]],[10,[[6,0],[9],6],[6,[5,8,10,3],6,[],1],[[10,9,8,2],[7,0],[7],3,[4,0,4,6,10]],2],[9,[[3,8,8],9],[10,3]],[],[]]
+[[[1],[2,6,9,6,4],[[3,8],[8,7]]],[],[],[[[5,9],6]],[9,3,[[2,0],0,4,5]]]
+
+[[3,[[9,2,1,9],2,5,[1]],5],[]]
+[[7,7,5,[5,7,7]]]
+
+[[[3,5],[2,[8,5,6,1,7]],4,2,3],[[],[7,2,6,7],[2,8,[8,0,6],[1,6]]]]
+[[[[1,7,5,8,4]],5,[],10,5],[[[4,0,9,0],1]],[6,5,[[7,8,6],7,8,[]],5,[6,0]]]
+
+[[],[],[3,[[6],[4,7,10,10]],[],[[7,4]],8],[4],[2,[10,1,[6,2,5,2,7]],[[6,7],[8],[2,5],[0],[]],[[8,0,9,2],[6,1,3,2]]]]
+[[[4,10],2,[7,[6,10,7,2],7,[0],[]],3,[4,[8,5,0],10]],[[6,5,9,9]],[10,8,[[0,5,9,8]]],[],[[10,[5],[2,8,7],8,[3,9,4]],6]]
+
+[[[4,8,6],[10,8,2],2,[[],4,[2,1,9,5],3]],[5,9,7],[9]]
+[[10,[9,4,9]],[]]
+
+[[4],[7,[[],[9,10],[0,0,7,8,7],2,[]],[[1,10]],[6,3,7,[1,9,2],3],10]]
+[[[10,[1,9,4],2],4,[[6,1,10,8],[4,3,10],4,[],[0,5,5,0,2]],[0,2,[9,1,9],9,10]],[[7,[]],[6,[6,6,10,6,5],[0],7,[9,7,5]]]]
+
+[[0,2,8,[[],[7],[6,10,2,6,9],2,1]],[],[8],[[]],[[[0,0,9],4,1],1,[4]]]
+[[2],[[[3,10,6,7],1],[8,[8,3,6,8],4,[0,7]]],[0,[5,7],6,10],[],[[5,1,[6],[10,9],[4,9,7,10]],9,10,[2,3,[8,4,7],4,8]]]
+
+[[1,3]]
+[[[[0],1,9],6,[2]],[[[3,7],4],[]],[]]
+
+[[10,[[10],[1,6,10,10],[10,0,9],3,9],3],[5,0,0,[[3],[5,5,10],5,1]]]
+[[[7,8,[1],7]],[[7,6,2,[6],[9,10]],5,[9,9],[7,5,[6,9,6,2,1]]],[[],1],[]]
+
+[[],[[5,7,5]],[10,[7,6]],[[[6,1],[2],6,5]],[[[9,9,10,8],5,[6]],8,5]]
+[[],[[[10,10,10],[7,5,9,8,8],4],4,6,[],[10,[10,9,10,1],5,1,[5]]]]
+
+[[[[],1,[7,3,7,0],7],5,10],[6,[10,1,7,[0,8,6,5],[6,7]]],[],[3],[[]]]
+[[9,[[9,2],6],[[9,8,2],[1,1,10,2],10],0]]
+
+[[],[4],[[],1,[[]],1],[7],[8,6,3]]
+[[[3,8],[],10],[[3,[3,5,4],[4],4,0],[4,[10,10,0,10,2]],[],[[5]]],[[],[[6,9,1,10],[10,8,8,2,8]]],[2,1,[[7,4,7,7,8],0,10,8],[5,7]]]
+
+[[1,[[1,3,10],[0],[],[8,2]],[10,3]],[[7,0,[]],5,[10,[10,0,4,3,7],[6],8]],[[],6],[6,[[10,5,2],[],4,3],[[0,9,4],7,2,7,[7,5,7]],2],[[8,3,7]]]
+[[[[3,5,2,3],[10,6,3]],[3,[8,0]],[[4,1],10,7,[10],9],[5,[10],[]],[5]],[8,[[2],[4,8,0,8],[7],3],4,[]],[[4,[3,7,5],[9,3,7,0,4],1],[10,5,1,5,[8,8,4,9,8]]]]
+
+[[[[2,10,9],4,[10,0],10],9,3],[[4,[6,10,3,5,0],[10,8,9],[3,3,8,6],4],2,3,2,7],[[9]],[[],[1,5,6],3,8]]
+[[3,[0,[],[8,0],6,[5,9]],[[1],[10,4,1,5],[],[1,9,9,7,5],5],9,5],[[6],2],[[3,[1,1,6],5,2],[4,1],[10,2],[[2],9,5,[3]],[3,7,5,[2,3,6,2],4]],[10,10],[1,[[6,3,10,0,8]],8,[],[1,1,[],10,5]]]
+
+[[1,[1,[10,5,8,6,10],[0,5,5,3],[3,3],[]],4,[[10,4,1,2],7,[10,8],[10,0]],[3,5,[0,0,9,1]]],[1,8,6,2,[]],[2,[[1,5,6],[6,7],7,9],8],[[[0,3,3]],[],6]]
+[[[2,9,0,3,2],[5,8,[0,7],2,1],[2,[6,9,6,3],[],10],7],[],[9]]
+
+[[[[9,5]],[9],7],[6,8]]
+[[7,2,[[3,9,8,8],[9,10,0,6],[9,5,9],[6],[1]],1]]
+
+[[2,1,3],[]]
+[[10,7,1],[7,[[3]],[5,[4],[2],[],[10,3,7]],5,6],[0,1,[],8],[[6,1],[9,9,3,[7,0,4],2],9,[[2,0,4,7],0,7],[0,[9,3,1,9],7]]]
+
+[[4,4,7],[6,2,[[1,3,5,0],[],8]]]
+[[9,10,3]]
+
+[[[[],5],[[10,9,10,6,2],[1,6,0]]],[[[10,1,5],9,8],1,[[],8,6,[6,3,0],10]],[5]]
+[[2,[[1],10,[9,2,4],6,9],8,10],[4],[3,[[10,5,2],[],3],3,[],[[4,8,9,4,1],[6,5,0],[10,6,5,1,3]]]]
+
+[[2,0,10],[3,[[9,7,0,0,1],[3,10,1,1],[5,7,2,1],3,9],[0,9,4,[8,5,0,8]],[[4,7],[7],4],1],[[[9],2,1,[2,3]]],[3,9,[[6,9,7,3,10]],5],[9,0,[2],[]]]
+[[[[6,7,8,2,8],1,7],[0,[],0],2,4,1],[7,3,[4,9,2]]]
+
+[[[[0],6,1,6],1],[[],6],[3],[5,[[],9,1,[8,7,3],10],5,2],[10]]
+[[[[7,2,2],0],6,7,[]]]
+
+[[[],7]]
+[[[[3,6],[8,8,9],[0]]],[[],4,0,[10]],[[[4]],2,4,[]],[],[[],[2,1,[0,5,10,5,8]],1]]
+
+[[7,6,3,4],[0,7,[2],5,[[],[1,3,5,9],9]],[[],9],[1,4,[5,0,2,5,[0,1,0,4]],[[0,8,4,8,4],[],8,9]],[8,2,7,[[1,2],[6,4,8,10],[],7,[9,4]],8]]
+[[[[6,9,2,3,5],8],[]],[2,[[5,5,8],[1,4,2,1,4],4,3,[5,1,2]],9,2,[1,9,[9,8]]],[6,[8,[],[2]],2,[[4,7,6,6,8],7,8]],[[]]]
+
+[[0,6,6,[[9,6,1,10,9],[5,0,5,7],[5],[]],[[],[10,4,3,8,1],1,3]],[[[8],[4,9,1],[6,4,2,8,8],0,[]],[]],[[10,3]],[[[4,2,1,0],[1,4],[0],5,[]],[8],[[]]]]
+[[5,[],5,4],[[],[[6,3],[2,1,6,6,5],[1,7,7],8],[],[]],[[],[0,[7,0,4],3],4,0],[[[10],10],9,10,1]]
+
+[[[4,3,[5,3,8,0],[3,3]],[2,[],[3,9],8]],[3,8,[1,[],[10,5,8,7]],[]]]
+[[1,8,[[2],1,[6,8,8,0,5],[0,0,3,7],5],2],[]]
+
+[[[[1,10,4,7],0,3],1],[5]]
+[[[]],[6,[[3,6,2],1],0,3,9]]
+
+[[[[0,1],[2,7,0,8,3],1],[[6,7,2,4],[2,4,6,4,2]],4],[],[0,[[5,0,5,3,5],10,[],[7,4,3,4]]],[[[5,6,6],1,[4,10,5,10,10],[4,0,3,6]],5,1]]
+[[[7,10,6,2],[[2,3,9,2,8],[5,9],[9],5,[3,5]],7]]
+
+[[[],3,[10],[3,7,6]],[1],[4,4,[[6,2],[1,8,3,2,10],[9]],6,1],[8,[2,[0],10,[2,6,5]]],[6,[9,[5]],1,10,5]]
+[[[[9,3,10,3],[10,9,2,4],[3],[0,6]]]]
+
+[9,1,10,3,6]
+[9,1,10,3]
+
+[[2,2],[5,[8,3,[1,4,1,4,4]],3]]
+[[[],[[3,10],[10,10,5],7]],[[0,[3,3]]],[[2,3]],[],[[0,[2,5,5,7,2]],4,2,[[9,7,0,5]],5]]
+
+[[10,[],[[7,8],4,[7]]],[10,6,8]]
+[[[10,[6,10,0]],[]],[],[],[[4],4,[1],[[3,6,9]],[]],[]]
+
+[[[2,8,5],[7,4,[10,7,0,6,3],7],[10]],[[10,3,2,[10,10,1],[9]],3,1,[3,[],[],3,[]]],[4],[[2,10,3,[2,10,6,0],[6]]],[4,[],8,[8],[]]]
+[[10,[7,7,5,10,6],7,[],4],[2,6,[[5,10,4,5],[2,2],6],9,[[1,3],[1,2,5,9],1,6]],[1,[9,[8,1,5,3,8]],[[10,6]],1,1],[4,[]]]
+
+[[[[],2,10,[],[3]]],[3,[[9,5,7],[2,8,7,9],10,2,[7,3,2,0,8]],10,[[],1,1,[1],7]]]
+[[],[],[1,1,[0],[5,5,6,[7,6]],0],[[9,7,[2,7,4,7]],1,5,[7],[4,2,[5,5,6,0],[3]]]]
+
+[[[],8],[0,[[3,7],[6],[0,1,0],10,9],[]],[3],[1],[[5,9,4,[6,6,7,1,0]],2,[[2],9,[4,10]],[[0,1],[6],[10,0],[5],[3]]]]
+[[[0,[9,1],9],[2,[4,8],[0,0,7,2],9,[7]],[[3,3,2,3],[2,8,0,1,4],[8],1,10]],[[1,[7,5]]],[[[9],[],[8,4,9],[3,2,3,6],[2,2]]],[[7,[1,0],10,10],5,0,[7,8,9,9,[9,5]],[6,8,9]]]
+
+[[[],2,[10,7],[[],[1],6,10,[0,10,3,6,2]],6],[2,4,[8,4,[9],8]],[9,6,8],[[1,0,7]]]
+[[],[8],[[],[[7,1],5],[[4,9,5,1],[5,7,9,2,9]],[[3,8,4,1]],8],[3,8,5,3],[[8,1,[5,3,3,3,1],[2,9],7]]]
+
+[[[[6,8,2,5]],[[3,9,5,9],[7,0],[],[1],[9,1,9,3]],[10,[4],[]],6],[[2,7,[3,10],10],8,6,0],[[4,[2,8],0,5],[[0,3,5,2],2,[10],7,[]],1,9],[]]
+[[[[2],[5,2]]],[[[3],5,[0,8],[5,4],3],[[],8,[7,5,4,6,10],0,[6,10]],6],[]]
+
+[[[[1,9,5]],4,[[9],6]],[]]
+[[0,4,7,0]]
+
+[[[1,[],[0],[8,5,9],9],3,[[5,4,5,2],[6,10],[2,1,9,4,9],6,[10,3,10,6]],4,1]]
+[[6],[[]]]
+
+[[[[7,1,6],[1]],5,[9,6,10]]]
+[]
+
+[[3,[4,10,[0,6,4,9]],[8,6],[[4],0]],[[5],1,[[8,3,0],9,[5],[9,5,10],[7,5]],[3,[5,1,1],4]],[10,10,4,[]]]
+[[[3,8,[9,5],0,[3,0,8,2]],[]],[],[9,[1,5,[3,7,4,5,1]],[10,[9,9],5,8],[6,1]],[8],[3,[8,7,9,10,5],10]]
+
+[[10,[9,[]],[8],[6,[1,0,9],[2,10]],9],[[9,3],[4,9,[9,1,8]],[10,[6,9,6]],3],[[[0,1],7,9,7],[[],7,[],8],7]]
+[[6,[]],[[],[8]],[1,9,8,[2,8,7],[[10,9,6,10,7],[0,1,0,6,8],9]],[[[5,2],[2,3,6],[8,4,10],[],5],3]]
+
+[[],[],[[],[[0,6,7,9,9],[9,0,9,4,10]],[1,7,[8,8],[3]]],[]]
+[[],[],[[8,[2,0],[9,1,0,3]],[[6],5,1,4,[1,10,7,2]],[0]]]
+
+[7,5,8,3]
+[7,5,8,3,2]
+
+[[[8,[7,6,4,8],[9,10,3,1]],7,[7,2,[9,4,6,9,4],[0,1,8,5,1]],3,[]],[0,[[2,3,8,2,9]]],[9]]
+[[[[2,0,9,2],[0,9,2,7],[3,1,3,7],[3],[5,4,4,3]],[[4,2],5]],[[[6,0,0,10,8]],1,[[1],2]],[1,9,8]]
+
+[[2,[[6,1,9,0,5],[8,0,3,10]],[[3,7,7,5,8],[3,2,2],[4,10,6,3]],[2],7],[[9,5],[[4,1,6,5],3]],[[[2,2],1,[5,4]],10,[5,[7,6,4,0],[],[]],[3,[9,2,6,8],1,2]],[[[5,5],0,6],[8,8,10,0],[1,[9,8]]],[9,6,5,9]]
+[[6,7],[9,10,[[9,8,8,0,1]],3]]
+
+[[[[8,6,3,1,2]],[[0,0,1,10],8],8,0],[0,1,7],[9,[[1,1]]]]
+[[[[8,9,6,9,3]]],[],[1],[8,2,0]]
diff --git a/2022/day13/src/main.rs b/2022/day13/src/main.rs
@@ -0,0 +1,144 @@
+use std::cmp::Ordering;
+use std::collections::VecDeque;
+
+#[derive(PartialEq, Eq, Clone, Debug)]
+enum Packet {
+    List(Vec<Packet>),
+    Number(i32),
+}
+
+#[derive(Clone, Debug)]
+enum Chunk {
+    ListStart,
+    Number(i32),
+    Packet(Packet),
+}
+
+impl Packet {
+    fn from_str(s: &str) -> Option<Packet> {
+        let mut chunks = VecDeque::new();
+        let mut buf = String::new();
+        for ch in s.chars() {
+            match ch {
+                '[' => chunks.push_back(Chunk::ListStart),
+                ']' => {
+                    if !buf.is_empty() {
+                        chunks.push_back(Chunk::Number(buf.parse::<i32>().unwrap()));
+                        buf.clear();
+                    }
+                    let mut new_list = Vec::new();
+                    while let Some(c) = chunks.pop_back() {
+                        match c {
+                            Chunk::ListStart => {
+                                chunks.push_back(Chunk::Packet(Packet::List(new_list)));
+                                break;
+                            }
+                            Chunk::Number(x) => {
+                                new_list.insert(0, Packet::Number(x));
+                            }
+                            Chunk::Packet(c) => {
+                                new_list.insert(0, c);
+                            }
+                        }
+                    }
+                }
+                ',' => {
+                    if !buf.is_empty() {
+                        chunks.push_back(Chunk::Number(buf.parse::<i32>().unwrap()));
+                        buf.clear();
+                    }
+                    buf.clear();
+                }
+                ch => buf.push(ch),
+            }
+        }
+        if let Some(c) = chunks.into_iter().nth(0) {
+            match c {
+                Chunk::Packet(cc) => Some(cc),
+                _ => None,
+            }
+        } else {
+            None
+        }
+    }
+}
+
+impl Ord for Packet {
+    fn cmp(&self, other: &Self) -> Ordering {
+        match (self, other) {
+            (Self::Number(a), Self::Number(b)) => a.cmp(b),
+            (Self::Number(a), Self::List(_)) => Packet::List(vec![Packet::Number(*a)]).cmp(other),
+            (Self::List(_), Self::Number(b)) => self.cmp(&Packet::List(vec![Packet::Number(*b)])),
+            (Self::List(a), Self::List(b)) => {
+                let mut aa = a.iter();
+                let mut bb = b.iter();
+                loop {
+                    match (aa.next(), bb.next()) {
+                        (Some(aaa), Some(bbb)) => match aaa.cmp(bbb) {
+                            Ordering::Less => break Ordering::Less,
+                            Ordering::Equal => (),
+                            Ordering::Greater => break Ordering::Greater,
+                        },
+                        (Some(_), None) => {
+                            break Ordering::Greater;
+                        }
+                        (None, Some(_)) => {
+                            break Ordering::Less;
+                        }
+                        (None, None) => {
+                            break Ordering::Equal;
+                        }
+                    }
+                }
+            }
+        }
+    }
+}
+
+impl PartialOrd for Packet {
+    fn partial_cmp(&self, other: &Self) -> Option<Ordering> {
+        Some(self.cmp(other))
+    }
+}
+
+fn main() {
+    let input = std::fs::read_to_string("input.txt")
+        .unwrap()
+        .trim()
+        .split("\n\n")
+        .map(|p| {
+            p.split('\n')
+                .map(|s| Packet::from_str(s).unwrap())
+                .collect()
+        })
+        .collect::<Vec<Vec<Packet>>>();
+    // 6478
+    println!("Part 1: {}", part_1(&input));
+    // 21922
+    println!("Part 2: {}", part_2(&input));
+}
+
+fn part_1(input: &Vec<Vec<Packet>>) -> usize {
+    let mut tot = 0;
+    for (i, pp) in input.iter().enumerate() {
+        if let Ordering::Less = pp[0].cmp(&pp[1]) {
+            tot += i + 1;
+        }
+    }
+    tot
+}
+
+fn part_2(input: &Vec<Vec<Packet>>) -> usize {
+    let divider_1 = Packet::List(vec![Packet::Number(2)]);
+    let divider_2 = Packet::List(vec![Packet::Number(6)]);
+    let mut all_packet = {
+        let mut tmp = vec![divider_1.clone(), divider_2.clone()];
+        for pp in input {
+            tmp.append(&mut pp.clone());
+        }
+        tmp
+    };
+    all_packet.sort();
+    (all_packet.binary_search(&divider_1).unwrap() + 1)
+        * (all_packet.binary_search(&divider_2).unwrap() + 1)
+}