func_code_string: #include <bits/stdc++.h>   int dx[] = {+0, +0, -1, +1, +1, +1, -1, -1};   int dy[] = {+1, -1, +0, +0, +1, -1, +1, -1};   using namespace std;   int n, mod = 1000000000 + 7;   long long res;   bool f1[20], f2[20];   int r[8] = {1, 18, 1800, 670320, 734832000, 890786230, 695720788, 150347555};   void attempt(int i) {     if (i == n + 1) {       res++;       return;     }     for (int j = int(1); j <= int(n); j++)       if (f1[j]) {         int k = (n - i + 1 + j - 2) % n + 1;         if (f2[k]) {           f1[j] = f2[k] = false;           attempt(i + 1);           f1[j] = f2[k] = true;         }       }   }   int main() {     cin >> n;     if (n % 2 == 0)       cout << 0 << endl;     else       cout << r[n / 2] << endl;     return 0;   }   