func_code_string: #include <bits/stdc++.h>   using namespace std;   const int N = 3610, mod = 998244353;   template <typename T>   void read(T &x) {     int ch = getchar();     x = 0;     for (; ch <  0  || ch >  9 ; ch = getchar())       ;     for (; ch >=  0  && ch <=  9 ; ch = getchar()) x = x * 10 + ch -  0 ;   }   void qmo(int &x) { x += x >> 31 & mod; }   int ksm(int a, int b) {     int res = 1;     for (; b; b >>= 1, a = (long long)a * a % mod)       if (b & 1) res = (long long)res * a % mod;     return res;   }   int n, m, k, cnt1, cnt2, f[N][N >> 1], g[N][N >> 1], fac[N], inv[N], ans;   bool vis1[N], vis2[N];   void init(int n) {     fac[0] = 1;     for (int i = 1; i <= n; ++i) fac[i] = (long long)fac[i - 1] * i % mod;     inv[n] = ksm(fac[n], mod - 2);     for (int i = n; i; --i) inv[i - 1] = (long long)inv[i] * i % mod;   }   int main() {     read(n);     read(m);     read(k);     for (int i = 1, a1, b1, a2, b2; i <= k; ++i) {       read(a1);       read(b1);       read(a2);       read(b2);       vis1[a1] = vis1[a2] = vis2[b1] = vis2[b2] = true;     }     init(max(n, m));     for (int i = 0; i <= n; ++i) f[i][0] = 1;     for (int i = 1; i <= n; ++i)       if (!vis1[i]) ++cnt1;     for (int i = 0; i <= m; ++i) g[i][0] = 1;     for (int i = 1; i <= m; ++i)       if (!vis2[i]) ++cnt2;     for (int i = 1; i <= n; ++i)       for (int j = 1; j <= (i >> 1); ++j) {         f[i][j] = f[i - 1][j];         if (j && !vis1[i] && !vis1[i - 1]) qmo(f[i][j] += f[i - 2][j - 1] - mod);       }     for (int i = 1; i <= m; ++i)       for (int j = 1; j <= (i >> 1); ++j) {         g[i][j] = g[i - 1][j];         if (j && !vis2[i] && !vis2[i - 1]) qmo(g[i][j] += g[i - 2][j - 1] - mod);       }     for (int i = 0; (i << 1) <= cnt1; ++i)       for (int j = 0; (i << 1) + j <= cnt1 && (j << 1) + i <= cnt2; ++j)         ans = (ans + (long long)f[n][i] * g[m][j] % mod * fac[cnt2 - (j << 1)] %                          mod * inv[cnt2 - (j << 1) - i] % mod *                          fac[cnt1 - (i << 1)] % mod * inv[cnt1 - (i << 1) - j]) %               mod;     printf( %d n , ans);   }   