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 Java (OpenJDK 11.0.6) (judge verdict: Accepted)

import java.util.Scanner;

public class Main {
	
	private static final long MOD = 1000000000 + 7;
	
	public static void main(String[] args){
		try(Scanner sc = new Scanner(System.in)) {
			
			int n = sc.nextInt();
			
			long[] dp0 = new long[n+1];
			long[] dp9 = new long[n+1];
			long[] dpNone = new long[n+1];
			long[] dp19 = new long[n+1];
			
			dp0[1] = 1;
			dp9[1] = 1;
			dpNone[1] = 8;
			dp19[1] = 0;
			
			for(int i = 2 ; i <= n ; i++ ) {
				dp0[i] = add(mult(dp0[i-1],9), dpNone[i-1]);
				dp9[i] = add(mult(dp9[i-1],9), dpNone[i-1]);
				dpNone[i] = mult(dpNone[i-1], 8);
				dp19[i] = (mult(dp19[i-1], 10) + dp0[i-1] + dp9[i-1]) % MOD;
			}
			
			System.out.println(dp19[n]);
		}
	}
	
	public static long mult(long a, long b) {
		return (a * b) % MOD; 
	}
	
	public static long add(long a, long b) {
		return (a + b) % MOD;
	}

}