Slight speedup due to break instead of goto; added another 'hard' puzzle.