Puzzles adapted from flashbynight.com