Errichto/youtube

aoc2020 part2 fails

Opened this issue · 0 comments

AOC-2020/20-jigsaw/jigsaw2.cpp fails, (for the below puzzle input)

would love to see you solve it.

note:
for the below input, part2 should be '2012', but we get '2567'

input:

Tile 2729:
.....#####
##..##.#.#
......#.##
#....#.#.#
#......##.
#...#..#.#
#.........
.......##.
#.#..#....
#.#.###..#

Tile 3673:
##.....###
.....##...
#.......#.
..#..##.##
...##.#...
...#......
..#...#..#
..........
##..#.#..#
####.#.#.#

Tile 2797:
#######..#
###..#.#.#
#...#.....
....#...#.
....#...#.
#...##....
....#....#
#..#......
.#........
#.#.....##

Tile 3779:
....###..#
#..#......
...##.....
#.#..#...#
..##.#....
##.##....#
#.........
.....#...#
#.###...#.
.#####.#.#

Tile 3217:
...###.###
#....#..##
#.......#.
......#..#
#...##..##
##..#....#
#...####.#
..#..##...
..#.##...#
#..#.###..

Tile 3137:
.#..#.#.#.
#.......#.
###...#..#
#.#...#...
.....#.#.#
..#..#....
#...#.#.##
..#......#
..#...#...
###.##.##.

Tile 2857:
...##..##.
.........#
#........#
.#.....#..
#..#..#...
#...#.#.#.
##....####
#.....##.#
...#..#...
..####....

Tile 1831:
#.##..####
.#.#.#...#
#..##.....
#..#....#.
#.##......
...#....#.
......#..#
..........
####..#...
####.###..

Tile 2423:
...#.##..#
#...##...#
##......##
...#.#....
#.....#...
#.....#..#
.#..####..
.##...#.##
..##.#..#.
#..#..####

Tile 3221:
..#.##.###
#.#.......
#...#....#
...#...#..
#..#.#...#
....###..#
.........#
.........#
#...#.##.#
##..##.###

Tile 2707:
.##.#.#...
.#.##..#.#
#...#.....
#.#.......
#...#.....
..#......#
.......###
..#.#...#.
#.#.......
..#...#.##

Tile 3041:
#.####...#
##.....#..
..#.#..###
#.###..###
.#.#.....#
#....#....
..##......
.###....#.
###.##.#..
#####.##.#

Tile 1627:
.###..#..#
.#..#.##..
##...#...#
#....###.#
..#......#
#....#..#.
#.##.....#
.##..#...#
..#...#..#
...#.###.#

Tile 1237:
...##..###
#.#......#
#.##..#..#
#.#.....#.
#....#...#
...#....#.
#.#....#..
.##.......
..#..#..##
.###.#.#.#

Tile 1187:
#...###...
#.###.#...
..##...#..
##.....#..
.....#...#
#.....#...
....#..#.#
.........#
.#...#....
.####.#.##

Tile 1361:
.#.##..###
......#..#
....#.#..#
.#.......#
#.#.....##
.#.#..##..
##.##....#
#.##..#.##
#.#......#
.##..##...

Tile 2087:
###.#.....
.#...#....
.#..#.....
####.....#
...#.....#
...##.....
##..###..#
....##..#.
.#.####...
...#..####

Tile 1129:
###.#.#...
#.##..###.
.....#....
#...#..#..
#.#.###.#.
.##..###..
#...##..##
.....#...#
#........#
...#..####

Tile 1093:
.....##.##
#.......##
.##.#.##.#
#.#..####.
#....#....
###......#
#.#.......
#..#.....#
#..#.#.#..
#..#....#.

Tile 3049:
##...#..##
#........#
#......#..
.....#.###
#........#
#..#.#....
#........#
....#.....
..##.....#
##.#..##.#

Tile 2399:
##...#.##.
...#......
#.#.##...#
##.......#
#.........
#.........
.....##..#
#....#....
.........#
.....##.##

Tile 3371:
##....##..
.....##...
##.##.#.##
......###.
##..####.#
..#..##..#
.....#...#
#..#..#..#
.##.#...##
.####..###

Tile 3343:
#......##.
.##.#.#..#
#...#.##.#
.##..##...
.#.#....##
##.#..#...
#....#.#.#
.....##..#
#.....##.#
.##.#....#

Tile 2393:
.####.#.#.
.#..##....
.##..#.#..
#....#....
#...##.##.
.#...#...#
#..#......
....#.##.#
#....##..#
.#..###.#.

Tile 1621:
##..###..#
##.....#..
#.#....###
.##..#.#.#
#.........
#......#.#
#.#.......
.#........
#.#......#
....####.#

Tile 3181:
#...#.####
...#.#...#
..........
....#..#..
##........
......####
#.#..#..##
..........
..#....##.
...###...#

Tile 2441:
.#..#..#..
#....##...
.#...#.#..
#...##..#.
...#..###.
.....#.#.#
#...#...#.
#...##...#
#......#.#
#...##..##

Tile 2389:
.#...#.#..
.........#
..........
###.......
....#.#...
....#.##..
#.....##.#
..#.......
#.##.....#
#...###.##

Tile 1847:
#.###.#..#
#.#...#.#.
#.......##
#...#..#.#
..###.#..#
...##....#
#....#...#
##...#...#
.###...#..
.#.#.####.

Tile 1871:
.###.##...
#.......#.
#.......#.
#.....#..#
..##...#.#
##.....###
.....###..
#....###.#
##.##..#..
###...####

Tile 3877:
#.....#.#.
..##....##
###......#
#...###...
.##...##..
.#...#....
..#....#.#
#.........
...#..#...
#..###.#..

Tile 3517:
###..##.#.
...###...#
..#......#
.#.#...#.#
....#.##.#
#...#..#..
...##....#
#.....###.
.#..##...#
........##

Tile 2609:
#...#..###
.........#
...#.#.#..
#####..#.#
#.#....#.#
.......#..
###..#...#
..........
.#...#....
#.#.....#.

Tile 3001:
..#...#...
#........#
#..#.....#
.#.#.#...#
#..##.....
#.....##..
#......#.#
..##...#..
.#..#.##.#
#.##.#####

Tile 3067:
#.#.#.###.
##....#...
.#..#.....
....#.....
.###..#.##
.....#....
.#...##...
.#.#.##..#
.....#...#
#.#.#....#

Tile 1583:
####....#.
##.#....##
##..#....#
#...#.##..
....##....
###.##...#
#..#..##.#
.###.....#
.#.##....#
..#.####.#

Tile 1741:
#.#.#####.
....#.....
#.#......#
..##...###
......#...
#........#
..##...###
#.#...####
####.#....
.#..#.#.#.

Tile 1933:
#####..###
#...#..#..
.##...#..#
.......###
##........
..#...##..
.....#..##
#....#....
#.....#.#.
....##..#.

Tile 3697:
#..#.#####
...#..##..
#.....#...
.#..#.##..
......#...
#......#..
##....#..#
.##.....#.
#.#..#....
#..##...##

Tile 1429:
##.....#..
###.#...##
#.....#..#
#...###..#
....#.....
##.#...#..
#....##...
.##.#..#..
..#.#.#..#
#.#.###...

Tile 1721:
##..#.#..#
...#.#....
##...#.#.#
##..#....#
.##.#....#
#..#.#....
#.##.#....
##.....#..
..#..###..
..###.#..#

Tile 1867:
.##.####.#
#.##....#.
#....#....
##..#..#..
##.#..#..#
.......#..
##........
..#...##.#
....#..#.#
..###.#.##

Tile 2143:
##..##.#..
#.........
..#.#..###
.#.#..#...
.#######..
....#....#
##.##.#..#
......##..
..#.#.##.#
..#...#..#

Tile 1657:
......#..#
#.##..###.
.#.....#.#
.#......##
#.####...#
...#.#....
#.#....###
#.....##.#
....#....#
#..#..#...

Tile 2719:
#####..#..
#.....###.
.##....###
..#.##....
#..##.....
.......###
#.....#...
..#...##..
.#..##.#.#
..####....

Tile 2803:
###..###..
.#..#...##
#.....#...
#.#.###...
##..#....#
#...#..#.#
...##...##
......####
.......##.
.###.#..##

Tile 3929:
.#.#####.#
##...#....
...#.#.#.#
.#......#.
.......#..
##....##.#
...#...#..
.......###
.........#
..##..##.#

Tile 1321:
.#.#...#.#
.......#..
...#.####.
#.........
..#.#.#.##
##....#...
..........
#.##...#..
#....#...#
#######.##

Tile 1153:
.#...#.###
#........#
#...#...#.
#.....#..#
#........#
#.#.....##
.....##...
#..#...#..
#.....#..#
##.#..##.#

Tile 3803:
#.####...#
#.##..#...
##..#.....
.##.....#.
..#...#...
#.##.#.#..
##.....#.#
##.#..#..#
##..#..#..
....##..##

Tile 2791:
.#....####
#.....#...
#.#.##...#
..#.#.#..#
##..#....#
#....#..##
...#.##..#
......#..#
#....#.#..
#.###.#.#.

Tile 3529:
.#...#...#
.....#..#.
#........#
.........#
.##.##.#..
##.......#
#...#...##
.......#..
...#.##..#
#.#####...

Tile 3257:
####.#.###
.##...##..
..#....#..
..###..#.#
#.#..#...#
.......##.
##.##.####
.....##..#
#....##...
###..###.#

Tile 1531:
#.#...#...
.........#
##...#...#
##......##
...#.....#
#.#.###..#
#....#...#
.#....#.#.
#...#....#
#########.

Tile 3413:
#...#.....
...###..##
##..##....
.#..##....
#..#.#.#..
...#.....#
....#..#.#
...#....##
...#.#...#
#.###..#.#

Tile 1117:
#.#.##...#
.........#
.........#
#....#..##
#.#.##..#.
#......#..
#.#.#.#...
#..#.....#
......#.#.
..##.#..#.

Tile 1499:
.#####..##
...#...###
.........#
#..#.....#
##......##
#.......#.
#......##.
#####.....
.#.....#..
.###..####

Tile 1787:
.######..#
#....#.#.#
........#.
#.....#...
..........
..#..#.###
#.#..#...#
.#.#.#####
.....#.#.#
##.#.##.##

Tile 1949:
##..####.#
##.#......
.........#
....#..#.#
.#...##..#
....#..#..
#.....#...
##....#..#
.....#..#.
.#.#.#.#.#

Tile 2161:
####.#..#.
#.......#.
.##....#.#
.###..#..#
#.#..#....
#..#..#...
#...#.#.##
#...#.##.#
###....#..
#...#.##.#

Tile 2953:
#.#...#.##
#.#.#...##
#.......##
.........#
#..#.....#
..#.##.#..
..#.###..#
##.....#..
......#...
###.#.#.#.

Tile 1039:
##..###..#
#.....#...
#....#.#.#
#...#...##
##.......#
#.....#..#
...#.....#
.#.###...#
.........#
#.#..#####

Tile 2027:
##.####..#
..#.....#.
#.#.##...#
.#.......#
.....#.###
#........#
.#.#.....#
#.#...#.#.
#.###...#.
..##.##...

Tile 1889:
..####.##.
#....#.#.#
##.#..##.#
#..#...###
##...#..##
#..##...#.
#..#.###.#
#.###.#...
##...##...
##.##..###

Tile 3557:
##.##.#...
.....#.#.#
#.#..#....
##..###..#
....##...#
....#....#
.#..#...#.
.#.#.##..#
###..#...#
#.#.#..#..

Tile 2549:
....#..#..
#..#..#.##
.....#...#
#..##.#.#.
.#.##....#
.#..#....#
.#.#...#..
##.....#..
..........
#....#...#

Tile 1543:
.##.###.##
....#.#..#
#.........
...#.#...#
#.......#.
.....##...
....#.....
..###.#..#
###..#....
###.#.###.

Tile 2417:
.#....#.#.
#.#..###.#
....##....
##.....#.#
..........
#....#..##
.....#...#
#.#......#
#........#
###..##..#

Tile 3541:
.##..###..
##...##.##
##..#....#
.........#
...#.#....
...#.....#
#..#...#..
..........
.#..##.#.#
..##.#..##

Tile 1931:
.##...##.#
...#.....#
#...###...
#.......#.
#.......##
.#.#.#....
##..#....#
##...#..##
..........
....#.#.#.

Tile 2833:
.#...#....
#..####...
.#...##.##
.#.......#
#.#...#..#
..#.....##
#......#..
##....#..#
......#..#
##..##...#

Tile 3301:
###.#.####
..###.##..
..........
.#....##..
#.#..##...
..#....#.#
.#.#..#...
#.#..#...#
....#.##.#
......##.#

Tile 3671:
##.#..#...
.##....###
##.....#..
###.#.#.#.
....#...##
#.....#..#
#.#......#
.......###
#..#.....#
...#.###.#

Tile 1609:
..##..#.##
###..##...
.#..#..#..
#....#.#..
#..#.##.#.
#.......#.
.....#...#
#.....#..#
......##..
###..##...

Tile 2957:
###..#####
###.......
#..#.....#
#.#......#
#.....#..#
#.#.......
###.#..#.#
.#.#.##.#.
###.#.#...
...##.####

Tile 2467:
##.#.#.#..
........#.
....#...#.
#.......#.
..#...#..#
...#.#...#
#...###.##
#.##.#.#..
.#...##...
..#.####..

Tile 1907:
###..###.#
#...#....#
...#..#..#
.......#.#
........##
##...#..##
#..#.##...
#....#.#.#
#......###
###.....#.

Tile 2251:
##...#..##
#..#.##..#
..#.#..###
##........
.......#..
.#..#.#...
#..#.#..#.
#..#......
###.#...##
#.###.##..

Tile 2657:
.#..##..##
##.#....##
#.#...#...
#..#......
#........#
#.........
..#....#..
#.........
#.........
##.###.###

Tile 2671:
#.#.#.##.#
.#..#..#.#
.#.......#
#...#..#..
.....###.#
#.....#..#
#.#......#
#........#
#....#....
####.#..#.

Tile 3121:
..#..#...#
#....#...#
....###.#.
#........#
..####....
.......###
#..#.####.
##.#.###.#
.####..#..
#.#...#..#

Tile 1021:
#####.####
#....#...#
####....#.
#......#..
##..#...##
##.#.#..##
#.....#.#.
#.#...##.#
.#......##
.#.##...#.

Tile 1019:
...#.##..#
#........#
.........#
##....#...
#..#..##.#
........#.
.....##...
#..##....#
#.....#.#.
.##.####..

Tile 2099:
#.##..###.
#..#......
#.##...#.#
...##..##.
#...#.....
.#.....#.#
.....#..#.
.....##...
#...##..##
##.#####.#

Tile 1297:
.###..####
##...###.#
..#..##..#
#...#.....
...#....##
#....#...#
###.##.#..
#.........
......#.##
..#.##..#.

Tile 1993:
####..#.#.
.#.#.#....
#...#.##.#
#.....#..#
..#..#.#..
#.#.#...#.
.#..#...#.
##...##..#
..#...##.#
#..#.##.#.

Tile 2617:
..#.#.#.##
.##.####..
#.#..####.
....#.#..#
#.#.#.#.##
...#......
##......##
.#...#.#..
#..#...#.#
.###.#..#.

Tile 1009:
##.#....#.
#.#.#...#.
#.#....#..
......#..#
####......
....#...##
......#..#
.......#..
##.....#..
..#...#.#.

Tile 2203:
#.#.###.##
#.#...##.#
....#.##.#
#..#......
.#....#..#
......#...
##.##....#
#...#...#.
##.##....#
#..#..#.##

Tile 3467:
....##.##.
#...#..#..
##....#...
#.......##
#.........
...#....##
#...#.....
##.#.#.#.#
...##.#..#
#...#.....

Tile 3617:
##..####.#
#...#.#..#
.......#.#
..........
.......#..
...#...###
#.#.......
#.........
.....##...
##.#.###..

Tile 1601:
.#..####.#
.....##...
#.....##.#
#...###..#
##....#...
##......#.
#.#.....#.
##.......#
#.......##
..##.#.#..

Tile 2699:
.#...#...#
#.##...##.
..........
#.##..#.#.
...#..#..#
...#.##..#
#.#..#..##
.#...###..
.#.......#
##..###.##

Tile 1231:
#.....##..
#..#.....#
###..#.#.#
..######..
...##....#
#..#...#.#
.....#...#
#.##..####
..#.#.....
.###.##..#

Tile 3373:
###...#...
.##..#...#
.#.#.....#
........#.
....#.....
#....#....
##.....#.#
###.......
#......#.#
#.#..#####

Tile 1901:
##.##..##.
##...#..##
......#..#
.#.#......
#.###.#..#
##.#.#.#..
........##
#....#..#.
.....#...#
.#..##....

Tile 1213:
...#.#.#.#
#.##...#..
.#.##.####
.....####.
##.##....#
#..#...#..
....#.....
##........
##..##....
###...#...

Tile 3163:
#.....#.#.
###.#..#..
......#...
#..#.#....
##....#.#.
##.#..##..
#.##.#..##
.#........
.#...#....
.....#.##.

Tile 2053:
.###.#...#
#.....#...
#..#.#..##
##.......#
#..#....##
....###..#
#.#..#...#
#.##.#.#..
.#..#..#.#
#.......##

Tile 3229:
......#...
#...#....#
##....#..#
.#..#.##.#
..####.#.#
###.......
##....#...
#..#...#.#
........#.
.#.###.###

Tile 3271:
#....#.###
#.......#.
#......#..
.###..##.#
....#..#..
.....#..##
.#...#....
........##
.......##.
#..####.##

Tile 2003:
..#.#....#
.##..#...#
#.........
#.........
#.........
#.##...#..
#..#..##.#
.......#..
##.......#
..#####..#

Tile 3637:
##.##.####
....#.#..#
##.#...#.#
....###.##
..........
.##.###.#.
#.###.....
......#...
..##.....#
##.#######

Tile 3967:
#..#.####.
###..#....
#.........
#..#..#..#
#..#.....#
..#...#...
..###.#.#.
#..#.....#
.#......#.
...##.#..#

Tile 2621:
...##.###.
...#.....#
#.#.##....
#.#.......
##.#.#.#..
...#....##
.......###
..##....##
#.#..#....
#####...#.

Tile 3347:
####..##..
#.#.##....
...#.##...
....##.#.#
####...###
..##..#..#
......#..#
#....#.#..
#....##..#
.#.#.#...#

Tile 1319:
#..###...#
#..##.#..#
#........#
##...#.#.#
#.##....#.
.....#.#.#
#...#....#
.....#...#
#.........
.#.##.....

Tile 1279:
##.....###
##...#....
#....#..##
#...##...#
...#.###.#
.#........
#.....##.#
...#.....#
..###.....
#.#.#..##.

Tile 1861:
.##...#.#.
#....####.
..........
#.#...#..#
###.####..
#......#.#
.......#.#
#.#.#.#..#
##.....#.#
....##..##

Tile 2861:
.#.######.
..#.#..##.
#.##......
....#.#...
........##
#....##...
......#...
#.#.......
#.#....#..
#######..#

Tile 1879:
#..#.....#
#........#
#..#####..
#.#..#..#.
#........#
.#....##.#
.##.....##
...#.....#
.##......#
..###.##.#

Tile 1291:
......##..
.#.....###
...#.#....
#....#.#.#
###.......
....#.....
.#.#.#.#..
.#.##....#
#..#.#....
##..##..#.

Tile 1109:
#....##.##
#.##....##
..#......#
.........#
..#.##.#..
#........#
##.#.....#
##....#...
.......###
##...#.#.#

Tile 2333:
......#..#
##..####..
..#.......
#.........
#.#.##...#
#.........
#.......#.
#.##.#..##
.#..#..#..
###..##..#

Tile 2081:
####...#.#
.....#....
.....##..#
.#..#..#.#
#.........
..##.#...#
.......###
.#..#.....
#......##.
#.#.#.#.##

Tile 1489:
#..##.#..#
..#.#.#.#.
...#......
#........#
#.#.#.....
.#.#.#.#.#
#.##......
#.#.##.#.#
#.#......#
.#..#..#.#

Tile 3931:
##.###.#.#
#........#
#.....#..#
.###......
......##.#
#..#...###
..#......#
#..#......
#....##...
###.###.##

Tile 1249:
.###.###.#
#.##...###
...#.#....
#...#..#..
......#..#
#......###
##..#...#.
..##.....#
#..#.#....
##....####

Tile 2381:
#...#....#
.#...##..#
##...##..#
...#.#...#
#..##.#...
.##..#.##.
.....####.
#..#..##.#
##...##...
.##.######

Tile 1747:
.####..#.#
#........#
....#....#
#.....####
##..#.#..#
###.##..##
.##...#...
..##......
#....###..
.#####..##

Tile 2687:
#.#.....#.
.........#
#..#...#.#
..........
#......##.
..#...##..
##.##...##
##.#...##.
......#..#
.#.#....#.

Tile 1327:
.###.#####
.......#.#
#..#..#.#.
#...#..#..
.......#..
..#.#.....
#........#
.##....#..
..###.#..#
#..#.##.##

Tile 3727:
#.#..#...#
..#.#....#
.##.###.#.
#.........
##.#...#.#
##.#....##
.##...#...
......#..#
........#.
#....##.##

Tile 2341:
.##.#.####
...#....#.
.#.....#.#
.....#....
#.#.###.#.
##.##.....
#...#.....
..#.#..#..
........#.
#.##......

Tile 1439:
#..#.#..##
.......#..
....#..##.
..#..#.#..
.....#...#
.#..#.##..
#...#..#.#
#.#......#
.#..#.....
##.#...#.#

Tile 2351:
..###...##
#....###..
.#....#..#
.#...#....
.#.......#
..#....##.
#..#.....#
#.......#.
##..#..#.#
...#..##..

Tile 2269:
.#####...#
#........#
#.......##
#.#....#..
..##.....#
.#..#..#.#
##...##...
#......###
...#......
#.#.###.#.

Tile 2887:
.#.##.#.##
.#....#...
#.....#..#
#.##...#.#
#...#.#.##
##.##.#...
##.#.##..#
.#.##..#..
......#..#
.#.#.##...

Tile 3391:
.####....#
.#..#..###
....#...#.
...#..#.##
#....#..##
#...#..##.
#..####.#.
..####..##
..##.....#
...#.#..##

Tile 3533:
.#....#..#
#.........
..#..#..##
.#.##.#..#
#...#.....
......##..
...#.#.#.#
#.....##..
..........
##.##..#..

Tile 1637:
.#.#.#.##.
#.#.....##
.#....#...
##.......#
.##.###.##
##.#......
..#.....#.
.###...#.#
........#.
#.##...#.#

Tile 3323:
..#.#.#.#.
#.#.....#.
#.##..#.##
##.......#
#.#....#.#
.##......#
.#..#..#..
..#..##..#
...##.....
##.##.##.#

Tile 1559:
##.##.#..#
.....#.#..
#.#.####..
...#.#...#
##....#..#
#.##...#..
.#..##.###
....#..#..
.#.#.#.#.#
#....#..#.

Tile 2039:
..#.######
.#...#...#
###.#.....
##..###..#
.#...##...
..#..#...#
#.....#.#.
....#.....
.###.....#
..##.#.###

Tile 3677:
####......
.......#..
#.........
........#.
.....###.#
#...#.###.
##........
....##..##
.#....#...
.##..##.#.

Tile 1973:
#.###..##.
#.........
#......###
#.#...####
#.#..#.#.#
..#..#..#.
#..#.#.#.#
##.##..#..
#.###...##
##.#.##.#.

Tile 2309:
####..##.#
#..#..#..#
...#.#...#
#....###.#
##....#.#.
....##....
......#...
##..#.....
#....#..#.
.##.#....#

Tile 2237:
.##......#
#.#....##.
...###..#.
#.#....###
.....#...#
#.##.....#
#..#...#..
.#...#..##
#.#....##.
....#.#.#.

Tile 2663:
##..##.###
#..#..##..
#...##...#
#.#.#..#.#
#..#......
....#..#.#
...#...###
##........
##....#.#.
.#...##.#.

Tile 1571:
##.#.#...#
.##.##.###
........##
#.........
#.#...##..
#.......#.
##..#####.
#..#...##.
##......#.
..#..##..#

Tile 3011:
#.#.#...##
....##.#.#
#...##...#
#........#
.#....#...
......#...
#.#.#..#..
..#####...
#.###.....
.......#.#

Tile 3457:
##.##..#.#
###.##....
.#.#...#..
##.......#
.....#.##.
#.#.##.#.#
.###.#####
..#.......
.##.....##
....#.###.

Tile 1619:
#..#...#..
#.....#.#.
#..#..##..
.....#....
#.#...#...
.#..#....#
#....##.##
.....##.#.
......####
#.#.#.##..

Tile 1663:
..#..###.#
#...#.#..#
#...#.....
###..##...
..#.#.....
..........
#.#....##.
..#....###
#..#..#.#.
###.#.##..