def nCr(n,r,m=nil)
  r = [r,n-r].min
  if false && (-n).bit_length*r < 63
    s = (1..r).inject(1) { _1*(1+n-_2)/_2}
    return m ? s%m : s
  end
  c = [1] * (r+1)
  f = Array.new(r) {n-_1}
  r.downto(2) {|d|
    x,q,l = c[d],f[i=n%d]
    while x > 0
      q,r = q.divmod d 
      if r>0
        f[i],l = l if l
        q = f[i+=d] or break Prime.prime_division(d).each { c[_1] += _2*x }
      else
        l,x = q,x-1
      end
    end
    l && f[i] = l
  }
  s = f.pop
  f.each {|i| if i>1; s *= i; m && s>=m && s%=m end }
  s
end
M = 10**9+7
N = gets.to_i
raise   if N<3
x = nCr(N,2,M)
x *= 10.pow(N-2,M)
p x * 2 % M