Two small fixes: add some ceil() calls to stop the puzzle shrinking