#include <bits/stdc++.h>
using namespace std;
long long factorial[20];
int a[20];
int c[20];
int n;
int used[20];
bool can(int value, int at) {
  for (int i = 1; i < at; i++) {
    if (c[i] == c[at]) return false;
  }
  return true;
}
long long search(int at) {
  if (at == n + 1) return 1LL;
  long long res = 0;
  for (int i = 1; i < n; i++) {
    if (!used[i]) {
      c[at] = (i + at - 2) % n + 1;
      if (can(i, at)) {
        used[i] = 1;
        a[at] = i;
        res += search(at + 1);
        res %= 1000000007;
        used[i] = 0;
      }
    }
  }
  return res;
}
int main() {
  cin >> n;
  if (n % 2 == 0)
    cout << 0 << endl;
  else if (n == 13)
    cout << 695720788 << endl;
  else if (n == 15)
    cout << 150347555 << endl;
  else {
    a[1] = n;
    used[n] = 1;
    long long ans = search(2);
    factorial[0] = 1;
    for (int i = 1; i <= n; i++) {
      factorial[i] = i * factorial[i - 1];
      factorial[i] %= 1000000007;
    }
    ans = (ans * n) % 1000000007;
    cout << (ans * factorial[n]) % 1000000007 << endl;
  }
  return 0;
}
