from sys import exit, stdin



input = stdin.readline

import copy



# from collections import deque,Counter

# import numpy as np





(N,) = list(map(int, input().split()))



mod = 10 ** 9 + 7

a, b, c = 1, 1, 2

for i in range(N):

    a = a * 10 % mod

    b = b * 8 % mod

    c = c * 9 % mod



ans = (a + b - c) % mod



print(ans)

from sys import exit, stdin



input = stdin.readline

import copy



# from collections import deque,Counter

# import numpy as np





def pow_mod(a, n, d):

    tmp = 1

    for _ in range(n):

        tmp = (tmp * a) % d

    return tmp





(N,) = list(map(int, input().split()))

mod = 10 ** 9 + 7

ans = (pow_mod(10, N, mod) + pow_mod(8, N, mod) - 2 * pow_mod(9, N, mod)) % mod



print(ans)

from sys import exit, stdin

input = stdin.readline
import copy

# from collections import deque,Counter
# import numpy as np
(N,) = list(map(int, input().split()))
mod = 10**9 + 7
a, b, c = 1, 1, 2
for i in range(N):
    a = a * 10 % mod
    b = b * 8 % mod
    c = c * 9 % mod
ans = (a + b - c) % mod
print(ans)

from sys import exit, stdin

input = stdin.readline
import copy

# from collections import deque,Counter
# import numpy as np
def pow_mod(a, n, d):
    tmp = 1
    for _ in range(n):
        tmp = (tmp * a) % d
    return tmp


(N,) = list(map(int, input().split()))
mod = 10**9 + 7
ans = (pow_mod(10, N, mod) + pow_mod(8, N, mod) - 2 * pow_mod(9, N, mod)) % mod
print(ans)

+def pow_mod(a, n, d): +    tmp = 1 +    for _ in range(n): +        tmp = (tmp * a) % d +    return tmp + + -a, b, c = 1, 1, 2 -for i in range(N): -    a = a * 10 % mod -    b = b * 8 % mod -    c = c * 9 % mod -ans = (a + b - c) % mod +ans = (pow_mod(10, N, mod) + pow_mod(8, N, mod) - 2 * pow_mod(9, N, mod)) % mod