The Compleat Cruciverbalist: Or How to Solve and Compose Crossword Puzzles for Fun and Profit