#include <bits/stdc++.h>
using namespace std;
long long n, m, k;
int main() {
  scanf("%I64d%I64d%I64d", &n, &m, &k);
  long long ans = 0;
  if (k > n + m - 2) {
    puts("-1");
    return 0;
  }
  if (k >= n - 1) {
    long long kk = k - n + 1;
    long long tp = m / (kk + 1);
    ans = max(ans, tp);
  } else {
    long long tp = n / (k + 1);
    tp = tp * m;
    ans = max(ans, tp);
  }
  if (k >= m - 1) {
    long long kk = k - m + 1;
    long long tp = n / (kk + 1);
    ans = max(ans, tp);
  } else {
    long long tp = m / (k + 1);
    tp = tp * n;
    ans = max(ans, tp);
  }
  cout << ans << endl;
  return 0;
}
