New exercise: crypto-square