#include <bits/stdc++.h>
using namespace std;
int main(int argc, char* argv[]) {
  long long int n, m, k;
  cin >> n >> m >> k;
  long long int lo = 0, up = n * m;
  if (k == 1) {
    cout << 1 << endl;
    return 0;
  }
  if (k == n * m) {
    cout << n * m << endl;
    return 0;
  }
  while (1 < up - lo) {
    long long int mid = (lo + up) / 2;
    long long int before = 0;
    for (int i = 1; i <= n; ++i) before += min(m, mid / i);
    if (before < k)
      lo = mid;
    else
      up = mid;
  }
  long long int before_lo = 0, before_up = 0;
  for (int i = 1; i <= n; ++i) {
    before_lo += min(m, lo / i);
    before_up += min(m, up / i);
  }
  cout << up << endl;
  return 0;
}
