import Data.List(nub) main :: IO () main = solve <$> getLine >>= print solve :: String -> Int solve n = length $ nub $ foldl f l1 [1 .. length n] where l1 = foldl (\l c -> ((c : n) : l)) [] ['1' .. '9'] f l i = let (xs, ys) = splitAt i n in foldl (\l' c -> ((xs ++ (c : ys)) : l')) l ['0' .. '9']