├── .gitignore ├── day8 ├── test_input.txt ├── Cargo.lock ├── Cargo.toml ├── src │ └── main.rs └── input.txt ├── day1 ├── Cargo.lock ├── Cargo.toml ├── src │ └── main.rs └── input.txt ├── day2 ├── Cargo.lock ├── Cargo.toml ├── src │ └── main.rs └── input.txt ├── day3 ├── Cargo.lock ├── Cargo.toml ├── src │ └── main.rs └── input.txt ├── day4 ├── Cargo.lock ├── Cargo.toml ├── src │ └── main.rs └── input.txt ├── day5 ├── Cargo.lock ├── Cargo.toml ├── src │ └── main.rs └── input.txt ├── day6 ├── Cargo.lock ├── Cargo.toml ├── src │ └── main.rs └── input.txt └── day7 ├── Cargo.lock ├── Cargo.toml ├── test_input.txt ├── src └── main.rs └── input.txt /.gitignore: -------------------------------------------------------------------------------- 1 | */target 2 | -------------------------------------------------------------------------------- /day8/test_input.txt: -------------------------------------------------------------------------------- 1 | 30373 2 | 25512 3 | 65332 4 | 33549 5 | 35390 6 | -------------------------------------------------------------------------------- /day1/Cargo.lock: -------------------------------------------------------------------------------- 1 | # This file is automatically @generated by Cargo. 2 | # It is not intended for manual editing. 3 | version = 3 4 | 5 | [[package]] 6 | name = "day1" 7 | version = "0.1.0" 8 | -------------------------------------------------------------------------------- /day2/Cargo.lock: -------------------------------------------------------------------------------- 1 | # This file is automatically @generated by Cargo. 2 | # It is not intended for manual editing. 3 | version = 3 4 | 5 | [[package]] 6 | name = "day2" 7 | version = "0.1.0" 8 | -------------------------------------------------------------------------------- /day3/Cargo.lock: -------------------------------------------------------------------------------- 1 | # This file is automatically @generated by Cargo. 2 | # It is not intended for manual editing. 3 | version = 3 4 | 5 | [[package]] 6 | name = "day3" 7 | version = "0.1.0" 8 | -------------------------------------------------------------------------------- /day4/Cargo.lock: -------------------------------------------------------------------------------- 1 | # This file is automatically @generated by Cargo. 2 | # It is not intended for manual editing. 3 | version = 3 4 | 5 | [[package]] 6 | name = "day4" 7 | version = "0.1.0" 8 | -------------------------------------------------------------------------------- /day5/Cargo.lock: -------------------------------------------------------------------------------- 1 | # This file is automatically @generated by Cargo. 2 | # It is not intended for manual editing. 3 | version = 3 4 | 5 | [[package]] 6 | name = "day5" 7 | version = "0.1.0" 8 | -------------------------------------------------------------------------------- /day6/Cargo.lock: -------------------------------------------------------------------------------- 1 | # This file is automatically @generated by Cargo. 2 | # It is not intended for manual editing. 3 | version = 3 4 | 5 | [[package]] 6 | name = "day6" 7 | version = "0.1.0" 8 | -------------------------------------------------------------------------------- /day7/Cargo.lock: -------------------------------------------------------------------------------- 1 | # This file is automatically @generated by Cargo. 2 | # It is not intended for manual editing. 3 | version = 3 4 | 5 | [[package]] 6 | name = "day7" 7 | version = "0.1.0" 8 | -------------------------------------------------------------------------------- /day8/Cargo.lock: -------------------------------------------------------------------------------- 1 | # This file is automatically @generated by Cargo. 2 | # It is not intended for manual editing. 3 | version = 3 4 | 5 | [[package]] 6 | name = "day8" 7 | version = "0.1.0" 8 | -------------------------------------------------------------------------------- /day1/Cargo.toml: -------------------------------------------------------------------------------- 1 | [package] 2 | name = "day1" 3 | version = "0.1.0" 4 | edition = "2021" 5 | 6 | # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html 7 | 8 | [dependencies] 9 | -------------------------------------------------------------------------------- /day2/Cargo.toml: -------------------------------------------------------------------------------- 1 | [package] 2 | name = "day2" 3 | version = "0.1.0" 4 | edition = "2021" 5 | 6 | # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html 7 | 8 | [dependencies] 9 | -------------------------------------------------------------------------------- /day3/Cargo.toml: -------------------------------------------------------------------------------- 1 | [package] 2 | name = "day3" 3 | version = "0.1.0" 4 | edition = "2021" 5 | 6 | # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html 7 | 8 | [dependencies] 9 | -------------------------------------------------------------------------------- /day4/Cargo.toml: -------------------------------------------------------------------------------- 1 | [package] 2 | name = "day4" 3 | version = "0.1.0" 4 | edition = "2021" 5 | 6 | # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html 7 | 8 | [dependencies] 9 | -------------------------------------------------------------------------------- /day5/Cargo.toml: -------------------------------------------------------------------------------- 1 | [package] 2 | name = "day5" 3 | version = "0.1.0" 4 | edition = "2021" 5 | 6 | # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html 7 | 8 | [dependencies] 9 | -------------------------------------------------------------------------------- /day6/Cargo.toml: -------------------------------------------------------------------------------- 1 | [package] 2 | name = "day6" 3 | version = "0.1.0" 4 | edition = "2021" 5 | 6 | # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html 7 | 8 | [dependencies] 9 | -------------------------------------------------------------------------------- /day7/Cargo.toml: -------------------------------------------------------------------------------- 1 | [package] 2 | name = "day7" 3 | version = "0.1.0" 4 | edition = "2021" 5 | 6 | # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html 7 | 8 | [dependencies] 9 | -------------------------------------------------------------------------------- /day8/Cargo.toml: -------------------------------------------------------------------------------- 1 | [package] 2 | name = "day8" 3 | version = "0.1.0" 4 | edition = "2021" 5 | 6 | # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html 7 | 8 | [dependencies] 9 | -------------------------------------------------------------------------------- /day7/test_input.txt: -------------------------------------------------------------------------------- 1 | $ cd / 2 | $ ls 3 | dir a 4 | 14848514 b.txt 5 | 8504156 c.dat 6 | dir d 7 | $ cd a 8 | $ ls 9 | dir e 10 | 29116 f 11 | 2557 g 12 | 62596 h.lst 13 | $ cd e 14 | $ ls 15 | 584 i 16 | $ cd .. 17 | $ cd .. 18 | $ cd d 19 | $ ls 20 | 4060174 j 21 | 8033020 d.log 22 | 5626152 d.ext 23 | 7214296 k 24 | -------------------------------------------------------------------------------- /day1/src/main.rs: -------------------------------------------------------------------------------- 1 | fn main() { 2 | let mut elf_calories: Vec = include_str!("../input.txt") 3 | .split("\n\n") 4 | .map(|x| x.lines().map(|x| x.parse::().unwrap()).sum()) 5 | .collect(); 6 | println!( 7 | "Elf with the most calories has: {}", 8 | elf_calories.iter().max().unwrap() 9 | ); 10 | elf_calories.sort_unstable(); 11 | println!( 12 | "The three elves with the most calories have a combined amount of: {}", 13 | elf_calories.iter().rev().take(3).sum::() 14 | ); 15 | } 16 | -------------------------------------------------------------------------------- /day6/src/main.rs: -------------------------------------------------------------------------------- 1 | use std::collections::HashSet; 2 | 3 | fn find_marker(input: &str, windows_size: u8) -> usize { 4 | let mut last: Vec = Vec::new(); 5 | for (char_index, char) in input.chars().into_iter().enumerate() { 6 | let unique: HashSet = HashSet::from_iter(last.iter().cloned()); 7 | if unique.len() == windows_size as usize { 8 | return char_index; 9 | } 10 | last.push(char); 11 | if last.len() > windows_size as usize { 12 | last.remove(0); 13 | } 14 | } 15 | unreachable!("No marker found"); 16 | } 17 | 18 | fn main() { 19 | let input = include_str!("../input.txt").lines().next().unwrap(); 20 | println!("{}", find_marker(input, 4)); 21 | println!("{}", find_marker(input, 14)); 22 | } 23 | -------------------------------------------------------------------------------- /day4/src/main.rs: -------------------------------------------------------------------------------- 1 | use std::collections::HashSet; 2 | 3 | fn generate_range_set(assignment: &str) -> HashSet { 4 | let bounds: Vec = assignment 5 | .split('-') 6 | .map(|bound| bound.parse().unwrap()) 7 | .collect(); 8 | HashSet::from_iter(bounds[0]..=*bounds.last().unwrap()) 9 | } 10 | 11 | fn part1(input: &[Vec<&str>]) { 12 | println!( 13 | "{}", 14 | input 15 | .iter() 16 | .filter(|pair| { 17 | generate_range_set(pair[0]).is_subset(&generate_range_set(pair[1])) 18 | || generate_range_set(pair[1]).is_subset(&generate_range_set(pair[0])) 19 | }) 20 | .count() 21 | ); 22 | } 23 | 24 | fn part2(input: &[Vec<&str>]) { 25 | println!( 26 | "{}", 27 | input 28 | .iter() 29 | .filter(|pair| { 30 | generate_range_set(pair[0]).intersection(&generate_range_set(pair[1])).count() != 0 31 | }) 32 | .count() 33 | ); 34 | } 35 | 36 | fn main() { 37 | let input: Vec> = include_str!("../input.txt") 38 | .lines() 39 | .map(|line| line.split(',').collect()) 40 | .collect(); 41 | 42 | part1(&input); 43 | part2(&input); 44 | } 45 | -------------------------------------------------------------------------------- /day3/src/main.rs: -------------------------------------------------------------------------------- 1 | fn get_priority_of_item(item: char) -> u32 { 2 | match item as u32 { 3 | 65..=90 => item as u32 - 38, 4 | 97..=122 => item as u32 - 96, 5 | _ => unreachable!("Invalid input"), 6 | } 7 | } 8 | 9 | fn part1(input: &[Vec]) { 10 | println!( 11 | "The sum of the priorities is: {}", 12 | input 13 | .iter() 14 | .map(|rucksack| { 15 | let compartments = rucksack.split_at(rucksack.len() / 2); 16 | *compartments 17 | .0 18 | .iter() 19 | .find(|item| compartments.1.contains(item)) 20 | .unwrap() 21 | }) 22 | .map(get_priority_of_item) 23 | .sum::() 24 | ); 25 | } 26 | 27 | fn part2(input: &[Vec]) { 28 | println!( 29 | "The sum of the priorities is: {}", 30 | input 31 | .chunks(3) 32 | .map(|chunk| *chunk[0] 33 | .iter() 34 | .find(|item| chunk[1].contains(item) && chunk[2].contains(item)) 35 | .unwrap()) 36 | .map(get_priority_of_item) 37 | .sum::() 38 | ); 39 | } 40 | 41 | fn main() { 42 | let input: Vec> = include_str!("../input.txt") 43 | .lines() 44 | .map(|line| line.chars().collect()) 45 | .collect(); 46 | part1(&input); 47 | part2(&input); 48 | } 49 | -------------------------------------------------------------------------------- /day2/src/main.rs: -------------------------------------------------------------------------------- 1 | #[derive(Debug)] 2 | enum Sign { 3 | Rock, 4 | Paper, 5 | Scissor, 6 | X, 7 | Y, 8 | Z, 9 | } 10 | 11 | fn part1(opponent_sign: &Sign, own_sign: &Sign) -> u32 { 12 | match opponent_sign { 13 | Sign::Rock => match own_sign { 14 | Sign::X => 4, 15 | Sign::Y => 8, 16 | Sign::Z => 3, 17 | _ => panic!("Invalid input"), 18 | } 19 | Sign::Paper => match own_sign { 20 | Sign::X => 1, 21 | Sign::Y => 5, 22 | Sign::Z => 9, 23 | _ => panic!("Invalid input"), 24 | } 25 | Sign::Scissor => match own_sign { 26 | Sign::X => 7, 27 | Sign::Y => 2, 28 | Sign::Z => 6, 29 | _ => panic!("Invalid input"), 30 | } 31 | _ => panic!("Invalid input"), 32 | } 33 | } 34 | 35 | fn part2(opponent_sign: &Sign, own_sign: &Sign) -> u32 { 36 | match opponent_sign { 37 | Sign::Rock => match own_sign { 38 | Sign::X => 3, 39 | Sign::Y => 4, 40 | Sign::Z => 8, 41 | _ => panic!("Invalid input"), 42 | } 43 | Sign::Paper => match own_sign { 44 | Sign::X => 1, 45 | Sign::Y => 5, 46 | Sign::Z => 9, 47 | _ => panic!("Invalid input"), 48 | } 49 | Sign::Scissor => match own_sign { 50 | Sign::X => 2, 51 | Sign::Y => 6, 52 | Sign::Z => 7, 53 | _ => panic!("Invalid input"), 54 | } 55 | _ => panic!("Invalid input"), 56 | } 57 | } 58 | 59 | fn main() { 60 | let input: Vec> = include_str!("../input.txt").lines().map(|line| { 61 | line.split(' ').map(|val| match val { 62 | "A" => Sign::Rock, 63 | "X" => Sign::X, 64 | "B" => Sign::Paper, 65 | "Y" => Sign::Y, 66 | "C" => Sign::Scissor, 67 | "Z" => Sign::Z, 68 | _ => panic!("Invalid input") 69 | }).collect() 70 | } 71 | ).collect(); 72 | 73 | let mut total_points: u32 = 0; 74 | for game in &input { 75 | total_points += part1(&game[0], &game[1]); 76 | } 77 | println!("Total points for part 1: {total_points}"); 78 | 79 | let mut total_points: u32 = 0; 80 | for game in input { 81 | total_points += part2(&game[0], &game[1]); 82 | } 83 | println!("Total points for part 2: {total_points}"); 84 | } 85 | -------------------------------------------------------------------------------- /day5/src/main.rs: -------------------------------------------------------------------------------- 1 | fn part1(starting_chunks: &mut [Vec; 9], instructions: &[(u8, u8, u8)]) { 2 | instructions.iter().for_each(|(amount, from, to)| { 3 | for _ in 0..*amount { 4 | let container = starting_chunks[(from - 1) as usize].pop().unwrap(); 5 | starting_chunks[(to - 1) as usize].push(container); 6 | } 7 | }); 8 | println!( 9 | "{}", 10 | starting_chunks 11 | .iter() 12 | .map(|stack| { 13 | if !stack.is_empty() { 14 | *stack.iter().last().unwrap() 15 | } else { 16 | ' ' 17 | } 18 | }) 19 | .collect::() 20 | ); 21 | } 22 | 23 | fn part2(starting_chunks: &mut [Vec; 9], instructions: &[(u8, u8, u8)]) { 24 | instructions.iter().for_each(|(amount, from, to)| { 25 | let containers: Vec = starting_chunks[(from - 1) as usize] 26 | .windows(*amount as usize) 27 | .last() 28 | .unwrap() 29 | .to_vec(); 30 | 31 | for container in containers { 32 | starting_chunks[(to - 1) as usize].push(container); 33 | } 34 | for _ in 0..*amount { 35 | starting_chunks[(from - 1) as usize].pop(); 36 | } 37 | }); 38 | 39 | println!( 40 | "{}", 41 | starting_chunks 42 | .iter() 43 | .map(|stack| { 44 | if !stack.is_empty() { 45 | *stack.iter().last().unwrap() 46 | } else { 47 | ' ' 48 | } 49 | }) 50 | .collect::() 51 | ); 52 | } 53 | 54 | fn main() { 55 | let input_chunks = include_str!("../input.txt").split_once("\n\n").unwrap(); 56 | let mut starting_chunks = [(); 9].map(|_| Vec::new()); 57 | for line in input_chunks 58 | .0 59 | .lines() 60 | .take(input_chunks.0.lines().count() - 1) 61 | { 62 | for (char_index, char) in line.chars().enumerate() { 63 | if char_index > 0 && (char_index - 1) % 4 == 0 && char != ' ' { 64 | starting_chunks[(char_index + 1) / 4].insert(0, char); 65 | } 66 | } 67 | } 68 | let instructions: Vec<(u8, u8, u8)> = input_chunks 69 | .1 70 | .lines() 71 | .map(|line| { 72 | let line_elements = line.split(' ').collect::>(); 73 | ( 74 | line_elements[1].parse().unwrap(), 75 | line_elements[3].parse().unwrap(), 76 | line_elements[5].parse().unwrap(), 77 | ) 78 | }) 79 | .collect(); 80 | 81 | part1(&mut starting_chunks.clone(), &instructions); 82 | part2(&mut starting_chunks.clone(), &instructions); 83 | } 84 | -------------------------------------------------------------------------------- /day6/input.txt: -------------------------------------------------------------------------------- 1 | mvwvrwvwbblffmvmhmllmzmqzzbhbnnvrnvnmvvqrqrccpsstvvshvvpvvpddzwwjddfzzgbbzcchrrtzzmfffzqqsjjbfbjfjwffhrhrgrfrsfrsffbwwphwhgwgmgnggzwzhwzzpggnccdbcbssgccqgcgcvgccwffrqfqtqmqppwphhlbblnnwhwfhwhmhzhmmzbmbbjjmcjcggwlgltldttpccjlccbjccvfcvvdbvdvndvvmbmcbmmhphpbhhgjgllmljlqlwlclzlccrvrdvdzvzzzbrbrnbblplrplpsstdtjddgjgjgwjwzwbzwwrhwwbzwbwpwssvgvnnwnvvjqqswwsccwctwtntdndffjzfzmfzmfzmfzzhjzhzssdsgsnggbbqdqlqbllmglgddqppjjtzttlflrrczcmzzsppvfpvffcfrccvvvhjvhvfhfbbwdwrwswqqftfbfcfdfnfpnfflbbcmcqqsqwqqccmwmvwvffvdvlvtvqttnllqslsnllzplldmmzczhzmzzhllpfpqpnnqwwwrzzdpzzhccfvcvclcnnrjrmjrjlrlflqqtpqqdgqghhwdwdttlztttwmmvfmftfptphhddswdsdpdvpvpcpjjnvjvqvhvqqqfgqqgwqgwghwwmmvmvfmvvnvsslcclzlslppztzfzbzllcgllcsllvgvqvtqtsstztwwgjgghnhnhdnnqgnntqqtccdmcmhmpphpmmmbpbptpnnnmnppwlpwwfpwfwmfwfssbspslsflljpppbsspwptpwttfbtfftltvlttdmttllmggfcgfccvwcvczvvgvsgswsrrwppgcpggpgnngfnndrrdjrdrfdfmmjmsmbmmwjjjfzfdfbdbbtgbbcsbccgbbrvvrqrwqwmmhrhhbcbdbvdvzdvdjvvnwntwwdfwwrhrmhhnghhncccfttmpmrrjhhqddrsrvvssmrrgvgdgmmfqqhttspswpwlplpjljcjmjmvmdvvhbvvtqvqccczwwtlllztlzzpnnqznzddqsqvsshrrmccnppgrrjcjpccrvcvnvcncllffvnnbsbhhrmhmzzzhrhchjccgjcjwwhddmfmhhmrrrbccqddmjdmjdjtdjjmttzstsctssvvgghgbbhmhzmmjqqqqjgjfjpffpmpzmzszfzgzcggpmpnnqjqffgpghhszzvlzzdgzggqmggqlllcwwtzwwcfwccpjpggtqgtttzffdpffjzfzddzppprnprpqqbppvjpjzppbzpbzppwzzcnndsdzszbssqwqggnhggnzggpcpnndssghsggmfmrffvddvwvssjmjrmrmnndwdwhdhwwfjfjwjmwwqssmdsmdmssqzzrgzzjttnqnfqfcccvvmsvsvffccdjdccgtgqqjwqqnbqqnhqhrqrmrgmrrzjzrznzllwrlrbbcppctptwtfttlntnltnlnzzhrzhrzrtzzvsvfvjffsbsnbbfpphtptjjmffqgqnggnqnsshffslflggtlggmpggnfgfbgbfbcbbtdbdjqwfggzsfmzflttgdfqchhtjfwlmdnsbvmqcrhsrtwtjlmnlwbvjvqdzswdthbjslqzgmtzfjfcrgbhrrjtzgljbqfrzzqszhddnmzpnbgnflghnflwdmjdhgpnvwvnltcngwggqdznrpdtwsrclwwlfzhnjtpqcgzjqjnhcwbhndwvgrczhzwfjrdvjztdbjshmhrrqctjwpcdnpnvrtggrmhzhdtlntjphcddplgfvvmjzcbbpjbqbjwmnwqgftbmchghwvrlptvnfbffvgtdbtnfzwdmdlgzjbrvffvbrfwgjzzpbpcdzhcjbhfwnmqqwvjvnpgdqdjsmwdmrgfqrwhhqqjpfmvlncfdjchrccwpbptccdchqwvbcqzlhbfgrdzgncbwrzqpfszrcwtmnvbztjlzjlrqqfrnplhnmdjljcpnqssthhmjqrrlwdvsjswdwtfstmbvwhbptjnphjmnllbwffppzmdpchbcwcmgqzfmdqvhcmrvtgtjwlzfpnjnjtfvdhtjlqsdjwrrnflnsqrtfsnbjfdllhqslltsjqzdfqthqjjgrtqjwmlqqlhvszqswmdcbnwqgshpvfjdtvsqjvcnrnvtpfsgqszhtmcdlsqjwmttcqsdlvssrgwhtmtqwmttptnmgzpwzzrbwtsrjhmjpblztgftppcwwrjppvwlvdhwwdlfcdvhwpvhqpwrqsczvlmtghrrvqbphljcmcrfmwltlmnzchzrlbgspdjwfbhrmnfhvjwlgtghcpbfgdvrmwbqbprfvwpzqzrgqbhjtztwhjcjtncmbgjphsgdfvjwjljlwzhsdldqtdvgtzpwtmrbnpvqrmfdwngzqtsdjjztslrwdnfwgbnsjblcjzvmgbqllmdvvvdcvplgbzmhcrpbbjbfzhjgfpmjtrpmgvshzvqhcbcjzfcsvqggjcllcnjlrwqfpzldswzjgzvqwvszhrntnvlcpdcfqhqrtmhbdjqpfblrsbrhdfdwfgbhsnnjpgjvfpssfmhdbdncfrqbzpbttrhfzqnrttltqbvmhglbdpwmdbmgwcdsdsflmcnphwvbbhgqpqmwbdsmqwhcdftdlcfnstlfnzzsjhqzlsdmhpvlcqvhhlpdtzlqzlvbbwhhdsqhntbtpjjvnjlrncfmvnqmzwpldgrbfcfgdtlmrfzcbqfhvhpmsrrlnqwfggwrjsmnpnqhvvcfsfspfrmhwmbpqfhprzsswrczttlczhcqvgqqsnbhhfszqbswgtcjgddhngtcvlwqqmqzntrcwgwjhmhlgclpgtmqnpgwwhnjfdvvjgmqjlzsmwztpsdzrjlshswzljlmdzfqmqbtgtzlsfwqvwrdchjvrdnwdbprfvdvczstvnzfzzfmzbwjhtflbmhlgmfzrdfrqwfbltwqlqrghlprppvlqwggvczdcnmrmblhcfmpzdmqppgwhbbrjlzsvmsfzlrdljftcrdfdgmvrccwszpjmvdnbmfdnsgmgzsdpbrlsqvsmcwwqlwtwbgfvwtsmpqlnhjchnzrpncgtcqgwqrmqmrwsbmdvqcpggpzcjgtrhvnbpprlwfnjlvrgrdjjvncjmmflrpczqnlbqczggssqfcjcrghqlsztpdjpbbfcdjzzdjbljlsczdmrgshdscvhnltrwchjcmjzmjbhldnqzwwpswsnsldcbdcdpdgpjgwrnfbcpjtvzlhvgggldcfqcwwppvltsvsmwzwdgmhnfggtgtwldmrglcvmstgmbgbjhwwhgdhfrbjlwfhjfppdmffblbbzrplhlhqlsrnsthvjtglqntzcncmvhqnlsvvrscrhlncgncjswfgcvgjlwsndzmsbhbdqsggdgrsfqtzwnjpsdlbsqjrrjwwlbptwqpfqwvpsrtrmstddzdbjjlwvfqcpfczpsnmcgbfpbwcpljdhrgsqftbnplccjphwsdbprqfqqfcvtcdznnhrbdqpccphvdgtspmzzdbnslnrvtfrtbhcfzfgmhrttmdpwftvccjbllhqgtmpgwvbdjgtvtfbfnnsfgzqjmrpbcmqhpfbstznbvgtbhnwbbnjfsthdgdrpfdtvrtmgbwzqqpnlltbshjvnhsmqhqwzgbsfqqccfznjtnnzdrgcvwnlffdgvvqzvwhwfswdmqlrsglntzsnwjzgrhhwzzshwsfmlmrbnmrqlptmjgmtqctrmddzghsgtrbbcsmhtcnrzwmvrjmrnmhbjmflrclvlbzwbgmtnmwqgfmbbnnrdvhqcflglvzbmjzjtvnmrbgghnccfrphjshsgtrhfmmghhpwgclfvzfbdccsfrlfwtsjjnhlndpwcjdtlllhcsvwrwsbppqwhfcvnsnrvthrsbgmgjhpmjdndmdqdgzfvbqfmgfjrnrjchstrjprfwfnjqblhjdgsstvtpcsvmpbhggnwzncpjdhrcllcghhprhwhfgsqpfzphrdlcbrccglsb 2 | -------------------------------------------------------------------------------- /day7/src/main.rs: -------------------------------------------------------------------------------- 1 | #[derive(Debug, Clone, PartialEq)] 2 | enum Node { 3 | File(File), 4 | Directory(Directory), 5 | } 6 | 7 | #[derive(Debug, Clone, PartialEq)] 8 | struct File { 9 | name: String, 10 | size: u32, 11 | } 12 | 13 | impl File { 14 | fn build(output_line: &str) -> Option { 15 | let mut output_iter = output_line.split(' '); 16 | let filesize: u32; 17 | match output_iter.next() { 18 | Some(first) => match first { 19 | "dir" => return None, 20 | size => filesize = size.parse().expect("Invalid filesize: {size}"), 21 | }, 22 | None => return None, 23 | } 24 | Some(Self { 25 | name: output_iter.next().expect("No filename given").to_string(), 26 | size: filesize, 27 | }) 28 | } 29 | } 30 | 31 | #[derive(Debug, Clone, PartialEq)] 32 | struct Command { 33 | name: String, 34 | argument: String, 35 | output: Vec, 36 | } 37 | 38 | #[derive(Debug, Clone, PartialEq)] 39 | struct Directory { 40 | name: String, 41 | contents: Vec, 42 | } 43 | 44 | impl Directory { 45 | fn build(name: String, command_list: &[Command]) -> (Self, usize) { 46 | let mut final_directory = Directory { 47 | name, 48 | contents: vec![], 49 | }; 50 | let mut index = 0; 51 | let mut to_skip = 0; 52 | let mut command_iter = command_list.iter(); 53 | loop { 54 | for _ in 0..to_skip { 55 | command_iter.next(); 56 | index += 1; 57 | } 58 | let command = match command_iter.next() { 59 | Some(c) => c, 60 | None => break, 61 | }; 62 | match command.name.as_str() { 63 | "cd" => match command.argument.as_str() { 64 | ".." => return (final_directory, index + 1), 65 | subdir => { 66 | let (subdir, skip) = 67 | Directory::build(subdir.to_string(), &command_list[index + 1..]); 68 | final_directory.contents.push(Node::Directory(subdir)); 69 | to_skip = skip; 70 | } 71 | }, 72 | "ls" => { 73 | // we can ignore empty directories -> only check for files in output 74 | for output in command.output.iter() { 75 | if let Some(file) = File::build(output) { 76 | final_directory.contents.push(Node::File(file)); 77 | } 78 | } 79 | } 80 | c => panic!("Unknown command: {c}"), 81 | } 82 | index += 1; 83 | } 84 | (final_directory, index) 85 | } 86 | 87 | fn size(&self) -> u32 { 88 | let mut current_size = 0; 89 | for node in &self.contents { 90 | match node { 91 | Node::File(file) => current_size += file.size, 92 | Node::Directory(dir) => current_size += dir.size(), 93 | } 94 | } 95 | current_size 96 | } 97 | } 98 | 99 | fn parse_input(input: &str) -> Vec { 100 | let mut result = vec![]; 101 | let mut commands = input.split('$'); 102 | commands.next().expect("No commands"); 103 | for command in commands { 104 | let mut command_output = vec![]; 105 | let mut command_lines_iter = command.trim().lines(); 106 | let mut command_iter = command_lines_iter 107 | .next() 108 | .expect("Command has no lines") 109 | .split(' '); 110 | let command_name = command_iter 111 | .next() 112 | .expect("Missing command name") 113 | .to_string(); 114 | let mut command_arg = "".to_string(); 115 | if let Some(arg) = command_iter.next() { 116 | command_arg = arg.to_string(); 117 | } 118 | for line in command_lines_iter { 119 | command_output.push(line.to_string()); 120 | } 121 | 122 | result.push(Command { 123 | name: command_name, 124 | argument: command_arg, 125 | output: command_output, 126 | }); 127 | } 128 | result 129 | } 130 | 131 | fn find_all_sizes(dir: Directory) -> Vec { 132 | let mut sizes = vec![]; 133 | for node in dir.contents { 134 | if let Node::Directory(dir) = node { 135 | sizes.push(dir.size()); 136 | sizes.append(&mut find_all_sizes(dir).clone()) 137 | } 138 | } 139 | sizes 140 | } 141 | 142 | fn main() { 143 | let input: Vec = parse_input(include_str!("../input.txt")) 144 | .into_iter() 145 | .skip(1) 146 | .collect(); 147 | let dir_tree = Directory::build("/".to_string(), &input).0; 148 | let dir_tree_size = dir_tree.size(); 149 | let mut all_sizes = find_all_sizes(dir_tree); 150 | all_sizes.push(dir_tree_size); 151 | let free_space = 70000000 - all_sizes.iter().max().unwrap(); 152 | let minimum_to_free_up = 30000000 - free_space; 153 | let mut total_of_target_dirs = 0; 154 | let mut potential_deletions = vec![]; 155 | for size in &all_sizes { 156 | if size <= &100000 { 157 | total_of_target_dirs += size; 158 | } 159 | if size >= &minimum_to_free_up { 160 | potential_deletions.push(size); 161 | } 162 | } 163 | println!("Part 1: {total_of_target_dirs}"); 164 | println!("Part 2: {}", potential_deletions.iter().min().unwrap()); 165 | } 166 | -------------------------------------------------------------------------------- /day8/src/main.rs: -------------------------------------------------------------------------------- 1 | use std::fmt::Display; 2 | 3 | #[derive(Debug, Clone, PartialEq)] 4 | struct Tree { 5 | height: i8, 6 | visible: bool, 7 | } 8 | 9 | impl Tree { 10 | fn new(height: i8) -> Self { 11 | Self { 12 | height, 13 | visible: false, 14 | } 15 | } 16 | 17 | fn scenic_score_in_direction(&self, trees_in_direction: &[Tree]) -> usize { 18 | let mut visible_trees = vec![]; 19 | for tree in trees_in_direction { 20 | visible_trees.push(tree); 21 | if tree.height >= self.height { 22 | break; 23 | } 24 | } 25 | visible_trees.len() 26 | } 27 | } 28 | 29 | impl Display for Tree { 30 | fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { 31 | if self.visible { 32 | write!(f, "\x1b[1m\x1b[31m{}\x1b[0m", self.height) 33 | } else { 34 | write!(f, "\x1b[37m{}", self.height) 35 | } 36 | } 37 | } 38 | 39 | #[derive(Debug, Clone, PartialEq)] 40 | struct Forest { 41 | trees: Vec>, 42 | } 43 | 44 | impl Forest { 45 | fn build(input: &str) -> Self { 46 | let mut rows = vec![]; 47 | for row in input.lines() { 48 | let mut row_trees = vec![]; 49 | for tree_height in row.chars() { 50 | row_trees.push(Tree::new(tree_height.to_string().parse().unwrap())); 51 | } 52 | rows.push(row_trees); 53 | } 54 | Forest { trees: rows } 55 | } 56 | 57 | fn to_columns(&self) -> Self { 58 | let mut trees = self.trees.clone(); 59 | let mut iterators = vec![]; 60 | for row in &mut trees { 61 | iterators.push(row.iter_mut()); 62 | } 63 | let mut columns = vec![]; 64 | for _ in 0..iterators.len() { 65 | let mut column = vec![]; 66 | for iterator in &mut iterators { 67 | column.push(iterator.next().unwrap().clone()); 68 | } 69 | columns.push(column); 70 | } 71 | Self { trees: columns } 72 | } 73 | 74 | fn get_tree_on_position(&self, row: usize, column: usize) -> Tree { 75 | self.trees 76 | .get(row) 77 | .expect("Invalid row") 78 | .get(column) 79 | .expect("Invalid column") 80 | .clone() 81 | } 82 | 83 | fn get_trees_on_right_of_tree(&self, row: usize, column: usize) -> Vec { 84 | let mut result = vec![]; 85 | for (i, tree) in self.trees.get(row).expect("Invalid row").iter().enumerate() { 86 | if i > column { 87 | result.push(tree.clone()); 88 | } 89 | } 90 | result 91 | } 92 | 93 | fn calc_visability(&mut self) { 94 | // rows from left 95 | for row in &mut self.trees { 96 | let mut current_tallest_height = -1; 97 | for tree in row.iter_mut() { 98 | if tree.height > current_tallest_height { 99 | tree.visible = true; 100 | current_tallest_height = tree.height; 101 | } 102 | } 103 | } 104 | // rows from right 105 | for row in &mut self.trees { 106 | let mut current_tallest_height = -1; 107 | for tree in row.iter_mut().rev() { 108 | if tree.height > current_tallest_height { 109 | tree.visible = true; 110 | current_tallest_height = tree.height; 111 | } 112 | } 113 | } 114 | // columns from top 115 | let mut as_columns = self.to_columns(); 116 | for column in &mut as_columns.trees { 117 | let mut current_tallest_height = -1; 118 | for tree in column.iter_mut() { 119 | if tree.height > current_tallest_height { 120 | tree.visible = true; 121 | current_tallest_height = tree.height; 122 | } 123 | } 124 | } 125 | // rows from right 126 | for column in &mut as_columns.trees { 127 | let mut current_tallest_height = -1; 128 | for tree in column.iter_mut().rev() { 129 | if tree.height > current_tallest_height { 130 | tree.visible = true; 131 | current_tallest_height = tree.height; 132 | } 133 | } 134 | } 135 | self.trees = as_columns.to_columns().trees; 136 | } 137 | 138 | fn count_visible(&self) -> usize { 139 | self.trees 140 | .iter() 141 | .flatten() 142 | .filter(|tree| tree.visible) 143 | .count() 144 | } 145 | } 146 | 147 | impl Display for Forest { 148 | fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { 149 | let mut result = "".to_string(); 150 | for row in &self.trees { 151 | result += &row.iter().map(|tree| tree.to_string()).collect::(); 152 | result += "\n"; 153 | } 154 | write!(f, "{result}") 155 | } 156 | } 157 | 158 | fn find_max_scenic_score(forest: &Forest) -> usize { 159 | // get arrays 160 | let trees_rows = Forest { 161 | trees: forest.trees.clone(), 162 | }; 163 | let trees_rows_reversed = Forest { 164 | trees: forest 165 | .trees 166 | .clone() 167 | .into_iter() 168 | .map(|row| row.into_iter().rev().collect::>()) 169 | .collect(), 170 | }; 171 | let trees_columns = Forest { 172 | trees: forest.to_columns().trees, 173 | }; 174 | let trees_columns_reversed = Forest { 175 | trees: trees_columns 176 | .trees 177 | .clone() 178 | .into_iter() 179 | .map(|column| column.into_iter().rev().collect::>()) 180 | .collect(), 181 | }; 182 | 183 | // println!( 184 | // "{}\n{}\n{}\n{}", 185 | // trees_rows, trees_rows_reversed, trees_columns, trees_columns_reversed 186 | // ); 187 | let forest_size = forest.trees.len(); 188 | // loop over every tree 189 | let mut all_scenic_scores = vec![]; 190 | for row in 0..forest_size { 191 | for column in 0..forest_size { 192 | let trees_on_right = trees_rows.get_trees_on_right_of_tree(row, column); 193 | let trees_on_left = 194 | trees_rows_reversed.get_trees_on_right_of_tree(row, forest_size - column - 1); 195 | let trees_below = trees_columns.get_trees_on_right_of_tree(column, row); 196 | let trees_above = 197 | trees_columns_reversed.get_trees_on_right_of_tree(column, forest_size - row - 1); 198 | // calc scenic score 199 | let mut scenic_score = 1; 200 | scenic_score *= forest 201 | .get_tree_on_position(row, column) 202 | .scenic_score_in_direction(&trees_on_right); 203 | scenic_score *= forest 204 | .get_tree_on_position(row, column) 205 | .scenic_score_in_direction(&trees_on_left); 206 | scenic_score *= forest 207 | .get_tree_on_position(row, column) 208 | .scenic_score_in_direction(&trees_above); 209 | scenic_score *= forest 210 | .get_tree_on_position(row, column) 211 | .scenic_score_in_direction(&trees_below); 212 | all_scenic_scores.push(scenic_score); 213 | } 214 | } 215 | *all_scenic_scores.iter().max().expect("No scenic scores") 216 | } 217 | 218 | fn main() { 219 | let mut forest = Forest::build(include_str!("../input.txt")); 220 | forest.calc_visability(); 221 | println!("{forest}"); 222 | println!("Part 1: {}", forest.count_visible()); 223 | println!("Part 2: {}", find_max_scenic_score(&forest)); 224 | } 225 | -------------------------------------------------------------------------------- /day8/input.txt: -------------------------------------------------------------------------------- 1 | 222112212213012301211134200002032424301142102231553514443201341400212230204230401120330131220022210 2 | 102112111222233101031402012403201222213455312422432144422311112420034421043440034112120031011001111 3 | 102122223023130331231203443334122242323322135341452245355543411453442102413422113120120032330210022 4 | 110001231100011332234413013213045445233212225343233154553335222544334133331211032334110100233102201 5 | 112120312023213203233203304022134355314211535351534544145442243315233432344112114414123111203320020 6 | 011002313231332320303110000042412533123545342432545135533235211212352231130344444401342320130320121 7 | 202200003023134141242312215422124511134354234431153434535452422114151522515014320031112011030221212 8 | 113102102331342324141114531234352232235552513522232636554232221113521412245544143301410240122300333 9 | 211033000313424140310442544541544534324266444536336436655636514121154553344222201421134014231222302 10 | 332011030332301044222122531531145414243656663555635264222563536433553554235415534133020002100133303 11 | 003200210344344312222345212454341556565524245554625246646642233535613232411111322202404003021131033 12 | 212202212302402424325552233413344566554423363522454624625334634462244412142314412223233004123103222 13 | 231133111414111002334425521322446233535222326464242534552643634365465232413221523242312003123132201 14 | 313223120340002432131523132325234665452663343265346463224425352244233432414425145251402321040022332 15 | 110231011423200225543222433636555256543455255323675332254645322645563353642135152132431112220340303 16 | 013033041334034232133125136663662262646656343763365537633776266646642565425431553252154042003222320 17 | 211124212402311241341432552546235523455675766654367677563446366265563452623544411131322320324104112 18 | 311012141030452455113536433334564634756367376436373765454656664536225465334623141141513523202242330 19 | 012301101445223125154545353334243457447565444477775644753467675333526255343363252124213413334120103 20 | 233321342044534154326365623624635757737336333365467477364576355456334523455422644531423214142224224 21 | 301402311421451141543665323222675333544545373365757767436436377564663672643455325544345555343040001 22 | 304423021253551124566534255363675576646675576466557455437737444737747537646443223341251522522230001 23 | 402303113531252112565332322437444444733673535744665564777363553757753536545453435361315251231022201 24 | 343113132243234232442552423677343665646745755454558875768678444345656475473455643666552254215432201 25 | 001131034112131524452326657653354765338567784768566647744666875357433357473443522344225243313244213 26 | 122023311433442633553443245556444633487484788585787474756876774566456663465434656446221314315234003 27 | 210402415552526566563532756754334548465444477566878777656684755778854636554443444552623255421510333 28 | 012001214432256464324225465635565588677746855755476557887465446855587337665333246334333115555314412 29 | 222132543313562322224657563736748886877557564745856544774584766446584737675675655426522652442214320 30 | 423214351334263626364676677744385788876488856679865769577554548558576845634376735645243412241314440 31 | 200352424121452235643454473333744776478657758589797689577768775555766757575457666524463265134132113 32 | 333315323435235263224363656558587456864875686898957675666699844768877857436437433545365222234341541 33 | 440534535556542636375566743576488664766587899757997995986595998576846675543444535754225244215134554 34 | 024231424242352653653366736648748655879977997589965595769786599767867475484663336562353663434352152 35 | 343213443126654446367347436548467666598677556987577797968667957998466875566535756646625564625421223 36 | 305442424346225553455343444677558786657855987787595987859767769565548776784763364346444544514354521 37 | 044542513463542544536576766646765867855955675958686896585987667655786864488874467573643532225314434 38 | 333323555525534363367466378746456755999597668978976886986995578868978575457547765434534344531342414 39 | 132144512424624543767433787687869887957589699699889779999966965978785846878667767435452426244313414 40 | 433315554346265355436574786758868587559859868886977896966698966958756685885573763453344346541151314 41 | 413513516336543645563337757744486999985966876969996998987779796796957876687654446366443562255155552 42 | 053533316545342553357448558745679998895697868968686986668766695755859555675684345446663325326241315 43 | 452255213256224764677634885884887668896987769886798989898796878696976888585775655464573535262323413 44 | 053251253265242337365677865455955659889688896796678767879969869899867794878748765545564452542212253 45 | 432555255435523454456458675766766597799799989798787877998969799858879977447488835336742526665511541 46 | 241254425566644576536545645478755987567969698987978987986867699878998779657567765374554632255352231 47 | 212251243454532574336574754465559565989998678999989897797679989965986789447484777735556645354241432 48 | 351554453346366564744644787789767968867866998889898777887886689868676957588465675646434432325641155 49 | 233511144565355357637675467645758888989986767888998798799777986999866999584486736777445526634415411 50 | 552551233443243573655777577789585687789669879789877787877797698876776579788877444673437534324525435 51 | 143232566345523665757754565545667867777877897788988787899896686998995587547878766774555656636534135 52 | 433541553363523355656668675576556586969876788988999899779867798965678555468486575354456535425515555 53 | 344212454446337547774468664578575566899789897799779877978888689668755668747448866467365322263243551 54 | 552455432524262376773384654645576767866796977978879898778678866967889686688766434443675265336615251 55 | 135535155623522753744547875577557687669676967888999988997966866665885787456748875435366562424534531 56 | 215231124322426336745754475847579989586768769897789779979667996797575879668644656454763644425121422 57 | 212353152225262656674688558455679556678778878999989978897988687695977855845875545365732546546221153 58 | 342215156352366476447768686848995677666966898699678876998899788557885988654556543633764333352552233 59 | 321515146536623334447468787664857689889778679897689767666666876959657687557868737443466335436245511 60 | 013113244334363455557346868585476788777899669889889787896976986999798856665844344437522465564541413 61 | 255143115565563633554666548747467856858787976799799896788898657557689855656457337356756442362123313 62 | 031335324654646343353765754757559786988898799879766777869766957768678785744646763447522433365222442 63 | 355114345566265574654466845444746655698758868679677967667965686587997467558857755676353563261512215 64 | 211333325622665265467373444887576597859865989789968666967785965758665846744764735736522262624221433 65 | 203525523354545545357477756777858468677997556567877689887986699968965485487544534377623343312412411 66 | 035353154465262346653634674485667468675788965676899758666759666989765546648457665765463456343215245 67 | 443532324422363343764533655655465475697667556876899886655786789655544677465744335565363522535323222 68 | 023221222543624565343363346774576887896898699755676558575985686565448575865345566522423236451422212 69 | 340212523155644543675734665446864675489858766958766655767576857748765787847634454442644324452422442 70 | 340432344521322563564356377754466658556459785655679599676758974745687864733753553535332232533455131 71 | 423215444314465433363574467737846756465458875587578798587755447654584446665777433425655623221415333 72 | 231241142215323244526775377664464744577555454676959887594554756855744536775664443534325342321451404 73 | 041413415453153535346557674463478885886466466478646768858584468688855347653754554436233543155525231 74 | 124222414122553624346345437665675777668785565746566685776576878464743736477344643425242212132152233 75 | 431120425412133263655256663746445748465757577585866545754667484666835737774574546346652434524454213 76 | 332043443511242235543633465473473675845445877745757888777748556755354763764335524334264445423240213 77 | 110122354411324336322632634335645635764775666784878647588876775364547734567432433353213554524544241 78 | 404321421523113114622636256564577663536565667777575445785888764456777343552445536242253322122412030 79 | 434030213332131144533432644476553675447575534754446688644447737555467767665365336555321252231243214 80 | 334212124143441352445224356446437377466337354564437476736756465563366773665422354564145454110014014 81 | 023203310131523434232255525444447564635374747633465767673754476337356662443425256514522323244112441 82 | 101120041133443314423543562233264736667766476557757433763676347364333644664555433355235131413120024 83 | 011012441204314121121546323525643344445465476574645343546646554766764455636662533425443342404340220 84 | 120142204403244355135312262656523644334637455757667465354467643636263363553436554344424440004042021 85 | 010024440443243142133431335563452363655567477576345335375375467332245326522442143115352523013434101 86 | 221004131030132523224521244363343325363355755366544745635363662456454464634235115135451040111124021 87 | 221132142310414233535533233653455643535365654435673454636364553636652426332435251441310343014132131 88 | 100303413021411121224513435162254455525254445364236246246445454523356224411311133322303211413333203 89 | 101123123243233425552423352333355654363465545332323556635563566444222565424212444124103140200212222 90 | 113232221042340022452124431511116363243453446254253642443442525545623322551453455154131341124213102 91 | 023002112204241124205223211223435354464434654566424625466423255554312543425225144413300342321320033 92 | 300302313044222022000442431444142544322536453645445345252346423512232111334143531243041000123213120 93 | 200011033010243420404315154435115543241326325336453346442553521441225132213223512024314024301112320 94 | 112010033200133002013304454543415322425441251224536444233214423545234414225110400142441232331102223 95 | 021112220332003000034123214453541414533524435224552515112152545215413542331013134004230400322020232 96 | 021102300011120141433401232445214332421554341255254252534554543451451351441303324220233023133322000 97 | 201221330223300010443300144044452432145223434443422235541121234255244513242121233314221213203000111 98 | 202100221111033202310310014120314313424245224554332212352354242541454431213130404221010021102320022 99 | 210120011112003123423244304300221413244525315153255555432535313221224211034403142213223310310310011 100 | -------------------------------------------------------------------------------- /day3/input.txt: -------------------------------------------------------------------------------- 1 | QLFdFCdlLcVqdvFLnFLSSShZwptfHHhfZZZpSwfmHp 2 | rTJRjjbJTgzDJjdsRsfwtfNwtfmZpZNhmmzt 3 | bMdJjsjglnVMFCCc 4 | BZvZMBBBMTtZTgcCPdgtgQCrrV 5 | VspNDDpsGDGnRmRpRplQdrrPcPCjgDCcPQCQQj 6 | RVnsmspnpwFRlHGRwHHlnRSThSSvBTbFTZMqTMZMTZFh 7 | ttffrVJWtWpgtQnZGVnNSLTHSZ 8 | jRsjjmhdRcjcRsFcdwGLMZSnHMTSMNZN 9 | RjczlvjhPCcPjcvRpbglWplJBblqrGgq 10 | NwCWwdNQNDCwGpWNQwmJtZgPZrdJgLZcPhLddr 11 | blqpnFTqrLbcLPtV 12 | MnjqSSpqlFRvSqNDGHvWHQDwfWmm 13 | jfLljlQhDLmlrMJQtJTJrQqQ 14 | NpBbjjsdMCgCCMrb 15 | dwspwGnSHHGsGzDDlFDjVWjfZWnP 16 | wQhTZwvpZFZdqWLnnwSrWC 17 | mfDmMFlDcPLdgDSCLCqg 18 | PmzclsMclMlFsHHsJZFHpT 19 | LfLJWNdJnBLfhndfWdZqcgDZgSqgCCSSSLDF 20 | bQVQmrrjPqQDZSZBCQ 21 | RRtGjVmRsPbPrrnNNpNHHnBnpHns 22 | PfbGNwGBwNcPTbGNQFBVjsjztVztVjHV 23 | hrdCJhmlJhZrLDRmghrmDrzqFsbgtbHqnznzznQtbjtz 24 | WdZdDJCDmrJmLZrLDLDZlClcSccwSPbNPfSNWfGNNWMGNc 25 | QwrnTSgqgFShSdfHPdbS 26 | BGdjmMmZMvfhvCZZPf 27 | BzGmzVGGGzmzGpVBtdnQqqdTQQDDqrpR 28 | PPRPwLQlLtbPmbwgJhrSssNlhhrgsZ 29 | fFTdFvTMNfzVnFqdnjgSSjjsSjhghpJs 30 | dvczcFzNTWVWMFLcLbQQwmbHLCLL 31 | HhLLDfMmTjsjmLmhsmmfZMjGtpGJtdcvnCWtZJcWGddttW 32 | gwrwwgzwgDpJddrJDr 33 | SBwBBbgVsVmRRhDM 34 | SZdmfdZRTQZTQgHVVGGRqZdVCjCcNCNcJRWcCBbJjCPCsNsc 35 | FnhzMMhDDFlzlnvpwMLrMDCsbcjNJbcJbBcBfPhCNbWj 36 | wzwnpDDnLvFnLlttLrzGgTVGQqZtTqSqSdfZTg 37 | FJJWWWrCGWdmzFlTVqqlMhmvVlNh 38 | btpgtfjZjjhgggrNMThl 39 | DpwpfRZDZwwfwjsnjfsZnnnwGcCRCHcCCCLGHLWcrcFCWCHW 40 | ljHHHBtjQthchhZpqqNt 41 | FTmJnPFwzlJPmzTgTgbFwJbMCpbMchhhqbhWCDMDhZcppM 42 | JwlFGwVGnFFGBGjdSsfdsG 43 | QsvpGhjGgswvjjwjjjvPpThJfLZCCLCSSLbFLStCFCSgtH 44 | mDrzdzMqqnMrDMmZnqnzNVRCStlCHFSCtJqlCLFCFLfJfJ 45 | mBDzNRWBDDMBpGsZcGZWGjPp 46 | SlLQhQsvvttFlWsWcfHHMTJfwSHwTfTf 47 | VZmmrRDRfpTHJcRf 48 | jzBnDDgjPchWlsQsBW 49 | LTLVdTSLNTLnTSnrWvdwswsfmJwmwGsffH 50 | FbgCbRRppCpPbgMcZvCcGftGGltwHwGtplQQsfJw 51 | CRBMCvZZRgMgBbDCPcDrjLzWLVrSSzShSSNrBS 52 | hVJJjhjRVRZjQvDfBstsBVNBdwstHsld 53 | pCTCcMqCThTFLFFPWcWSPHtwwdmcBHHmNtHdmwmwBl 54 | rMTCCWPLLPCMFhDnDrjzRrfDJD 55 | pqMpCvMchvFNWSBdVNqQ 56 | zDRJJDGJJtNtmGRRWVdFWWVdSfjb 57 | DDJLmnJmzwGmGLTPhTCNpgcrpv 58 | cpPpbPWVprWcbJrrwpCwwdWrvNNFRqzNnChgqFzFnZvqFlzq 59 | fTtHLfSHSsNDGLSmsLvnhFqzhzlzDhhvRlFz 60 | mSMLHTQTmHMSfBSMTPdBJJNNVddrVrbjbJ 61 | zpCpBTnFgFbncznbblzdhRswdlJsLllJdw 62 | QqqmtWVPWvHDVmqDhjsljwRhlZldhRMQ 63 | tWSHDmVfmrtPHVgGRRbgTRpSgpTc 64 | ssTbzFRtPRwTFZtvbPRMhndBqMMvMBHJnnHMMd 65 | WQVWzlGWVBqqdMQJMq 66 | pVSpSSgLfjDzWrLGWWjDzzfLtbRFFNtPZRssspsNRZcRsNZb 67 | jnPzzGlnnznWnzhvGnnpVFrZmVFcgjrrmZRFtj 68 | fsbgTdwdqBbfwCptVtdZRcrRCp 69 | gsMbgfHsBSwsGhhJWMLnWPPJ 70 | bpmbJpNbbbNGGmRJzJTsfdsvsNdglfhssCvC 71 | hWLwQjZjLhjHFFBLZldvvflrvtfjCrfjlT 72 | QWVQZZFDcDJJhJJc 73 | RmRghgRlNgfGGRmdGqhsgsZFZZpBvHpZppHcgH 74 | tbLCDLnLtSbbbjtPtMLtDPTvHHBpcHcsHvTcHsmZcF 75 | rSLrMJzDznzGmhNlVwdrRr 76 | vWjljMWcnSSpjmzbJVzJrTCmtGJV 77 | NZDDQLRqPJrPzrprTC 78 | gqDqqwpdHWhlgnjH 79 | ccptcpstDvbNvHbLNRZZ 80 | dFjhdnjQFJlFCQSjgngJPJgWWrRNWNRtNCzrVbRzNVzZZL 81 | PhThFSPPSpsmTcqMwt 82 | cLcLlMhGMGcpGzslHFHFvnHlBDvWbT 83 | VHdQwqPJdPwjJPdPQRrmjjjQnTFrbvNWFFffDvbvvNDvbBNN 84 | RwRJCHmmdQJZZLzGphcCtz 85 | hVvFVjvjVWmFRQVZqTpqtwQpwpqZfp 86 | gvDlSBDJSlPLcLdDwzwtptqTTTzwcCCt 87 | JgrJGbLgvnWsmvVr 88 | rwmqqRqrnHQGmnjCCqCzdBzCBJBz 89 | hFLgbWWPWmvtLhPtgpcdjJdcBJdpJjDsgp 90 | lvfhSSPWtTNTTZZmfr 91 | bHDDssRHsjNMbJjJLQJsbTtGvSCzCGQCTzGvSqSBzT 92 | mmVrwhmmpfPStnTSBnhStG 93 | pcwrptZcgFcmpgHRDjjZlDJsjbbD 94 | JJRrmFqJMdFFJMjjJcqGgzSCSHSCscPCHPHGZc 95 | VWpWptnvSmpPGCHC 96 | vQnDLBmbntvLBbnlldTQFlJlFFrNRd 97 | LPDftnHFQfwmBcBGmc 98 | CVqRsdqvdrlsCVsNvqwwSpTNSSDSDDBBTTSN 99 | lqlDRddjbblRbRqrlRRjsbvghHHnPQWjHWQWZHPHWZhFnP 100 | bwQsDcgsJqcsDpcQRQnpqtVSVvgSMMMfMvfVBVfdvM 101 | CGZFrHHPrTZNGGZZHmCZHlVfjfzjSfzBtBBNSBVjvntf 102 | ChrCCLGrTlhJnhDncRbp 103 | nmFnhfTQjSzfjddZWsRRRFRFGl 104 | HDgCwgtQbZlHsrqHHr 105 | cJPCgCCPbpbgDMPvMQnjmnhTfmzLpQQmjz 106 | QFHSQdNMCSgcSgFtttPNFJpCpnTjZlbblpppZplZjz 107 | LqLsWMRRfrrWMmMGpbTnbppbZnTjpnmm 108 | fWBrMqWsGswGfGRMMwrLgtPPdNFBQPHNHNPPcFPP 109 | dngbSppJSSppbVMZQQMjqfQQgwcl 110 | TWmSWtvCRCWjwfjqQqMstq 111 | FhFvRzSTNmhHnVPhGhBJdBpB 112 | gcHPgzGmPPwTsSTsbwbdWD 113 | QjBLLfVhhBqqBFQLrLjVFlNpNDtsSWTDdNptdbqbdS 114 | jCMFLVjFBFjJJLFFMVBFrLnvPzHRmHPGnGWWcCvzHRZm 115 | PDPqWWjhPpPbCsjwjTVbLT 116 | SrtCttGRMddSVwHFSs 117 | JtfvttmrGMRRJzJCqhqqqWQZhCNgJZ 118 | ChrCVFQCVQlwQNwpQcmmcjmWBmddghjjdW 119 | sbDTZStTqqfSBggPmWjWWNsL 120 | THqqSHDTtZTDTHZZbHTzRzFvlFCVprFprQVnCzNppQrz 121 | PdfWCwMWjPSrdgCMnnlGsGQvvpJZvFGnps 122 | DmBhVBLbbVqVBzTRLBRzzTLNNpRQNNZQZppZvlQpZvllvF 123 | zVDtVHBbbTbzDbrjgWjMPtMWPMlj 124 | JLsTTNDsgTMNvDQpLpGpLGNJShrfzCFnSnSrnfzCfTFhWrfw 125 | ZcqrRddHZZVRfzWnVWCzWFnn 126 | tZHZtrHHPdRtdHlcccQggsplpJDNvMGNGMss 127 | cMCLfStfMTCjPMPcGzjftMbgsRNmRgmmGsmnJbNJbghJ 128 | QHVVWrFFWZNShHSgbSJm 129 | qZwwrrpqpZpZFvqrQdFlQVSwLBMBfTTLTjLBCcdTMzMftPPB 130 | SwsdBTvgvJLPNptpCpCmBDtn 131 | wffrzwGFWFNZWpjWZnNm 132 | zrfflbRwJPhbPbsS 133 | HjHHRtwjnjRblQRttHwQGvGWNNBWvqGzfTvfNN 134 | FmScCcrsdVZrpBrVcCVFzffvzzmWGLWgqWqgGWzW 135 | SFVSDDBdsdDSJhnjJltJbPtHRM 136 | FjGFVqWrzQFlQrZzGQzFLTvfwwTgMnvcnbRMLRdnfb 137 | CCttSNsSnRfgncSg 138 | CNspmDBPtPmJJNBJPNpDhQZVzQlhqrGZflfVjQFrQj 139 | dNNdHWcmdmPPptmmWHpPTFFjJPGrQsVsPQGGGJVDrVVGrS 140 | MhZlZhlgflgfnfDtjbjJGbtnVtGS 141 | LtZqlzhzqMZWHHLwdHmFWp 142 | llNRlfwWRwwLlwFNNgRrVCBjdjCVdjpWjtVWCD 143 | HTQqzPqzQPmhhmSPznSsssJtdnMZddtMCjprtMjCnBVnjZ 144 | PzHQmqsGSJPSmQqPbfwNcgNbNgNfBGwR 145 | lPdzlZPzQzMZQGQrTZvvpjHTTpfsTTZb 146 | zRShhtWRnqnqSNRnDTTHvfNJspNsLpTsjL 147 | hBVncVtDSnhDnDBBtGrlzwmmMlGmVrMdrP 148 | HPTZVHVPlHDPlfgnjJFdJdjPjSPqCS 149 | hLRRBhwGhqbtmsRSSSjjdMJjnJGSMj 150 | QrQtqrRrcQDgVglc 151 | ZTwbbZdchZZjmVWHTrHWBVJtBB 152 | glslCDqLLDfGRqlsgLssfrCHBHFHmrHBBppFmCJWWp 153 | fRzvvvgGgNSNvmQbSQ 154 | qPGGPwCTqTzHCvPGqWdLFLssLpstLLspvd 155 | njJchhcbjbDrbcLNlLrpWWrLLHgp 156 | DQhMMMJQMQJnVbbnRHSMPwZmGZPZRTRCwTZmZGwz 157 | zzGNfPbcgdPqLrqvWWVzMq 158 | DGmJtnJTJRhhJMhCQqCLCLrrLM 159 | ZnHDtSZlTBHnBdccGSfGcwjjdb 160 | FpZDpQZDvMwZpCCMdCBPpJGPPLgJGGLffJJL 161 | jlbswNrlPPJJfGlf 162 | bnNwqbHnNwRSrqhbdCcmHddQzddFDdvZ 163 | gbQQQngWPVVtvvPQNVNvWWSHGwDsCCmDtHSlmrssDmHs 164 | fqhMLFFMMZqZMRZqMjRMqLJSCdFlrrldsDrCsDSSHHGCSC 165 | MJRZLZLGMcTqczjNPzNnzPvWBVgNnP 166 | gqdbBffTvlRHbwLl 167 | nMMQJQpGdsFpQsJzNMRLLDlmLLmjFFmLjDRF 168 | pzGMnVcMBfTdtBBV 169 | WSbfmrrrrWdbWmdfDSSStmHjtMtvCLVnqBHCVGtVGnMM 170 | lRcgFRZhJgnMLjvGgv 171 | lcvwTcFTplvwphzcTTJTbsdsPSPDdbmzmDSWPsSm 172 | bbdTjTQTQMsZNqqhJrZslg 173 | jFGVjwfCPVGfwjCVqWhWZFgqWrglllNN 174 | PjfSPzRBjCCfSBCGBLznTndHcdMLbMmmdT 175 | wSVMJSVccdGwGnsgbVTTbRsCRNgN 176 | rHjhHLmrhPJrqjNTRDgBbbRRRs 177 | zqmPPqqpPLzltrMdJcZpfdpGWWJJ 178 | ZhrBBJGrgJhGHttGGVPPcPPF 179 | cnzLqNssfRnpfWqsLfcfWQNMbMVPDtnDtbHFtMbPtVPFFM 180 | jfqzCCLsWQLcjgldjmljmgTd 181 | wghGSSGZPVwgqtwtwCCtFFMM 182 | BvbspnBznvvWHWHHHbCQptQFQlFcqMClqLLq 183 | JWzzsJHWzfWjJrvMBWHBBGDmVDrVhZmmgSPSmZVVrh 184 | ccRMJRsjjgJgcPCSCCVCwsSWVNzp 185 | WQQqnmrBWtqWqdSbVwwBSpbbCSBB 186 | QvDqmqqmgWPWjPvW 187 | msqpjDWspRWwvFvDWWhnbbJfPzFQblJJPlnz 188 | gGGrMTgLVBsBBLdsVTrSCBffHQfdHhnbPPPPffndlbzh 189 | ZCVsCGSScsLZpwNpqmZRqW 190 | PPsGmJPVPQPZmsQCVPJPnPCMDcTcdqDDTqvFhvnTjRDTDchq 191 | BdrtzNBLHStHrdrlwfNThvFhcvbDccThjbFBqq 192 | SSgdHNfSHHgzLHtLNWSPQQPMQVpmmppVCmQZCW 193 | pPssrWWLdndHPJdd 194 | QNQFTLNBFTzzgjfGTjffFNZjCSGnHDnSDJHnDScttDCcDnmd 195 | FVzVLZwZZgswqqrbphbR 196 | VpWCZjCwWnppZpqnhNjjNZjFLtLzQJHdHLQRzWLRzRztHJ 197 | DMGPmPMgTSmsgQzRFbdHRLJgdn 198 | csDMPMGDDvMSSPnDTvrDChhwljlqNNjchNCjNVcf 199 | WpGGmbSGpVWWpjMMTNdfCFNdFfRNwNSF 200 | JsQztzrvrJqsTTRbbvFBhhhv 201 | cLrDqLccsLqbDHGpZWDHgjGlZW 202 | QGMQJMmsJmMCmmqjsRvLvvdgvgVvDVdD 203 | BDcrcNbNppwTpzRdvvchhFvfFv 204 | plBBwWrbpQHDjGmGJl 205 | mzFlTdmSDzrPvCJqqDVVNC 206 | hfRmhgjRhnfwnRHcnhGGvPJQPvvfLfQvNLGv 207 | BhhnjMgRWghpwjRWMRjrZzdbSbsdstTrltdmMs 208 | bLLnbqjpvplnDvNlqpqBWJZSdPJCNdJJThhSPhTd 209 | HFwHHQMMFHGzGwRPPJPTWthTZtJSQr 210 | mfWMHFHWHmgmFcwGwwpbDljqjBDcDnLcVnlb 211 | wBrWBwSWRJMBwdZnPQPgFnwGVF 212 | fLjfbsvDDfvvqqGqZGqmPQgqTGGG 213 | vZLsjzjjZCzJWRNSBR 214 | jTRbRHHqPqTRBHqdjhgvgghhZQdDvvgvhC 215 | WLWWzzFszsmNFGWSFmMrpghCtZvhlQNDgQCDgctC 216 | FJsLsSrDmsFSDLWrzJmmMsGqjRBVbJTBVPVBbBqRjPBjHn 217 | QbwwnDDQDcDfSbDbfhhrvrCtJMvJSCvvJh 218 | FWRjjLjmdZWdWNBFNWNlNQQrMGvvMGgssGvQRvrMJs 219 | BjWdlBpmdmBWFWdpWfPfpVnVwfHpqPQDbq 220 | SqrvlMldqvSWdGPTGzWpWpzpHP 221 | tRwmhtbsRRFsLwGGTVDHppTNdbVp 222 | FRCRQdCFtCLmBhCcmmQdhFdCvnfjffjZlZnjSnvfcSrrgMgn 223 | GQQtNJQWWcqPPhMMtwqD 224 | WpWLlBWZCvhjwMMZqDDP 225 | WgvmLVmHCbpppLgdllHddvCmFGzGnfsJJQJsJncSsccFVffF 226 | HcSsSlTTvvPPWWNMWWgPTPPbGbbrwJQbrrDphrHJJRpRhp 227 | ztfLqqzmRwDGlLDb 228 | fdVtmqjdZBmSvjsPSWlTgv 229 | DPvDhhMRRMhRNDLPMNsbwHwrjgnddqddrWdPtHzr 230 | pcBGSpcVBfJWCcmJGGwHtzgrrtwqzdrtrngG 231 | mllBlBZmMlQWRbQv 232 | SGZBSFMZllJWmzvfpp 233 | NTqbNrhHNHWgNqHrNhNQbbjHJLcnfnzLLnLmfcfccJcfQLcL 234 | HggbTNRRTHqqbVSGMSZVWDMDwVPs 235 | SBsSlvbPlFPvRlbPsMFZLgVLrLsJVgzrCJfVCH 236 | jcNddNdGzZrVgNVJ 237 | tTGwdcmWGdtwQmwmwZdwSlhBPbhPTBFRhlhSMFMR 238 | RzStzTzzvvQvSHVvhVgBqMMFqhPM 239 | ddlLLwNVLWLjbbLrjrbWrwmlhcFmBGgFMMPgBcGBBqPhggMs 240 | dLwdVCVWWdfNwNwLrWrbfbJNptzDDHRnHptHtznHTppnQCtR 241 | RzcfMBHLzpDQFmnDSWNB 242 | dbqjtjVqJZZGjPGJCPGbPndNNDglrmQmNSDgSlSSng 243 | hjCTqhCJbhVCGNvMcfvhfRLhvchz 244 | sDDqDMtqshJhPvhhCpSCCWlZHSWp 245 | bffRcbBGGTwGfGfbNjgSHZSgWwplHCClZZ 246 | RTQBbcnbRNmGbGTQLbmbJVqLllsDVMsPDVVvttMd 247 | nbLBjnqwgfRRBgBwnllbLlwScvPdZPcScZPcdFZJPvZPvcMZ 248 | tChQpphHrrHztssZdcDJcPZcMvWv 249 | hpTHVMQMtQtVpzBfwjfRnfwfnjVl 250 | ljJlvvJQlrlcJcWpPzgthnPnzMgpgSpC 251 | smtmZBmHZTVttHmqFqmzCSZSdndzShPNgPShgP 252 | bVqFHLqLqfHHFwbBLHcwDQrDrtjlQvGjlRQQ 253 | pwhVsPvVVCFtmhPhzqGqqZMZvGTTTMlGWM 254 | drrrrDfDRrNQdQdrRrBdjGWqWqWlGlGtlGbGZGBTLc 255 | tSDfgnHrdDtVSPSshJCSPh 256 | WlWlDqhglLhsdgrcbFdJJpPpdBbB 257 | ZQZvSvzRMSzjZjvZmMMpbFPQFVBrVbPcpbJFLB 258 | SwGZmjvCRSMRjMzZvRnstHftNfswHsflLhNWHf 259 | jsprCvGRQrtjCsQrGsrzvGHhgmHVmHZgggmMGVmhMbHm 260 | FFFdDSdwSffJWqqMzzMmDVbZ 261 | LLcdcfcfPwwBzdTTdtvlsrjCtvPvprnsjR 262 | MvtSqNSWMzjwzFTD 263 | ZRPlcRpQszNgszNwVT 264 | bcZcrcPlcPLLLZllPlbcbLSBfWCvHvWWNSmSqNqfWN 265 | rNdZpMGnddgggwHwzRPCzDDD 266 | vcvhcTLhZLhLPCPHPDPPVvzH 267 | LTmBmthWBchWLttttFJFLlFnGJNsfpdjNsnMnMpnpZdssn 268 | ZHWFCvqBDdqqqCTDHHBWrgppTMhhVpspMPQcSgQVPS 269 | jblbGffntRwltfMQVrrQscphfg 270 | ztJrGtbwGztbmtzzRGnRznWNNCWmHHdFHdFNWWHHqCqZ 271 | WGWSSZvVvqmrmzPm 272 | NgjtwFFlwDsFghNsMtlcjljcPqrQHcZzQznpQQprnqqzHQ 273 | tgMCwNhtgbdLZRbZCT 274 | PQSPQrSGZnGnVFhpVhRRlvLvBDRV 275 | tjctcjTMMpDTvFTlRD 276 | JCftsccFCcmsJJGZGGmPHnQrGwGS 277 | TrjRFFRnpnRCHNFSjSRrffJvJfzqQBsjqQqzzffd 278 | ZtlgMDhZhgmGDLVZLlGtLPqdQQvvfBJJqzzBPdMzdd 279 | VlLDgLLDWtGZwgtRNTNrFTqCwqHTrr 280 | LpcDFDMMPjMLLjpcDGCHgHssGHWnbCBWBHvm 281 | QfZhrhVVdZThlZlfVvVzZrTbgQnBHsCCHgJBsCsJBHmBmn 282 | wwtvfZztlTVlhtrzzlLNpFFRjMPDpRcPFwRj 283 | VzZhhQHQJJWJSSFWDGclbmNPgglPgVGc 284 | ddBTqCjjBCcrqrCRrwGPGmmDGmbpBGNpNNgg 285 | CRMjwsjwsLdLRrQFJSvMFMWZcHFW 286 | JgJJPvtrhRPQQzSRMQFFSF 287 | BLqsjsdLsMBqblnsGbBqVqdwSQSCSWwNFwczQWCNNwNCHn 288 | ljqbpLbbdDlbDbqDDVtMttTTgpJJgThhJrJr 289 | nflndmjbSnlTQGwvWGPHGRGj 290 | NtstcMcDJMvwgHfFvDgR 291 | qqqpLrMsLLqLNNnzbrdlbZSrznfz 292 | ttZCCFjNjnPVCFQPPFbbStrzqzqrrrcwtmJJ 293 | gTTMRMTWsTGGTddHTTbBzBLSmqbbJGzGmqqb 294 | HpgpMTvRhHHTRDhMsHdHDRhjJlVPJjNFJnnFpQQVfPCjnP 295 | VqJVQPpjQqPBbHwldmLfVVmd 296 | tMGvrzzDGCDDddwLbgLvLwcm 297 | TWDWCzTZDGMZtzWWtsFhbRRqRQRjhbNQBBTh 298 | zgLgLHnnzCCvnsHSsZBZBsTRdD 299 | rslllhJjcQNNGjpWJlSRTRdwBVSSNTPVSdPB 300 | jGrGqjJfqccrfqGcGplrJpFvzggqmCtMzmsMnvMvvCgm 301 | -------------------------------------------------------------------------------- /day5/input.txt: -------------------------------------------------------------------------------- 1 | [C] [Q] [V] 2 | [D] [D] [S] [M] [Z] 3 | [G] [P] [W] [M] [C] [G] 4 | [F] [Z] [C] [D] [P] [S] [W] 5 | [P] [L] [C] [V] [W] [W] [H] [L] 6 | [G] [B] [V] [R] [L] [N] [G] [P] [F] 7 | [R] [T] [S] [S] [S] [T] [D] [L] [P] 8 | [N] [J] [M] [L] [P] [C] [H] [Z] [R] 9 | 1 2 3 4 5 6 7 8 9 10 | 11 | move 2 from 4 to 6 12 | move 4 from 5 to 3 13 | move 6 from 6 to 1 14 | move 4 from 1 to 4 15 | move 4 from 9 to 4 16 | move 7 from 2 to 4 17 | move 1 from 9 to 3 18 | move 1 from 2 to 6 19 | move 2 from 9 to 5 20 | move 2 from 6 to 8 21 | move 5 from 8 to 1 22 | move 2 from 6 to 9 23 | move 5 from 8 to 3 24 | move 1 from 5 to 4 25 | move 3 from 7 to 2 26 | move 10 from 4 to 7 27 | move 7 from 4 to 3 28 | move 1 from 4 to 7 29 | move 1 from 7 to 9 30 | move 1 from 2 to 3 31 | move 11 from 1 to 7 32 | move 12 from 3 to 7 33 | move 8 from 3 to 8 34 | move 29 from 7 to 2 35 | move 3 from 7 to 3 36 | move 3 from 9 to 2 37 | move 4 from 5 to 3 38 | move 7 from 3 to 5 39 | move 28 from 2 to 3 40 | move 1 from 7 to 5 41 | move 2 from 8 to 5 42 | move 2 from 4 to 1 43 | move 2 from 1 to 4 44 | move 1 from 7 to 6 45 | move 1 from 7 to 1 46 | move 3 from 2 to 8 47 | move 1 from 1 to 7 48 | move 9 from 5 to 3 49 | move 12 from 3 to 1 50 | move 1 from 4 to 3 51 | move 1 from 6 to 4 52 | move 3 from 2 to 9 53 | move 16 from 3 to 7 54 | move 2 from 9 to 6 55 | move 5 from 7 to 2 56 | move 1 from 9 to 7 57 | move 1 from 4 to 2 58 | move 13 from 7 to 2 59 | move 13 from 2 to 7 60 | move 12 from 7 to 8 61 | move 2 from 6 to 4 62 | move 16 from 8 to 1 63 | move 4 from 3 to 1 64 | move 3 from 3 to 2 65 | move 1 from 5 to 7 66 | move 1 from 5 to 3 67 | move 3 from 4 to 6 68 | move 19 from 1 to 3 69 | move 5 from 8 to 4 70 | move 6 from 3 to 2 71 | move 5 from 4 to 2 72 | move 1 from 7 to 4 73 | move 1 from 4 to 9 74 | move 3 from 6 to 7 75 | move 1 from 9 to 2 76 | move 16 from 2 to 4 77 | move 9 from 1 to 8 78 | move 10 from 4 to 2 79 | move 2 from 7 to 5 80 | move 5 from 8 to 4 81 | move 12 from 2 to 9 82 | move 2 from 7 to 4 83 | move 12 from 9 to 5 84 | move 11 from 5 to 6 85 | move 3 from 1 to 9 86 | move 1 from 5 to 7 87 | move 2 from 9 to 2 88 | move 10 from 3 to 2 89 | move 1 from 9 to 2 90 | move 2 from 8 to 9 91 | move 1 from 7 to 8 92 | move 1 from 8 to 4 93 | move 7 from 2 to 6 94 | move 1 from 1 to 5 95 | move 5 from 3 to 1 96 | move 1 from 5 to 1 97 | move 2 from 3 to 9 98 | move 2 from 1 to 6 99 | move 3 from 9 to 8 100 | move 14 from 6 to 1 101 | move 1 from 3 to 5 102 | move 5 from 4 to 6 103 | move 1 from 9 to 6 104 | move 7 from 6 to 9 105 | move 1 from 6 to 2 106 | move 8 from 1 to 4 107 | move 7 from 1 to 7 108 | move 10 from 2 to 1 109 | move 4 from 7 to 6 110 | move 10 from 4 to 6 111 | move 5 from 8 to 2 112 | move 1 from 5 to 9 113 | move 2 from 2 to 6 114 | move 2 from 4 to 7 115 | move 1 from 2 to 7 116 | move 5 from 9 to 2 117 | move 1 from 2 to 9 118 | move 14 from 6 to 8 119 | move 2 from 8 to 4 120 | move 1 from 2 to 6 121 | move 4 from 9 to 3 122 | move 2 from 6 to 8 123 | move 5 from 4 to 5 124 | move 5 from 8 to 3 125 | move 1 from 2 to 4 126 | move 3 from 7 to 1 127 | move 2 from 2 to 7 128 | move 1 from 4 to 7 129 | move 1 from 4 to 5 130 | move 1 from 2 to 8 131 | move 1 from 4 to 9 132 | move 8 from 8 to 2 133 | move 3 from 1 to 5 134 | move 7 from 2 to 9 135 | move 8 from 1 to 6 136 | move 6 from 7 to 2 137 | move 2 from 2 to 8 138 | move 5 from 1 to 8 139 | move 3 from 6 to 8 140 | move 4 from 3 to 6 141 | move 3 from 6 to 2 142 | move 8 from 9 to 2 143 | move 11 from 5 to 7 144 | move 12 from 2 to 6 145 | move 2 from 3 to 7 146 | move 12 from 7 to 2 147 | move 10 from 6 to 9 148 | move 1 from 7 to 1 149 | move 12 from 8 to 7 150 | move 2 from 3 to 2 151 | move 8 from 9 to 7 152 | move 6 from 2 to 5 153 | move 1 from 1 to 6 154 | move 3 from 2 to 6 155 | move 1 from 3 to 7 156 | move 5 from 5 to 3 157 | move 10 from 7 to 2 158 | move 2 from 3 to 7 159 | move 8 from 7 to 6 160 | move 20 from 2 to 8 161 | move 5 from 8 to 1 162 | move 5 from 8 to 6 163 | move 1 from 5 to 7 164 | move 1 from 1 to 4 165 | move 4 from 1 to 2 166 | move 1 from 9 to 6 167 | move 3 from 3 to 1 168 | move 4 from 7 to 5 169 | move 1 from 9 to 8 170 | move 11 from 8 to 7 171 | move 1 from 4 to 9 172 | move 2 from 7 to 5 173 | move 31 from 6 to 9 174 | move 4 from 2 to 3 175 | move 6 from 5 to 1 176 | move 4 from 1 to 2 177 | move 7 from 7 to 8 178 | move 1 from 7 to 6 179 | move 1 from 1 to 7 180 | move 24 from 9 to 4 181 | move 2 from 7 to 8 182 | move 2 from 9 to 2 183 | move 2 from 7 to 5 184 | move 2 from 5 to 9 185 | move 3 from 4 to 1 186 | move 20 from 4 to 2 187 | move 1 from 6 to 1 188 | move 16 from 2 to 1 189 | move 4 from 3 to 1 190 | move 1 from 4 to 8 191 | move 5 from 8 to 5 192 | move 5 from 8 to 1 193 | move 1 from 5 to 2 194 | move 3 from 5 to 6 195 | move 33 from 1 to 6 196 | move 6 from 9 to 4 197 | move 15 from 6 to 7 198 | move 6 from 4 to 3 199 | move 1 from 5 to 3 200 | move 7 from 3 to 9 201 | move 11 from 7 to 5 202 | move 10 from 5 to 8 203 | move 2 from 7 to 3 204 | move 5 from 8 to 9 205 | move 1 from 7 to 5 206 | move 1 from 5 to 8 207 | move 1 from 5 to 7 208 | move 2 from 3 to 8 209 | move 2 from 7 to 5 210 | move 2 from 8 to 7 211 | move 1 from 5 to 9 212 | move 1 from 7 to 6 213 | move 3 from 8 to 6 214 | move 22 from 6 to 9 215 | move 1 from 7 to 6 216 | move 27 from 9 to 4 217 | move 18 from 4 to 8 218 | move 5 from 4 to 1 219 | move 1 from 5 to 1 220 | move 3 from 6 to 3 221 | move 2 from 3 to 5 222 | move 2 from 5 to 2 223 | move 1 from 2 to 6 224 | move 1 from 6 to 3 225 | move 9 from 8 to 6 226 | move 3 from 9 to 8 227 | move 9 from 6 to 5 228 | move 1 from 6 to 9 229 | move 15 from 8 to 5 230 | move 1 from 3 to 4 231 | move 6 from 1 to 8 232 | move 1 from 3 to 7 233 | move 8 from 5 to 8 234 | move 2 from 5 to 6 235 | move 3 from 4 to 6 236 | move 1 from 7 to 6 237 | move 2 from 5 to 3 238 | move 5 from 5 to 1 239 | move 2 from 3 to 7 240 | move 1 from 8 to 1 241 | move 10 from 2 to 9 242 | move 5 from 6 to 3 243 | move 7 from 8 to 5 244 | move 4 from 3 to 5 245 | move 1 from 2 to 1 246 | move 2 from 7 to 6 247 | move 5 from 1 to 5 248 | move 1 from 3 to 7 249 | move 1 from 7 to 6 250 | move 3 from 8 to 5 251 | move 4 from 6 to 4 252 | move 1 from 2 to 9 253 | move 5 from 4 to 6 254 | move 21 from 5 to 3 255 | move 2 from 8 to 4 256 | move 3 from 4 to 1 257 | move 1 from 8 to 4 258 | move 18 from 3 to 5 259 | move 2 from 3 to 6 260 | move 2 from 6 to 9 261 | move 2 from 6 to 2 262 | move 1 from 2 to 9 263 | move 19 from 9 to 4 264 | move 3 from 6 to 3 265 | move 2 from 9 to 4 266 | move 1 from 1 to 2 267 | move 1 from 3 to 7 268 | move 16 from 5 to 2 269 | move 4 from 1 to 9 270 | move 3 from 3 to 4 271 | move 4 from 9 to 8 272 | move 3 from 5 to 1 273 | move 22 from 4 to 5 274 | move 1 from 7 to 2 275 | move 22 from 5 to 9 276 | move 2 from 5 to 2 277 | move 2 from 4 to 6 278 | move 10 from 9 to 5 279 | move 1 from 8 to 3 280 | move 13 from 9 to 2 281 | move 1 from 6 to 3 282 | move 19 from 2 to 7 283 | move 2 from 7 to 4 284 | move 1 from 8 to 4 285 | move 1 from 8 to 2 286 | move 11 from 5 to 7 287 | move 3 from 1 to 7 288 | move 8 from 7 to 8 289 | move 1 from 3 to 5 290 | move 1 from 8 to 3 291 | move 1 from 5 to 3 292 | move 6 from 2 to 3 293 | move 1 from 8 to 7 294 | move 1 from 6 to 1 295 | move 1 from 1 to 8 296 | move 4 from 8 to 1 297 | move 1 from 4 to 6 298 | move 8 from 3 to 9 299 | move 2 from 2 to 3 300 | move 3 from 8 to 5 301 | move 1 from 8 to 2 302 | move 4 from 2 to 7 303 | move 5 from 9 to 7 304 | move 1 from 6 to 3 305 | move 4 from 2 to 4 306 | move 23 from 7 to 5 307 | move 4 from 1 to 2 308 | move 3 from 9 to 6 309 | move 2 from 4 to 8 310 | move 2 from 8 to 3 311 | move 2 from 6 to 1 312 | move 1 from 6 to 8 313 | move 8 from 5 to 3 314 | move 5 from 2 to 6 315 | move 5 from 6 to 3 316 | move 1 from 8 to 3 317 | move 4 from 4 to 7 318 | move 15 from 5 to 2 319 | move 1 from 1 to 9 320 | move 2 from 5 to 1 321 | move 4 from 3 to 7 322 | move 1 from 4 to 9 323 | move 4 from 7 to 1 324 | move 2 from 5 to 6 325 | move 7 from 1 to 2 326 | move 6 from 2 to 3 327 | move 16 from 2 to 5 328 | move 1 from 6 to 3 329 | move 1 from 6 to 3 330 | move 9 from 7 to 4 331 | move 6 from 4 to 6 332 | move 1 from 9 to 8 333 | move 23 from 3 to 9 334 | move 1 from 3 to 4 335 | move 3 from 4 to 5 336 | move 9 from 5 to 2 337 | move 6 from 9 to 7 338 | move 7 from 7 to 5 339 | move 5 from 5 to 3 340 | move 1 from 4 to 6 341 | move 3 from 3 to 8 342 | move 6 from 2 to 1 343 | move 3 from 5 to 6 344 | move 4 from 7 to 1 345 | move 2 from 3 to 9 346 | move 5 from 6 to 8 347 | move 19 from 9 to 6 348 | move 1 from 9 to 2 349 | move 9 from 5 to 9 350 | move 4 from 8 to 3 351 | move 5 from 6 to 1 352 | move 4 from 6 to 1 353 | move 2 from 3 to 8 354 | move 17 from 1 to 7 355 | move 2 from 1 to 2 356 | move 6 from 6 to 9 357 | move 4 from 8 to 5 358 | move 3 from 8 to 2 359 | move 3 from 5 to 6 360 | move 4 from 6 to 8 361 | move 2 from 6 to 9 362 | move 4 from 8 to 7 363 | move 9 from 9 to 5 364 | move 5 from 9 to 4 365 | move 7 from 2 to 8 366 | move 1 from 2 to 1 367 | move 3 from 6 to 5 368 | move 6 from 8 to 5 369 | move 1 from 3 to 4 370 | move 1 from 3 to 1 371 | move 12 from 7 to 2 372 | move 5 from 2 to 7 373 | move 8 from 7 to 5 374 | move 1 from 9 to 3 375 | move 5 from 2 to 8 376 | move 3 from 6 to 3 377 | move 2 from 2 to 3 378 | move 1 from 2 to 4 379 | move 2 from 3 to 4 380 | move 1 from 1 to 6 381 | move 14 from 5 to 6 382 | move 1 from 8 to 6 383 | move 3 from 3 to 7 384 | move 4 from 7 to 1 385 | move 9 from 4 to 3 386 | move 3 from 1 to 4 387 | move 1 from 1 to 2 388 | move 1 from 8 to 4 389 | move 8 from 3 to 1 390 | move 1 from 3 to 2 391 | move 5 from 7 to 6 392 | move 3 from 1 to 6 393 | move 2 from 2 to 8 394 | move 13 from 5 to 3 395 | move 5 from 1 to 3 396 | move 3 from 4 to 5 397 | move 1 from 9 to 2 398 | move 4 from 3 to 9 399 | move 1 from 1 to 7 400 | move 2 from 5 to 8 401 | move 1 from 7 to 5 402 | move 2 from 5 to 4 403 | move 1 from 2 to 6 404 | move 1 from 4 to 5 405 | move 7 from 3 to 6 406 | move 31 from 6 to 1 407 | move 25 from 1 to 7 408 | move 2 from 3 to 2 409 | move 13 from 7 to 9 410 | move 1 from 1 to 6 411 | move 1 from 4 to 1 412 | move 2 from 2 to 9 413 | move 1 from 4 to 6 414 | move 3 from 7 to 1 415 | move 7 from 8 to 3 416 | move 1 from 8 to 2 417 | move 1 from 2 to 8 418 | move 4 from 3 to 4 419 | move 1 from 8 to 7 420 | move 3 from 6 to 9 421 | move 5 from 7 to 6 422 | move 1 from 4 to 7 423 | move 5 from 7 to 9 424 | move 5 from 3 to 6 425 | move 3 from 4 to 7 426 | move 1 from 5 to 4 427 | move 4 from 7 to 9 428 | move 32 from 9 to 1 429 | move 1 from 6 to 5 430 | move 1 from 5 to 9 431 | move 4 from 3 to 8 432 | move 5 from 1 to 4 433 | move 4 from 4 to 9 434 | move 6 from 1 to 7 435 | move 4 from 9 to 8 436 | move 4 from 7 to 8 437 | move 1 from 7 to 1 438 | move 1 from 7 to 6 439 | move 7 from 6 to 3 440 | move 1 from 9 to 5 441 | move 2 from 4 to 7 442 | move 25 from 1 to 6 443 | move 1 from 7 to 1 444 | move 1 from 3 to 4 445 | move 18 from 6 to 8 446 | move 1 from 5 to 1 447 | move 3 from 1 to 6 448 | move 21 from 8 to 3 449 | move 1 from 8 to 4 450 | move 2 from 4 to 2 451 | move 1 from 8 to 1 452 | move 1 from 7 to 6 453 | move 5 from 6 to 3 454 | move 30 from 3 to 1 455 | move 4 from 8 to 6 456 | move 1 from 2 to 9 457 | move 1 from 8 to 5 458 | move 9 from 6 to 5 459 | move 2 from 8 to 7 460 | move 3 from 5 to 9 461 | move 2 from 3 to 4 462 | move 1 from 2 to 1 463 | move 1 from 5 to 8 464 | move 1 from 8 to 3 465 | move 2 from 4 to 6 466 | move 1 from 3 to 1 467 | move 1 from 5 to 6 468 | move 5 from 5 to 7 469 | move 4 from 6 to 8 470 | move 3 from 8 to 2 471 | move 1 from 1 to 5 472 | move 1 from 8 to 7 473 | move 4 from 9 to 6 474 | move 1 from 5 to 1 475 | move 4 from 6 to 8 476 | move 6 from 7 to 3 477 | move 4 from 3 to 9 478 | move 2 from 2 to 7 479 | move 1 from 3 to 5 480 | move 3 from 7 to 6 481 | move 2 from 9 to 8 482 | move 1 from 2 to 4 483 | move 1 from 3 to 4 484 | move 5 from 8 to 4 485 | move 1 from 9 to 2 486 | move 1 from 7 to 5 487 | move 3 from 4 to 5 488 | move 1 from 9 to 1 489 | move 1 from 2 to 7 490 | move 1 from 7 to 1 491 | move 5 from 5 to 4 492 | move 4 from 1 to 4 493 | move 19 from 1 to 9 494 | move 6 from 6 to 2 495 | move 12 from 9 to 1 496 | move 1 from 8 to 6 497 | move 1 from 9 to 4 498 | move 4 from 4 to 8 499 | move 1 from 6 to 5 500 | move 1 from 5 to 3 501 | move 2 from 8 to 9 502 | move 5 from 4 to 6 503 | move 5 from 9 to 4 504 | move 1 from 4 to 3 505 | move 2 from 2 to 9 506 | move 1 from 6 to 5 507 | move 1 from 6 to 9 508 | move 7 from 1 to 5 509 | move 1 from 3 to 1 510 | move 2 from 8 to 3 511 | move 1 from 5 to 7 512 | move 2 from 9 to 8 513 | -------------------------------------------------------------------------------- /day7/input.txt: -------------------------------------------------------------------------------- 1 | $ cd / 2 | $ ls 3 | dir bzcg 4 | dir hrtvrp 5 | dir jvj 6 | dir ltrqb 7 | dir msqlnht 8 | dir mvs 9 | dir nzmddp 10 | dir zjvncc 11 | $ cd bzcg 12 | $ ls 13 | dir fwmbbvj 14 | 286838 hclnfzgv.gqb 15 | dir mpsthvvc 16 | 76013 qgzdlv.vdh 17 | 186898 znzszz 18 | dir zwmp 19 | $ cd fwmbbvj 20 | $ ls 21 | dir dhdgrhg 22 | dir fmdbzs 23 | dir hfczrwl 24 | dir hzdt 25 | dir lchzdqv 26 | dir llfhrcjr 27 | 276346 mqb 28 | dir nzmddp 29 | 314933 nzmddp.hsf 30 | dir stg 31 | 299329 tgtdlct.qbw 32 | $ cd dhdgrhg 33 | $ ls 34 | 296118 sfpqf 35 | 96182 znzszz 36 | $ cd .. 37 | $ cd fmdbzs 38 | $ ls 39 | 35391 bfcsgnhd.qdd 40 | dir cgvwgw 41 | dir jrzcqs 42 | 28249 lbd 43 | 310945 qfzr.wmv 44 | 135866 tgcsgnsd.tcm 45 | $ cd cgvwgw 46 | $ ls 47 | dir nzmddp 48 | $ cd nzmddp 49 | $ ls 50 | 236634 qfzr.wmv 51 | $ cd .. 52 | $ cd .. 53 | $ cd jrzcqs 54 | $ ls 55 | 167809 cwhfwngj 56 | 110114 mvmbff.frl 57 | 289563 qgzdlv.vdh 58 | dir vtjlsltn 59 | 332076 wcztrpdr.bcz 60 | dir zwpjpt 61 | $ cd vtjlsltn 62 | $ ls 63 | 306424 jwj 64 | 345576 qgzdlv.vdh 65 | $ cd .. 66 | $ cd zwpjpt 67 | $ ls 68 | dir jrzcqs 69 | $ cd jrzcqs 70 | $ ls 71 | dir sfpqf 72 | $ cd sfpqf 73 | $ ls 74 | 329091 fgnljzg.zvv 75 | $ cd .. 76 | $ cd .. 77 | $ cd .. 78 | $ cd .. 79 | $ cd .. 80 | $ cd hfczrwl 81 | $ ls 82 | dir crdbqlvs 83 | dir jnplb 84 | 82659 pldz 85 | $ cd crdbqlvs 86 | $ ls 87 | 87031 lbd 88 | 2841 znzszz 89 | $ cd .. 90 | $ cd jnplb 91 | $ ls 92 | 297170 bzs 93 | 294997 gqlvhlm 94 | 111010 nzmddp 95 | $ cd .. 96 | $ cd .. 97 | $ cd hzdt 98 | $ ls 99 | 197102 bzqlsq.jtn 100 | dir qgdncp 101 | $ cd qgdncp 102 | $ ls 103 | dir ndn 104 | 34679 sfpqf.tvj 105 | $ cd ndn 106 | $ ls 107 | dir ppfmfq 108 | 104804 qjhq.brj 109 | $ cd ppfmfq 110 | $ ls 111 | 176104 slcmz.dfc 112 | $ cd .. 113 | $ cd .. 114 | $ cd .. 115 | $ cd .. 116 | $ cd lchzdqv 117 | $ ls 118 | 267779 pfrdwpsl.swc 119 | $ cd .. 120 | $ cd llfhrcjr 121 | $ ls 122 | 58864 jrzcqs.rgs 123 | 228412 nzmddp 124 | $ cd .. 125 | $ cd nzmddp 126 | $ ls 127 | dir cdp 128 | dir dqjrv 129 | 171210 qjhq.brj 130 | $ cd cdp 131 | $ ls 132 | 226343 lbd 133 | dir znzszz 134 | $ cd znzszz 135 | $ ls 136 | 241815 nzmddp.tcm 137 | 68255 pcvjzhzn.wdg 138 | 252123 qjhq.brj 139 | $ cd .. 140 | $ cd .. 141 | $ cd dqjrv 142 | $ ls 143 | 160039 bmcsz.jrq 144 | dir gnp 145 | $ cd gnp 146 | $ ls 147 | dir dhnwcgb 148 | $ cd dhnwcgb 149 | $ ls 150 | 119009 pff 151 | $ cd .. 152 | $ cd .. 153 | $ cd .. 154 | $ cd .. 155 | $ cd stg 156 | $ ls 157 | dir fntwgzz 158 | dir gtbgr 159 | $ cd fntwgzz 160 | $ ls 161 | 289241 lbd 162 | $ cd .. 163 | $ cd gtbgr 164 | $ ls 165 | 124648 qgzdlv.vdh 166 | $ cd .. 167 | $ cd .. 168 | $ cd .. 169 | $ cd mpsthvvc 170 | $ ls 171 | 164129 wpq 172 | $ cd .. 173 | $ cd zwmp 174 | $ ls 175 | dir cfgg 176 | 237318 hdbqg 177 | 171175 hstqbrr.tdt 178 | 306477 lbd 179 | 286893 qjhq.brj 180 | 324660 sjmdcl 181 | dir tlcl 182 | $ cd cfgg 183 | $ ls 184 | 139209 rcpts.bnc 185 | $ cd .. 186 | $ cd tlcl 187 | $ ls 188 | 39093 cfgg.rvc 189 | $ cd .. 190 | $ cd .. 191 | $ cd .. 192 | $ cd hrtvrp 193 | $ ls 194 | dir bmsw 195 | 63820 cfgg.btw 196 | 93558 qfzr.wmv 197 | $ cd bmsw 198 | $ ls 199 | 322182 qgzdlv.vdh 200 | 106324 sfpqf.mrs 201 | $ cd .. 202 | $ cd .. 203 | $ cd jvj 204 | $ ls 205 | dir cfgg 206 | dir dppgmmgh 207 | dir hdmc 208 | 56099 nntzqnfb 209 | dir sfpqf 210 | $ cd cfgg 211 | $ ls 212 | 179999 qgzdlv.vdh 213 | $ cd .. 214 | $ cd dppgmmgh 215 | $ ls 216 | dir bwwnwt 217 | $ cd bwwnwt 218 | $ ls 219 | 131362 httvdc.hpw 220 | 76925 qjhq.brj 221 | $ cd .. 222 | $ cd .. 223 | $ cd hdmc 224 | $ ls 225 | 144982 gghj.bbc 226 | 75348 jrzcqs.ssg 227 | dir mqdqjrp 228 | dir qccm 229 | dir wzs 230 | $ cd mqdqjrp 231 | $ ls 232 | 102764 lbd 233 | 20330 rdrgh.brw 234 | 84239 shht.rnq 235 | 284381 vfgmpm.jnq 236 | $ cd .. 237 | $ cd qccm 238 | $ ls 239 | 47778 bcjcbh.mbq 240 | 265938 gmsqgg.ncl 241 | 83269 mqb 242 | 58515 qfzr.wmv 243 | 330596 znzszz 244 | $ cd .. 245 | $ cd wzs 246 | $ ls 247 | 319883 qjhq.brj 248 | $ cd .. 249 | $ cd .. 250 | $ cd sfpqf 251 | $ ls 252 | dir ccsbqncb 253 | dir cfgg 254 | dir jrzcqs 255 | dir nzmddp 256 | dir sfpqf 257 | $ cd ccsbqncb 258 | $ ls 259 | 187812 qjhq.brj 260 | $ cd .. 261 | $ cd cfgg 262 | $ ls 263 | dir cfgg 264 | dir hpbq 265 | dir jrzcqs 266 | 285380 jrzcqs.vcq 267 | 343520 lhzpnhjc 268 | 24392 mqb 269 | dir nzmddp 270 | dir znzszz 271 | $ cd cfgg 272 | $ ls 273 | 288249 qjhq.brj 274 | $ cd .. 275 | $ cd hpbq 276 | $ ls 277 | 342631 cfw 278 | 282426 czcvlz.hqm 279 | $ cd .. 280 | $ cd jrzcqs 281 | $ ls 282 | dir ltr 283 | 304275 qjhq.brj 284 | $ cd ltr 285 | $ ls 286 | 339178 qgzdlv.vdh 287 | $ cd .. 288 | $ cd .. 289 | $ cd nzmddp 290 | $ ls 291 | dir cfgg 292 | dir hnp 293 | dir mtzgr 294 | dir nrtvg 295 | dir nzmddp 296 | $ cd cfgg 297 | $ ls 298 | 162027 cfgg 299 | 9838 cfgg.frf 300 | 113543 dsw.rrf 301 | 288839 jhgcqp.zpv 302 | 119427 znzszz.bvd 303 | $ cd .. 304 | $ cd hnp 305 | $ ls 306 | 215530 nhjhcd 307 | $ cd .. 308 | $ cd mtzgr 309 | $ ls 310 | 138609 slbt.djp 311 | $ cd .. 312 | $ cd nrtvg 313 | $ ls 314 | dir gtc 315 | 120784 mbwm 316 | 22036 tsj.qdg 317 | $ cd gtc 318 | $ ls 319 | dir pgd 320 | 202523 qfzr.wmv 321 | dir smprtrhs 322 | dir trppqf 323 | $ cd pgd 324 | $ ls 325 | dir bsfv 326 | 29468 lbd 327 | $ cd bsfv 328 | $ ls 329 | dir lwdpmn 330 | dir nzmddp 331 | dir znzszz 332 | $ cd lwdpmn 333 | $ ls 334 | 126870 lcjq.llm 335 | $ cd .. 336 | $ cd nzmddp 337 | $ ls 338 | 280315 fcbrv 339 | 271478 zqfc.pbm 340 | $ cd .. 341 | $ cd znzszz 342 | $ ls 343 | 76029 jrzcqs.qfv 344 | 176019 nzmddp 345 | $ cd .. 346 | $ cd .. 347 | $ cd .. 348 | $ cd smprtrhs 349 | $ ls 350 | 233528 mqb 351 | 127142 qbrrj.bhz 352 | 148724 qjhq.brj 353 | $ cd .. 354 | $ cd trppqf 355 | $ ls 356 | dir hdg 357 | dir nzmddp 358 | 183245 qfzr.wmv 359 | $ cd hdg 360 | $ ls 361 | dir sqmnmnhd 362 | $ cd sqmnmnhd 363 | $ ls 364 | 102960 mqb 365 | $ cd .. 366 | $ cd .. 367 | $ cd nzmddp 368 | $ ls 369 | 327098 dbh.vsj 370 | 343700 gblvc.gps 371 | 265225 qfzr.wmv 372 | 199016 znzszz.dbv 373 | 217259 znzszz.plm 374 | $ cd .. 375 | $ cd .. 376 | $ cd .. 377 | $ cd .. 378 | $ cd nzmddp 379 | $ ls 380 | 84041 dprztmqp.hpv 381 | dir jrzcqs 382 | dir zszhsnb 383 | $ cd jrzcqs 384 | $ ls 385 | 127029 glzldmj.rvv 386 | 35266 jtt.lqn 387 | 51031 lbc.nlp 388 | 268567 lbd 389 | 280100 qgzdlv.vdh 390 | $ cd .. 391 | $ cd zszhsnb 392 | $ ls 393 | 186962 gssjn.njq 394 | dir hcrnn 395 | 263790 hlf.fsq 396 | dir hlrjcm 397 | dir jqbwl 398 | dir jrzcqs 399 | dir nzmddp 400 | 285517 nzmddp.nsr 401 | dir tshj 402 | $ cd hcrnn 403 | $ ls 404 | 188774 qfzr.wmv 405 | $ cd .. 406 | $ cd hlrjcm 407 | $ ls 408 | dir cfgg 409 | $ cd cfgg 410 | $ ls 411 | 70451 nbrlntm.znr 412 | $ cd .. 413 | $ cd .. 414 | $ cd jqbwl 415 | $ ls 416 | dir znzszz 417 | $ cd znzszz 418 | $ ls 419 | 283986 mqb 420 | $ cd .. 421 | $ cd .. 422 | $ cd jrzcqs 423 | $ ls 424 | 93117 whfsbm 425 | $ cd .. 426 | $ cd nzmddp 427 | $ ls 428 | dir nzmddp 429 | $ cd nzmddp 430 | $ ls 431 | 163289 ndmsh.jln 432 | $ cd .. 433 | $ cd .. 434 | $ cd tshj 435 | $ ls 436 | dir jcrmv 437 | 240935 qjhq.brj 438 | dir srddr 439 | dir znzszz 440 | $ cd jcrmv 441 | $ ls 442 | 288613 mqb 443 | $ cd .. 444 | $ cd srddr 445 | $ ls 446 | 263797 jpqzbj.rnr 447 | 43879 jrzcqs.zjn 448 | 230566 mqb 449 | $ cd .. 450 | $ cd znzszz 451 | $ ls 452 | 327063 ftbpgmjq 453 | $ cd .. 454 | $ cd .. 455 | $ cd .. 456 | $ cd .. 457 | $ cd .. 458 | $ cd znzszz 459 | $ ls 460 | 227452 vdddqvj 461 | $ cd .. 462 | $ cd .. 463 | $ cd jrzcqs 464 | $ ls 465 | 104553 qcwndswg.hrp 466 | $ cd .. 467 | $ cd nzmddp 468 | $ ls 469 | 201456 qfzr.wmv 470 | $ cd .. 471 | $ cd sfpqf 472 | $ ls 473 | dir smr 474 | dir tttvzmnm 475 | $ cd smr 476 | $ ls 477 | dir wnjnslvd 478 | $ cd wnjnslvd 479 | $ ls 480 | 44407 ftrvp.pnf 481 | 116039 mjmrgsj 482 | dir nzmddp 483 | $ cd nzmddp 484 | $ ls 485 | 323730 sfpqf.jjg 486 | $ cd .. 487 | $ cd .. 488 | $ cd .. 489 | $ cd tttvzmnm 490 | $ ls 491 | dir csvhmb 492 | 286656 dsd 493 | 71993 qfzr.wmv 494 | dir znzszz 495 | $ cd csvhmb 496 | $ ls 497 | 299075 qgzdlv.vdh 498 | $ cd .. 499 | $ cd znzszz 500 | $ ls 501 | 15914 qgzdlv.vdh 502 | $ cd .. 503 | $ cd .. 504 | $ cd .. 505 | $ cd .. 506 | $ cd .. 507 | $ cd ltrqb 508 | $ ls 509 | dir gzhrbrr 510 | 122564 hbv 511 | dir twf 512 | dir vptsc 513 | $ cd gzhrbrr 514 | $ ls 515 | 277882 djfrnzfn 516 | 89527 frqmdg 517 | 95596 nzmddp.mwr 518 | 210985 qfzr.wmv 519 | 169282 qgzdlv.vdh 520 | $ cd .. 521 | $ cd twf 522 | $ ls 523 | dir mfd 524 | $ cd mfd 525 | $ ls 526 | 300823 jdgqf.tqd 527 | $ cd .. 528 | $ cd .. 529 | $ cd vptsc 530 | $ ls 531 | 156341 cfgg 532 | $ cd .. 533 | $ cd .. 534 | $ cd msqlnht 535 | $ ls 536 | dir dcv 537 | 30956 ddbr.zbq 538 | dir dht 539 | dir hsn 540 | 42896 qgzdlv.vdh 541 | 330093 sfpqf 542 | 262508 sfpqf.cpt 543 | dir sth 544 | 310917 ttqqpqn 545 | dir twgmlhtp 546 | $ cd dcv 547 | $ ls 548 | 201585 nzmddp.rdn 549 | 344322 sfpqf 550 | 239482 wwdvbggs 551 | $ cd .. 552 | $ cd dht 553 | $ ls 554 | dir bwfcs 555 | $ cd bwfcs 556 | $ ls 557 | dir tjgjdj 558 | dir znzszz 559 | $ cd tjgjdj 560 | $ ls 561 | dir dljdshp 562 | $ cd dljdshp 563 | $ ls 564 | 19838 wcp.nmg 565 | $ cd .. 566 | $ cd .. 567 | $ cd znzszz 568 | $ ls 569 | dir crwt 570 | dir dwdjmnl 571 | dir jrzcqs 572 | dir rldp 573 | $ cd crwt 574 | $ ls 575 | 201821 nzmddp 576 | 222044 qgzdlv.vdh 577 | $ cd .. 578 | $ cd dwdjmnl 579 | $ ls 580 | 230423 swg 581 | 98135 vcvvq.drl 582 | $ cd .. 583 | $ cd jrzcqs 584 | $ ls 585 | 227320 zclsmlf.ljp 586 | $ cd .. 587 | $ cd rldp 588 | $ ls 589 | 349401 grjsrgcs 590 | $ cd .. 591 | $ cd .. 592 | $ cd .. 593 | $ cd .. 594 | $ cd hsn 595 | $ ls 596 | 256123 sfpqf.snp 597 | $ cd .. 598 | $ cd sth 599 | $ ls 600 | 151062 cfgg 601 | dir dscngvc 602 | dir glqq 603 | 214524 hgffpr.lqb 604 | dir hqrrrz 605 | 5900 qjhq.brj 606 | 216813 qpjnjbzg.fqz 607 | dir rlzhq 608 | dir sbv 609 | $ cd dscngvc 610 | $ ls 611 | 273344 gshqbpw.njw 612 | 70631 mqb 613 | 16181 qfzr.wmv 614 | dir rmsgtb 615 | 172650 sfpqf 616 | $ cd rmsgtb 617 | $ ls 618 | dir gnmf 619 | 324122 qgzdlv.vdh 620 | $ cd gnmf 621 | $ ls 622 | 47246 npvlc.hvq 623 | $ cd .. 624 | $ cd .. 625 | $ cd .. 626 | $ cd glqq 627 | $ ls 628 | 66844 cfgg.mvw 629 | $ cd .. 630 | $ cd hqrrrz 631 | $ ls 632 | dir lcq 633 | 109656 mqb 634 | 120607 nzh.nhp 635 | 229843 scn.hfh 636 | 149344 shdnj.swg 637 | 169266 tgwtqd.qwd 638 | $ cd lcq 639 | $ ls 640 | 334646 qfzr.wmv 641 | $ cd .. 642 | $ cd .. 643 | $ cd rlzhq 644 | $ ls 645 | 316457 lbd 646 | 290078 pfl.tjh 647 | $ cd .. 648 | $ cd sbv 649 | $ ls 650 | 158423 dmrrn 651 | dir nzmddp 652 | 86125 qfzr.wmv 653 | 309500 qjhq.brj 654 | 14673 qlqlmqq 655 | $ cd nzmddp 656 | $ ls 657 | dir jrzcqs 658 | dir nvsf 659 | 194665 znzszz.mrm 660 | $ cd jrzcqs 661 | $ ls 662 | dir lsjfn 663 | $ cd lsjfn 664 | $ ls 665 | 41263 ptrcqt.qqz 666 | $ cd .. 667 | $ cd .. 668 | $ cd nvsf 669 | $ ls 670 | 137050 wzcjllln.swq 671 | $ cd .. 672 | $ cd .. 673 | $ cd .. 674 | $ cd .. 675 | $ cd twgmlhtp 676 | $ ls 677 | 284913 qgzdlv.vdh 678 | dir rbhnjvrz 679 | $ cd rbhnjvrz 680 | $ ls 681 | dir vlcm 682 | $ cd vlcm 683 | $ ls 684 | 71610 nqfdtfs.hpc 685 | 53860 nzmddp.mcl 686 | $ cd .. 687 | $ cd .. 688 | $ cd .. 689 | $ cd .. 690 | $ cd mvs 691 | $ ls 692 | dir cfmqw 693 | dir dpj 694 | dir znzszz 695 | $ cd cfmqw 696 | $ ls 697 | 236767 qjhq.brj 698 | $ cd .. 699 | $ cd dpj 700 | $ ls 701 | dir wcgz 702 | $ cd wcgz 703 | $ ls 704 | dir jrzcqs 705 | $ cd jrzcqs 706 | $ ls 707 | 47261 gltbrdl 708 | $ cd .. 709 | $ cd .. 710 | $ cd .. 711 | $ cd znzszz 712 | $ ls 713 | 63782 lbd 714 | $ cd .. 715 | $ cd .. 716 | $ cd nzmddp 717 | $ ls 718 | 297761 dcbntj 719 | dir fpnrzl 720 | dir jrzcqs 721 | 211161 lbd 722 | dir mbqjsfj 723 | dir nhnnmhj 724 | dir pwjwc 725 | dir pzptv 726 | 104522 qfzr.wmv 727 | 80572 qjhq.brj 728 | dir sfpqf 729 | dir znzszz 730 | $ cd fpnrzl 731 | $ ls 732 | dir jrzcqs 733 | dir mpzrrjd 734 | $ cd jrzcqs 735 | $ ls 736 | 117141 lbd 737 | dir znzszz 738 | $ cd znzszz 739 | $ ls 740 | 148863 znzszz 741 | $ cd .. 742 | $ cd .. 743 | $ cd mpzrrjd 744 | $ ls 745 | 287787 tglsshqj.msb 746 | $ cd .. 747 | $ cd .. 748 | $ cd jrzcqs 749 | $ ls 750 | 28680 mqb 751 | 496 pgpctg.tpz 752 | dir zqcdfq 753 | $ cd zqcdfq 754 | $ ls 755 | 134507 mqb 756 | dir nzmddp 757 | $ cd nzmddp 758 | $ ls 759 | 115602 shhttsf 760 | $ cd .. 761 | $ cd .. 762 | $ cd .. 763 | $ cd mbqjsfj 764 | $ ls 765 | 8422 cfgg 766 | $ cd .. 767 | $ cd nhnnmhj 768 | $ ls 769 | 172791 qgzdlv.vdh 770 | $ cd .. 771 | $ cd pwjwc 772 | $ ls 773 | dir fwtnnrb 774 | dir zhdq 775 | $ cd fwtnnrb 776 | $ ls 777 | 294370 bpvt.gvv 778 | dir jrzcqs 779 | dir mfvntmf 780 | dir qscphr 781 | $ cd jrzcqs 782 | $ ls 783 | 291270 bjrw.wfg 784 | $ cd .. 785 | $ cd mfvntmf 786 | $ ls 787 | 48260 jclz 788 | dir rlv 789 | 46115 sfpqf 790 | 46418 zbs 791 | $ cd rlv 792 | $ ls 793 | dir ddjcz 794 | $ cd ddjcz 795 | $ ls 796 | 135665 frtldl.rfz 797 | $ cd .. 798 | $ cd .. 799 | $ cd .. 800 | $ cd qscphr 801 | $ ls 802 | dir lrhmvmq 803 | $ cd lrhmvmq 804 | $ ls 805 | 198056 qgzdlv.vdh 806 | $ cd .. 807 | $ cd .. 808 | $ cd .. 809 | $ cd zhdq 810 | $ ls 811 | 98139 cchv 812 | 200761 fqc 813 | 118696 lbd 814 | 161939 mqb 815 | 343033 rrgtws.wjn 816 | $ cd .. 817 | $ cd .. 818 | $ cd pzptv 819 | $ ls 820 | 28931 hfdzv.rtz 821 | 44106 jrzcqs 822 | 9518 lbd 823 | dir mjc 824 | dir qjfgzqj 825 | dir sfpqf 826 | dir vczrqhtd 827 | 90722 vrnnn 828 | dir znzszz 829 | $ cd mjc 830 | $ ls 831 | dir wcqv 832 | $ cd wcqv 833 | $ ls 834 | dir fwvf 835 | $ cd fwvf 836 | $ ls 837 | 280201 tqm.gdw 838 | $ cd .. 839 | $ cd .. 840 | $ cd .. 841 | $ cd qjfgzqj 842 | $ ls 843 | 102183 jrzcqs.vpb 844 | dir nzmddp 845 | $ cd nzmddp 846 | $ ls 847 | 37882 jrzcqs.gpc 848 | 284676 wcc.qcl 849 | $ cd .. 850 | $ cd .. 851 | $ cd sfpqf 852 | $ ls 853 | 105254 phmwwcnl.wth 854 | $ cd .. 855 | $ cd vczrqhtd 856 | $ ls 857 | 35159 drfvdqjc.fph 858 | dir pfvwwzfl 859 | 206822 qgzdlv.vdh 860 | 279335 qjhq.brj 861 | dir zjtcbps 862 | $ cd pfvwwzfl 863 | $ ls 864 | 138311 bjwdcbpf.wwz 865 | $ cd .. 866 | $ cd zjtcbps 867 | $ ls 868 | 169941 ddp.vvv 869 | 346076 jrnggfr.gtf 870 | 50876 rtz 871 | $ cd .. 872 | $ cd .. 873 | $ cd znzszz 874 | $ ls 875 | 324206 hcpmqmpv 876 | 140802 jrzcqs 877 | $ cd .. 878 | $ cd .. 879 | $ cd sfpqf 880 | $ ls 881 | 177463 dnj.szl 882 | dir jrzcqs 883 | 242840 mqb 884 | dir ntcptsd 885 | 291995 pctt.flm 886 | 205818 qfzr.wmv 887 | dir rsgdd 888 | 155626 znzszz.dws 889 | $ cd jrzcqs 890 | $ ls 891 | dir glwz 892 | 267334 nntbftjw 893 | dir plhqw 894 | dir pts 895 | dir qcqcnqvp 896 | 281648 sfpqf 897 | dir znzszz 898 | $ cd glwz 899 | $ ls 900 | dir mhrdgfp 901 | dir mwttjss 902 | $ cd mhrdgfp 903 | $ ls 904 | 171876 lbd 905 | $ cd .. 906 | $ cd mwttjss 907 | $ ls 908 | 108737 qgzdlv.vdh 909 | dir wndm 910 | $ cd wndm 911 | $ ls 912 | 96467 qfzr.wmv 913 | $ cd .. 914 | $ cd .. 915 | $ cd .. 916 | $ cd plhqw 917 | $ ls 918 | 247813 mqb 919 | $ cd .. 920 | $ cd pts 921 | $ ls 922 | dir cfgg 923 | 247928 ffprmnh 924 | 308698 fncv.cfd 925 | dir tfzn 926 | dir vrsh 927 | $ cd cfgg 928 | $ ls 929 | 159819 rrhf.dtd 930 | $ cd .. 931 | $ cd tfzn 932 | $ ls 933 | 42960 rbslfmpt.fwc 934 | $ cd .. 935 | $ cd vrsh 936 | $ ls 937 | dir jddbf 938 | $ cd jddbf 939 | $ ls 940 | 342843 swbtfm 941 | $ cd .. 942 | $ cd .. 943 | $ cd .. 944 | $ cd qcqcnqvp 945 | $ ls 946 | dir mlnmbs 947 | 121264 mqb 948 | 132437 qfzr.wmv 949 | dir sfpqf 950 | $ cd mlnmbs 951 | $ ls 952 | 211179 qgzdlv.vdh 953 | $ cd .. 954 | $ cd sfpqf 955 | $ ls 956 | dir nzmddp 957 | $ cd nzmddp 958 | $ ls 959 | 221804 jjmc.cth 960 | $ cd .. 961 | $ cd .. 962 | $ cd .. 963 | $ cd znzszz 964 | $ ls 965 | dir cqq 966 | 261225 lbd 967 | $ cd cqq 968 | $ ls 969 | 37926 qjhq.brj 970 | $ cd .. 971 | $ cd .. 972 | $ cd .. 973 | $ cd ntcptsd 974 | $ ls 975 | dir lmbznbsd 976 | $ cd lmbznbsd 977 | $ ls 978 | 67249 qfzr.wmv 979 | $ cd .. 980 | $ cd .. 981 | $ cd rsgdd 982 | $ ls 983 | 198925 lbd 984 | $ cd .. 985 | $ cd .. 986 | $ cd znzszz 987 | $ ls 988 | 224738 hhggjlpt.ncp 989 | 215566 lqdrnfrt 990 | 257824 lvv.bwz 991 | 2888 vnqfcr.dbh 992 | 129229 znzszz.rqr 993 | $ cd .. 994 | $ cd .. 995 | $ cd zjvncc 996 | $ ls 997 | dir dswznwtf 998 | 255036 nzmddp.pln 999 | dir qsq 1000 | dir rzbnmn 1001 | 312907 vbr 1002 | $ cd dswznwtf 1003 | $ ls 1004 | 37067 cfv 1005 | 186502 qgzdlv.vdh 1006 | $ cd .. 1007 | $ cd qsq 1008 | $ ls 1009 | 149224 qfzr.wmv 1010 | $ cd .. 1011 | $ cd rzbnmn 1012 | $ ls 1013 | 57606 dhdgvg.lsj 1014 | dir fpj 1015 | dir jrzcqs 1016 | $ cd fpj 1017 | $ ls 1018 | 212353 jrzcqs.nrn 1019 | $ cd .. 1020 | $ cd jrzcqs 1021 | $ ls 1022 | 288350 ndchf 1023 | -------------------------------------------------------------------------------- /day4/input.txt: -------------------------------------------------------------------------------- 1 | 24-66,23-25 2 | 3-3,2-80 3 | 14-80,13-20 4 | 39-78,40-40 5 | 36-90,89-90 6 | 51-94,50-50 7 | 10-72,10-98 8 | 54-81,2-90 9 | 27-84,27-85 10 | 21-57,21-57 11 | 6-55,4-5 12 | 80-87,87-90 13 | 23-71,22-90 14 | 24-37,2-36 15 | 79-91,78-91 16 | 75-92,91-93 17 | 23-80,23-81 18 | 67-94,68-94 19 | 79-85,79-81 20 | 40-88,39-89 21 | 15-75,14-76 22 | 18-77,34-78 23 | 2-99,4-93 24 | 1-74,15-75 25 | 39-82,39-81 26 | 19-91,18-84 27 | 56-87,57-86 28 | 15-72,14-71 29 | 37-88,36-87 30 | 21-24,18-23 31 | 34-83,34-34 32 | 20-95,94-95 33 | 27-75,26-80 34 | 91-93,27-92 35 | 55-66,56-62 36 | 29-31,30-89 37 | 85-95,89-99 38 | 1-2,1-3 39 | 63-64,13-64 40 | 66-95,30-86 41 | 2-73,3-74 42 | 25-99,6-25 43 | 10-28,28-87 44 | 10-42,9-43 45 | 12-46,46-75 46 | 91-97,91-96 47 | 46-59,46-59 48 | 34-35,5-34 49 | 27-93,93-93 50 | 4-12,21-97 51 | 7-65,5-8 52 | 42-63,2-62 53 | 70-76,64-75 54 | 1-95,1-94 55 | 12-30,13-30 56 | 3-99,2-99 57 | 46-60,58-60 58 | 1-94,93-98 59 | 7-98,8-98 60 | 7-51,8-81 61 | 39-84,40-85 62 | 43-84,8-84 63 | 10-93,11-93 64 | 3-63,2-47 65 | 18-87,18-18 66 | 77-96,95-97 67 | 2-99,1-99 68 | 3-45,2-45 69 | 19-99,8-97 70 | 7-98,8-60 71 | 3-94,2-2 72 | 51-71,21-51 73 | 28-98,10-27 74 | 13-96,13-97 75 | 4-99,1-1 76 | 3-93,93-97 77 | 13-13,14-98 78 | 16-38,17-17 79 | 16-46,16-46 80 | 7-63,4-8 81 | 18-85,13-19 82 | 17-21,18-21 83 | 7-74,8-73 84 | 5-77,4-6 85 | 11-18,1-18 86 | 3-25,4-4 87 | 2-96,2-93 88 | 19-38,18-39 89 | 11-45,10-10 90 | 20-20,21-83 91 | 2-97,97-97 92 | 81-81,2-80 93 | 5-82,58-59 94 | 47-51,4-47 95 | 89-93,40-89 96 | 19-29,18-84 97 | 18-36,16-18 98 | 41-55,47-47 99 | 6-34,7-33 100 | 5-82,6-81 101 | 6-19,18-27 102 | 42-55,43-55 103 | 1-99,2-71 104 | 45-94,45-45 105 | 2-88,1-88 106 | 15-35,14-36 107 | 17-36,10-25 108 | 20-96,84-98 109 | 81-87,81-81 110 | 85-87,85-86 111 | 34-74,73-74 112 | 17-97,16-98 113 | 11-50,12-51 114 | 2-99,3-3 115 | 79-90,79-91 116 | 89-99,1-89 117 | 87-93,72-93 118 | 31-52,30-96 119 | 75-84,45-83 120 | 81-96,81-96 121 | 84-85,24-85 122 | 36-60,35-36 123 | 11-91,10-91 124 | 18-19,19-62 125 | 50-52,50-54 126 | 59-86,52-86 127 | 61-65,70-70 128 | 28-96,58-99 129 | 10-46,46-46 130 | 10-10,10-25 131 | 17-72,18-18 132 | 58-77,34-59 133 | 3-5,5-34 134 | 14-14,14-83 135 | 5-88,6-14 136 | 2-70,3-69 137 | 42-79,48-80 138 | 26-48,26-27 139 | 15-84,14-85 140 | 82-83,33-76 141 | 14-34,5-33 142 | 27-76,26-26 143 | 3-88,2-2 144 | 19-58,20-57 145 | 26-79,25-89 146 | 94-95,13-94 147 | 35-77,35-78 148 | 63-99,69-99 149 | 18-26,27-99 150 | 1-76,76-77 151 | 37-44,22-44 152 | 3-64,3-89 153 | 54-86,55-85 154 | 92-92,92-95 155 | 26-38,26-38 156 | 62-81,19-80 157 | 20-63,8-65 158 | 46-79,46-80 159 | 35-71,70-72 160 | 12-81,11-11 161 | 34-69,18-77 162 | 1-84,2-2 163 | 19-24,18-21 164 | 8-90,89-91 165 | 12-64,64-65 166 | 18-97,17-19 167 | 93-93,5-93 168 | 34-46,34-46 169 | 14-82,13-81 170 | 32-46,46-47 171 | 1-8,9-97 172 | 3-4,3-54 173 | 85-87,69-86 174 | 12-90,12-91 175 | 7-11,10-33 176 | 19-34,18-24 177 | 36-63,26-62 178 | 4-98,6-98 179 | 80-96,80-81 180 | 10-11,10-34 181 | 21-69,8-70 182 | 6-80,5-81 183 | 14-92,3-15 184 | 23-40,16-39 185 | 8-66,20-66 186 | 12-79,12-13 187 | 14-61,15-52 188 | 10-29,10-29 189 | 36-37,36-89 190 | 46-48,18-47 191 | 24-98,23-25 192 | 81-96,13-81 193 | 6-88,1-89 194 | 58-76,57-75 195 | 56-76,57-75 196 | 1-84,1-1 197 | 1-20,2-20 198 | 38-98,38-99 199 | 33-73,32-73 200 | 41-95,40-94 201 | 29-44,28-44 202 | 68-86,67-69 203 | 1-66,1-2 204 | 12-28,13-90 205 | 28-74,19-29 206 | 48-51,51-65 207 | 11-64,11-64 208 | 74-74,66-74 209 | 2-5,5-87 210 | 69-69,4-69 211 | 21-51,51-56 212 | 51-83,13-83 213 | 12-99,5-6 214 | 3-91,4-90 215 | 3-55,8-36 216 | 12-44,36-45 217 | 6-86,5-87 218 | 9-18,8-16 219 | 13-63,14-57 220 | 3-96,4-95 221 | 41-87,42-86 222 | 44-62,22-48 223 | 17-62,46-63 224 | 62-63,63-64 225 | 31-59,30-60 226 | 10-78,9-79 227 | 41-97,20-96 228 | 18-92,18-92 229 | 30-30,30-90 230 | 6-80,4-79 231 | 46-98,13-36 232 | 7-70,7-7 233 | 35-46,25-46 234 | 77-77,76-76 235 | 8-10,9-78 236 | 4-98,5-36 237 | 37-96,41-96 238 | 35-68,34-88 239 | 22-69,40-70 240 | 13-90,12-89 241 | 11-39,12-56 242 | 51-82,50-81 243 | 47-96,46-73 244 | 95-96,2-91 245 | 66-95,56-77 246 | 84-84,83-85 247 | 7-58,8-87 248 | 6-83,5-83 249 | 23-49,14-48 250 | 4-97,5-96 251 | 17-18,17-46 252 | 15-76,93-99 253 | 63-64,63-67 254 | 45-46,29-45 255 | 29-84,13-84 256 | 95-95,95-98 257 | 19-91,11-37 258 | 14-19,19-94 259 | 24-93,75-91 260 | 52-79,78-80 261 | 3-94,4-93 262 | 2-99,2-3 263 | 40-96,38-95 264 | 23-91,23-91 265 | 88-89,66-88 266 | 14-92,91-92 267 | 14-94,6-94 268 | 21-57,36-84 269 | 15-97,99-99 270 | 2-98,1-99 271 | 38-80,38-80 272 | 12-93,29-98 273 | 19-34,20-42 274 | 11-70,10-71 275 | 44-95,45-95 276 | 53-69,54-68 277 | 33-68,10-34 278 | 33-35,33-34 279 | 3-5,4-66 280 | 57-82,56-56 281 | 36-54,36-53 282 | 14-15,10-15 283 | 24-51,38-52 284 | 16-76,72-76 285 | 56-57,3-57 286 | 6-89,5-90 287 | 12-45,13-70 288 | 36-38,37-88 289 | 19-31,25-31 290 | 2-2,8-96 291 | 5-92,4-69 292 | 9-98,8-8 293 | 5-14,5-14 294 | 46-99,9-46 295 | 55-56,2-55 296 | 7-95,7-94 297 | 45-65,41-65 298 | 80-81,4-80 299 | 6-47,48-86 300 | 25-34,35-75 301 | 72-74,71-71 302 | 2-94,1-3 303 | 31-49,32-49 304 | 20-61,19-35 305 | 11-86,11-90 306 | 52-78,52-53 307 | 42-42,18-43 308 | 2-2,4-94 309 | 8-78,78-78 310 | 3-49,2-50 311 | 5-74,11-73 312 | 17-56,16-72 313 | 46-87,47-79 314 | 72-80,47-51 315 | 11-69,12-12 316 | 2-99,3-99 317 | 13-27,12-15 318 | 23-95,22-96 319 | 39-41,40-96 320 | 74-98,73-73 321 | 82-83,80-82 322 | 12-79,11-32 323 | 6-58,7-7 324 | 3-3,3-97 325 | 4-97,24-95 326 | 3-80,4-75 327 | 72-83,71-84 328 | 20-82,21-21 329 | 6-73,6-72 330 | 77-77,77-97 331 | 18-57,57-57 332 | 53-76,46-75 333 | 21-40,20-74 334 | 60-65,55-64 335 | 78-78,32-78 336 | 22-46,42-46 337 | 4-46,3-47 338 | 35-39,39-40 339 | 79-90,80-89 340 | 36-36,37-60 341 | 9-28,13-29 342 | 15-85,82-85 343 | 5-5,4-79 344 | 17-86,9-17 345 | 6-57,57-57 346 | 76-88,76-88 347 | 73-79,78-80 348 | 52-54,2-53 349 | 1-95,6-94 350 | 46-91,23-99 351 | 70-86,11-71 352 | 19-96,18-96 353 | 25-42,24-24 354 | 32-88,88-94 355 | 7-93,8-99 356 | 5-21,5-20 357 | 34-94,93-94 358 | 92-93,15-92 359 | 38-84,39-85 360 | 79-80,7-79 361 | 48-72,72-72 362 | 10-92,93-98 363 | 14-53,15-92 364 | 7-42,7-37 365 | 11-88,11-87 366 | 41-65,64-65 367 | 71-85,11-64 368 | 21-79,79-87 369 | 80-81,22-81 370 | 40-79,39-41 371 | 18-67,67-91 372 | 11-13,12-61 373 | 1-97,96-98 374 | 5-66,4-4 375 | 1-1,2-75 376 | 15-62,16-62 377 | 28-56,28-28 378 | 3-3,4-79 379 | 68-94,3-68 380 | 8-92,7-9 381 | 69-83,69-84 382 | 6-90,22-90 383 | 10-20,5-10 384 | 21-80,20-21 385 | 15-76,14-76 386 | 75-75,74-83 387 | 5-13,6-22 388 | 39-84,83-84 389 | 30-43,34-38 390 | 42-98,43-97 391 | 6-29,5-59 392 | 62-80,63-88 393 | 5-93,6-6 394 | 53-64,54-64 395 | 47-47,4-47 396 | 62-62,59-62 397 | 46-87,46-87 398 | 93-95,43-55 399 | 4-4,4-19 400 | 86-91,48-86 401 | 22-45,23-44 402 | 13-38,38-93 403 | 5-36,4-20 404 | 27-27,27-33 405 | 10-12,11-83 406 | 10-93,3-93 407 | 79-80,35-80 408 | 64-90,53-68 409 | 52-91,47-89 410 | 2-66,2-3 411 | 58-58,22-57 412 | 7-58,5-94 413 | 3-11,4-10 414 | 32-38,31-39 415 | 10-76,21-29 416 | 15-42,15-42 417 | 9-43,9-95 418 | 3-56,4-57 419 | 35-68,36-68 420 | 55-89,56-88 421 | 2-3,2-99 422 | 2-97,97-99 423 | 29-66,30-65 424 | 5-25,4-25 425 | 52-87,51-54 426 | 28-64,36-66 427 | 52-90,51-51 428 | 95-96,33-95 429 | 1-2,1-82 430 | 19-32,20-31 431 | 73-75,74-83 432 | 73-87,87-88 433 | 19-70,70-70 434 | 4-93,5-13 435 | 96-96,6-95 436 | 10-17,10-18 437 | 70-73,24-70 438 | 25-25,26-76 439 | 58-58,10-58 440 | 5-83,4-84 441 | 45-47,46-74 442 | 50-67,66-68 443 | 88-89,89-93 444 | 15-19,16-24 445 | 28-30,2-29 446 | 17-19,18-77 447 | 21-94,21-83 448 | 23-81,81-82 449 | 2-91,3-66 450 | 75-94,76-94 451 | 2-4,3-99 452 | 19-82,82-83 453 | 3-85,3-3 454 | 62-74,45-61 455 | 33-33,33-47 456 | 66-72,66-72 457 | 62-97,61-61 458 | 41-74,40-75 459 | 7-89,4-7 460 | 56-67,55-57 461 | 6-25,25-89 462 | 11-11,10-14 463 | 89-98,16-97 464 | 18-76,18-76 465 | 23-96,61-97 466 | 6-15,16-68 467 | 3-99,2-99 468 | 22-61,9-22 469 | 45-86,44-44 470 | 30-46,45-46 471 | 55-86,1-97 472 | 21-95,20-95 473 | 20-47,48-82 474 | 15-47,16-80 475 | 39-51,39-52 476 | 9-15,9-90 477 | 1-86,85-86 478 | 38-38,38-79 479 | 41-41,18-42 480 | 7-98,87-98 481 | 9-87,60-88 482 | 30-87,87-88 483 | 10-58,1-6 484 | 5-58,5-58 485 | 38-76,37-76 486 | 9-82,81-82 487 | 2-10,5-43 488 | 50-51,2-51 489 | 35-93,34-93 490 | 18-75,17-75 491 | 14-59,14-59 492 | 27-27,28-88 493 | 61-62,46-61 494 | 38-74,38-51 495 | 49-87,50-50 496 | 39-39,38-95 497 | 48-98,2-97 498 | 27-29,28-92 499 | 23-55,22-54 500 | 30-31,29-31 501 | 11-59,10-58 502 | 15-84,59-85 503 | 22-57,24-56 504 | 17-42,6-42 505 | 5-93,92-94 506 | 76-89,76-90 507 | 1-84,84-85 508 | 36-77,13-78 509 | 31-78,31-57 510 | 23-89,22-90 511 | 36-37,36-48 512 | 41-84,34-83 513 | 6-36,5-6 514 | 74-91,45-92 515 | 62-99,62-65 516 | 3-30,4-98 517 | 9-83,9-83 518 | 11-93,13-94 519 | 7-35,6-6 520 | 36-38,37-67 521 | 84-93,1-92 522 | 28-57,27-56 523 | 94-97,95-98 524 | 41-74,40-75 525 | 7-91,12-88 526 | 42-97,43-96 527 | 7-13,14-85 528 | 58-96,4-98 529 | 15-95,47-95 530 | 87-90,5-87 531 | 35-71,36-71 532 | 27-29,29-29 533 | 21-28,28-46 534 | 2-13,13-99 535 | 38-52,39-51 536 | 12-79,61-80 537 | 59-81,19-59 538 | 87-88,15-87 539 | 10-53,8-10 540 | 4-10,2-9 541 | 13-93,69-94 542 | 42-61,82-83 543 | 9-97,10-10 544 | 9-21,8-20 545 | 42-89,89-90 546 | 4-86,79-87 547 | 11-58,11-47 548 | 83-84,14-84 549 | 5-75,32-75 550 | 45-97,97-97 551 | 39-39,38-48 552 | 44-44,43-58 553 | 50-69,49-68 554 | 61-87,55-86 555 | 4-95,94-95 556 | 47-48,47-48 557 | 40-67,39-39 558 | 15-68,15-69 559 | 4-84,4-84 560 | 98-99,1-99 561 | 3-8,8-98 562 | 2-97,3-97 563 | 20-46,46-90 564 | 25-64,43-83 565 | 26-47,26-47 566 | 27-28,1-28 567 | 50-52,51-64 568 | 76-87,91-99 569 | 39-60,38-40 570 | 3-99,4-99 571 | 67-82,10-67 572 | 45-76,46-59 573 | 16-79,15-78 574 | 11-63,19-62 575 | 9-54,10-55 576 | 4-95,96-96 577 | 16-87,15-88 578 | 9-30,29-88 579 | 68-69,10-68 580 | 51-54,52-74 581 | 2-4,4-59 582 | 1-96,97-99 583 | 17-90,54-91 584 | 25-27,26-88 585 | 95-97,57-95 586 | 25-33,25-25 587 | 33-64,33-47 588 | 32-93,33-93 589 | 3-37,37-38 590 | 60-80,54-79 591 | 38-39,21-39 592 | 9-94,94-96 593 | 27-80,27-81 594 | 1-74,22-75 595 | 11-89,11-89 596 | 7-81,82-98 597 | 5-56,56-75 598 | 3-3,3-90 599 | 18-62,18-19 600 | 28-99,29-98 601 | 2-2,2-75 602 | 31-86,12-65 603 | 71-72,20-71 604 | 73-73,56-72 605 | 94-98,7-88 606 | 91-91,92-92 607 | 3-98,4-97 608 | 2-71,70-71 609 | 5-63,63-63 610 | 39-81,21-81 611 | 44-44,44-78 612 | 64-88,15-87 613 | 95-95,92-96 614 | 17-32,32-94 615 | 11-81,12-82 616 | 86-97,85-98 617 | 92-99,8-98 618 | 22-70,23-23 619 | 11-97,10-11 620 | 72-73,61-72 621 | 25-58,24-98 622 | 52-65,53-55 623 | 66-67,1-66 624 | 8-65,53-65 625 | 83-98,82-89 626 | 33-79,33-79 627 | 65-79,65-92 628 | 7-34,8-53 629 | 27-43,34-73 630 | 28-77,28-77 631 | 59-96,27-98 632 | 7-55,19-66 633 | 2-78,3-79 634 | 13-13,12-81 635 | 2-92,91-92 636 | 2-44,1-43 637 | 32-33,32-99 638 | 92-93,20-93 639 | 97-98,8-98 640 | 15-60,16-60 641 | 3-98,2-99 642 | 37-37,13-37 643 | 9-82,82-97 644 | 23-86,22-67 645 | 18-35,9-27 646 | 57-73,57-58 647 | 36-93,36-37 648 | 15-15,15-77 649 | 52-82,51-73 650 | 13-22,14-96 651 | 9-67,8-68 652 | 6-76,7-83 653 | 1-4,1-4 654 | 1-95,1-90 655 | 25-29,29-80 656 | 77-91,39-90 657 | 7-97,8-96 658 | 45-77,46-88 659 | 20-59,59-82 660 | 64-64,63-96 661 | 31-83,32-32 662 | 11-96,96-97 663 | 59-77,59-59 664 | 47-75,47-65 665 | 8-95,2-8 666 | 19-81,19-81 667 | 35-36,36-37 668 | 83-84,83-90 669 | 4-97,2-49 670 | 39-96,38-97 671 | 64-99,6-86 672 | 29-95,29-96 673 | 27-84,7-27 674 | 4-63,6-62 675 | 60-66,61-66 676 | 58-91,90-91 677 | 44-65,62-69 678 | 13-24,23-61 679 | 45-88,88-93 680 | 62-95,95-96 681 | 1-86,1-85 682 | 33-33,12-33 683 | 36-67,37-66 684 | 11-49,48-50 685 | 4-76,1-4 686 | 5-84,4-53 687 | 22-65,22-65 688 | 12-22,13-64 689 | 16-16,16-33 690 | 10-97,44-98 691 | 47-52,48-64 692 | 58-95,59-99 693 | 18-71,37-72 694 | 7-79,8-79 695 | 2-61,3-98 696 | 67-84,83-85 697 | 56-86,82-85 698 | 22-97,28-98 699 | 42-57,41-57 700 | 23-26,11-25 701 | 45-82,5-81 702 | 41-43,42-79 703 | 3-93,93-93 704 | 60-87,59-84 705 | 93-99,44-93 706 | 47-95,74-95 707 | 51-52,40-52 708 | 11-32,12-84 709 | 4-89,1-4 710 | 3-93,93-94 711 | 97-97,17-96 712 | 12-67,11-11 713 | 25-80,39-60 714 | 98-99,3-98 715 | 61-62,60-62 716 | 24-35,34-35 717 | 10-86,11-87 718 | 64-66,4-90 719 | 1-1,2-89 720 | 15-75,46-76 721 | 71-72,17-72 722 | 7-9,8-91 723 | 18-36,18-70 724 | 3-5,4-16 725 | 8-88,7-88 726 | 69-85,69-69 727 | 17-46,18-47 728 | 8-37,37-50 729 | 2-38,1-39 730 | 99-99,9-99 731 | 30-78,31-89 732 | 51-64,52-63 733 | 11-99,1-99 734 | 81-82,23-81 735 | 54-62,53-53 736 | 80-91,24-80 737 | 96-98,75-97 738 | 78-78,46-78 739 | 7-88,7-89 740 | 1-22,1-22 741 | 5-39,5-38 742 | 95-95,13-96 743 | 19-49,17-85 744 | 7-96,6-96 745 | 29-93,49-75 746 | 42-76,43-75 747 | 62-62,61-70 748 | 36-42,37-46 749 | 5-84,91-92 750 | 26-95,25-27 751 | 36-81,63-82 752 | 17-51,18-50 753 | 34-74,34-75 754 | 6-53,53-86 755 | 28-28,28-36 756 | 6-6,6-77 757 | 42-70,41-70 758 | 29-92,92-93 759 | 10-50,9-51 760 | 90-93,80-90 761 | 3-84,28-97 762 | 3-3,2-74 763 | 9-92,8-10 764 | 58-70,58-70 765 | 1-61,2-16 766 | 29-85,29-69 767 | 61-96,31-96 768 | 30-81,12-30 769 | 25-72,24-26 770 | 60-96,60-96 771 | 2-29,2-28 772 | 27-57,26-57 773 | 5-94,2-99 774 | 5-15,4-19 775 | 2-46,3-29 776 | 39-60,38-99 777 | 1-2,1-83 778 | 17-86,18-87 779 | 68-95,69-94 780 | 31-52,8-53 781 | 80-89,81-88 782 | 17-57,16-56 783 | 7-28,6-24 784 | 35-63,63-63 785 | 42-89,88-89 786 | 97-98,71-98 787 | 79-82,6-68 788 | 8-34,34-34 789 | 66-71,38-70 790 | 15-65,66-71 791 | 22-82,21-83 792 | 9-81,10-22 793 | 19-85,18-86 794 | 19-19,20-70 795 | 6-76,45-76 796 | 1-37,36-55 797 | 49-98,98-98 798 | 9-88,4-10 799 | 74-83,17-82 800 | 30-63,22-62 801 | 8-89,4-8 802 | 3-87,2-16 803 | 91-91,49-91 804 | 2-53,53-97 805 | 9-14,13-71 806 | 33-98,34-99 807 | 31-58,27-59 808 | 22-34,34-34 809 | 3-5,4-97 810 | 36-93,25-31 811 | 50-62,35-61 812 | 43-84,43-83 813 | 60-81,19-60 814 | 2-90,2-89 815 | 1-3,5-44 816 | 5-99,8-96 817 | 7-7,8-8 818 | 27-39,28-80 819 | 6-89,4-5 820 | 44-66,11-67 821 | 15-88,7-99 822 | 5-44,5-6 823 | 70-95,71-94 824 | 2-2,2-81 825 | 99-99,4-99 826 | 98-99,22-98 827 | 69-78,65-77 828 | 46-51,45-51 829 | 34-67,66-68 830 | 36-74,35-75 831 | 38-63,39-62 832 | 22-72,39-73 833 | 15-52,16-52 834 | 19-98,19-97 835 | 4-99,3-3 836 | 2-2,3-96 837 | 3-85,4-4 838 | 19-91,10-20 839 | 4-20,20-78 840 | 2-56,6-85 841 | 6-54,5-54 842 | 4-65,5-65 843 | 13-74,15-74 844 | 78-92,79-94 845 | 68-77,62-76 846 | 5-75,5-75 847 | 68-85,69-88 848 | 62-94,21-94 849 | 6-94,5-95 850 | 1-3,3-61 851 | 37-68,37-69 852 | 4-4,5-65 853 | 96-97,3-97 854 | 8-96,7-7 855 | 69-96,8-91 856 | 87-88,8-88 857 | 17-32,74-91 858 | 13-93,13-93 859 | 44-46,21-45 860 | 37-49,49-50 861 | 9-53,53-90 862 | 43-51,49-49 863 | 5-91,6-92 864 | 12-77,12-13 865 | 29-94,30-32 866 | 77-78,53-77 867 | 10-62,26-83 868 | 44-46,45-60 869 | 79-90,79-97 870 | 5-89,89-89 871 | 3-64,2-65 872 | 58-96,73-96 873 | 49-97,16-96 874 | 27-49,26-50 875 | 25-51,51-71 876 | 45-48,46-51 877 | 80-81,3-80 878 | 26-30,25-25 879 | 94-95,50-94 880 | 65-95,63-94 881 | 11-95,3-44 882 | 11-97,10-10 883 | 97-98,2-97 884 | 46-50,53-66 885 | 7-23,22-97 886 | 55-85,55-85 887 | 85-92,11-85 888 | 98-99,5-99 889 | 60-61,4-61 890 | 30-31,8-30 891 | 53-54,38-53 892 | 2-3,4-5 893 | 3-99,2-99 894 | 19-85,21-66 895 | 36-53,36-50 896 | 70-71,24-70 897 | 19-85,20-85 898 | 1-84,15-86 899 | 30-57,30-58 900 | 78-81,77-82 901 | 19-26,26-27 902 | 52-73,51-72 903 | 73-89,69-88 904 | 2-5,4-79 905 | 9-35,10-34 906 | 4-60,3-61 907 | 5-5,4-69 908 | 98-99,16-98 909 | 57-85,85-86 910 | 1-81,2-80 911 | 44-73,44-73 912 | 90-97,68-90 913 | 75-88,1-75 914 | 95-98,12-95 915 | 40-66,39-67 916 | 3-99,4-26 917 | 52-76,93-99 918 | 16-30,30-66 919 | 68-69,68-69 920 | 19-68,9-19 921 | 37-90,37-41 922 | 1-94,94-94 923 | 2-2,1-83 924 | 12-93,2-12 925 | 27-96,17-28 926 | 44-46,36-67 927 | 72-90,73-89 928 | 20-29,21-21 929 | 7-59,59-60 930 | 69-74,66-74 931 | 27-82,69-83 932 | 12-78,12-78 933 | 13-64,63-70 934 | 41-60,40-40 935 | 32-96,59-97 936 | 1-98,1-97 937 | 9-64,8-19 938 | 4-4,3-97 939 | 8-96,8-9 940 | 5-5,4-68 941 | 44-68,45-45 942 | 42-67,41-71 943 | 49-50,18-49 944 | 1-95,83-91 945 | 7-8,7-82 946 | 31-76,32-75 947 | 45-63,54-64 948 | 92-93,84-92 949 | 94-96,95-97 950 | 21-61,20-62 951 | 13-67,5-42 952 | 15-58,16-84 953 | 47-55,29-46 954 | 56-65,55-57 955 | 11-53,12-52 956 | 1-48,48-57 957 | 20-75,15-75 958 | 1-95,21-95 959 | 2-39,3-90 960 | 4-54,24-55 961 | 8-42,41-46 962 | 9-97,9-98 963 | 45-83,39-82 964 | 23-72,22-71 965 | 68-68,62-68 966 | 2-96,1-1 967 | 15-90,16-91 968 | 25-27,26-93 969 | 34-36,30-35 970 | 2-65,3-64 971 | 2-54,53-54 972 | 39-84,38-84 973 | 9-96,10-96 974 | 79-80,70-76 975 | 22-47,31-47 976 | 13-87,12-87 977 | 87-93,87-94 978 | 24-44,25-94 979 | 36-93,6-97 980 | 8-94,28-41 981 | 50-61,56-62 982 | 32-74,74-75 983 | 3-78,13-78 984 | 99-99,23-87 985 | 25-83,25-83 986 | 15-15,14-20 987 | 62-63,32-63 988 | 36-49,35-57 989 | 48-93,14-49 990 | 52-71,51-53 991 | 1-2,1-11 992 | 22-99,98-99 993 | 28-29,28-49 994 | 7-8,7-81 995 | 27-64,64-93 996 | 13-59,14-60 997 | 12-88,10-11 998 | 13-79,14-50 999 | 2-3,5-87 1000 | 18-77,18-76 1001 | -------------------------------------------------------------------------------- /day1/input.txt: -------------------------------------------------------------------------------- 1 | 7769 2 | 6798 3 | 11685 4 | 10826 5 | 11807 6 | 5786 7 | 7932 8 | 9 | 54883 10 | 11 | 7069 12 | 5792 13 | 1519 14 | 7380 15 | 7034 16 | 6203 17 | 5706 18 | 1850 19 | 4933 20 | 5562 21 | 3826 22 | 6661 23 | 24 | 9150 25 | 6417 26 | 5057 27 | 3568 28 | 9352 29 | 7134 30 | 6040 31 | 2451 32 | 2295 33 | 34 | 10996 35 | 11802 36 | 5525 37 | 5705 38 | 8266 39 | 3742 40 | 41 | 5140 42 | 5527 43 | 5686 44 | 2488 45 | 2518 46 | 6260 47 | 1692 48 | 3149 49 | 9109 50 | 51 | 22590 52 | 17677 53 | 25444 54 | 55 | 4146 56 | 2282 57 | 1957 58 | 3673 59 | 4830 60 | 3220 61 | 3823 62 | 4619 63 | 3222 64 | 4076 65 | 4594 66 | 4550 67 | 4806 68 | 69 | 1426 70 | 2726 71 | 3566 72 | 4089 73 | 2195 74 | 1512 75 | 2547 76 | 2284 77 | 5687 78 | 7429 79 | 1043 80 | 81 | 7877 82 | 7446 83 | 9753 84 | 3184 85 | 5417 86 | 2306 87 | 1680 88 | 7121 89 | 90 | 21326 91 | 26045 92 | 93 | 22638 94 | 7066 95 | 10062 96 | 97 | 8585 98 | 9072 99 | 3466 100 | 101 | 7022 102 | 2085 103 | 4942 104 | 4034 105 | 4285 106 | 2498 107 | 9268 108 | 1444 109 | 3302 110 | 111 | 13269 112 | 9710 113 | 10391 114 | 10915 115 | 2195 116 | 8559 117 | 118 | 3035 119 | 9421 120 | 4497 121 | 1802 122 | 8447 123 | 5675 124 | 7580 125 | 9053 126 | 8004 127 | 128 | 2777 129 | 5293 130 | 1866 131 | 5019 132 | 8129 133 | 4632 134 | 1530 135 | 3438 136 | 5812 137 | 5460 138 | 139 | 2982 140 | 4005 141 | 4036 142 | 6510 143 | 4817 144 | 3958 145 | 5057 146 | 2049 147 | 2603 148 | 1227 149 | 5960 150 | 4043 151 | 5261 152 | 4780 153 | 154 | 5642 155 | 8518 156 | 13634 157 | 7727 158 | 10729 159 | 2587 160 | 161 | 15874 162 | 11122 163 | 15896 164 | 4477 165 | 166 | 7772 167 | 10595 168 | 6827 169 | 4469 170 | 10385 171 | 3420 172 | 7657 173 | 8950 174 | 175 | 2062 176 | 30422 177 | 178 | 2007 179 | 180 | 5148 181 | 3451 182 | 2735 183 | 12950 184 | 6576 185 | 10785 186 | 187 | 5578 188 | 5978 189 | 5716 190 | 4026 191 | 1429 192 | 7684 193 | 6552 194 | 7630 195 | 5834 196 | 4936 197 | 7936 198 | 199 | 4417 200 | 7072 201 | 7646 202 | 4604 203 | 6426 204 | 3020 205 | 1286 206 | 7360 207 | 208 | 20192 209 | 6831 210 | 10425 211 | 212 | 3685 213 | 8863 214 | 1300 215 | 11973 216 | 11525 217 | 11077 218 | 7184 219 | 220 | 5352 221 | 2370 222 | 3014 223 | 1386 224 | 1486 225 | 1718 226 | 1898 227 | 6896 228 | 4930 229 | 1628 230 | 2798 231 | 1681 232 | 5751 233 | 234 | 2150 235 | 2901 236 | 3490 237 | 4291 238 | 8998 239 | 5673 240 | 3623 241 | 3894 242 | 7435 243 | 244 | 2235 245 | 3164 246 | 1231 247 | 3675 248 | 4188 249 | 4865 250 | 1611 251 | 4652 252 | 6333 253 | 3262 254 | 3124 255 | 6215 256 | 2704 257 | 3183 258 | 259 | 5215 260 | 3259 261 | 3550 262 | 4965 263 | 4096 264 | 2036 265 | 4517 266 | 2554 267 | 3266 268 | 5571 269 | 5266 270 | 1466 271 | 5259 272 | 5882 273 | 2782 274 | 275 | 4755 276 | 3402 277 | 4269 278 | 8242 279 | 280 | 1365 281 | 4100 282 | 3131 283 | 3596 284 | 4719 285 | 4250 286 | 4580 287 | 5418 288 | 1687 289 | 6533 290 | 5938 291 | 5865 292 | 4605 293 | 294 | 9739 295 | 11547 296 | 11940 297 | 10268 298 | 11939 299 | 10825 300 | 5522 301 | 302 | 11534 303 | 3303 304 | 8778 305 | 4682 306 | 7643 307 | 308 | 8045 309 | 8298 310 | 5813 311 | 7881 312 | 8605 313 | 4114 314 | 4524 315 | 3837 316 | 7631 317 | 6763 318 | 319 | 3781 320 | 4709 321 | 2733 322 | 4606 323 | 4291 324 | 1785 325 | 5297 326 | 5929 327 | 1424 328 | 5951 329 | 6175 330 | 5367 331 | 2370 332 | 333 | 5882 334 | 2097 335 | 3154 336 | 4166 337 | 1556 338 | 3414 339 | 3977 340 | 4348 341 | 5069 342 | 4092 343 | 3614 344 | 5803 345 | 3460 346 | 5374 347 | 348 | 2814 349 | 5388 350 | 1641 351 | 1526 352 | 4489 353 | 2291 354 | 2573 355 | 5389 356 | 3109 357 | 3422 358 | 5342 359 | 1461 360 | 3105 361 | 4265 362 | 363 | 4726 364 | 4817 365 | 4047 366 | 3690 367 | 1101 368 | 4853 369 | 5962 370 | 2049 371 | 4059 372 | 2172 373 | 4509 374 | 3395 375 | 4854 376 | 3838 377 | 1019 378 | 379 | 7358 380 | 6318 381 | 16327 382 | 9518 383 | 4995 384 | 385 | 6426 386 | 9428 387 | 1077 388 | 4142 389 | 1989 390 | 4019 391 | 6187 392 | 393 | 3162 394 | 4035 395 | 1359 396 | 4364 397 | 2392 398 | 3819 399 | 5132 400 | 4721 401 | 4794 402 | 1622 403 | 4693 404 | 5318 405 | 6089 406 | 1588 407 | 3199 408 | 409 | 1273 410 | 2231 411 | 3534 412 | 4970 413 | 1685 414 | 2565 415 | 1847 416 | 5926 417 | 5778 418 | 4919 419 | 4238 420 | 1422 421 | 3945 422 | 1252 423 | 4234 424 | 425 | 9120 426 | 13317 427 | 3969 428 | 4758 429 | 13615 430 | 7951 431 | 432 | 66512 433 | 434 | 1501 435 | 6913 436 | 4990 437 | 5948 438 | 2597 439 | 5644 440 | 2876 441 | 3515 442 | 4264 443 | 3768 444 | 4731 445 | 3944 446 | 447 | 10132 448 | 19382 449 | 450 | 6047 451 | 5939 452 | 2528 453 | 7985 454 | 1897 455 | 3393 456 | 5548 457 | 4948 458 | 6010 459 | 5878 460 | 3060 461 | 462 | 9054 463 | 9776 464 | 4515 465 | 5124 466 | 7522 467 | 8530 468 | 2383 469 | 470 | 5847 471 | 2878 472 | 4148 473 | 1173 474 | 2170 475 | 2647 476 | 2068 477 | 5523 478 | 4020 479 | 1211 480 | 6391 481 | 3562 482 | 5005 483 | 1904 484 | 485 | 6823 486 | 7455 487 | 4026 488 | 4248 489 | 3707 490 | 1157 491 | 5135 492 | 5637 493 | 2967 494 | 5746 495 | 3987 496 | 497 | 7376 498 | 6875 499 | 7041 500 | 7713 501 | 12827 502 | 13582 503 | 504 | 17060 505 | 11310 506 | 19892 507 | 508 | 8053 509 | 12649 510 | 1222 511 | 12407 512 | 12724 513 | 514 | 39856 515 | 516 | 7534 517 | 2592 518 | 1012 519 | 4760 520 | 2118 521 | 8180 522 | 1054 523 | 3230 524 | 7718 525 | 526 | 6017 527 | 3402 528 | 3896 529 | 5801 530 | 4055 531 | 5034 532 | 1063 533 | 3694 534 | 6663 535 | 6079 536 | 4364 537 | 5712 538 | 3366 539 | 540 | 4197 541 | 7022 542 | 5256 543 | 1425 544 | 7656 545 | 6799 546 | 7117 547 | 5580 548 | 6349 549 | 4039 550 | 551 | 20138 552 | 1054 553 | 554 | 2340 555 | 9011 556 | 8717 557 | 1458 558 | 11325 559 | 4563 560 | 8634 561 | 562 | 5553 563 | 4344 564 | 2022 565 | 1712 566 | 4142 567 | 2372 568 | 2444 569 | 3286 570 | 1456 571 | 4778 572 | 4125 573 | 3745 574 | 2776 575 | 4688 576 | 5256 577 | 578 | 15243 579 | 10322 580 | 6333 581 | 11283 582 | 583 | 3932 584 | 1767 585 | 8008 586 | 1064 587 | 6096 588 | 1695 589 | 3423 590 | 4814 591 | 592 | 2592 593 | 4604 594 | 2710 595 | 2273 596 | 4703 597 | 1705 598 | 5528 599 | 5053 600 | 5556 601 | 1562 602 | 5820 603 | 5347 604 | 2978 605 | 2734 606 | 5782 607 | 608 | 1890 609 | 7379 610 | 18132 611 | 18576 612 | 613 | 6752 614 | 8949 615 | 11389 616 | 7170 617 | 2131 618 | 3725 619 | 7053 620 | 621 | 5545 622 | 11110 623 | 13900 624 | 5552 625 | 11452 626 | 2249 627 | 628 | 9323 629 | 7633 630 | 11404 631 | 5092 632 | 1683 633 | 2705 634 | 10840 635 | 636 | 20742 637 | 14722 638 | 639 | 9990 640 | 12357 641 | 17458 642 | 17411 643 | 644 | 1698 645 | 9149 646 | 7872 647 | 2331 648 | 7464 649 | 5228 650 | 5603 651 | 2551 652 | 6590 653 | 654 | 4927 655 | 5047 656 | 12168 657 | 15288 658 | 14202 659 | 660 | 13034 661 | 4809 662 | 3511 663 | 10173 664 | 2745 665 | 666 | 69228 667 | 668 | 1810 669 | 14168 670 | 671 | 3939 672 | 15152 673 | 23394 674 | 675 | 5366 676 | 3942 677 | 4203 678 | 4337 679 | 4559 680 | 6474 681 | 4586 682 | 5663 683 | 3658 684 | 5700 685 | 6654 686 | 6103 687 | 1057 688 | 689 | 9680 690 | 8092 691 | 692 | 4204 693 | 7952 694 | 6443 695 | 5174 696 | 3142 697 | 5908 698 | 10695 699 | 5827 700 | 701 | 66023 702 | 703 | 8071 704 | 2036 705 | 16786 706 | 15029 707 | 708 | 18357 709 | 10466 710 | 13614 711 | 19749 712 | 713 | 3429 714 | 7627 715 | 5875 716 | 2678 717 | 3260 718 | 1265 719 | 8377 720 | 7841 721 | 722 | 4403 723 | 16663 724 | 22998 725 | 726 | 5571 727 | 5978 728 | 2363 729 | 1170 730 | 3368 731 | 4273 732 | 1975 733 | 3272 734 | 3885 735 | 3288 736 | 3287 737 | 5319 738 | 5073 739 | 1543 740 | 3815 741 | 742 | 12653 743 | 13250 744 | 6247 745 | 2301 746 | 747 | 2817 748 | 26802 749 | 750 | 8427 751 | 7538 752 | 7405 753 | 6634 754 | 2889 755 | 1705 756 | 7171 757 | 6067 758 | 3737 759 | 760 | 5708 761 | 1287 762 | 1923 763 | 6351 764 | 5986 765 | 3291 766 | 1295 767 | 6439 768 | 3591 769 | 2498 770 | 5135 771 | 2927 772 | 5476 773 | 6504 774 | 775 | 9888 776 | 8000 777 | 4035 778 | 1566 779 | 3005 780 | 6312 781 | 7637 782 | 6485 783 | 784 | 8797 785 | 9447 786 | 7955 787 | 5218 788 | 1487 789 | 11930 790 | 9613 791 | 792 | 6618 793 | 3290 794 | 1626 795 | 2828 796 | 1212 797 | 4021 798 | 5720 799 | 4838 800 | 4069 801 | 2792 802 | 3864 803 | 6113 804 | 1059 805 | 806 | 13347 807 | 14049 808 | 9926 809 | 2695 810 | 7591 811 | 812 | 19734 813 | 12813 814 | 14941 815 | 5044 816 | 817 | 11219 818 | 14430 819 | 6907 820 | 1295 821 | 10293 822 | 823 | 5012 824 | 4809 825 | 3807 826 | 5257 827 | 2325 828 | 5551 829 | 1899 830 | 4972 831 | 3409 832 | 5340 833 | 4525 834 | 3395 835 | 2881 836 | 837 | 12541 838 | 15894 839 | 16431 840 | 12428 841 | 842 | 2641 843 | 4872 844 | 1533 845 | 2437 846 | 5982 847 | 4387 848 | 3221 849 | 7000 850 | 4438 851 | 2051 852 | 1046 853 | 1708 854 | 855 | 8702 856 | 10811 857 | 13926 858 | 12768 859 | 2506 860 | 861 | 6568 862 | 4598 863 | 2225 864 | 4648 865 | 3543 866 | 2542 867 | 1099 868 | 7314 869 | 870 | 1692 871 | 6923 872 | 4315 873 | 8777 874 | 14624 875 | 876 | 10646 877 | 17681 878 | 3207 879 | 19894 880 | 881 | 7926 882 | 11094 883 | 17423 884 | 15371 885 | 886 | 5048 887 | 8089 888 | 11169 889 | 5040 890 | 6221 891 | 5191 892 | 893 | 8682 894 | 6191 895 | 11354 896 | 13461 897 | 10597 898 | 2513 899 | 900 | 2189 901 | 5321 902 | 4750 903 | 1844 904 | 4592 905 | 2686 906 | 4028 907 | 6125 908 | 1162 909 | 3405 910 | 4721 911 | 5505 912 | 2934 913 | 1095 914 | 915 | 2068 916 | 10452 917 | 5876 918 | 3227 919 | 1290 920 | 4654 921 | 6635 922 | 923 | 1936 924 | 2110 925 | 5374 926 | 4185 927 | 1198 928 | 4599 929 | 1146 930 | 1929 931 | 3807 932 | 4076 933 | 4765 934 | 3831 935 | 5478 936 | 5989 937 | 938 | 23444 939 | 14453 940 | 8534 941 | 942 | 1019 943 | 4669 944 | 1444 945 | 6127 946 | 4243 947 | 3660 948 | 1274 949 | 5428 950 | 5662 951 | 4909 952 | 2672 953 | 1241 954 | 955 | 7346 956 | 7316 957 | 4450 958 | 4987 959 | 3131 960 | 4318 961 | 7189 962 | 3525 963 | 1041 964 | 2680 965 | 966 | 10645 967 | 2358 968 | 2163 969 | 4477 970 | 9860 971 | 1345 972 | 3691 973 | 2085 974 | 975 | 7383 976 | 6160 977 | 2327 978 | 3158 979 | 2693 980 | 7236 981 | 4629 982 | 2416 983 | 7986 984 | 3383 985 | 1136 986 | 987 | 1190 988 | 4026 989 | 8538 990 | 6659 991 | 2981 992 | 5995 993 | 9724 994 | 6940 995 | 996 | 10340 997 | 3805 998 | 4627 999 | 1000 | 14249 1001 | 5887 1002 | 12930 1003 | 2407 1004 | 14495 1005 | 1006 | 7516 1007 | 9033 1008 | 2525 1009 | 7708 1010 | 6145 1011 | 10001 1012 | 2655 1013 | 3141 1014 | 1015 | 7379 1016 | 1017 | 6608 1018 | 16917 1019 | 1035 1020 | 10703 1021 | 1022 | 33797 1023 | 34907 1024 | 1025 | 6797 1026 | 6996 1027 | 6591 1028 | 6379 1029 | 6973 1030 | 2831 1031 | 1277 1032 | 7051 1033 | 3832 1034 | 2433 1035 | 1036 | 7531 1037 | 14776 1038 | 6826 1039 | 17630 1040 | 1041 | 7386 1042 | 9544 1043 | 7237 1044 | 1045 | 6602 1046 | 6957 1047 | 3141 1048 | 3585 1049 | 6978 1050 | 6463 1051 | 6948 1052 | 1051 1053 | 1433 1054 | 5963 1055 | 3190 1056 | 3433 1057 | 1058 | 10667 1059 | 1972 1060 | 1061 | 8003 1062 | 3968 1063 | 1911 1064 | 2211 1065 | 1255 1066 | 4850 1067 | 6125 1068 | 6806 1069 | 1283 1070 | 6968 1071 | 6659 1072 | 1073 | 4095 1074 | 4468 1075 | 1307 1076 | 3095 1077 | 6596 1078 | 6039 1079 | 4003 1080 | 6669 1081 | 3820 1082 | 1938 1083 | 4527 1084 | 6348 1085 | 1086 | 3603 1087 | 6057 1088 | 16940 1089 | 1090 | 1702 1091 | 7175 1092 | 3506 1093 | 1917 1094 | 1901 1095 | 7955 1096 | 9292 1097 | 4531 1098 | 6309 1099 | 1100 | 10460 1101 | 3439 1102 | 10344 1103 | 4353 1104 | 14564 1105 | 1106 | 4848 1107 | 2725 1108 | 1146 1109 | 5588 1110 | 1671 1111 | 4461 1112 | 1109 1113 | 2933 1114 | 1639 1115 | 4587 1116 | 6680 1117 | 1035 1118 | 3288 1119 | 1120 | 10223 1121 | 9558 1122 | 8984 1123 | 6259 1124 | 8858 1125 | 4175 1126 | 4696 1127 | 4865 1128 | 1129 | 9629 1130 | 1673 1131 | 3138 1132 | 7637 1133 | 5938 1134 | 2470 1135 | 8013 1136 | 4296 1137 | 1138 | 7350 1139 | 3432 1140 | 7036 1141 | 8337 1142 | 1497 1143 | 7476 1144 | 2665 1145 | 3929 1146 | 1147 | 4781 1148 | 6914 1149 | 12163 1150 | 9402 1151 | 7776 1152 | 1153 | 4099 1154 | 4560 1155 | 5915 1156 | 1973 1157 | 5439 1158 | 1400 1159 | 6595 1160 | 5966 1161 | 1196 1162 | 4074 1163 | 1936 1164 | 5854 1165 | 5206 1166 | 1167 | 8515 1168 | 2858 1169 | 5997 1170 | 6508 1171 | 2452 1172 | 4353 1173 | 2981 1174 | 1926 1175 | 2914 1176 | 1393 1177 | 1178 | 5453 1179 | 2358 1180 | 1559 1181 | 5635 1182 | 3544 1183 | 5985 1184 | 3780 1185 | 1973 1186 | 2762 1187 | 4714 1188 | 4959 1189 | 6217 1190 | 1191 | 1189 1192 | 5940 1193 | 5972 1194 | 3127 1195 | 5704 1196 | 1270 1197 | 4245 1198 | 5290 1199 | 2370 1200 | 1828 1201 | 4501 1202 | 3431 1203 | 1382 1204 | 2932 1205 | 1206 | 6204 1207 | 9810 1208 | 4609 1209 | 3992 1210 | 11958 1211 | 2599 1212 | 1213 | 1879 1214 | 1009 1215 | 9081 1216 | 8621 1217 | 8883 1218 | 5696 1219 | 11034 1220 | 1221 | 7627 1222 | 3776 1223 | 7000 1224 | 10332 1225 | 4325 1226 | 3876 1227 | 2789 1228 | 8333 1229 | 1230 | 7701 1231 | 1778 1232 | 4980 1233 | 4505 1234 | 5648 1235 | 1236 | 1799 1237 | 3098 1238 | 4398 1239 | 3948 1240 | 4257 1241 | 4112 1242 | 1364 1243 | 3813 1244 | 5036 1245 | 3469 1246 | 4468 1247 | 2531 1248 | 1348 1249 | 1250 | 4378 1251 | 2265 1252 | 5366 1253 | 1511 1254 | 2074 1255 | 1163 1256 | 1459 1257 | 5241 1258 | 2568 1259 | 1730 1260 | 5780 1261 | 5065 1262 | 3062 1263 | 1122 1264 | 1117 1265 | 1266 | 3812 1267 | 5343 1268 | 4364 1269 | 6951 1270 | 2722 1271 | 3256 1272 | 7022 1273 | 3296 1274 | 3913 1275 | 5731 1276 | 5034 1277 | 3887 1278 | 1279 | 13509 1280 | 11975 1281 | 12287 1282 | 10636 1283 | 12399 1284 | 7668 1285 | 1286 | 19677 1287 | 1190 1288 | 1202 1289 | 1290 | 10816 1291 | 4836 1292 | 5309 1293 | 14165 1294 | 14288 1295 | 1296 | 5490 1297 | 4786 1298 | 4274 1299 | 5379 1300 | 4549 1301 | 4178 1302 | 2801 1303 | 1439 1304 | 5323 1305 | 4588 1306 | 5163 1307 | 1764 1308 | 4159 1309 | 5876 1310 | 5784 1311 | 1312 | 16630 1313 | 10090 1314 | 19629 1315 | 4208 1316 | 1317 | 4828 1318 | 6769 1319 | 8968 1320 | 7615 1321 | 5761 1322 | 3303 1323 | 8317 1324 | 4078 1325 | 1484 1326 | 1327 | 6249 1328 | 6524 1329 | 1303 1330 | 12159 1331 | 8931 1332 | 8535 1333 | 1334 | 3704 1335 | 2998 1336 | 1785 1337 | 1520 1338 | 4399 1339 | 4624 1340 | 4708 1341 | 3660 1342 | 4117 1343 | 2092 1344 | 4172 1345 | 3349 1346 | 3104 1347 | 1789 1348 | 2007 1349 | 1350 | 11372 1351 | 15360 1352 | 14226 1353 | 7483 1354 | 16378 1355 | 1356 | 4261 1357 | 2686 1358 | 1891 1359 | 5516 1360 | 5035 1361 | 1525 1362 | 5360 1363 | 4027 1364 | 3811 1365 | 6325 1366 | 5813 1367 | 4172 1368 | 6415 1369 | 1370 | 24072 1371 | 19037 1372 | 25145 1373 | 1374 | 2885 1375 | 6595 1376 | 4536 1377 | 2928 1378 | 3890 1379 | 8081 1380 | 6309 1381 | 4441 1382 | 6922 1383 | 4877 1384 | 1385 | 16459 1386 | 9019 1387 | 4823 1388 | 4890 1389 | 1390 | 1962 1391 | 5355 1392 | 7809 1393 | 9413 1394 | 6811 1395 | 8709 1396 | 5073 1397 | 4847 1398 | 4097 1399 | 1400 | 2745 1401 | 7978 1402 | 6573 1403 | 5295 1404 | 8034 1405 | 3894 1406 | 1410 1407 | 2764 1408 | 4644 1409 | 7553 1410 | 6257 1411 | 1412 | 25171 1413 | 8046 1414 | 4857 1415 | 1416 | 6783 1417 | 4054 1418 | 3275 1419 | 2976 1420 | 4343 1421 | 2370 1422 | 1621 1423 | 7456 1424 | 6762 1425 | 3160 1426 | 1156 1427 | 1428 | 2686 1429 | 2728 1430 | 2184 1431 | 4152 1432 | 6487 1433 | 3462 1434 | 2738 1435 | 2908 1436 | 5387 1437 | 1577 1438 | 6751 1439 | 6695 1440 | 5232 1441 | 1442 | 6177 1443 | 7217 1444 | 2564 1445 | 2443 1446 | 4514 1447 | 8294 1448 | 5415 1449 | 2623 1450 | 9681 1451 | 1452 | 4950 1453 | 1038 1454 | 10383 1455 | 5835 1456 | 1327 1457 | 1302 1458 | 9590 1459 | 1460 | 17215 1461 | 9922 1462 | 6402 1463 | 19625 1464 | 1465 | 4168 1466 | 1146 1467 | 5827 1468 | 3497 1469 | 5063 1470 | 5336 1471 | 3091 1472 | 1710 1473 | 2455 1474 | 4036 1475 | 2016 1476 | 1400 1477 | 1839 1478 | 1280 1479 | 1802 1480 | 1481 | 14115 1482 | 1542 1483 | 17633 1484 | 1485 | 3405 1486 | 3819 1487 | 1079 1488 | 2957 1489 | 2594 1490 | 3639 1491 | 1941 1492 | 3709 1493 | 1494 | 5027 1495 | 7097 1496 | 2180 1497 | 5866 1498 | 6339 1499 | 10088 1500 | 10331 1501 | 10009 1502 | 1503 | 8795 1504 | 11892 1505 | 1803 1506 | 10020 1507 | 7485 1508 | 2252 1509 | 1510 | 6020 1511 | 6734 1512 | 2366 1513 | 4256 1514 | 11042 1515 | 7705 1516 | 1154 1517 | 1518 | 4649 1519 | 7673 1520 | 4275 1521 | 3178 1522 | 5322 1523 | 4959 1524 | 5990 1525 | 1480 1526 | 5206 1527 | 3693 1528 | 1529 | 1033 1530 | 34996 1531 | 1532 | 8495 1533 | 4414 1534 | 7618 1535 | 7494 1536 | 4141 1537 | 10026 1538 | 7653 1539 | 6703 1540 | 1541 | 7338 1542 | 2459 1543 | 3138 1544 | 1169 1545 | 6969 1546 | 2912 1547 | 5215 1548 | 5295 1549 | 1550 | 6828 1551 | 2861 1552 | 8421 1553 | 1358 1554 | 6303 1555 | 3986 1556 | 1616 1557 | 2345 1558 | 8176 1559 | 2108 1560 | 1561 | 4784 1562 | 1321 1563 | 5487 1564 | 6182 1565 | 5706 1566 | 5460 1567 | 5418 1568 | 2886 1569 | 5906 1570 | 6230 1571 | 1211 1572 | 1325 1573 | 3766 1574 | 3473 1575 | 1576 | 32044 1577 | 9585 1578 | 1579 | 4129 1580 | 3880 1581 | 2446 1582 | 7678 1583 | 7171 1584 | 6122 1585 | 4815 1586 | 6490 1587 | 7811 1588 | 1589 | 4998 1590 | 5114 1591 | 4812 1592 | 7291 1593 | 1189 1594 | 1140 1595 | 7418 1596 | 6180 1597 | 3614 1598 | 6185 1599 | 7174 1600 | 4112 1601 | 1602 | 2120 1603 | 8291 1604 | 8297 1605 | 5972 1606 | 5091 1607 | 3300 1608 | 2250 1609 | 8252 1610 | 1798 1611 | 5973 1612 | 1613 | 4580 1614 | 4253 1615 | 2599 1616 | 1260 1617 | 1319 1618 | 2410 1619 | 3880 1620 | 1891 1621 | 5663 1622 | 6015 1623 | 2826 1624 | 1685 1625 | 6015 1626 | 2218 1627 | 2074 1628 | 1629 | 5484 1630 | 3947 1631 | 5030 1632 | 6716 1633 | 4840 1634 | 1353 1635 | 3667 1636 | 6815 1637 | 4884 1638 | 5050 1639 | 5678 1640 | 2224 1641 | 3010 1642 | 1643 | 3357 1644 | 2304 1645 | 3432 1646 | 5239 1647 | 2342 1648 | 5433 1649 | 1529 1650 | 5368 1651 | 1377 1652 | 1955 1653 | 5154 1654 | 2021 1655 | 2777 1656 | 4191 1657 | 2437 1658 | 1659 | 5674 1660 | 1979 1661 | 7064 1662 | 2839 1663 | 6346 1664 | 2751 1665 | 1055 1666 | 3565 1667 | 6608 1668 | 2640 1669 | 2418 1670 | 1671 | 5639 1672 | 10983 1673 | 17671 1674 | 17911 1675 | 1676 | 15626 1677 | 2960 1678 | 6655 1679 | 10375 1680 | 5736 1681 | 1682 | 7035 1683 | 5732 1684 | 7114 1685 | 1535 1686 | 2199 1687 | 11194 1688 | 9774 1689 | 1690 | 5832 1691 | 1692 | 10467 1693 | 12415 1694 | 4879 1695 | 1429 1696 | 1697 | 6075 1698 | 4309 1699 | 6002 1700 | 6426 1701 | 3744 1702 | 3310 1703 | 4451 1704 | 3076 1705 | 1509 1706 | 1748 1707 | 1692 1708 | 4507 1709 | 5036 1710 | 4895 1711 | 1712 | 11696 1713 | 4115 1714 | 8159 1715 | 10845 1716 | 2786 1717 | 10615 1718 | 1719 | 48621 1720 | 1721 | 1192 1722 | 3957 1723 | 4091 1724 | 2855 1725 | 2872 1726 | 3079 1727 | 6075 1728 | 2858 1729 | 5498 1730 | 1143 1731 | 3565 1732 | 5869 1733 | 5297 1734 | 1698 1735 | 1736 | 7795 1737 | 1985 1738 | 7103 1739 | 1419 1740 | 1310 1741 | 11662 1742 | 10826 1743 | 1744 | 5503 1745 | 1258 1746 | 3528 1747 | 1705 1748 | 5995 1749 | 1163 1750 | 7702 1751 | 5395 1752 | 7432 1753 | 1754 | 14868 1755 | 4477 1756 | 6259 1757 | 13077 1758 | 8291 1759 | 1760 | 8320 1761 | 16041 1762 | 11934 1763 | 10727 1764 | 11090 1765 | 1766 | 12551 1767 | 13807 1768 | 10502 1769 | 1770 | 9432 1771 | 11708 1772 | 8636 1773 | 10825 1774 | 5787 1775 | 12812 1776 | 1777 | 35147 1778 | 3076 1779 | 1780 | 25130 1781 | 12321 1782 | 1783 | 8915 1784 | 1256 1785 | 5757 1786 | 4542 1787 | 7654 1788 | 6386 1789 | 6577 1790 | 5309 1791 | 7586 1792 | 1793 | 8039 1794 | 4206 1795 | 1881 1796 | 7297 1797 | 5462 1798 | 1961 1799 | 2831 1800 | 3112 1801 | 6699 1802 | 2228 1803 | 7562 1804 | 1805 | 1922 1806 | 2168 1807 | 2585 1808 | 6069 1809 | 3197 1810 | 5424 1811 | 4482 1812 | 1832 1813 | 5677 1814 | 2958 1815 | 5352 1816 | 5895 1817 | 3866 1818 | 3543 1819 | 1820 | 5634 1821 | 4583 1822 | 6213 1823 | 4733 1824 | 4093 1825 | 4552 1826 | 1115 1827 | 1413 1828 | 3362 1829 | 1079 1830 | 5891 1831 | 5299 1832 | 3532 1833 | 6085 1834 | 1835 | 3765 1836 | 1926 1837 | 7096 1838 | 9431 1839 | 8271 1840 | 5419 1841 | 4734 1842 | 5307 1843 | 1844 | 25704 1845 | 1846 | 2025 1847 | 4435 1848 | 1940 1849 | 4431 1850 | 3579 1851 | 6629 1852 | 5778 1853 | 3161 1854 | 6755 1855 | 3089 1856 | 5531 1857 | 4578 1858 | 1898 1859 | 1860 | 21458 1861 | 13856 1862 | 14167 1863 | 1864 | 10658 1865 | 5673 1866 | 5497 1867 | 8117 1868 | 4249 1869 | 5299 1870 | 4091 1871 | 1872 | 9437 1873 | 8079 1874 | 2943 1875 | 1661 1876 | 1856 1877 | 9904 1878 | 4602 1879 | 6529 1880 | 1881 | 2512 1882 | 2786 1883 | 3226 1884 | 10440 1885 | 3819 1886 | 10685 1887 | 8838 1888 | 9662 1889 | 1890 | 8602 1891 | 4695 1892 | 3934 1893 | 2730 1894 | 1767 1895 | 9104 1896 | 7493 1897 | 1063 1898 | 1794 1899 | 1900 | 7080 1901 | 4569 1902 | 6256 1903 | 4728 1904 | 1399 1905 | 1907 1906 | 4763 1907 | 1715 1908 | 3886 1909 | 1251 1910 | 3224 1911 | 1912 | 3959 1913 | 1907 1914 | 5456 1915 | 2086 1916 | 3711 1917 | 5971 1918 | 3294 1919 | 1861 1920 | 2780 1921 | 1913 1922 | 4832 1923 | 5076 1924 | 1830 1925 | 1926 | 5804 1927 | 2484 1928 | 3124 1929 | 3675 1930 | 2231 1931 | 7385 1932 | 6162 1933 | 7721 1934 | 8320 1935 | 6636 1936 | 1937 | 2776 1938 | 1481 1939 | 3775 1940 | 5827 1941 | 7069 1942 | 6834 1943 | 2274 1944 | 5570 1945 | 4355 1946 | 5544 1947 | 3954 1948 | 7455 1949 | 1950 | 5864 1951 | 2635 1952 | 2103 1953 | 5153 1954 | 7465 1955 | 3629 1956 | 9144 1957 | 1026 1958 | 1281 1959 | 1960 | 2245 1961 | 4411 1962 | 7641 1963 | 3676 1964 | 4231 1965 | 7080 1966 | 6825 1967 | 1638 1968 | 1669 1969 | 5421 1970 | 1971 | 24591 1972 | 21630 1973 | 25260 1974 | 1975 | 11157 1976 | 5983 1977 | 7801 1978 | 8726 1979 | 1466 1980 | 4673 1981 | 4161 1982 | 1983 | 29272 1984 | 3399 1985 | 1986 | 14240 1987 | 15303 1988 | 21022 1989 | 1990 | 4601 1991 | 1980 1992 | 4747 1993 | 1424 1994 | 4354 1995 | 4854 1996 | 5111 1997 | 4812 1998 | 2612 1999 | 3479 2000 | 2243 2001 | 1010 2002 | 3081 2003 | 2162 2004 | 2005 | 2499 2006 | 2823 2007 | 2552 2008 | 3999 2009 | 5433 2010 | 4645 2011 | 1491 2012 | 4132 2013 | 3319 2014 | 2680 2015 | 2814 2016 | 3418 2017 | 1762 2018 | 6143 2019 | 2020 | 4333 2021 | 1177 2022 | 6107 2023 | 6535 2024 | 4587 2025 | 5845 2026 | 4595 2027 | 1898 2028 | 4140 2029 | 3508 2030 | 5708 2031 | 6816 2032 | 2033 | 7619 2034 | 7616 2035 | 7029 2036 | 10521 2037 | 6949 2038 | 4053 2039 | 1093 2040 | 1831 2041 | 2042 | 2343 2043 | 6227 2044 | 1128 2045 | 2486 2046 | 6296 2047 | 1852 2048 | 1198 2049 | 1012 2050 | 5792 2051 | 3116 2052 | 1241 2053 | 2703 2054 | 6783 2055 | 2056 | 2330 2057 | 4075 2058 | 3239 2059 | 6472 2060 | 4512 2061 | 2701 2062 | 2322 2063 | 1281 2064 | 4283 2065 | 3289 2066 | 3978 2067 | 1141 2068 | 6478 2069 | 3138 2070 | 2071 | 9950 2072 | 14105 2073 | 8952 2074 | 12549 2075 | 7905 2076 | 2077 | 3088 2078 | 5831 2079 | 5452 2080 | 2038 2081 | 1116 2082 | 3670 2083 | 3025 2084 | 3749 2085 | 5040 2086 | 2507 2087 | 3787 2088 | 1674 2089 | 4437 2090 | 2630 2091 | 5239 2092 | 2093 | 4742 2094 | 8167 2095 | 8733 2096 | 2304 2097 | 1227 2098 | 7007 2099 | 5281 2100 | 3939 2101 | 4327 2102 | 2103 | 2821 2104 | 7212 2105 | 7353 2106 | 5102 2107 | 3808 2108 | 7328 2109 | 2741 2110 | 1436 2111 | 6321 2112 | 6249 2113 | 6961 2114 | 2115 | 8502 2116 | 6346 2117 | 6807 2118 | 5110 2119 | 4949 2120 | 2355 2121 | 9254 2122 | 2123 | 1071 2124 | 25798 2125 | 5915 2126 | 2127 | 9040 2128 | 9174 2129 | 11739 2130 | 14248 2131 | 8788 2132 | 2133 | 10873 2134 | 14148 2135 | 3787 2136 | 11629 2137 | 2610 2138 | 2139 | 2689 2140 | 4455 2141 | 3461 2142 | 5468 2143 | 1308 2144 | 1111 2145 | 4181 2146 | 3832 2147 | 1172 2148 | 2809 2149 | 3782 2150 | 2943 2151 | 1926 2152 | 1470 2153 | 5324 2154 | 2155 | 2093 2156 | 7919 2157 | 1178 2158 | 7995 2159 | 4279 2160 | 1018 2161 | 1011 2162 | 1690 2163 | 2987 2164 | 5071 2165 | 2166 | 8113 2167 | 2934 2168 | 2169 | 5764 2170 | 2369 2171 | 4718 2172 | 2864 2173 | 6292 2174 | 5603 2175 | 3142 2176 | 8156 2177 | 1571 2178 | 2106 2179 | 2180 | 3583 2181 | 1792 2182 | 5592 2183 | 5648 2184 | 5637 2185 | 3586 2186 | 1685 2187 | 1042 2188 | 4020 2189 | 6204 2190 | 4111 2191 | 4887 2192 | 6858 2193 | 2194 | 9068 2195 | 2196 | 9609 2197 | 4036 2198 | 1227 2199 | 11370 2200 | 11483 2201 | 10833 2202 | 3292 2203 | 2204 | 1797 2205 | 1186 2206 | 1161 2207 | 3359 2208 | 5955 2209 | 5332 2210 | 3462 2211 | 2192 2212 | 1729 2213 | 2805 2214 | 1171 2215 | 5332 2216 | 3731 2217 | 4957 2218 | 5346 2219 | 2220 | 5676 2221 | 7085 2222 | 3867 2223 | 9663 2224 | 13102 2225 | 2226 | 5308 2227 | 3903 2228 | 8988 2229 | 15818 2230 | 2696 2231 | 2232 | 7063 2233 | 7044 2234 | 7147 2235 | 2751 2236 | 6535 2237 | 1043 2238 | 6057 2239 | 4090 2240 | 3731 2241 | 7334 2242 | 2243 | 7758 2244 | 5823 2245 | 6563 2246 | 2108 2247 | 9679 2248 | 5786 2249 | 4832 2250 | 3159 2251 | -------------------------------------------------------------------------------- /day2/input.txt: -------------------------------------------------------------------------------- 1 | A X 2 | C X 3 | C X 4 | C X 5 | B Y 6 | C X 7 | C X 8 | A Z 9 | C X 10 | A Z 11 | A Z 12 | C X 13 | C X 14 | C X 15 | B X 16 | C Y 17 | C X 18 | C Y 19 | C X 20 | A Z 21 | C X 22 | C X 23 | C X 24 | C Y 25 | C Y 26 | C Y 27 | A Z 28 | C X 29 | A Y 30 | B Z 31 | B Y 32 | C X 33 | C X 34 | A X 35 | C X 36 | C Z 37 | C Y 38 | C Y 39 | C Y 40 | C Y 41 | B X 42 | C Y 43 | A Z 44 | C Y 45 | B X 46 | A X 47 | A X 48 | C X 49 | C Y 50 | B X 51 | C Y 52 | C X 53 | C X 54 | C Y 55 | A X 56 | C Y 57 | A Z 58 | A Z 59 | C Y 60 | C X 61 | A Y 62 | C Y 63 | A X 64 | C X 65 | C Z 66 | A X 67 | A X 68 | C Y 69 | C Y 70 | C X 71 | C Y 72 | B X 73 | C X 74 | C Y 75 | C Z 76 | A X 77 | C X 78 | C Y 79 | C X 80 | C X 81 | C X 82 | C X 83 | C Y 84 | B Z 85 | C X 86 | A Y 87 | B X 88 | C X 89 | C Y 90 | C Y 91 | C X 92 | C Y 93 | C X 94 | C Y 95 | B X 96 | A X 97 | B X 98 | C Y 99 | A X 100 | C X 101 | A X 102 | C X 103 | C X 104 | C Y 105 | C X 106 | C X 107 | C X 108 | C Y 109 | C X 110 | C X 111 | C X 112 | C Y 113 | A X 114 | C X 115 | A Z 116 | B X 117 | A Z 118 | C X 119 | C X 120 | A Z 121 | C X 122 | A Z 123 | A X 124 | C Y 125 | B X 126 | C Y 127 | B Y 128 | A Z 129 | C Y 130 | A X 131 | C X 132 | A X 133 | C Z 134 | C Y 135 | C X 136 | A X 137 | C Y 138 | C Y 139 | A Y 140 | A X 141 | C Z 142 | C X 143 | B Z 144 | A X 145 | C X 146 | C X 147 | A Y 148 | A Y 149 | A X 150 | C Y 151 | B X 152 | C Y 153 | C Y 154 | C X 155 | C Y 156 | C Y 157 | C X 158 | C X 159 | C X 160 | C Y 161 | C Y 162 | C Y 163 | C Z 164 | A X 165 | C X 166 | C X 167 | C X 168 | C Z 169 | C X 170 | B X 171 | C X 172 | C X 173 | C X 174 | B Y 175 | B X 176 | C X 177 | C Y 178 | C Y 179 | C Z 180 | C Y 181 | C X 182 | C Y 183 | C Y 184 | C X 185 | C X 186 | A X 187 | C Y 188 | C X 189 | C Y 190 | C Y 191 | B Y 192 | C Y 193 | C Y 194 | B X 195 | B X 196 | B X 197 | C Z 198 | C X 199 | A X 200 | C X 201 | A X 202 | C Y 203 | C Z 204 | B X 205 | B X 206 | C X 207 | B X 208 | C Y 209 | C X 210 | A Z 211 | C Y 212 | A X 213 | B Y 214 | C X 215 | C Y 216 | A X 217 | C X 218 | C Y 219 | C Y 220 | C Y 221 | C Y 222 | C Y 223 | A Z 224 | A Z 225 | C X 226 | C X 227 | C Y 228 | C X 229 | C Z 230 | A X 231 | C Y 232 | C Y 233 | B X 234 | C Y 235 | C X 236 | C X 237 | C X 238 | B X 239 | B X 240 | C X 241 | C Y 242 | A Y 243 | C Y 244 | C Y 245 | C Y 246 | B X 247 | B X 248 | C X 249 | C X 250 | A Y 251 | C X 252 | C X 253 | C Y 254 | B X 255 | C X 256 | C X 257 | C X 258 | A X 259 | B Y 260 | C Z 261 | C Z 262 | B X 263 | C X 264 | C X 265 | C X 266 | C Y 267 | C Y 268 | C Y 269 | C Y 270 | A Y 271 | B X 272 | C X 273 | C Z 274 | C X 275 | C Y 276 | C X 277 | C Y 278 | C Y 279 | C Y 280 | C X 281 | C X 282 | A X 283 | A X 284 | C Y 285 | A X 286 | A X 287 | C X 288 | C Y 289 | B Z 290 | C Z 291 | C X 292 | C X 293 | C X 294 | C Y 295 | B X 296 | C Y 297 | C Y 298 | C Y 299 | C X 300 | C Y 301 | C Y 302 | C X 303 | C X 304 | C X 305 | C Z 306 | C X 307 | C Y 308 | C Y 309 | C Z 310 | A X 311 | C X 312 | B X 313 | C Z 314 | C Y 315 | B X 316 | C Y 317 | C Z 318 | B Z 319 | A X 320 | C X 321 | B X 322 | A Y 323 | C Y 324 | C X 325 | C Y 326 | C Y 327 | C Y 328 | C Y 329 | C X 330 | C Y 331 | A Y 332 | C Y 333 | C Y 334 | C Y 335 | C Z 336 | C X 337 | C Y 338 | B Z 339 | C Y 340 | C X 341 | C X 342 | A X 343 | C X 344 | C Y 345 | C X 346 | B Y 347 | C Y 348 | C Z 349 | C Z 350 | A X 351 | C X 352 | A X 353 | C Y 354 | B X 355 | C Y 356 | C Y 357 | C X 358 | C Y 359 | C X 360 | A Y 361 | C Y 362 | C Y 363 | B X 364 | C X 365 | C Y 366 | C X 367 | C Z 368 | C Y 369 | C Y 370 | C Y 371 | B Y 372 | A X 373 | C Y 374 | C Z 375 | C X 376 | C Z 377 | A Z 378 | C X 379 | C Y 380 | C X 381 | A X 382 | C X 383 | A Y 384 | B Y 385 | A X 386 | A X 387 | A X 388 | C Z 389 | C Z 390 | C X 391 | C Y 392 | B X 393 | A X 394 | A X 395 | C Y 396 | C X 397 | C Z 398 | A Z 399 | B Y 400 | B Z 401 | B Y 402 | A X 403 | B Y 404 | C X 405 | C X 406 | C Z 407 | C X 408 | C X 409 | C Y 410 | B X 411 | C X 412 | C Z 413 | B X 414 | C Y 415 | C X 416 | C X 417 | A X 418 | C X 419 | B Y 420 | C Y 421 | B Z 422 | C Y 423 | B Y 424 | C Y 425 | B Y 426 | C Y 427 | B X 428 | C X 429 | C Z 430 | C X 431 | C Y 432 | C Y 433 | C X 434 | A X 435 | C Y 436 | C X 437 | C X 438 | C Z 439 | C X 440 | C Y 441 | C X 442 | C Y 443 | B Y 444 | C Y 445 | C X 446 | C Y 447 | C X 448 | C X 449 | C X 450 | C X 451 | B X 452 | C Z 453 | C X 454 | C X 455 | B X 456 | B X 457 | A X 458 | A Z 459 | C X 460 | C Y 461 | C X 462 | C X 463 | C X 464 | C Y 465 | C Y 466 | C X 467 | C X 468 | C X 469 | A X 470 | C X 471 | C X 472 | C X 473 | C X 474 | A Y 475 | C Y 476 | C X 477 | A Z 478 | C X 479 | C Y 480 | C Y 481 | C X 482 | A X 483 | C X 484 | C X 485 | C Y 486 | C X 487 | C X 488 | C Y 489 | C Y 490 | B Y 491 | C Y 492 | C X 493 | A Y 494 | C X 495 | C X 496 | C Y 497 | B Y 498 | C X 499 | C Y 500 | A X 501 | B X 502 | C X 503 | B Y 504 | C Y 505 | C Z 506 | C Z 507 | A X 508 | C X 509 | C X 510 | C Y 511 | B X 512 | C Y 513 | C Y 514 | C Y 515 | A Z 516 | C X 517 | C Y 518 | C X 519 | A Z 520 | C Y 521 | B Y 522 | A X 523 | C Y 524 | B X 525 | C Y 526 | B Y 527 | C X 528 | C X 529 | C X 530 | C Y 531 | C X 532 | B X 533 | C X 534 | C X 535 | A X 536 | C Y 537 | A X 538 | C X 539 | A Z 540 | C Y 541 | C X 542 | C Y 543 | C X 544 | C Y 545 | B Y 546 | C Z 547 | C Y 548 | C Z 549 | A X 550 | C X 551 | C X 552 | C Z 553 | C Y 554 | C X 555 | B Y 556 | A X 557 | C Y 558 | A X 559 | B Y 560 | A X 561 | A X 562 | B Y 563 | C X 564 | C X 565 | C X 566 | C Y 567 | C X 568 | B X 569 | C Y 570 | C Y 571 | C X 572 | B X 573 | B Y 574 | B Y 575 | C Y 576 | B Y 577 | A Z 578 | B Z 579 | A Y 580 | C X 581 | C X 582 | C X 583 | B X 584 | C X 585 | C X 586 | C X 587 | C Y 588 | A X 589 | C Y 590 | C Y 591 | C Z 592 | B X 593 | B Y 594 | C X 595 | C Y 596 | A X 597 | C Z 598 | C Y 599 | C Z 600 | C Y 601 | A Z 602 | C Z 603 | C Y 604 | B Y 605 | C Y 606 | B X 607 | C X 608 | C Y 609 | C Y 610 | A Z 611 | A Y 612 | C Y 613 | C Y 614 | A Y 615 | C Y 616 | C X 617 | C Y 618 | C X 619 | C Y 620 | C Y 621 | B Y 622 | C X 623 | B X 624 | C Y 625 | A Y 626 | C Y 627 | A X 628 | C X 629 | C Y 630 | C Y 631 | B X 632 | A X 633 | B Y 634 | C Y 635 | B Z 636 | A X 637 | C X 638 | B Y 639 | C Y 640 | C X 641 | C Y 642 | C X 643 | C Y 644 | C Y 645 | C Y 646 | B X 647 | C Y 648 | C X 649 | C Z 650 | C Z 651 | C Y 652 | C Y 653 | A Y 654 | A Y 655 | C Y 656 | C X 657 | C Z 658 | B Y 659 | C Y 660 | C X 661 | A X 662 | B X 663 | C X 664 | C X 665 | A Y 666 | C Y 667 | C Y 668 | B Y 669 | C X 670 | B Y 671 | C X 672 | B X 673 | C Y 674 | C Z 675 | B X 676 | A X 677 | A Y 678 | A Z 679 | C Z 680 | A X 681 | A X 682 | C Y 683 | C Y 684 | C Y 685 | A Z 686 | C Y 687 | A X 688 | C X 689 | A Y 690 | C Y 691 | A X 692 | C X 693 | C X 694 | C Y 695 | A X 696 | C Y 697 | C Y 698 | A Z 699 | C X 700 | C Y 701 | C X 702 | B Y 703 | C Z 704 | B X 705 | C Y 706 | A X 707 | C Y 708 | A X 709 | B X 710 | A X 711 | C X 712 | C X 713 | C X 714 | A Y 715 | A X 716 | A Z 717 | A Z 718 | A Z 719 | C X 720 | C X 721 | C X 722 | C X 723 | C Y 724 | A X 725 | C Y 726 | C X 727 | B Y 728 | A Z 729 | B Y 730 | C Y 731 | C Y 732 | C Z 733 | C X 734 | A X 735 | C Y 736 | B Y 737 | C X 738 | C X 739 | A X 740 | A X 741 | C Y 742 | C X 743 | C Z 744 | C X 745 | A X 746 | C X 747 | C X 748 | B X 749 | C Y 750 | B X 751 | C Z 752 | C X 753 | A X 754 | A X 755 | A Z 756 | A X 757 | A Z 758 | C Y 759 | B Y 760 | B Z 761 | A X 762 | A X 763 | C Y 764 | C Z 765 | C Y 766 | C X 767 | B Y 768 | A X 769 | A X 770 | C X 771 | B Y 772 | B Y 773 | C Y 774 | C Y 775 | B X 776 | C X 777 | C Y 778 | C Z 779 | A X 780 | C Y 781 | C Y 782 | C X 783 | C X 784 | C Y 785 | A Z 786 | C X 787 | C X 788 | C Y 789 | A Y 790 | C Y 791 | C Z 792 | A Y 793 | C X 794 | C Y 795 | B X 796 | B X 797 | C Y 798 | C X 799 | C Y 800 | B Y 801 | B Y 802 | C Y 803 | C Y 804 | A Z 805 | A X 806 | C X 807 | C X 808 | C Z 809 | C Z 810 | C X 811 | C Z 812 | C Y 813 | A Y 814 | A X 815 | C X 816 | A X 817 | C Y 818 | B Y 819 | A X 820 | C Z 821 | A Y 822 | C Y 823 | C Y 824 | C Y 825 | C X 826 | C X 827 | C X 828 | C X 829 | C Y 830 | C X 831 | C X 832 | C Y 833 | C Y 834 | C X 835 | B X 836 | B X 837 | C Y 838 | C Y 839 | C X 840 | B X 841 | A X 842 | C X 843 | C Z 844 | A X 845 | C X 846 | C X 847 | C Y 848 | A Z 849 | B Y 850 | C X 851 | C X 852 | B X 853 | C X 854 | A X 855 | C Z 856 | C Y 857 | A X 858 | C Z 859 | C Y 860 | A X 861 | C X 862 | C Y 863 | B X 864 | C X 865 | B X 866 | C X 867 | C X 868 | C Y 869 | B Z 870 | A X 871 | C X 872 | A X 873 | C Y 874 | C Y 875 | A X 876 | A X 877 | A Z 878 | C X 879 | C X 880 | C Y 881 | C X 882 | B Y 883 | C Y 884 | C Y 885 | A X 886 | C X 887 | C X 888 | C X 889 | C Y 890 | A Y 891 | C Y 892 | C X 893 | A Z 894 | B Z 895 | C X 896 | C X 897 | C Y 898 | C X 899 | B Y 900 | C X 901 | A X 902 | C Y 903 | C Y 904 | A Z 905 | C Y 906 | B Z 907 | C X 908 | A X 909 | C X 910 | C Z 911 | C X 912 | C X 913 | C Y 914 | C Y 915 | A X 916 | C X 917 | C Z 918 | C Y 919 | C X 920 | C Y 921 | C X 922 | C Z 923 | C X 924 | C Y 925 | C X 926 | C X 927 | C X 928 | A Z 929 | C Y 930 | C X 931 | C Y 932 | B Z 933 | B X 934 | C X 935 | A X 936 | C Y 937 | C Y 938 | C X 939 | C Y 940 | C Z 941 | A Y 942 | C Y 943 | B X 944 | A X 945 | A X 946 | B X 947 | A Y 948 | C Y 949 | B X 950 | C Y 951 | C Y 952 | C X 953 | C Y 954 | B X 955 | C Y 956 | C X 957 | C X 958 | C X 959 | C X 960 | C Y 961 | C Z 962 | C X 963 | C Y 964 | C Z 965 | B X 966 | C Y 967 | C Y 968 | C X 969 | C X 970 | A X 971 | C Y 972 | C Y 973 | B Y 974 | B Y 975 | B X 976 | A X 977 | C X 978 | C Y 979 | A X 980 | C Y 981 | C Y 982 | C Y 983 | A X 984 | B X 985 | C Z 986 | A Z 987 | C Y 988 | C Y 989 | C Z 990 | C Y 991 | C X 992 | C Z 993 | C X 994 | A X 995 | C X 996 | B Y 997 | A Y 998 | C X 999 | C Z 1000 | A X 1001 | A X 1002 | C Y 1003 | C X 1004 | C X 1005 | C Y 1006 | A Y 1007 | C Y 1008 | C X 1009 | A X 1010 | C X 1011 | C Y 1012 | C Z 1013 | C Z 1014 | C X 1015 | B Z 1016 | A X 1017 | C Y 1018 | C Z 1019 | C X 1020 | C Y 1021 | C Y 1022 | C X 1023 | C Y 1024 | C X 1025 | A Y 1026 | B X 1027 | A X 1028 | A X 1029 | C X 1030 | C X 1031 | C Y 1032 | C Y 1033 | C Y 1034 | B X 1035 | C Y 1036 | C Y 1037 | C Y 1038 | C Z 1039 | A Z 1040 | B Y 1041 | C X 1042 | C X 1043 | B X 1044 | B Y 1045 | C X 1046 | C Y 1047 | A Z 1048 | C Y 1049 | C X 1050 | C Y 1051 | C Y 1052 | A X 1053 | C X 1054 | C Y 1055 | A Y 1056 | C Y 1057 | C X 1058 | C X 1059 | A Z 1060 | C Y 1061 | C X 1062 | B X 1063 | A Y 1064 | C Y 1065 | C X 1066 | C X 1067 | C X 1068 | B X 1069 | A X 1070 | C X 1071 | C X 1072 | C X 1073 | C X 1074 | B Y 1075 | A X 1076 | C Y 1077 | C Z 1078 | C X 1079 | C X 1080 | C X 1081 | C Y 1082 | C X 1083 | C Y 1084 | B X 1085 | C X 1086 | C X 1087 | C X 1088 | C X 1089 | C Y 1090 | C Y 1091 | C X 1092 | A X 1093 | C X 1094 | A Z 1095 | C X 1096 | B Y 1097 | A Z 1098 | C Y 1099 | C Y 1100 | C Z 1101 | C Y 1102 | B Z 1103 | A Z 1104 | A X 1105 | A Z 1106 | C X 1107 | A X 1108 | C Z 1109 | C Z 1110 | C Y 1111 | C X 1112 | C Y 1113 | C Y 1114 | C Y 1115 | C X 1116 | C X 1117 | C X 1118 | C X 1119 | A Y 1120 | C Y 1121 | C X 1122 | C X 1123 | C Z 1124 | C Y 1125 | C Y 1126 | B Y 1127 | A X 1128 | C X 1129 | C Y 1130 | C X 1131 | C Y 1132 | B Y 1133 | C X 1134 | C X 1135 | B Y 1136 | A X 1137 | B X 1138 | C Y 1139 | C X 1140 | C X 1141 | C X 1142 | C X 1143 | C Y 1144 | C X 1145 | C Y 1146 | C Y 1147 | A Z 1148 | B X 1149 | C X 1150 | C X 1151 | C X 1152 | B X 1153 | C Y 1154 | C X 1155 | C Z 1156 | B X 1157 | C Y 1158 | C Y 1159 | C Y 1160 | C X 1161 | B X 1162 | C X 1163 | C Y 1164 | B Y 1165 | C X 1166 | C X 1167 | B Y 1168 | A X 1169 | C X 1170 | C X 1171 | A Z 1172 | C Z 1173 | A X 1174 | A Z 1175 | C Y 1176 | C Y 1177 | A Y 1178 | A X 1179 | C X 1180 | C X 1181 | C Z 1182 | C X 1183 | C Y 1184 | C Y 1185 | C Z 1186 | C X 1187 | C X 1188 | A Y 1189 | C Y 1190 | A Y 1191 | B X 1192 | C Y 1193 | C Y 1194 | C X 1195 | C X 1196 | C Y 1197 | A Y 1198 | C X 1199 | B Y 1200 | C X 1201 | C Y 1202 | C X 1203 | C X 1204 | A Z 1205 | C Y 1206 | B Z 1207 | C Y 1208 | B X 1209 | C Y 1210 | C Y 1211 | A X 1212 | C Y 1213 | C X 1214 | C X 1215 | C Y 1216 | C X 1217 | C Y 1218 | C X 1219 | C Z 1220 | C X 1221 | B X 1222 | C Y 1223 | A X 1224 | B X 1225 | C Y 1226 | B X 1227 | C Y 1228 | A Z 1229 | C Y 1230 | C Y 1231 | C Y 1232 | C Y 1233 | B X 1234 | C X 1235 | C X 1236 | C X 1237 | C Y 1238 | C Y 1239 | C Y 1240 | C Y 1241 | C X 1242 | B Y 1243 | C Y 1244 | C X 1245 | B Y 1246 | B X 1247 | C X 1248 | B X 1249 | C Z 1250 | C Z 1251 | C X 1252 | C Y 1253 | B X 1254 | A X 1255 | C Y 1256 | A X 1257 | C X 1258 | C X 1259 | C X 1260 | C X 1261 | C X 1262 | A Z 1263 | C Y 1264 | A Z 1265 | B X 1266 | C Y 1267 | C Z 1268 | B X 1269 | A Y 1270 | C X 1271 | C X 1272 | A Y 1273 | C Y 1274 | C Y 1275 | A Z 1276 | A Z 1277 | C Y 1278 | A X 1279 | C Z 1280 | C X 1281 | A Z 1282 | C X 1283 | C Z 1284 | A Z 1285 | C X 1286 | C X 1287 | C X 1288 | C Y 1289 | C Y 1290 | C Y 1291 | C Z 1292 | C Y 1293 | C Y 1294 | C Z 1295 | C X 1296 | C X 1297 | A Y 1298 | B Y 1299 | B X 1300 | C X 1301 | B X 1302 | C Z 1303 | B X 1304 | C Y 1305 | C Y 1306 | C Y 1307 | C X 1308 | B X 1309 | A Y 1310 | B Y 1311 | B Y 1312 | C X 1313 | C X 1314 | C Y 1315 | C Y 1316 | C Y 1317 | C Z 1318 | C X 1319 | C X 1320 | A X 1321 | B Y 1322 | C Y 1323 | C Y 1324 | C X 1325 | C X 1326 | C Y 1327 | C Z 1328 | C Z 1329 | C Y 1330 | C X 1331 | B X 1332 | A X 1333 | C X 1334 | C Z 1335 | C X 1336 | B X 1337 | A X 1338 | C X 1339 | C Y 1340 | A Z 1341 | C X 1342 | C Y 1343 | C Y 1344 | A X 1345 | C Z 1346 | C X 1347 | A X 1348 | C X 1349 | B X 1350 | C Y 1351 | C Y 1352 | C Y 1353 | C Y 1354 | A X 1355 | C Y 1356 | C Z 1357 | B X 1358 | C Z 1359 | C Y 1360 | B Y 1361 | B Y 1362 | A X 1363 | C Y 1364 | C X 1365 | C Z 1366 | C Y 1367 | C X 1368 | C X 1369 | C Y 1370 | C Y 1371 | A Y 1372 | C X 1373 | C Y 1374 | C X 1375 | C X 1376 | C Y 1377 | C Y 1378 | C X 1379 | B X 1380 | A Y 1381 | C Y 1382 | C X 1383 | C Y 1384 | C Z 1385 | C Y 1386 | C X 1387 | C X 1388 | C X 1389 | A X 1390 | C Y 1391 | A X 1392 | A X 1393 | C X 1394 | B Y 1395 | B X 1396 | B Z 1397 | C Y 1398 | C Y 1399 | C Z 1400 | B X 1401 | C Y 1402 | C Y 1403 | C X 1404 | C X 1405 | A X 1406 | C X 1407 | B X 1408 | C X 1409 | A X 1410 | B X 1411 | A X 1412 | C X 1413 | A X 1414 | C Y 1415 | A X 1416 | C Y 1417 | C Y 1418 | C Y 1419 | B X 1420 | B Y 1421 | C X 1422 | B X 1423 | C Y 1424 | C X 1425 | C Y 1426 | C Z 1427 | C X 1428 | B X 1429 | C X 1430 | C Y 1431 | C X 1432 | C Y 1433 | C X 1434 | A Y 1435 | C Y 1436 | A Z 1437 | A X 1438 | C Y 1439 | C Y 1440 | C Y 1441 | C Y 1442 | B Y 1443 | C X 1444 | C Y 1445 | C Y 1446 | C Y 1447 | C X 1448 | B X 1449 | C Y 1450 | A Z 1451 | A Y 1452 | B Y 1453 | C X 1454 | B Y 1455 | C X 1456 | B X 1457 | C X 1458 | C X 1459 | B Z 1460 | B Y 1461 | A X 1462 | A X 1463 | C Y 1464 | C X 1465 | C Y 1466 | A X 1467 | A X 1468 | C X 1469 | C Y 1470 | C X 1471 | C X 1472 | C Z 1473 | C X 1474 | C X 1475 | B X 1476 | A Y 1477 | C Y 1478 | A X 1479 | A X 1480 | B Z 1481 | C Y 1482 | B Y 1483 | A X 1484 | C X 1485 | C X 1486 | C X 1487 | A Z 1488 | C Y 1489 | B X 1490 | C X 1491 | C Y 1492 | C X 1493 | C Y 1494 | C X 1495 | B X 1496 | A Y 1497 | A X 1498 | C X 1499 | C Y 1500 | B X 1501 | C Z 1502 | C X 1503 | C X 1504 | C Y 1505 | C X 1506 | C Y 1507 | A Y 1508 | C Y 1509 | C Y 1510 | A X 1511 | C X 1512 | C Y 1513 | C Y 1514 | C Y 1515 | C Y 1516 | A Z 1517 | C Y 1518 | A X 1519 | C Y 1520 | C Y 1521 | B X 1522 | A Y 1523 | C Y 1524 | C Y 1525 | C Y 1526 | C X 1527 | C X 1528 | A X 1529 | A X 1530 | C X 1531 | A Y 1532 | B X 1533 | C X 1534 | C Y 1535 | C Y 1536 | C Y 1537 | C X 1538 | C Y 1539 | B X 1540 | A Z 1541 | C Y 1542 | C Z 1543 | A X 1544 | C X 1545 | C Y 1546 | C X 1547 | C Y 1548 | C Y 1549 | C Y 1550 | B X 1551 | C Y 1552 | C Y 1553 | C X 1554 | C Y 1555 | C Y 1556 | C Y 1557 | A Y 1558 | A Z 1559 | A Z 1560 | C Z 1561 | C Y 1562 | C X 1563 | B X 1564 | C X 1565 | A X 1566 | B X 1567 | A X 1568 | A X 1569 | A X 1570 | B X 1571 | B Y 1572 | B X 1573 | C Z 1574 | B Y 1575 | C Y 1576 | B Y 1577 | C X 1578 | C Z 1579 | B X 1580 | A X 1581 | C X 1582 | B X 1583 | B X 1584 | C X 1585 | A X 1586 | C Y 1587 | C X 1588 | C Y 1589 | C X 1590 | A X 1591 | C X 1592 | C X 1593 | B X 1594 | C Y 1595 | B X 1596 | A X 1597 | A X 1598 | A Z 1599 | B Y 1600 | A X 1601 | C Y 1602 | C Z 1603 | C X 1604 | C Y 1605 | B Y 1606 | A X 1607 | B X 1608 | A X 1609 | C Y 1610 | C X 1611 | B X 1612 | C Y 1613 | A Z 1614 | C Y 1615 | C Y 1616 | C X 1617 | A Z 1618 | A Y 1619 | C Y 1620 | C X 1621 | A X 1622 | C X 1623 | A X 1624 | C X 1625 | C Y 1626 | C X 1627 | C X 1628 | C X 1629 | C Y 1630 | C X 1631 | B X 1632 | C X 1633 | C X 1634 | C X 1635 | C Y 1636 | A Z 1637 | C Y 1638 | C X 1639 | C X 1640 | C Y 1641 | B X 1642 | C X 1643 | C X 1644 | C Y 1645 | C X 1646 | C X 1647 | C X 1648 | A X 1649 | B X 1650 | C X 1651 | C Z 1652 | C Y 1653 | C Z 1654 | C Y 1655 | C Y 1656 | C X 1657 | C X 1658 | A Z 1659 | A X 1660 | C X 1661 | A X 1662 | C Y 1663 | C Y 1664 | B X 1665 | C Y 1666 | C X 1667 | C X 1668 | A X 1669 | C Z 1670 | A Y 1671 | A Y 1672 | C Y 1673 | C X 1674 | C X 1675 | C X 1676 | C Y 1677 | B Y 1678 | C Y 1679 | C Y 1680 | C X 1681 | C X 1682 | A Y 1683 | B X 1684 | C Y 1685 | A Y 1686 | A X 1687 | B X 1688 | C Y 1689 | A X 1690 | C X 1691 | A X 1692 | C X 1693 | C X 1694 | C X 1695 | C X 1696 | A Y 1697 | C Y 1698 | C Y 1699 | A Z 1700 | C X 1701 | C X 1702 | A X 1703 | C Y 1704 | C Y 1705 | C Y 1706 | B X 1707 | C Z 1708 | C Z 1709 | A X 1710 | A X 1711 | A X 1712 | C X 1713 | C Y 1714 | C Y 1715 | C X 1716 | C X 1717 | C Z 1718 | A X 1719 | A Z 1720 | C Z 1721 | B X 1722 | C X 1723 | C Y 1724 | C Y 1725 | C Y 1726 | C Y 1727 | C X 1728 | B Y 1729 | C Y 1730 | C X 1731 | C Y 1732 | C Y 1733 | A X 1734 | C Y 1735 | C X 1736 | A X 1737 | C X 1738 | C X 1739 | C X 1740 | C Y 1741 | C Y 1742 | C Y 1743 | A X 1744 | C X 1745 | A X 1746 | A Z 1747 | B Y 1748 | A X 1749 | C Z 1750 | C X 1751 | B X 1752 | C X 1753 | A Y 1754 | A Z 1755 | B Y 1756 | A X 1757 | C X 1758 | B Y 1759 | B X 1760 | C X 1761 | B X 1762 | A X 1763 | B Y 1764 | A X 1765 | C Y 1766 | C X 1767 | C X 1768 | C Z 1769 | A X 1770 | C Y 1771 | A Z 1772 | C Y 1773 | A Y 1774 | C Y 1775 | C Y 1776 | C Y 1777 | C Z 1778 | C Y 1779 | C X 1780 | C X 1781 | C X 1782 | C X 1783 | A Y 1784 | C Y 1785 | C Y 1786 | C X 1787 | A Z 1788 | C X 1789 | B X 1790 | C Y 1791 | C X 1792 | C Y 1793 | A Z 1794 | C Y 1795 | C Z 1796 | C Z 1797 | A Z 1798 | C Y 1799 | A X 1800 | A X 1801 | C X 1802 | C X 1803 | C Y 1804 | A Z 1805 | C Y 1806 | B X 1807 | C Z 1808 | C Y 1809 | A Z 1810 | C X 1811 | B Z 1812 | B X 1813 | C Z 1814 | A X 1815 | B Y 1816 | C Y 1817 | C Y 1818 | C Y 1819 | B X 1820 | C Y 1821 | B Y 1822 | A X 1823 | A Z 1824 | B Y 1825 | B Z 1826 | A Y 1827 | C X 1828 | C Y 1829 | C Y 1830 | A Y 1831 | B X 1832 | C Z 1833 | C X 1834 | C X 1835 | A Z 1836 | C X 1837 | C Y 1838 | C Y 1839 | C Y 1840 | B X 1841 | C X 1842 | B Z 1843 | A X 1844 | C Y 1845 | C X 1846 | C Z 1847 | B X 1848 | B Z 1849 | C Y 1850 | C Z 1851 | C Y 1852 | A X 1853 | C X 1854 | C X 1855 | A X 1856 | B X 1857 | C Y 1858 | C Y 1859 | C Y 1860 | C X 1861 | C Z 1862 | A Y 1863 | C X 1864 | C Y 1865 | C X 1866 | B Y 1867 | C Y 1868 | A Y 1869 | C X 1870 | A Z 1871 | C X 1872 | C X 1873 | C X 1874 | C X 1875 | A X 1876 | A X 1877 | A Y 1878 | C Y 1879 | C Y 1880 | C X 1881 | C X 1882 | C X 1883 | C X 1884 | C Y 1885 | B X 1886 | B X 1887 | B X 1888 | A X 1889 | C X 1890 | C Y 1891 | C X 1892 | B X 1893 | A X 1894 | C Y 1895 | B Y 1896 | C X 1897 | C X 1898 | C X 1899 | C X 1900 | C X 1901 | C X 1902 | C X 1903 | C X 1904 | C X 1905 | C Y 1906 | C Y 1907 | C X 1908 | C X 1909 | C Y 1910 | C Y 1911 | B Y 1912 | C Z 1913 | C Y 1914 | A X 1915 | B X 1916 | A X 1917 | C Z 1918 | C Y 1919 | C X 1920 | B X 1921 | A Y 1922 | C Y 1923 | C X 1924 | A X 1925 | B X 1926 | C X 1927 | C Y 1928 | C Y 1929 | C Y 1930 | A Z 1931 | A Z 1932 | C X 1933 | C X 1934 | B Z 1935 | C Y 1936 | C Y 1937 | C Y 1938 | C Y 1939 | C X 1940 | C X 1941 | B Z 1942 | C X 1943 | C X 1944 | A Y 1945 | A X 1946 | B Y 1947 | C Y 1948 | C Y 1949 | A X 1950 | A X 1951 | A Z 1952 | A Z 1953 | C X 1954 | B X 1955 | C Z 1956 | B Y 1957 | C Y 1958 | C Y 1959 | C Y 1960 | C Y 1961 | C Y 1962 | A X 1963 | B X 1964 | C Y 1965 | B X 1966 | C Y 1967 | C Z 1968 | C Z 1969 | B X 1970 | C X 1971 | B X 1972 | C Y 1973 | C X 1974 | A Z 1975 | B X 1976 | C Z 1977 | C X 1978 | C Y 1979 | C X 1980 | C X 1981 | C Y 1982 | C Y 1983 | A Y 1984 | A Z 1985 | A X 1986 | B Y 1987 | C Z 1988 | B X 1989 | B Y 1990 | C X 1991 | A Y 1992 | C X 1993 | C Y 1994 | C X 1995 | C X 1996 | C Y 1997 | C Y 1998 | C Y 1999 | A X 2000 | C Y 2001 | B X 2002 | C Y 2003 | C Y 2004 | C Z 2005 | B X 2006 | C X 2007 | C Y 2008 | C Z 2009 | A X 2010 | C Y 2011 | C Z 2012 | C Y 2013 | C X 2014 | C Z 2015 | C X 2016 | C X 2017 | C X 2018 | C Y 2019 | C Y 2020 | C X 2021 | C X 2022 | A X 2023 | A Z 2024 | C Y 2025 | C Y 2026 | A Y 2027 | C X 2028 | A X 2029 | C Y 2030 | A Z 2031 | B Z 2032 | C Y 2033 | A X 2034 | C Y 2035 | C X 2036 | B Y 2037 | B Y 2038 | A Z 2039 | A X 2040 | C X 2041 | C Y 2042 | C Z 2043 | C X 2044 | A Z 2045 | C Y 2046 | C Y 2047 | B Y 2048 | B X 2049 | C Y 2050 | C Z 2051 | C Y 2052 | A Z 2053 | C Y 2054 | C Y 2055 | A X 2056 | C Y 2057 | C Y 2058 | C X 2059 | C X 2060 | B X 2061 | C Y 2062 | C Y 2063 | B Y 2064 | C X 2065 | C X 2066 | C Y 2067 | C X 2068 | C X 2069 | C Y 2070 | B X 2071 | C Y 2072 | C Z 2073 | C X 2074 | A X 2075 | C X 2076 | C X 2077 | C Z 2078 | B Z 2079 | C Y 2080 | A Y 2081 | C Y 2082 | C Y 2083 | C X 2084 | A X 2085 | C X 2086 | B X 2087 | C X 2088 | C X 2089 | C Y 2090 | C X 2091 | B Y 2092 | B X 2093 | C X 2094 | C Y 2095 | C Y 2096 | C X 2097 | C Y 2098 | C X 2099 | C Y 2100 | C X 2101 | C Y 2102 | C X 2103 | C Z 2104 | A X 2105 | A X 2106 | C Y 2107 | C X 2108 | C X 2109 | A Y 2110 | C Y 2111 | C X 2112 | B X 2113 | C X 2114 | C X 2115 | C X 2116 | C Y 2117 | A Y 2118 | B Z 2119 | C Y 2120 | C Z 2121 | C X 2122 | A X 2123 | C X 2124 | C Z 2125 | C Y 2126 | C Y 2127 | C Y 2128 | C X 2129 | C X 2130 | C Z 2131 | C Y 2132 | B Z 2133 | C X 2134 | C Y 2135 | C X 2136 | C X 2137 | C Y 2138 | C Y 2139 | C Z 2140 | C X 2141 | C Z 2142 | C Z 2143 | C Y 2144 | A X 2145 | C Y 2146 | A Y 2147 | B X 2148 | C Z 2149 | C Y 2150 | C Y 2151 | C Z 2152 | C Y 2153 | C Y 2154 | C X 2155 | C Y 2156 | B X 2157 | C Y 2158 | C X 2159 | C X 2160 | B Y 2161 | A X 2162 | C Y 2163 | C X 2164 | C Z 2165 | C X 2166 | C Y 2167 | C Z 2168 | A X 2169 | C X 2170 | A Y 2171 | B X 2172 | C X 2173 | C X 2174 | A Z 2175 | C X 2176 | C Y 2177 | B Y 2178 | C X 2179 | C Y 2180 | C Y 2181 | C X 2182 | B X 2183 | A Y 2184 | C Y 2185 | C Z 2186 | C Y 2187 | C X 2188 | C X 2189 | C X 2190 | B X 2191 | B Y 2192 | C X 2193 | A X 2194 | C X 2195 | A X 2196 | C X 2197 | B Y 2198 | B X 2199 | C X 2200 | C Z 2201 | C Y 2202 | C X 2203 | B X 2204 | C Y 2205 | C Y 2206 | C X 2207 | A Z 2208 | C Y 2209 | C X 2210 | C Y 2211 | C Y 2212 | C Y 2213 | C Y 2214 | B Y 2215 | C Y 2216 | C X 2217 | A X 2218 | C Y 2219 | C Y 2220 | C X 2221 | B Y 2222 | B Z 2223 | C Y 2224 | C Z 2225 | B X 2226 | C X 2227 | A X 2228 | B Y 2229 | C X 2230 | C Y 2231 | C Y 2232 | C Y 2233 | A X 2234 | C Z 2235 | A X 2236 | C Y 2237 | C Y 2238 | C Y 2239 | C X 2240 | C X 2241 | C Y 2242 | A Z 2243 | C Y 2244 | C Z 2245 | C Y 2246 | C Y 2247 | C Y 2248 | C Y 2249 | C X 2250 | C Y 2251 | B Y 2252 | C Y 2253 | C Y 2254 | B X 2255 | B X 2256 | C Y 2257 | C Y 2258 | B Z 2259 | C X 2260 | B Y 2261 | C X 2262 | A X 2263 | A X 2264 | C X 2265 | C X 2266 | B X 2267 | C X 2268 | B Z 2269 | C Y 2270 | C Y 2271 | B Y 2272 | C Y 2273 | C X 2274 | C X 2275 | A Z 2276 | C X 2277 | A X 2278 | C Y 2279 | C X 2280 | C X 2281 | B X 2282 | C Y 2283 | A Z 2284 | C Y 2285 | C Y 2286 | B X 2287 | A Y 2288 | A X 2289 | A X 2290 | C Y 2291 | C Y 2292 | A Z 2293 | C X 2294 | B X 2295 | C X 2296 | B X 2297 | A Z 2298 | C X 2299 | C X 2300 | B Z 2301 | C X 2302 | C X 2303 | C X 2304 | C Y 2305 | A Z 2306 | C Y 2307 | C Z 2308 | C Y 2309 | B Y 2310 | A X 2311 | C X 2312 | C Y 2313 | A X 2314 | A Y 2315 | C X 2316 | C Y 2317 | C Y 2318 | C X 2319 | A Y 2320 | C Y 2321 | C X 2322 | C X 2323 | C X 2324 | C Y 2325 | C X 2326 | A Y 2327 | C X 2328 | B Y 2329 | B X 2330 | C X 2331 | C Y 2332 | B X 2333 | C X 2334 | C X 2335 | C X 2336 | C X 2337 | C Y 2338 | B Z 2339 | C Y 2340 | C Z 2341 | C X 2342 | A X 2343 | C Y 2344 | B Y 2345 | C Y 2346 | C X 2347 | C Y 2348 | C Z 2349 | B X 2350 | C X 2351 | C Y 2352 | C X 2353 | C X 2354 | C X 2355 | C X 2356 | A Z 2357 | C Y 2358 | B X 2359 | C X 2360 | C Y 2361 | C Y 2362 | C Y 2363 | C Y 2364 | C X 2365 | A X 2366 | C X 2367 | B X 2368 | C Y 2369 | A X 2370 | B Y 2371 | A X 2372 | C Z 2373 | A X 2374 | C Y 2375 | C X 2376 | C Y 2377 | C X 2378 | A X 2379 | C Y 2380 | C X 2381 | C Y 2382 | C Y 2383 | B X 2384 | C Z 2385 | A Y 2386 | C X 2387 | C X 2388 | C Y 2389 | C X 2390 | C Y 2391 | C Z 2392 | C Y 2393 | C X 2394 | C Y 2395 | A X 2396 | B X 2397 | B Y 2398 | C Y 2399 | C X 2400 | C Y 2401 | C X 2402 | B Y 2403 | B X 2404 | C X 2405 | C Z 2406 | B X 2407 | C Y 2408 | C X 2409 | C Y 2410 | A X 2411 | C Y 2412 | C Y 2413 | C X 2414 | C Y 2415 | C Y 2416 | C Y 2417 | A Y 2418 | C Z 2419 | C Y 2420 | B Y 2421 | C Y 2422 | C Z 2423 | C Z 2424 | C X 2425 | C Y 2426 | A X 2427 | C Y 2428 | C X 2429 | B Y 2430 | C X 2431 | C Z 2432 | C Z 2433 | C Y 2434 | C X 2435 | C X 2436 | C X 2437 | A X 2438 | C Y 2439 | C Y 2440 | C X 2441 | A X 2442 | A X 2443 | A X 2444 | B X 2445 | A Y 2446 | A X 2447 | C X 2448 | C X 2449 | A X 2450 | B Y 2451 | C Y 2452 | C X 2453 | A Z 2454 | A X 2455 | C Y 2456 | B Y 2457 | C X 2458 | C X 2459 | A Y 2460 | C X 2461 | C X 2462 | C Z 2463 | C Y 2464 | C Z 2465 | C Y 2466 | C X 2467 | B X 2468 | B X 2469 | B Y 2470 | C X 2471 | C Y 2472 | A X 2473 | A Y 2474 | A X 2475 | C X 2476 | B Y 2477 | A X 2478 | A X 2479 | B Y 2480 | C X 2481 | C X 2482 | B X 2483 | C X 2484 | A Z 2485 | C X 2486 | B X 2487 | A X 2488 | C Y 2489 | C X 2490 | B X 2491 | A Y 2492 | A X 2493 | C Y 2494 | C X 2495 | C X 2496 | B X 2497 | C Z 2498 | A X 2499 | B X 2500 | C X 2501 | --------------------------------------------------------------------------------