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: Wrong Answer)

#include<bits/stdc++.h>
#define MAX 1000000007
#define ll long long int
#define fo(i,a,n) for(int i=a;i<n;i++)
#define ull unsigned long long int
#define pb push_back
#define eb emplace_back
using namespace std;

ll power(ll x, ll y) {
    ll res = 1;
    x = x % MAX;
    while (y > 0) {
        if (y & 1) {
            res = ((res)%MAX * (x)%MAX) % MAX;
        }
        y = y>>1; 
        x = ((x)%MAX*(x)%MAX) % MAX;
    }
    return res;
}


int main(){

    ios_base::sync_with_stdio(false);
    cin.tie(0);
    cout.tie(0);

    // int t;
    // cin>>t;
    // while(t--){
    // }
    ll n;
    cin>>n;

    ll ans = power(10,n);
    ll dub = power(8,n);
    ll fub = (power(9,n)%MAX + power(9,n)%MAX)%MAX;
    ans = ( ans + dub - fub )%MAX; 
    cout<<ans<<endl;

    return 0;
}