#include <bits/stdc++.h>
using namespace std;
long long n, m, s;
long long hoge(long long a, long long b) {
  long long mx = 0, i, j;
  for (i = 1; i <= sqrt(a); i++) {
    if (a % i) continue;
    if (s - i + 2 > 0) {
      long long tmp = (a / i) * int(b / (s - i + 2));
      mx = max(mx, tmp);
    }
    if (s - a / i + 2 > 0) {
      long long temp = i * int(b / (s - (a / i) + 2));
      mx = max(mx, temp);
    }
  }
  return mx;
}
int main() {
  long long i, j, k;
  cin >> n >> m >> s;
  if (n + m - 2 < s) {
    cout << -1 << endl;
    return 0;
  }
  long long mx = max(hoge(n, m), hoge(m, n));
  cout << (mx > 0 ? mx : -1) << endl;
  return 0;
}
