#include using namespace std; const int N=2e5+5,mod=998244353; #define filp(x,y,z) y-=(z),x+=(z),swap(x,y) int qpow(int a,int b){ int res=1; while(b){ if(b&1)res=1ll*a*res%mod; b>>=1;a=1ll*a*a%mod; }return res; } int n,m,k; int jie[N<<1],inv[N<<1]; int C(int n,int m){ return 1ll*jie[n]*inv[m]%mod*inv[n-m]%mod; } int main(){ scanf("%d%d%d",&n,&m,&k);n--,m--;k>>=1; jie[0]=1; for(int i=1;i<=n+m;i++)jie[i]=1ll*jie[i-1]*i%mod; inv[n+m]=qpow(jie[n+m],mod-2); for(int i=n+m;i>=1;i--)inv[i-1]=1ll*inv[i]*i%mod; int x=n,y=n,t=n+m,ans=1ll*C(t,n)*C(t,n)%mod; while(x>=0&&x<=n+m&&y>=0&&y<=n+m){ filp(x,y,k+1);ans=(ans+mod-1ll*C(t,x)*C(t,y)%mod)%mod; filp(x,y,-k-1);ans=(ans+1ll*C(t,x)*C(t,y)%mod)%mod; } x=n,y=n; while(x>=0&&x<=n+m&&y>=0&&y<=n+m){ filp(x,y,-k-1);ans=(ans+mod-1ll*C(t,x)*C(t,y)%mod)%mod; filp(x,y,k+1);ans=(ans+1ll*C(t,x)*C(t,y)%mod)%mod; } printf("%d\n",ans); return 0; }