#include<bits/stdc++.h>
using namespace std;
#define ll long long int
#define pii pair<int,int>
#define pll pair<ll,ll>
#define pb push_back
#define f first
#define s second
#define mk make_pair
ll mod(ll B,ll P,ll M)
{
    if(P==0)
        return 1;
    else if(P==1)
       return B%M;
    else if(P%2==0){
      ll x=mod(B,P/2,M)%M;
      return ((x*x)%M);
    }
    else if(P%2){
      ll x=mod(B,(P-1)/2,M)%M;
      ll x2=(x*x)%M;
      return ((x2)*(B%M))%M;
    }
}
int main()
{
  ios_base::sync_with_stdio(false);
  cin.tie(NULL);
  #ifndef ONLINE_JUDGE
  freopen("input.txt", "r", stdin);
  freopen("output.txt", "w", stdout);
  #endif
  int t=1;
  //cin>>t;
  while(t--)
  {
    ll ans=0;
    ll modulo=998244353;
    ll n,m,k;
    cin>>n>>m>>k;
    if(n==1&&m==1)
    {
      ans=k;
    }
    else if(n==1)
    {
      ans=mod(k,m,modulo);
    }
    else if(m==1)
    {
      ans=mod(k,n,modulo);
    }
    else
    {
      for(int i=1;i<=k;i++)
      {
        ll in=mod(i,n,modulo);
        ll in1=mod(i-1,n,modulo);
        ll term1=(in-in1+modulo)%modulo;
        ll term2=mod(k-i+1,m,modulo);
        ans=(ans+term1*term2)%modulo;
      }
    }
    cout<<ans;
  }//while  
}//main
#include<bits/stdc++.h>
using namespace std;
int read() {
	char c=getchar(); int x=0,f=1;
	while (c<'0' || c>'9') {
		if (c=='-') f=-1;
		c=getchar();
	}
	while (c>='0' && c<='9') {
		x=x*10+c-'0';
		c=getchar();
	}
	return x*f;
}
const int p=998244353;
int f[200005],g[200005],sf[200005];
int pow_mod(int x,int k) {
	int ans=1;
	while (k) {
		if (k&1) ans=1LL*ans*x%p;
		x=1LL*x*x%p;
		k>>=1;
	}
	return ans;
}
void add(int &x,int y) {
	x+=y;
	if (x>=p) x-=p;
}
int main() {
	int n=read(),m=read(),k=read();
	for (int i=1; i<=k; i++) f[i]=(pow_mod(i,n)-pow_mod(i-1,n)+p)%p;
	for (int i=1; i<=k; i++) g[i]=(pow_mod(i,m)-pow_mod(i-1,m)+p)%p;
	sf[0]=0;
	for (int i=1; i<=k; i++) sf[i]=(sf[i-1]+f[i])%p;
	int ans=0;
	if (n==1 || m==1) {
		for (int i=1; i<=k; i++) add(ans,1LL*f[i]*g[k+1-i]%p);
	}
	else {
		for (int i=1; i<=k; i++) add(ans,1LL*sf[i]*g[k+1-i]%p);
	}
	cout<<ans<<endl;
	return 0;
}
