main = getLine >>= print . compute . read

base = 10^9+7

compute :: Int -> Int
compute n = loop n 10 9 8 1 1 1

loop 0 _ _ _ acc10 acc9 acc8 = (acc10 + acc8 - 2 * acc9) `mod` base
loop n pow10 pow9 pow8 acc10 acc9 acc8
  | odd n = loop1 (m acc10 pow10) (m acc9 pow9) (m acc8 pow8)
  | True  = loop1    acc10           acc9          acc8
  where
    loop1 = loop (n `div` 2) (p pow10) (p pow9) (p pow8)

p x = m x x
m x y = x*y `mod` base
{-
0から9任意 = 10^n : A
0から8任意 = 9^n : B   A-B = 9が1つはある
1から9任意 = 9^n : C   A-C = 0が1つはある
1から8任意 = 8^n : D   A-(B+C-D) = 求めるもの
-}