#include <algorithm>
#include <iostream>
#include <string>
#include <functional>
#include <vector>
#include <numeric>
#include <iomanip>
#include <utility>
#include <cmath>
#include <climits>
#include <queue>
#include <bitset>
#include <set>
#include <assert.h>
using namespace std;
typedef vector<vector<long> > dim2veclo;
typedef vector<vector<int> > dim2vecin;
typedef vector<vector<double> > dim2vecdo;
typedef vector<vector<long long> > dim2vecll;
typedef vector<int> vecin;
typedef vector<long> veclo;
typedef vector<double> vecdo;
typedef vector<long long> vecll;
typedef vector<bool> vecbo;
typedef vector<vector<bool> > dim2vecbo;
typedef long long ll;
typedef vector < pair<ll, ll> > vecpa;
typedef vector<string> vecst;
typedef pair<ll, ll> pail;


#define rep(i, n) for (int i = 0; i < (int)(n); i++)


int dx[4] = { -1, 0, 1, 0 };
int dy[4] = { 0, 1, 0, -1 };

const ll INF = 100000000000000;


int main() {
    int x, y, z;
    cin >> x >> y >> z;
    if (y * z % x == 0) cout << y * z / x - 1;
    else cout << y * z / x;
    cout << endl;

    return 0;
}
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
const ll MOD = 998244353;

ll pow_mod(ll a, ll n, ll mod) {
  ll res=1;
  while(n>0){
    if(n&1) res=res*a%mod;
    a=a*a%mod;
    n/=2;
  }
  return res;
}

int main() {
  ll N,M,K; cin>>N>>M>>K;
  ll ans = 0;

  if(N==1 || M==1) ans=pow_mod(K,M+N-1,MOD);
  else {
    for(int i=1; i<=K; ++i) {
      ll result1=(pow_mod(i,N,MOD)-pow_mod(i-1,N,MOD)+MOD)%MOD;
      ll result2=pow_mod(K-i+1,M,MOD);
      ans=(ans+result1*result2)%MOD;
    }
  }
  cout << ans << endl;
}
