Puzzle Decoding