output_description: Print the answer modulo 10^9 + 7.
  
  * * *
input_description: Input is given from Standard Input in the following format:
  
      
      
      N
attempt: import sys
  
  
  def input():
      return sys.stdin.readline().strip()
  
  
  def list2d(a, b, c):
      return [[c for j in range(b)] for i in range(a)]
  
  
  def list3d(a, b, c, d):
      return [[[d for k in range(c)] for j in range(b)] for i in range(a)]
  
  
  def list4d(a, b, c, d, e):
      return [
          [[[e for l in range(d)] for k in range(c)] for j in range(b)] for i in range(a)
      ]
  
  
  def ceil(x, y=1):
      return int(-(-x // y))
  
  
  def INT():
      return int(input())
  
  
  def MAP():
      return map(int, input().split())
  
  
  def LIST(N=None):
      return list(MAP()) if N is None else [INT() for i in range(N)]
  
  
  def Yes():
      print("Yes")
  
  
  def No():
      print("No")
  
  
  def YES():
      print("YES")
  
  
  def NO():
      print("NO")
  
  
  sys.setrecursionlimit(10**9)
  INF = 10**19
  MOD = 10**9 + 7
  EPS = 10**-10
  
  N = INT()
  
  dp = list2d(3, N + 1, 0)
  dp[0][0] = 1
  for i in range(N):
      dp[0][i + 1] += dp[0][i] * 8
      dp[1][i + 1] += dp[0][i] * 2
      dp[1][i + 1] += dp[1][i] * 9
      dp[2][i + 1] += dp[1][i]
      dp[2][i + 1] += dp[2][i] * 10
      dp[0][i + 1] %= MOD
      dp[1][i + 1] %= MOD
      dp[2][i + 1] %= MOD
  ans = dp[2][N]
  print(ans)
  
problem_description: 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.
samples: [{"input": "2", "output": "2\n    \n\nTwo sequences \\\\{0,9\\\\} and \\\\{9,0\\\\} satisfy all conditions.\n\n* * *"}, {"input": "1", "output": "0\n    \n\n* * *"}, {"input": "869121", "output": "2511445"}]