#include <bits/stdc++.h>
#include <string>
#include <cmath>
#include <sstream>
#include <unordered_map>
#define FOR(i, a, b) for (ll i = (a); i < (b); i++)
#define FORD(i, a, b) for(ll i = (a-1); i >= (b); i--)
#define pb(a) push_back(a)
#define mp(a,b) make_pair(a,b)
#define ff first
#define ss second
#define spre cout<<fixed<<setprecision(10);
typedef long long int ll;
using namespace std;
// ll mod=67280421310721;
// ll mod=8589934592;
const ll mod=985661441;
ll INF=1e18;
ll po(ll a,ll b){
	ll re=1;  
	while(b)
	{
		if(b%2==1)
		{
			re=(re*a);
			re%=mod;
		}
		a=(a*a);
		a%=mod;
		b>>=1;
	}
	return re;
}
ll in[1000005];
int main()
{
	ios_base::sync_with_stdio(false);
    cin.tie(NULL);
    cout.tie(NULL);
    #ifndef ONLINE_JUDGE
    freopen("INPUT.txt", "r", stdin);
    freopen("OUTPUT.txt", "w", stdout);
    #endif	
	ll test=1;
	// cin>>test;
	// spre
	while(test--)
	{
		long double a,b,w;
		cin>>a>>b>>w;
		w*=1000;
		int r=floor(w/a);
		int l=ceil(w/b);
		// cout<<l<<' '<<r;
		if(l>r)
		{
			cout<<"UNSATISFIABLE";
		}
		else
		{
			cout<<l<<' '<<r;
		}
	}
	return 0;
}

#include <bits/stdc++.h>
#pragma GCC optimize("Ofast")  
#pragma GCC target("avx,avx2,fma")
 
#define f(i,a,b) for(ll  i = a; i < (ll) b ; i++ ) 
#define af(i,a,b) for(ll i = a; i >= (ll) b ; i--)
#define rep(i,a,b,k) for(ll  i = a; i < (ll) b ; i+= k )
#define arep(i,a,b,k) for(ll i = a; i >= (ll) b ; i-= k)
#define ff first
#define ss second
#define pb push_back
#define mp make_pair
#define all(a) a.begin(), a.end()
#define sz(a) (ll) a.size()
#define sor(a) sort( a.begin(), a.end() )
#define fastio ios_base::sync_with_stdio(false);cin.tie(NULL)
#define ller   ios::sync_with_stdio(false);cin.tie(0)
 
// policy-based
 
 
 
 
using namespace std;
 
typedef long long ll; // ll or ll
typedef long double ld;
typedef pair<ll,ll> ii ;
typedef vector<ll>  vi ;
typedef vector<ii> vii ;
  
const ll MAX = 2e5 + 20;
const ll mod = 998244353;
const ll inf = 1e13;

ll mul(ll a,ll b){
	return (a*b)%mod;
}

ll fac[MAX],inv_fac[MAX];

ll comb(ll n,ll k){
	return mul(fac[n],mul(inv_fac[n-k],inv_fac[k]));
}

ll bp(ll a,ll e){
	if(e == 0) return 1;
	if(e&1) return mul(bp(a,e-1),a)%mod;
	ll x = bp(a,e>>1);
	return (x*x)%mod;
}

int main(){
	fastio;
	fac[0] = inv_fac[0] = inv_fac[1] =  1;
	f(i,1,MAX) fac[i] = mul(fac[i-1],i);
	f(i,2,MAX) inv_fac[i] = mod - (mod/i) * inv_fac[mod%i] % mod;
	ll n,m,k;
	cin >> n >> m >> k;
	if(n == 1 && m == 1){
		cout << k << endl;
		return 0;
	}
	if(n == 1){
		cout << bp(k,m) << endl;
		return 0;
	}
	else if(m == 1){
		cout << bp(k,n) << endl;
		return 0;
	}
	ll ans = 0;
	f(i,1,k+1){
	//	cout << bp(i,n-1) << " " << bp(k-i+1,m) << endl;
		(ans += mul( (bp(i,n) - bp(i-1,n)+ mod)%mod,bp(k-i+1,m) ) )%=mod;
	}
	cout << ans << endl;
	return 0;
}