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 C (GCC 9.2.1) (judge verdict: Accepted)

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <math.h>
#include <ctype.h>
#include <inttypes.h>

//int compare_int(const void *a, const void *b){//qsort 整数比較<
//	return *(int*)a - *(int*)b;
//}
//int compare_int2(const void *a, const void *b){//qsort 整数比較>
//	return *(int*)b - *(int*)a;
//}
//

//long long int combination(int n, int r)
//{
//	if (r == 0 || r == n)
//		return (1);
//	else if (r == 1)
//		return (n);
//	return (combination(n - 1, r - 1) + combination(n - 1, r));
//}

int main(void){
	int n;
	long long int nine=0,eigth=0,ten=0,ans=0;
	int i;

	scanf("%d",&n);
	if(n<2){
		printf("0");
		return 0;
	}else if(n==2){
		printf("2");
		return 0;
	}
	for(i=0;i<n;i++){
		if(i==0){
			nine=9;
			eigth=8;
			ten=10;
		}
		else{
			nine=nine*9%1000000007;
			eigth=eigth*8%1000000007;
			ten=ten*10%1000000007;
		}
	}
	ans=(ten+eigth-nine*2)%1000000007;
	if(ans<0){
		ans=1000000007+ans;
	}
	printf("%lld",ans);

	return 0;
}