#include <bits/stdc++.h>
using namespace std;
const long long mod = 1e9 + 7;
long long fact[1000100], dfact[1000100];
long long bin_pow(long long a, long long n) {
  long long res(1);
  while (n) {
    if (n & 1) res = res * a % mod;
    a = a * a % mod;
    n >>= 1;
  }
  return res;
}
void pre_calc() {
  fact[0] = dfact[0] = 1;
  for (int i(1); i < 1000100; ++i) {
    fact[i] = fact[i - 1] * i % mod;
    dfact[i] = bin_pow(fact[i], mod - 2);
  }
}
long long C(long long n, long long k) {
  return fact[n] * dfact[n - k] % mod * dfact[k] % mod;
}
int main() {
  pre_calc();
  int n;
  cin >> n;
  long long ans(0);
  long long pre(0);
  for (int m(1); m < n; ++m)
    if (m * 2 >= n) {
      long long d = (2 * m - n) % mod;
      long long c = C(m - 1, d);
      long long cur =
          (mod - pre + C(m - 1, d) * fact[m] % mod * fact[n - 1 - m] % mod) %
          mod;
      pre += cur;
      pre %= mod;
      ans += cur * m;
      ans %= mod;
    }
  cout << ans;
}
