#include const int mod = 998244353; int n, m, k, f[400010], ff[400010], ans; int C(int x, int y) { return x < y ? 0 : 1ll * f[x] * ff[y] % mod * ff[x - y] % mod; } int calc(int x, int y) { return 1ll * C(m, m - x - y >> 1) * C(m, m - x + y >> 1) % mod; } int main() { scanf("%d %d %d", &n, &m, &k), n--, m--, k >>= 1; if (n > m) n ^= m ^= n ^= m; m += n, n = m - n - n, f[0] = f[1] = ff[0] = ff[1] = 1; for (int i = 2; i <= 400005; i++) f[i] = 1ll * f[i - 1] * i % mod, ff[i] = 1ll * (mod - mod / i) * ff[mod % i] % mod; for (int i = 2; i <= 400005; i++) ff[i] = 1ll * ff[i] * ff[i - 1] % mod; for (int c = 1; ; c++) { int ln = 2 * c * (k + 1); if (ln + n > m) break; ans = (ans + (c & 1 ? mod - calc(n, ln) : calc(n, ln))) % mod; } ans = ans * 2ll % mod, ans = (ans + calc(0, n)) % mod; printf("%d", ans); return 0; }