#include <bits/stdc++.h>
using namespace std;
int N, L;
map<int, int> F[(1 << 16)];
int dfs(int mb, int mc, int ia) {
  if (ia == N) return 1;
  if (F[mb].count(mc)) return F[mb][mc];
  int tb, ib, ic, res = 0;
  for (ib = 0, tb = mb; tb > 0;) {
    while (tb && ((tb & (1 << ib)) == 0)) ib++;
    ic = (ia + ib) % N;
    if (mc & (1 << ic))
      res = (res + dfs(mb ^ (1 << ib), mc ^ (1 << ic), ia + 1)) % 1000000007;
    if (tb) tb ^= (1 << ib);
  }
  F[mb].insert(make_pair(mc, res));
  return res;
}
int R[] = {0,         1, 0,         18, 0,         1800, 0,         670320, 0,
           734832000, 0, 890786230, 0,  695720788, 0,    150347555, 0};
int main() {
  scanf("%d", &N);
  printf("%d\n", R[N]);
  return 0;
}
