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: Time Limit Exceeded)

import java.math.BigDecimal;
import java.util.Scanner;

public class Main {
	public static void main(String[] args){

		Scanner sc = new Scanner(System.in);

		// 整数の入力
		BigDecimal a = sc.nextBigDecimal();
		
		Main m = new Main();
		
		BigDecimal b = m.myPow( new BigDecimal(10),a);
		BigDecimal c = m.myPow( new BigDecimal(9),a);
		BigDecimal d = m.myPow( new BigDecimal(8),a);

		System.out.println(b.subtract(c).subtract(c).add(d).remainder(new BigDecimal(1000000007)));
	}

	private BigDecimal myPow(BigDecimal _x, BigDecimal _n)
	{
		BigDecimal ret = new BigDecimal(1);
		while(_n.compareTo(new BigDecimal(0)) > 0)
		{
			if((_n.remainder(new BigDecimal(2))).compareTo(new BigDecimal(0)) == 0)
			{
				_x = _x.multiply(_x);
				_n = _n.divide(new BigDecimal(2));
			}
			else
			{
				ret = ret.multiply(_x);
				_n = _n.subtract(new BigDecimal(1));
			}
		}
		return ret;
	}
}