Problem:
Score : 100 points

Problem Statement

It is September 9 in Japan now.

You are given a two-digit integer N. Answer the question: Is 9 contained in the decimal notation of N?

Constraints

10≤N≤99

Input

Input is given from Standard Input in the following format:

N

Output

If 9 is contained in the decimal notation of N, print Yes; if not, print No.

Sample Input 1

29

Sample Output 1

Yes

The one's digit of 29 is 9.

Sample Input 2

72

Sample Output 2

No

72 does not contain 9.

Sample Input 3

91

Sample Output 3

Yes

Solution in Haskell (GHC 7.10.3) (judge verdict: Runtime Error)

import Control.Monad
import Control.Applicative
import Data.List

-- String, Int, Char, IO

-- e.g.
-- 1
-- [a] <- map read . words <$> getLine => [1] -> a == 1
-- 1
-- a <- readLn
-- 1 2 3
-- lst <- map read . words <$> getLine => [1, 2, 3]
-- 1 2 3
-- [l, m, n] <- map read . words <$. getLine :: IO [Int] => [1, 2, 3]
-- 'a'
-- c <- getChar => c == 'a'


main :: IO()
main = do
  n <- readLn :: IO Int
  lst <- replicateM n readLn :: IO [Int]
  let l = (foldl (\x -> \y -> x + ((length y) `mod` 2)) 0  . splitBySame) lst
  print  l


countBySame' :: [Int] -> [Int]
countBySame' [] = []
countBySame' lst = let x:xs = sort lst  ; (n, list) = (samelist x xs 0) in n : (countBySame' list)
  where
    samelist :: Int -> [Int] ->  Int -> (Int, [Int])
    samelist a [] n = (n+1, [])
    samelist a (x:xs) n
                  | a == x = samelist a xs (n+1)
                  | a /= x = (n+1, x:xs)


splitBySame ::  (Ord a) => [a] -> [[a]]
splitBySame [] = []
splitBySame list = let (x:xs) = sort list; (lst, rest) = split x [] xs in lst : splitBySame rest
    where
      split :: (Ord a) => a -> [a]-> [a] -> ([a], [a])
      split n acc [] = (n:acc, [])
      split n acc (x:xs)
                  | n == x = split n (x:acc) xs
                  | n /= x = (n:acc, x:xs)