#include <bits/stdc++.h>
using namespace std;
long long n, m, k;
int predicate(long long mid) {
  long long r = 0;
  for (int i = 0; i < n; i++) {
    r += min(m, (mid - 1) / (i + 1));
  }
  if (r < k)
    return 1;
  else
    return 0;
}
int main() {
  cin >> n >> m >> k;
  long long hi, lo;
  hi = n * m;
  lo = 1;
  long long mid;
  while (hi > lo) {
    mid = lo + (hi - lo + 1) / 2;
    if (predicate(mid) == 1)
      lo = mid;
    else
      hi = mid - 1;
  }
  mid = lo + (hi - lo + 1) / 2;
  cout << mid << endl;
}
