#include<bits/stdc++.h>
using namespace std;
#define ll long long
#define db long double
#define fi first
#define se second
#define mem(x) memset(x,0,sizeof x)
db x0,y00,r;
bool isv(int x,int y){
	db dx=1.0*x-x0;
	db dy=1.0*y-y00;
	dx*=dx;dy*=dy;
	dx+=dy;
	return dx<=(r)+1e-10;
}
int main(){
	cin>>x0>>y00>>r;
	int xl=ceil(x0-r);
	int xr=floor(x0+r);ll ans=0;
	//cout<<xl<<" "<<xr<<endl;
	if(xl>xr) {
		cout<<0<<endl;
		return 0;
	}
	r*=r;
	for(int x=xl;x<=xr;x++){
		db dx=x-x0;
		dx*=dx;
		db dr=r-dx;
		if(dr<-1e-10) break;
		dr=abs(dr);
		dr=sqrt(dr);
		//cout<<dr<<endl;
		db yl=y00-dr;
		db yr=y00+dr;
	//	cout<<yyl<<" "<<yyr<<endl;
		int yyl=ceil(yl);
		int yyr=floor(yr);
		//cout<<yyl<<" "<<yyr<<endl;
		if(yyr-yyl<=20){
			for(int j=yyl-1;j<=yyr+1;j++){
				ans+=isv(x,j);
			}
			continue;
		}
		//if(yyl>yyr) break
		for(int j=yyl-5;j<=yyl+5;j++) ans+=isv(x,j);
		for(int j=yyr-5;j<=yyr+5;j++) ans+=isv(x,j);
	//	cout<<yyl<<" "<<yyr<<endl;
		ans+=(yyr-yyl-11);
		//cout<<"?"<<x<<" "<<yyr-yyl+1<<endl;
	}
	cout<<ans<<endl;
} 
#include <bits/stdc++.h>
using namespace std;

using ll = long long;
using PII = pair<char, ll>;

#define FOR(i, a, n) for (ll i = (ll)a; i < (ll)n; ++i)
#define REP(i, n) FOR(i, 0, n)
#define ALL(x) x.begin(), x.end()
#define POPCOUNT(x) __builtin_popcount(x)
template <typename T> void chmin(T &a, const T &b) { a = min(a, b); }
template <typename T> void chmax(T &a, const T &b) { a = max(a, b); }

const ll INF = 1LL << 60;

struct FastIO {
    FastIO() {
        cin.tie(0);
        ios::sync_with_stdio(0);
    }
} fastiofastio;

const ll MOD = 998244353;

ll gcd(ll a, ll b) { return b ? gcd(b, a % b) : a; }
ll lcm(ll a, ll b) { return a / gcd(a, b) * b; }

// BEGIN CUT
ll modpow(ll x, ll y, ll m) {
    ll a = 1, p = x;
    while (y > 0) {
        if (y % 2 == 0) {
            p = (p * p) % m;
            y /= 2;
        } else {
            a = (a * p) % m;
            y--;
        }
    }
    return a;
}
// END CUT

int main() {
    int N, M, K;
    cin >> N >> M >> K;
    if (N == 1) {
        cout << modpow(K, M, MOD) << endl;
        return 0;
    }
    if (M == 1) {
        cout << modpow(K, N, MOD) << endl;
        return 0;
    }
    ll ans = 0;
    for (int x = 1; x <= K; x++) {
        ll a = modpow(x, N, MOD);
        (a += MOD - modpow(x - 1, N, MOD)) %= MOD;
        ll b = modpow(K - x + 1, M, MOD);
        (ans += a * b % MOD) %= MOD;
    }
    cout << ans << endl;
}