#include <bits/stdc++.h>
using namespace std;
using ll = long long;
char buf[1 << 21], *p1 = buf, *p2 = buf;
template <typename T>
inline void read(T &x) {
  char c;
  int f = 1;
  while (!isdigit(
      c = (p1 == p2 &&
                   (p2 = (p1 = buf) + fread(buf, 1, 1 << 21, stdin), p1 == p2)
               ? EOF
               : *p1++)))
    (c == '-') && (f = -1);
  x = c ^ 48;
  while (
      isdigit(c = (p1 == p2 && (p2 = (p1 = buf) + fread(buf, 1, 1 << 21, stdin),
                                p1 == p2)
                       ? EOF
                       : *p1++)))
    x = x * 10 + (c ^ 48);
  x *= f;
}
inline int read() {
  int x = 0, f = 1;
  char ch = getchar();
  while (!isdigit(ch)) {
    if (ch == '-') f = -1;
    ch = getchar();
  }
  while (isdigit(ch)) {
    x = (x << 1) + (x << 3) + ch - '0';
    ch = getchar();
  }
  return x * f;
}
const int mod = 998244353, M = 3600 + 10;
int w, h, mx, n, r[M], c[M], cntx, cnty;
ll fac[M], inv[M], g[M][M], f[M][M], ans;
ll ksm(ll a, ll b) {
  ll y = 1;
  for (; b; a = a * a % mod, b >>= 1)
    if (b & 1) y = y * a % mod;
  return y;
}
ll C(int a, int b) { return fac[a] * inv[b] % mod * inv[a - b] % mod; }
ll cal(int a, int b) {
  return g[w][a] * C(w - cnty - 2 * a, b) % mod * f[h][b] % mod *
         C(h - cntx - 2 * b, a) % mod * fac[a] % mod * fac[b] % mod;
}
int main() {
  h = read();
  w = read();
  n = read();
  for (int i = 1; i <= n; i++) {
    int x1x = read(), y1y = read(), x2x = read(), y2y = read();
    r[x1x] = r[x2x] = c[y1y] = c[y2y] = 1;
  }
  mx = max(h, w);
  fac[0] = 1;
  for (int i = 1; i <= mx; i++) fac[i] = fac[i - 1] * i % mod;
  inv[mx] = ksm(fac[mx], mod - 2);
  for (int i = mx; i >= 1; i--) inv[i - 1] = inv[i] * i % mod;
  for (int i = 1; i <= h; i++) cntx += r[i];
  for (int i = 1; i <= w; i++) cnty += c[i];
  for (int i = 0; i <= h; i++) f[i][0] = 1;
  for (int i = 2; i <= h; i++)
    for (int j = 1; 2 * j <= i; j++)
      if (r[i] || r[i - 1])
        f[i][j] = f[i - 1][j];
      else
        f[i][j] = (f[i - 1][j] + f[i - 2][j - 1]) % mod;
  for (int i = 0; i <= w; i++) g[i][0] = 1;
  for (int i = 2; i <= w; i++)
    for (int j = 1; 2 * j <= i; j++)
      if (c[i] || c[i - 1])
        g[i][j] = g[i - 1][j];
      else
        g[i][j] = (g[i - 1][j] + g[i - 2][j - 1]) % mod;
  for (int i = 0; i <= h && 2 * i <= w; i++)
    for (int j = 0; j <= w && 2 * j <= h; j++)
      if (2 * i + j <= w - cnty && i + 2 * j <= h - cntx)
        ans = (ans + cal(i, j)) % mod;
  printf("%lld\n", ans);
  return 0;
}
