#include <bits/stdc++.h>
using namespace std;
int m, n;
long long k;
inline bool ok(long long x) {
  long long tmp = 0;
  for (int i = (1); i <= (m); i = i + 1) {
    tmp += min(1LL * n, x / i);
    if (tmp >= k) return (true);
  }
  return (false);
}
void process(void) {
  cin >> m >> n >> k;
  long long l = 0;
  long long r = 1LL * m * n;
  while (true) {
    if (l == r) {
      cout << l;
      return;
    }
    if (r - l == 1) {
      if (ok(l))
        cout << l;
      else
        cout << r;
      return;
    }
    long long m = (l + r) >> 1;
    if (ok(m))
      r = m;
    else
      l = m + 1;
  }
}
int main(void) {
  process();
  return 0;
}
