diff --git a/2024/d15/ex1/input b/2024/d15/ex1/input new file mode 100644 index 0000000..ff57cb3 --- /dev/null +++ b/2024/d15/ex1/input @@ -0,0 +1,71 @@ +################################################## +#......O.O..O......O......O..OO...O..O.O.O..O..O.# +#....O.O..#.O....O#.#.#......O.O#O.O#O#..O.O.....# +#.........O..#O......O...OO..O..O..O#....O.......# +#.O.O......O#.#..#.#.........O...OOO.O..O..O....O# +#..O......O.......O..O.#O......OO.O.O#..O.OO..O..# +#O.O.....O.O......O....O..OO...#.#...O##OO#O.....# +#O..O....OOOO...#.O.O.O#.....##.....O#.##..O.....# +#O..O.O....O.#..O.O.OO#O.#..#.O....O..O.#.....O..# +##..OOOO..O..#O.#.O....O...............OO.....O..# +#O.O#.........OO..O..#..O.....O..O...O#.....O....# +#..#O#O#...#....O...OOOO..O.....#O.......O.......# +#..........O...O.....#OOOO#O..#..O..#O.........O.# +##..O.OO.O......#...#OOO.OO..O.O.O.OO#.#OO..O.OO.# +#....O.O..OO.O.OOO..OO...O...O..O.O.O....O...O...# +#O..#OO.........O#......OOO....O.....O.OO.#.O.##.# +#.O.OOO.....O....O...#O.O.O.#.O.O..........O...OO# +#.OO.OO...O...O..#........O.O...O.O...#OO.O....O.# +#OO...O.OO.#O.....OOO.#O#.O.#......OO.....OO#..O.# +#..O......O.....#...#O.....O.....OOO.....O.#OO...# +#.....#O..O..#...OOO.#O.O..O.O#...#OO.O......O..## +#..OO.OOO#.O.....OO..#.OO......OO.O....O...O.....# +#.O.OO..............#..O.....O.O...OO.....#.O#...# +#......OO.....OOO.O..O#OO...OO..O#..O..O.OO......# +#.#O....O....O..#O..O..O@..#..#...#......O.......# +#.#..O.O.OO...O.O#....O..#..O...OOOOO...#.OOO#...# +##O..O.O....#O....OO#O.#O......O.....O..O...#O...# +#...O...........O.#O..O.#...#.O.O.O...........#.## +#O#O.......O..O.....OO.#O.O.#OOOO#.O.O.O.O.......# +##O.O..OO...#.O..#.O.O..OOO.O.O#.....O.O..#.O.O.O# +#..OO...O..#O.O.#.OOO.....OO........#..OO.#...O.## +#O.#.#..#.O.O...O..O.#O..O.O.OO......O.OO.O...O.## +#.O.OO...OO.........#....O.OO.OO..O#O.#O........## +#.......O.......OO#...#....#.OOO#.#........#.O...# +#...O.O.#.O.O.........OOO.O.O...O....O....#...O#.# +#....O.O.......#.......#..O##.O.O.....O...O.O...O# +#.O.O.O..O#.O.O...##O#O...O.....#OO#O.O....O..O..# +#O.O.O.#..O...O.O.......#.OO..#..........O...O.O.# +#...O...O.....O....##......#..OO....##.O..OO.....# +#..OO..O..O..OOO.....#O..OO.O.OOOO.#.O...O.#.....# +#...O...O.O.O...O.#O.#.O...O#.#......O..OO..O.##O# +#...O.O#......OO.#.O.....OO..O.......#...#.O...#.# +##OO..#O.....OO..............#...O#..O#......OOO.# +##OOOO..O.#..O.O....O....O..O#.O#....O....O.O....# +#.....#......O...OOO.O........O....#O.OO.....OO.O# +#O.#....OO#....OO.O....#O#........#.#.OO.#.O...OO# +#.O.....O.OO.....OO...#O..OOO.O...OO....O.O##O...# +##O..OO.OO..#..O.O.O.##O......O..#....OOO....OO..# +#O..O....O.........OO#.#......OO...##.O.......O..# +################################################## + +>v><^>^v^v^^v><><>^><>>v<><<^<><>>v<^><^>><<<^v<>v>^>><<<<^^<<^v>vv><>>v^<^>^^^^>v<<^<<>v<^^>v^v>>^v^v<^v^>v^v^^^>>vv<<><^^v<<^>>^v<>vv^v<<^^vvv<<^^v>^vv>v>v>^v<^<^>^>><>><^>><>^>>v^vv><>^vv^<<^>><<<>v^>^vv<>^v<>v<<>^v><<>^<<<^>vv<<^v^<v<v>v^<>^v<<^>v^<>vv>>>^v<v^<^>^>v>>>>^^<<^<<<^^>>^><>^^^vv>^<v^vvv^<^>v>^<>>vv^^^>v<>>^v>>^>>^^^v<>^vv<<^<>vv>^^<>v<^<<^>><>v><>vv<^v^>^v>>><<>^^<<<^><<^^^^>vv^^v^><v>^<^^<>v^>^<>^<>>^<><^^<>><>^^^^v^v<<><^><^^v>v>>>>^^^>^^>^>vvv<>^>>v>^v>>^>^^v^v>^>^v^^>^<<<>v>vv<<<>><^><>><>>><>>>>>^<<>><>^><<>>^><^v>^>v>>>vv^^^v^v<<^>vv^v^^^v>v<^^<^^>^>v<^v^^>^<<^<>^>v^^^><>>vv^>v<>>^v<<>^^>vvv>v^v<>^<^v^>>v>v^^<^>v>^^^<><>^^v^^>vv>^>v>^v<><<><<><>v>v><^>v^<>v<><^><><<>>>>^v^>><^><<>><>>vv^^<<>>>>^v<^vv>>v>v<>^>^v^^<>>^>>v>v>^^><^<^^<^^>^^v<< +v<<<>vv^v<>vv<>>>>^<<><^<^v<>>^^<^^<>>>><^v<^>^^^v^^<>>v>^>>vvvv^<>>>^<><<><><>^^<<>v<<>^v<^v>>^<^v>^^<<<^^^>v<<^^<><<>v>v>><^v>>v<>>v>^<^^<>>^^><^>v><^<<^<^^<<>^<<<>^v><>^^^v^>^^^^^>><><<<<^^^^<<<>^v>v^>>^>>^<>^<<^v<^<>^^>><<<^>^>v<<<^<<<>v<^>>v^>v>>^<^^^v^>>v^<>>^>>v^vv><<vvv>>>v^v<<>^^v>^>^<>vv^^<^<<>>^^>^v^>v^v^v><><^v<>>vvv<^>^>v^^<^>^^>v^^^v^v^><>v<><^^<>>^vv^>^^^<^^<>vv<><^<>>^>^^>^>vv>v>vv>^v^^v>v>^>^^^^^<<vv>>^vv^v<<><^vv>>>>^vv^<>^>^vvv^^v>v<>^^v<>v><>^v>^v<>^>v<<<^<^<<>v^<<>v>>^vv>v^vv<^^^^<^^>v><^<>>v>v>><<v>>>^^>^><^v><^^v^v>v^>v>v<<^<^<>>v<^^v^<<>^>^v>v>>v^v<^vv^>v^v>>^v>>^<<^^^^^v^<^v<>>v>v^>v^^<<<<^^<>^vvv^>^<^v><<^v<^<^>^v>^<<<<^>v^v^>v>^v<<<^>v<^>vvvv<<^v<>^^^>v<^vvvvv>><^^>>>^ +>>v<<^><>vv^v>vv<<><>><v^^v<^<^><<>vv^>^vvv<^>^<><<<^v^>^v>v<<<<>v<>^>v>^>>><^vvv<^<>>^<^^>vv>v<<<>^>>v>>><^<^<^<<>>^v<>>>v>>^<^v>v>v^^><><^<<>v<>vv>^<<<^>><>v^^v<^vv^^vv<>v><^^v^<^<<^vv<>v><<^^>^<<>^^^^^v<^>^>^^^^^<^>v^<^^^v^^vv^v^^^^<>v^<>>^>vvvv^<^^>v^^>v^^>>v>^^^>^^v^<^>^vv<>><><<<<>>><<<>^<>^<>>>>v><<>^^>><<^^v>>^>v>v^^<<>^^vv^^<>vvv>v<^v^<^^^v>^<<<>^v^>^^>>v^vvvv>vv>v<>>v<<^^v>^<^v><^v<<<>^^v^<<^^>^><>^>^^<^>v^vv<<^><>vvv<^<^<<v^><>^v^><>^>vv><<>^<^>>^<<<<<^vvv>^v^<<>v>vv^>^>><>^vvv>>^<^>^>^><<>>vvvvvvv>^v^<<<<^v>v^<^^v><<<<><^<^>^v^>v<>>v<^>^^>v>>^>>^<^^^>^^>>>^<>>><^<>^>>v>>vv>vv<><<^>v<><>^<>^><>^>>^vv>v^>v>>^v<<>^>v>>^><><^<><<<>v^<^^^v^^>v<><v^v>>>>>v<<>>^>v<>vv>v>>v>>v^<^><>v><^^<<<^<<^v<^v^^^<>^^^v>v^>>>>v>^v<^<<<<>v^<<>v<>vvvv>v^ +><><^^vv>vv>>^v^>^v<^^^<>vv>^v>^vvvv>v^>vvv^^v^v^v^v>^><^>v^^<>><^vvv>v<<^^<>><^^^>v^v^>>^<>vvv>^<>><<v^v^v>^^<^v^>>>^^>>><>^>^vv><<^^^>vvv^^>>^^<<^v<>vv^^>><^><>^^>v^^><^^>>^v>>v>v<>^>v^>vv^v^>^>>>^>>^^v<^v<vv>v>>^><>^^>^^>v<^v>>v<>v<><><^>^vv>>>^^<^^><<><><><<>>v>>>>>>^<>^<^<v>^v<^<<>>vv^><<^<>><<^v<>v<^^>>>v^vv>>>><<<^v>^^vv^<>^>^^^><>v^<>v^>v>>^^>^^^v<>>v^^>>>vv>>v^v>^vv><><>v^>^>>^<><>v>>^<<<>>vv<>>>vvv<<<^<^^>v>^v>v<<^vv<^^v<>^v<>^<>v>v>>vv>^^v>^^v<><<<^>>^><^>^^^<^<v>^v<<<^>>v<<<^<><^v<>^><^^v><^v><>>^>v<<>>^>^v<>>^v>>v>v<<^<<>><><<>>^>^<<><<>^vv>^>v<^>v^^>v>>>>v<^>v>^v>>>v>vvvvvv<>>>v<<<^^^^><^v>>vv>>^v>v<^>^^>v<><<^vv^vv>v^v>v^v><><<>^^>>vv><<>> +^v><>v^^<^>>>vv^>^^>^v>^^^<<^>^>vvv>><^v<^^><>^v>>^^>v<<^>><<>^^><<>vv<^>>^<>v^>vvvv>v<>^<<^^^<^>v<>>^<^v^^>>^^^^<<^vvv<><<^>>>^<^<>^<v<<><^^>>><^><<^^v><<^^>><>>^vv^v<>v^v^<<^><<<^v>^>^^>^^>^vv<^vv^>><^^^<<<^v^vv^<>><>^v^v^^vvv^>>^^>vv>>><><<<<^v>>>^v<<>>>>>><^^<^<^>>>^^<><<^><>v^v<<><><><^>^v^^^^^^<<^<^<>^>v><>v^><>v^^<>^^^<^v<>>^^v^v^^^v<<v>v>v>>^v^>^>^^>^<^<><>v>v>^<><>>^^^<^v^v>>^vv^>^^>v^^>^>vvv<^v>^^>^<><>^<>v<<>><^<<<^v>^v^<>>v^>^v<<<>v<><>><^<<<^^v>>^>v^<^^vv>v<<>v^>vv^<><<^>v><>>^><^^^>^>>v<^><^^vvv<<^v><^<<>v>v><^<^v>>^^<<<>^>v>v^^^^<^<<<>vv<^vvv^^v^><<<><^>vv^>>>v<<>v>vv^^^><^>^><>^^>>vv<>>^>^>^<v<^v^^>>v^^><>^<^>>v><^<<>^vv^<>>>^^><<>>^vv^v^>^^v<^> +^^^v^>vv^<<>^<^>>>^<<^vvv^>>>>>^<>v>v<<>^v<^v^<<^<^vv<<^v<>v<^>>^v>>v><^^><vvvvv^v>^^vv<<>^^v>v>vv><<<^^^^>^>vv>>v>>^vv<^<<><>v>v><>^<>v^>vvv^>v>>v>vvv>v<><^vv<^>^v^><^<^>^v<<^^>>v^>vvvvv<^^^>^<v<<<^^<<>v>v<<>^<^><>^v<<^v<>^<v>^<<>v^>^^^>^v<^vv>v<<^v<>v<^vv<^^>>><^^^^<>><<^v<^<^<>>v^^v^v^^v^<^^^>vv>>>^vvv<^>>^v><>v<^^v<><>v^^><^<^v<<>>^^<>^>^>v>><<><<vvv^vv^v<<<^^v^vv>^>^<^<>^>v>>>^<<^^v<^<<^^>vv<^^^^>>^^>^v><><^v<>>v<<>^>^^v<^v^^>^^>>>v>^<<>^^><<^<>^>^^><<^<>^>^v>^^<^<>>^^v^v>v^>v^<^v^>v>v^^<^>^^>><<^v>^<<^^<^^<<^^>vv^>>^^v<>><^<>><^v^^^<<^vvv><^>>^>^>>v>^<><^<<^v>^>^^^vv<^^v^>v>^^^>^>^v^<>v>>vv<^><>v>^^><<><>>vv>>vv>^>>>^<<<>v^v>^vv^<<>>v<>v^<>v^>>v<<^>^vv<>v^v^>><v>^v>^v>^><^^v>>vv<>v^^v>><>>^^<^v^>^v><>^v<^^>v^^<>v^^v^>>^^>^<<<<^^>><^^ +<^<><>^<><<>><^v<^<^<>>v<^^<<>><<>>vvv^>v^v><^v^>>>^<^^><^<>><^>v^v>^v<^>^^<^<^^vv^>^^v<<>><<>>v^<>vv<<>^v><^<^^v^^<>v>v><^v>>^>^^>vv>>^v<<^^^^>^<<>>^>>^>^v^>^v<<^<>^v<<<^>><<<>^v^>v>^^v>^^v>>v^>><<<^<^^>><^<><^v<^v<^v^v^>>v^^^<^>v^^><>v<>^>^vv^^v>><<>^^<^^v><>v^^v^>v<^^>>^^vv^^^^^^vvv<>^v<^^><<<><<<^>v^>>^vv><>v><>vv^^^v>>>vvv>v><<<^<^^<^>^>v^v^vv><>v>^^vv>^^v>>^^v^v^vv^v>^v>^><><>^^<^<>>>><^>^v^^<><>v>^<^><><^<^>>vv<^<<^>><<^^^^>>v^v<^>v<<<<<<^v<<>v<^<^<^v<><<><^v<^^v><>v^^<>>>v^^v^>>>v^vvv>vv<^^^^><<^>v>>>^vv>>v^v>^v^>^<><<^<^><^^^>vv^<^v<>v>>^v<>^^^vv^^<<^^<^^^>v>>v>>v^><><>>^>vv^><>vvvvv^v^^>>v<>v<<^<^v<<v<<<^v>>>v^<<<<<<>v>^^>><^>>^<^><^>^<<>^<>>>>vv>v<>^^v>>^v<^^<>v^v>^^<<>^v^v^v^<<<^vv^^<>vv^v^<>^<>^v><^^v<<><v<^^>>v^>^v><<><>^v^v><<^><<<><<^<^^>v><^v<^><>v<^>^v<<^vv>>v<<>v>>^v>v^^^><^<^^>v^<<<^^>vv^vvv<<<^^>>v<vvvv>v>>^>>v<>v^vvv<><^^^>^<^>v^<<^<^v<<v^^>^<^<<>^^<^<^<<^v>vvv^><^vv><^<<>vv^<>^>^v<<>>^v^<^^<><>^v<^><<><><^v^v^v<<^>^v<>>^vv>^>>v^^vv>>>v^^^>vv>^<<<<>><>>^<<>^^^<<>>v^><^^>v^>^><^v<^^><^^^v^^v^>>><<<^><>^^<^v<>^^^<><>vv>>^<><>>^v>v>>v^v^^^v>><><>><>>^>^v><>v^v^v<>vv>v>>>v<<<<>><><v<>v^<^^v^<^<>v^><<^>vv>>v>>>^<>^^v>>^^^<>^<^v^>^v^>v><^^v>><><>>v^<^><><^^^<>^>v^^^v<^v^>^v>>v>^vv^^>^^>>vv<^v^>^<>>>>>><>><>v>v><><><<^v^>v<>^<>vv<>v<<><^>v^><^>v^><<<>^><><^<^^^v^<<>^^>><^vv>>^v>><>v^^v>v<^^><^<^>v^<><><>>><^^vvvvv^>>^^^<<>><>>v>>v>^^<<^^v>^^^v^v>><>>^>^v^v><^>v>^v>v^<^^<>>^<<><>>>>>vvv>^><<^^v +^>v>^v<^^v^<><^v>v^>vv^^>>>v>vv^v><<><>>^>><^>^<><>vv^^^>^<<^^>^^v<^^^v>>^<><^>^^vv>><>v>v^>><^^^>v>>>>v^>^>^^<^<^>>>>^v>v^>^<>v<<<^^v>^v^><^>^v^vvvv^<<^v><>^^v>>^vv>>^^^v>>v<^>^><^vvv><<<^^^v^v<>v>>^>>>v^>>>^^>vv>>v^<<><<<<<^^^><><<><vv<>>>^>^v^v^>vv<>>v>^><^^^^<<<<<^<^^v<^>^<>>^v>vv>>vv>v><<<<<>v<^<^v^^>v>>v<^^><>>^<^v<>^><>^^><<>vv>><^>v>>v<>>v^vvv^^^vvv<>^>>^v>v^<vv><>v<>^>^<<>^<<>^^>v><>^>><^><^><vvvvv^<>^>^vv<<>>>><>^>^v><<^^^^v^v^>><<>>^^^<><^v^^^^^v<^vv>vv<<^>>>>^v<^vvv>>v>>v^v>^<^v^vv<>^v^<<^<^>^<^<^^^^<^><^>>^vv>vv>^<<^v^^^^^v>>v^>^v<v><>v^^>v^<<^^>^><>^>^v>v<<<<><<<><<>^v<<<^>>v<<>^v>^<^^>>v^>^>vv<<><<^^v^vv>^^>v^^>><<^<<<<<<>><^><^>>vv^^<>v^^<>^vv>^v>^^v^^^^^<>^<>>>v<<<^>>v^<<<^< +>^^^^>vvv^^<^<<>>vv<^<<<^<>^^<^^^<^^vvv<^v<>>v>^>^^^v<<<^v>>^v>vv<^v^v<^>vv<>vvv^vvv<>^<<>>>^>v^>><^^^^vvvv>v^v>vvvv><<^^^<>v>^v^v^<>v^>v<<<><^^^vv>^>^v>v><^^vv<><>v>>^<<^vv<<><v<<>vv^<^>^v^>^vv>>vv^>vv<<^^<>v^>^>^^>v>v^>v^>^v><^^><<^<^^<^^<^v>^>v>>^<<><>>v>v<^<^>^v<^^<<<>^^v<^>>^v<>><^<<^<<<<>>>>v^^^^<>^>v^>>>vv^v>v<><>v>^v>>^vv^<<^v>>^>^v<><^v><^><<^<^>v^>^^^v>^<^>^>^^><<>^><^>^^>v<>>>>>>v>><>^<^^^^<>>v<><>>><^<<>v^^<^^><<>><>^<>^^^>^^^^^><>v<^>>>^>>v<>v>>>v<>v<><^<>^<>vv>>vvv^v<>vv>><^>vv<><>>v>>^v><<^>><^>>^<>><><<>v^<^>v<^^v>><<><>v^v<>>vv>>>v^^vv>><^vvv^vv>>vv^^><<^^v<^<<<v^^^vv><<<^>>v>>>vv<>>>>>^<<>v>v^>vv^>^^>>v<<^>v>^vv><>^vv^<^>v>>vv<vvv>v^v<^^>^v>>^<><^v<^>^vv^^vvv>v>v>^>>>^^<>vv><^v^><^><<<^^>v<<<><^v^^v><<^<^< +<<^vv>v<<>vv>>>^^^v^<^vv^><^<><^v^>^<^^^>^v<>^<<><<^^^<>>>><<>>vvv^^vvv^^>>>^^>^^^>^<<<>^vv>^<<<^>^v<^vv^>^<<>^^v^v<<>>><^^>v>v<^^>>^><<<>v^>^vv^>^>>>^><^vv<><^^<<>>v<><vv>^v>v><<>><^<^<^^v<<^v<^>^>v>>^><^^^^v<><^>v<^vv<<>v>>>>^^<^^><>v^^<<^>^^^^>^>>>v^>v^<>v^v^vv<<>v^<<><^<^<^>>>^^v^>>>^^>^v><>vv<<<^vv^^v<>vv>v>v<>><^v>>v^<>v>>vv<^<>v^^<<^<>^<><<>vv>^>v>>^<<>v>v^v<>^>vv^<>^vv^v^vvv<><>^^v^<<^v^<>^<>>vv>>>^^>><>v<^v^v^^<^>^>^v>>><<^^v>^vv>^vv<>^<v^>><^><^^^vvv<^>v^>>^v<<<^>>>v<^vv<^>>vv>v>v^^>^<<^><>>v>^v<^^<>>^>^>>^^^v>^^v><<^<>><<>>vv>v<>^^><<^v>><^^>v<>>^v>vvv>>v<^v^v^vvv^^vv<^>>v>^v^<<v<>^^vv^<<^^><^v<^v<^>vv^<>v^>^v<<^<^>v<^<^v^><<>vvv><>^^^<>^<<^v^^>v><^vvv^>>vvv^^^>>>^<<<^<>vv>vv>v<>>vvv<><><< +^<>^vv<>vvv<^<^<>v^v^^vv^v>>v^v><<^^>v<><<^<>vv^<<^vvv>v^<^>^<^>^^><^vv>v^>v<>^vv^<^>v<>>v<^^><<>>>v^^^v<<>v<<v><^<<^<<^>^vv^^v^v<><<<^<<^vv^v^<<<^vv>^<^<v<<>><^>v>^^^v<<<>>><^>v^^^>>v^^<^v^^><>^v>v<^vvv^><>><^^^v><^><>>v<^v^^<>>vv<<<>>>^^^^>>^^^>v>^><<>v>v<><^v^vvvvv><>vvv>^v>v>vvv>>vv<^v>v^^v^>>^<>v<^<<<>v<><>^^v^>v<<<>>^v>^^<^>>v<^v^>v>^>>^vv>vvv<^>^^vv^^<>vv<><^vv^>v><>v>^>v^^v>^v<^vv<>v^><^^><<^>^vv<>vv<<<<<^vvv>^>^<^v>vv><^>vvv>vvv>^vv^<^<><^^^<<<^<<<<>^<^<>>^<>>>v<<^^>vvv^^<<<><<<><>v^vv^<>v><><<^<<^^<<^^>>^v^vv<>>vvv^vvv<^>v<<>>^v><>><>v>^^>>>><<<>v<<>v^v>vv>>^^^<>^^v<<^>>v>vv>v<>>v^v>^<^^^v^v>^>>>^^^<^>vv^>^^<>><^<>><>^><<^^^v<^^<^^^vv^<<^>^^>v>^<<^^^<<>>vvv><^>>v<>vvvv><^>^<<>^<^^ +vv^<^^v>^<<^v>vvv<<^>^vvv>v>>>^<>^vvvvvvvv^<<>^>>v>v^v><>>>>v>^v<><>vv><<>>>vvv>^v^>>^vv>vv^><^<>v>^^>v>>>>v>v>^v^<>v>>v^><>>^<<>v><^^v>^^^vv^<^>^>>v^<^v>^v><>^<^^^^<>vv^^v^^^>^^>^vv^<>>^<<>^v^^<^><>v<>^^v^^>vv<^^<^^<>^><<>vv^^v^><>vv<<^^>>v>vv>^vv>^<^^^><>v>v>v>>>^v<>^^<^>v>^v>>^v>>^^^v>^vvv^^v<>^<>^<^v<^vv^<^<<^v><^vv><^^>vvvv<<<<>^>^>>^v>>><>><<>^>v^>^<^><>v^<^^^>v^><^^^v^<>><^<<^>v^^>>^vvv>>>v^v^^<<<>^v^^vv^v<^v^<<^^v^v^vv><<>>v^<>>v^<>v^<>v^<>^v<>>^>>^<^v^>v^>^v<^^v<>><>v>v^^v^<^v^<>^^>>>v><>v<<<<^v>v>>^^<^>^<^>^^>^<>v^><<^^v^<><><<^v<>v<><>>^><>>vvv^<^^^^>^v<>v<^v<>><^<<<><>^^<>>^vv>>>v><^<^>>v><<><^><>vv^v^^^^<^v>^>>vv>v>>^^v^>v^>^<>v^vvv^^^<^vv^v^v>>vv^><^<^>>vv<^v^<^^vvvv>v>^^v^>>vv^^^<^>v<<<>^>v<>v^vv^>vv<>v>v^v>><^<><>v>>v>>^>>v^v^>^<>>><><>v<^^v>v<>vv>^<><>^^v><<^v<>^<^>>^<>><v^<>v>^v^<^v>>v<>^^<^<<^v<<>vv>v<<^^v>^^<^>>>v^v^><>v>^^^v>vv^^^><^>v>v<<^vv^<^^>^^vv^v<<^<<>>^>^v^v<><^v>v^v^<<^^^<>^<^>^><><<>^>^^v^v<<><>v<>v^v>v<^<>^vv^^^vvv>>vvv>>v^>>>^^<^^><<>^v<>>^<^v^<><>^>^<^^>v>>^^v^vv^>>vv^^v><>v<<<>>v^vv>><>^>>>>>>v><<<^v>>>vv>v^<^<<^v^<>^^^<>>v<>v>v<><>v<<^<>v^><>^vv^>>vv^^>^^<^<><^^>^>>><>^><^<v^v<><<<^^>><<>><^^^>^v><^<^>v>vv>^<^vv<<>v^>^^^>^<<<^^^v^<<^>><><><^^<<^<>^<>^v^v<<>^>^>>vv>v>>v^v<<><>v^>vv<>^v>v<^v^vv>>><>^<>><<>>v>v^>>v>>v<<>v>^^v^^^<^v^^v>v>^>>v>><<^>><^<^>^>^^v^<>^>v<>>^<>vv>v^<<<><^>>v^><^v>^><<^>>><>>^v>v>>>>>vvv>^^>v^^>v^<^^<^>>^^>v><^><^^>^^>>v<><^>v<<>^v>v +>vv>>>>v><<^v>^^vvvvv><^v<>^<<>^^<^vv^>^<^^<>^vv<<^^v<^<><<<^^v<>><<^<<><<<>^vv^<^><>vv>v^v<^v^>^^^v>^^<<^v>v>^<<^^^vv^<<^<<<>>>^>^v><<>v>^<^<<^vv>><<^<^^><<>^v<^^>><^<^v<>>^vvv^^v>^v^^v>^>^^^^<>>vv>>>vv<<^vv<>>><<^^<><<<>>^^^v>^v>v<^<^v^^<<^<^vv<<<<<v^vv^>v>v^<^^^>^><<^<^>^<<^<<>>^<^>^^><^v^^^^v>>v<>^^<><^<^^><>vv>>>^v>>vv>^^>v<>^>>>>>><<<^<>>^<^>^<^v^v^^v^^^>>^<<>v>>v>>>v^<^>v>v>^>vvv<<<>v<^<>v<>>>^<<^>vv>>><^v^<<<<<^v<^^vv>^vvv<^v>v^^<^^v>>^<<<>^>>^^>^>>>>^v>v^<^^><>v<<<<^v>^>^>>v><<^^^>v>>^><>>^vv^^^<^<>v^^<>^v>^<>>^^v^>^^^v<>>^><<>^^>>v<>>^<>vvvv>>>^vvv>^vv><><>v^v>v>>vv><<<>vv<^v>v>^v>^<>^>v<<^v^v^^v>^<<<>^v>v>v>v>^^v<^v>v^>^>^^<>^>^><^<><>^>v>^>><^^^vv^<><<<<^>>>><^^^>vv><^<>>><<^v>v<<^v^vv>><>v<><^v>v^v>>^>v>v<>^^<>vv>>v><<>v>><^<^v<<^>vvvv<>^v<>^^v<>^^>v<<<>>^^>vvv< +>^v^v^>>vv><<^<>v>v^v^><<<>v<<^vv^^<^>^>^vv<<>v^>>^>v<^>^v>^<>v>v^><>>^>v^>>^>>><>v^v^>^>>vv^<^>v<>>v^^>>^><<<<^>>v><<><^v^^><>v>vv^>v<<<<^^>>>><^>^>>>>^v<<><^^v^<^>>>>^>>v><^<><>>>>v>v>>>>v^^>^v<>^>>^<<>>v>^><>v^^>^<<><^<>>>>v^v^v>^><^<^v^v<^v^^>^^>><^>^>^>>^^>>^<>vv>><>v><^>>v<<^><<^<^>v^vv>v^v^^>^>>v><^<>v^><>>>^^v>v^^>>>^v<><<<<<^v^><^>>^^vv^>><^v><<^>^>v<^^v^vv<<^>^<>^v^vv^<>vv>^>>vv>>^^>^^^<>^v^>vv>^^^v^<<>^>^>>vv>^^>v<vvvv^<<<<^^>^<>v><^<>v^>^<<>v^>><>>>^^^<>v^>>>^^>><^<^<<>^<<v^><<^vv^<><^v<<<^vv<>v^>^^v>><<<^^<>vv<<<>^^^^v^vv^<>v>>>>v<>>>v>v>^>v^v>vvv^<<<>^^v>vv<<>>^<>v>>^<<>^>^^<<^v^v<<<<<<^>^^<<>v<<><<<^v><<>><>^><^<>v<^v>>vv<<>v^v<<^<^>^>^v>v<<<>^>^<>^^^^v^vv^v>^>vv><^<<>> +^v><>v<^^^<>>>><>>>^v<<^<^>v>>^<>><^>>v^v^^>v^>v^><^>v>vvv<<>v><^vvv>^^vv^<^>>^vvv>^^^>^v^^vv^v^<>^^<>^^^<><<^^<<^<<<>^>v>^>^v^^<>^>v<^<^^v<<^^^>v^^v>><<<^<<><<<><>>^^>^<<>>><<^>vv>^vv^<>^>><>^^<><><<><>^^<><^<>v>^^<v^<<>>v>^>^^>vv^^v<^vv><v^^v^v><<<<<>>v^>^>><<>^^><>v>>v^<^^^^>>v><>^v<>v^<<^>>><^<^v<>vvv<v<<>v^<>><^>^^^>^v^<<>v^v^^>>v>^v>v<><<^>v^<><<>>>>vvv^v<>^^>^^^v<^v>>v^vvv^^>>vvvv^><^vv^^vvv<<>>^>v^v^v><^^^^vv^^><^<<><<<<<^v<^<>>^^vv<><^^><^>v^^^<^^>>vv^^>>>>v>>^>>>>>v<><^^>^<<<^<>><>>>vvvv^<^^vv>><^^^v><^v^<^^<^<<<<>>>v^v>vvv>>^>^<^><^v>vvv^v><><>>><^v^>^>>v>>>>vv^>v>v^><<>v^vv^><^>^^>v>vv^<^vv^<^>vvv^v><^^>vv><^>>^><>>v><>><<<^>>v>^^<<^ +>>^vv>^>^><>>>v>^><^<><>><<<<><<^<^>>><>>^<>vv<<^>>v^v>^>^>v<^v>>v>^^><<><<^v><^^v>>^<^>>v>>v>>>^v<^v><<>v>^<^^^<^vv><<<><>^v^v^^>^v>>v<<^vv>v>^vv<^>v<><<^<<^<^^v^^<>vv<^>>^^^<^v><>vv^>vv^^vvvv^>v>^v>^<>v<><>^>v<>>^^>^<>vv<>^vvv>><^^v<>>^>v^>>>vvv<>^^<<>vv<<>>>v<>v>v^^v<><<<^v^>^v^^^v>>v^>v>^v<>v^><>^>>^<>^v<<<>^><>>><><><<>^^<^>vvvv<<^<<>>vvv^^vvvv>vv<^^<><<><>^<^v<^v>^^<><>>v><^>>v>>vv<^v^<>>^v^<><<v^<><>^^>><<^>><^<>^>v<^^^vv^<<<<^vv>><^><^<^^<>^^>^>^vv><^v>v^>>vv^v>v>><^^<^^^vvv<^>^>^><^^v^vvv>^<v>>>><>vv<>^v<>^<^<<<<^v>^^>>vv>>v>v<^^v<<v^<^v<^^^><^v>^>>>v^^<^v^vvv>^<<^v<>>^v<<^^v^v>^^^>^>>^^>>v^>v><>vv^^^>>v<^>>v>v^<>>v^^v>>>v<<>vvvvv>><><>^^<^<>v^^^<><^>><^^v^v^^<^<><<<<> +vv>>^vv<<^v^<>>v<<><<^vvvv<<^<v>^^>^<<^v<^v<^<>v><v><<>vv^v>><^<<>v>>v><>>^^<>>>^<>v><><>v^v>>^v>v>^<>><>^^<<^v><>^<^><^>>v^^<^^^v>>v<^v>^>vvv>v<v>v>^^vv<<>v>><^v^v^^v<^vv<<><>>>^^^v>v^^^>v^<><^<>^>><<>v^>^>v>>v>><^v^v<<>^v<>>v^v^v^^v^^>>v>^<^>>><^v^<<^>^>^>>v>>^>vvvv>>>^^^<^v^v>^<^>>v<><v>v^<><^<<^v^<^<<^^v>^v>v^<><^v^^>><>^<^^><>>v>vv^v^v<<<>^v<>^^vv<>^v><^vv<^vv^<<<^<<^^><<><<>^v^vvv^^>^<<^>^<<<^v<<>>v>>>><^^>^>^>>>>^^^v^^>v<^^<^vv>>^^^^vv<^>v<><<><><^v^><^^>>^^>vv>v^v>v>^<<<^v^v>v>^>>^^>>>>v<<^<^>>v><>v^^vv>>><^^>>v^^>^>^<^>^vv>v<>^<>v>v^^^<>vv>>^^>>><<^v<vvv>^>v^vvvv^>>^<^<>v^<<vv><>^<>^>>^^v<>>v^^v^><^>^^v<^>^v^>^<>>^^>vv^vv<^^v<<<<^^^<^>v>v^<<>^<^^^^^v>^^>^>vv>>v><^v^^>v<^>v^>>^>>^^v><>>^><v<><^^v>^v>^>v^ +>^vv>^v<><>v^<<>>v>v<^><>^v<><>>^<<^>vvvvv^>vv^^<>><^<>v>^^>^<>>vv^vv^^v^>vv^v^>>vv>>v^><<<>>^<<^>vv>v>^<>>>^^><^v<>>^vv<>v^^>>><^<^^>>>vvv><>v^<^^<^><>>^<<><<>>v>v^^^><^>v<<>^^<>>v>>v^v<<><<^v^^<v><<^v>>^v<>^^^^v>^>>^>>v^>^>>v>>><^><<^v><>><>><^v<^>vvv^<<^><<<^^>>v<^>>v>>v>>>^v>^><vv><^>v>^v<^<^vv^^^v^v>>>>^v>>^>^>v<>^>^>^^v>v<>^<><^^<<^v>v><>v>^>^<>><>>^>v^v<<<>^><^v<>^^^^v<><^^v^^<^v>^<^>><^v><><<^^^v>><^^<<^>^vv<<^<>>v<<>>>>>^<>^>v<<<>v<^v^>v<^^<<^v<<^v><>^vv>v<>v<<<^^v^><^^^^<^^v<<^<>v><>>v>^v<>v><>><^>^^^>v<<<>v^>vv<><<<^^>^^>^^v<^>^^^v<^^>>>^<^<>v<^^v^vv<^^^v<^<<^><><>v^v>>>^vv^<<^v<<><<<><^^^>>^<^v^v<<>v^v^v>v><^^>^>>^<<><<^<<<>v^><>><^>^<^<^v^<<<^>^<>^^<>>^<^v^v>v^>v^>>vv>>>^<>vv<><>^>>^><>>v><^>>>^><^v