#include <bits/stdc++.h>
using namespace std;
long long n, m, k;
bool judge(long long mid) {
  long long ans = 0;
  for (int i = 1; i <= n; i++) {
    long long v = mid / i;
    if (v * i == mid) v--;
    ans += min(v, m);
  }
  if (ans < k) return true;
  return false;
}
int main() {
  scanf("%I64d%I64d%I64d", &n, &m, &k);
  long long l = 1, r = n * m + 1;
  while (l < r) {
    long long mid = (l + r) >> 1;
    if (judge(mid))
      l = mid + 1;
    else
      r = mid;
  }
  printf("%I64d\n", l - 1);
  return 0;
}
