#include <bits/stdc++.h>
using namespace std;
long long n, m, k;
long long ans;
long long s(long long x) {
  long long ret = 0;
  for (int i = 1; i <= n; i++) ret += min(m, x / i);
  return ret;
}
bool check(long long x) {
  for (int i = 1; i <= n; i++)
    if (x % i == 0)
      if ((x / i) <= m) return true;
  return false;
}
void bs(long long f, long long l) {
  if (f == l) {
    ans = f;
    return;
  }
  long long mid = (f + l) / 2;
  long long k1 = s(mid);
  if (k1 < k) {
    bs(mid + 1, l);
    return;
  }
  if (k1 == k) {
    if (check(mid)) {
      ans = mid;
      return;
    } else {
      bs(f, mid);
      return;
    }
  }
  if (k1 > k) {
    bs(f, mid);
    return;
  }
}
int main() {
  cin >> n >> m >> k;
  bs(1, n * m);
  cout << ans << endl;
  return 0;
}
