Block Puzzle Solver