-- a209234.hs
import Data.List (sort, genericLength, group, transpose)
import Text.Printf (printf)

twoDigitLookAndSay :: Integer -> Integer
twoDigitLookAndSay n = read $ concat $ concat $
   transpose [map (show . genericLength) ls, map (printf "%02d" . head) ls]
   where ls :: [[Integer]]
         ls = group $ sort $ tail $ reverse $ d2 n
         d2 :: Integer -> [Integer]
         d2 x = if x == 0 then [] else (x `mod` 100) : d2 (x `div` 10)
-- .


-- A209234
a209234 n = a209234_list !! n
a209234_list = iterate twoDigitLookAndSay 10

-- A209233
a209233 n = a209233_list !! n
a209233_list = iterate twoDigitLookAndSay 11

-- A221368
a221368 n = a221368_list !! n
a221368_list = iterate twoDigitLookAndSay 12

-- A221369
a221369 n = a221369_list !! n
a221369_list = iterate twoDigitLookAndSay 13

-- A221372
a221372 n = a221372_list !! n
a221372_list = iterate twoDigitLookAndSay 19

-- A221373
a221373 n = a221373_list !! n
a221373_list = iterate twoDigitLookAndSay 99