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
  
  input = sys.stdin.buffer.readline
  
  
  # sys.setrecursionlimit(10**9)
  # from functools import lru_cache
  
  
  def RD():
      return sys.stdin.read()
  
  
  def II():
      return int(input())
  
  
  def MI():
      return map(int, input().split())
  
  
  def MF():
      return map(float, input().split())
  
  
  def LI():
      return list(map(int, input().split()))
  
  
  def LF():
      return list(map(float, input().split()))
  
  
  def TI():
      return tuple(map(int, input().split()))
  
  
  # rstrip().decode('utf-8')
  
  
  def main():
      n = II()
      a = pow(10, n, 10**9 + 7)
      b = pow(9, n, 10**9 + 7)
      c = pow(8, n, 10**9 + 7)
      print(a - 2 * b + c)
  
  
  if __name__ == "__main__":
      main()
  
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"}]