Problem:
Score : 300 points

Problem Statement

How many integer sequences A_1,A_2,\ldots,A_N of length N satisfy all of the following conditions?

0 \leq A_i \leq 9

There exists some i such that A_i=0 holds.

There exists some i such that A_i=9 holds.

The answer can be very large, so output it modulo 10^9 + 7.

Constraints

1 \leq N \leq 10^6

N is an integer.

Input

Input is given from Standard Input in the following format:

N

Output

Print the answer modulo 10^9 + 7.

Sample Input 1

2

Sample Output 1

2

Two sequences \{0,9\} and \{9,0\} satisfy all conditions.

Sample Input 2

1

Sample Output 2

0

Sample Input 3

869121

Sample Output 3

2511445

Solution in Haskell (GHC 8.8.3) (judge verdict: Accepted)

import qualified Data.ByteString.Char8 as BS
import Control.Monad
import Data.Char
import Data.List

getVals::IO [Int]
getVals = unfoldr (BS.readInt . BS.dropWhile isSpace) <$> BS.getLine

main::IO()
main = do
    n:_ <- getVals
    let (a,_,_,_) = genList !! (n-1)
    print a

modnum::Int
modnum = 10^9 + 7

mSum::Int->Int->Int
mSum a b = mod (a+b) modnum

mpro::Int->Int->Int
mpro a b = mod (a*b) modnum

genList::[(Int,Int,Int,Int)]
genList = (0,1,1,8):[
    (foldl mSum 0 [(mpro have09 10),only0,only9],
    mSum (mpro only0 9) no09,
    mSum (mpro only9 9) no09,
    mpro no09 8
    )
    |(have09,only0,only9,no09)<-genList]