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.*;
public class Main {
	public static void main(String[] args){
		Scanner sc = new Scanner(System.in);

		long mod = 1000000007L;

		int n = sc.nextInt();

		long x0x9 = 0;
		long x0o9 = 0;
		long o0x9 = 0;
		long o0o9 = 0;

		for ( int i=1; i<=n; i++ ) {

			if ( i==1 ) {
				x0x9 = 8;
				x0o9 = 1;
				o0x9 = 1;
				continue;
			}

			long pre_x0x9 = x0x9;
			long pre_x0o9 = x0o9;
			long pre_o0x9 = o0x9;
			long pre_o0o9 = o0o9;

			long wk_x0o9 = 0;
			long wk_o0x9 = 0;
			long wk_o0o9 = 0;

			x0x9 = (pre_x0x9*8)%mod;
			x0o9 = (pre_x0x9 + pre_x0o9*9)%mod;
			o0x9 = (pre_x0x9 + pre_o0x9*9)%mod;
			o0o9 = (pre_x0o9 + pre_o0x9 + pre_o0o9*10)%mod;

		}

		System.out.println(o0o9);
	}
}