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# (.NET Core 3.1.201) (judge verdict: Wrong Answer)

using System;
using System.Collections;
using System.Collections.Generic;

using System.Linq;
public class abc178_c {

    static DateTime START_TIME;
    public static void Main() {
        START_TIME = DateTime.Now;
#if MYTEST
        while (true) {
            System.Console.Error.WriteLine("TEST MODE>");
            START_TIME = DateTime.Now;
            System.Console.WriteLine(Answer());  // debug
            System.Console.WriteLine($"{(DateTime.Now - START_TIME).Seconds} sec.");
        }
#else
        System.Console.WriteLine(Answer());
#endif
    }
    public static void debugOut(string str) {
#if MYTEST
        System.Console.Error.Write(str);
#endif
    }
    public static long PowMod(long x, long n, long mod) {
        long result = 1;
        if (mod <= 0) return 0;
        for (int i = 0; i < n; i++) {
            result = (result * x) % mod;
        }
        return result;
    }
    public static string Answer() {
        var p = System.Console.ReadLine().Trim().Split(' ');
        var N = long.Parse(p[0]);
        var mod = (long)Math.Pow(10, 9) + 7;

        var ans = PowMod(10, N, mod) - (PowMod(9, N, mod) * 2) + PowMod(8, N, mod);
        ans = ans % mod;
        return ans.ToString();
    }
}