#include <bits/stdc++.h>
using namespace std;
void read_file(bool outToFile = true) {}
int n, m;
long long k;
long long test(long long x) {
  long long sum = 0;
  for (int i = 1; i <= n; i++) {
    if (x / i == 0) break;
    if (x % i == 0)
      sum += min(x / i - 1, 1LL * m);
    else
      sum += min(x / i, 1LL * m);
  }
  return sum;
}
int main() {
  read_file();
  while (cin >> n >> m >> k) {
    long long lo = 1, hi = 1LL * n * m;
    while (lo < hi - 1) {
      long long md = (lo + hi) / 2;
      long long res = test(md) - k;
      if (res < 0)
        lo = md;
      else
        hi = md - 1;
    }
    long long ans;
    if (lo == hi)
      ans = lo;
    else {
      long long res = test(hi) - k;
      if (res >= 0)
        ans = lo;
      else
        ans = hi;
    }
    cout << ans << endl;
  }
}
