#include <bits/stdc++.h>
using namespace std;
const int N = 3600 + 100;
const int maxn = 3600;
const long long mod = 998244353;
template <typename T>
void read(T &x) {
  int p = 1;
  x = 0;
  char c = getchar();
  while (c < '0' || c > '9') {
    if (c == '-') p = -1;
    c = getchar();
  }
  while (c >= '0' && c <= '9') {
    x = x * 10 + c - 48;
    c = getchar();
  }
  x *= p;
}
bool vis_x[N], vis_y[N];
long long f[N], g[N];
long long f0[N], g0[N];
long long inv[N], jc[N];
long long pow1(long long x, int k) {
  long long r = 1;
  while (k) {
    if (k & 1) r *= x;
    x *= x;
    x %= mod;
    r %= mod;
    k >>= 1;
  }
  return r;
}
void init() {
  jc[0] = 1;
  for (long long i = 1; i <= maxn; i++) jc[i] = jc[i - 1] * i % mod;
  inv[maxn] = pow1(jc[maxn], mod - 2);
  for (long long i = maxn - 1; i >= 0; i--) inv[i] = inv[i + 1] * (i + 1) % mod;
}
long long C(int n, int m) {
  if (m > n) return 0;
  return jc[n] * inv[m] % mod * inv[n - m] % mod;
}
int main() {
  init();
  int h, w, n, x, y;
  read(h);
  read(w);
  read(n);
  for (int i = 1; i <= n; i++) {
    read(x);
    read(y);
    vis_x[x] = 1;
    vis_y[y] = 1;
    read(x);
    read(y);
    vis_x[x] = 1;
    vis_y[y] = 1;
  }
  g[0] = g0[0] = f[0] = f0[0] = 1;
  for (int i = 2; i <= h; i++)
    for (int j = h; j >= 1; j--) {
      f0[j] = f[j];
      if (!vis_x[i] && !vis_x[i - 1]) {
        f[j] += f0[j - 1];
        if (f[j] >= mod) f[j] -= mod;
      }
    }
  for (int i = 2; i <= w; i++)
    for (int j = w; j >= 1; j--) {
      g0[j] = g[j];
      if (!vis_y[i] && !vis_y[i - 1]) {
        g[j] += g0[j - 1];
        if (g[j] >= mod) g[j] -= mod;
      }
    }
  long long ans = 0;
  int dh = h, dw = w;
  for (int i = 1; i <= h; i++)
    if (vis_x[i]) --dh;
  for (int i = 1; i <= w; i++)
    if (vis_y[i]) --dw;
  long long tmp;
  for (int dx = 0; dx * 2 <= dh; dx++)
    for (int dy = 0; dy * 2 <= dw; dy++) {
      tmp = f[dx] * g[dy] % mod;
      tmp = tmp * (jc[dx] * jc[dy] % mod) % mod;
      tmp = tmp * (C(dh - dx * 2, dy) * C(dw - dy * 2, dx) % mod) % mod;
      ans += tmp;
      if (ans >= mod) ans -= mod;
    }
  cout << ans << "\n";
  return 0;
}
