#include <bits/stdc++.h>
using namespace std;
int u1[20];
int u2[20];
int n;
int mod = (int)1e9 + 7;
int p[20][20];
long long res;
int tot;
void calc(int k) {
  tot++;
  if (k >= n) {
    res++;
    res %= mod;
    return;
  }
  k++;
  for (int a = 1; a <= n; a++) {
    int c = k;
    int b = p[c][a];
    if (!u1[a] && !u2[b]) {
      u1[a] = 1;
      u2[b] = 1;
      calc(k);
      u1[a] = 0;
      u2[b] = 0;
    }
  }
}
void initP() {
  for (int c = 1; c <= n; c++) {
    for (int a = 1; a <= n; a++) {
      for (int b = 1; b <= n; b++) {
        if (c == (a + b - 2) % n) {
          p[c][a] = b;
        }
      }
    }
  }
}
void init() {
  memset(u1, 0, sizeof(u1));
  memset(u2, 0, sizeof(u2));
  memset(p, 0, sizeof(p));
  res = 0;
  initP();
}
int r[20] = {0,         1, 0,         18, 0,         1800, 0,         670320, 0,
             734832000, 0, 890786230, 0,  695720788, 0,    150347555, 0};
int main() {
  while (scanf("%d", &n) == 1) {
    if (n % 2 == 0) {
      printf("0\n");
      continue;
    }
    res = r[n];
    printf("%I64d\n", res);
  }
  return 0;
}
