#include <bits/stdc++.h>
long long int max(long long int a, long long int b) { return a > b ? a : b; }
long long int n, m, k;
int main(void) {
  scanf("%lld%lld%lld", &n, &m, &k);
  long long int x, y, a, b;
  long long int ans = -1;
  for (x = max(n / (k + 1), 1); x <= n; x++) {
    a = n / x - 1;
    b = max(k - a, 0);
    y = m / (b + 1);
    if (y == 0) break;
    if (y <= m && x * y > ans) ans = x * y;
    b = m / y - 1;
    a = max(k - b, 0);
    x = n / (a + 1);
    if (y <= m && x * y > ans) ans = x * y;
    if (y > m || b > m - 1) break;
  }
  if (ans <= 0)
    printf("-1\n");
  else
    printf("%lld\n", ans);
  return 0;
}
