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 Kotlin (1.3.71) (judge verdict: Accepted)

import java.io.PrintStream
import java.util.*

fun main(args: Array<String>) {
    val sc = Scanner(System.`in`);
    try {
        solve(sc, System.out);
    } finally {
        sc.close();
    }
}

fun solve(sc: Scanner, wr: PrintStream) {
    val N = sc.nextInt()

    if (N == 1) {
        wr.println(0)
        return
    }

    val MOD = 1e9.toLong() + 7
    val dp = Array(N + 1) { Array(2) { LongArray(2) { 0L } } }
    dp[0][0][0] = 1
    for (i in 0 until N) {
        for (j in 0..1) {
            for (k in 0..1) {
                for (d in 0..9) {
                    val jj = if (j == 1 || d == 0) 1 else 0
                    val kk = if (k == 1 || d == 9) 1 else 0

                    dp[i + 1][jj][kk] += dp[i][j][k];
                    dp[i + 1][jj][kk] %= MOD
                }
            }
        }
    }

    wr.println(dp[N][1][1])
}