#include <bits/stdc++.h>
using namespace std;
long long n, m, k, minn, maxx, czy, sr;
int f(long long x) {
  long long l, s = 0, ile = 0;
  if (x > m)
    l = m + 1;
  else {
    l = x;
    ile = 1;
  }
  s += l - 1;
  for (long long i = 2; i <= n; i++) {
    if (i * m < x) {
      s += m;
    } else {
      while (l > 0 && i * (l - 1) > x) l--;
      if (l == 0) break;
      if (i * (l - 1) == x) {
        s += l - 2;
        ile++;
      } else {
        s += l - 1;
      }
    }
  }
  if (s < k && s + ile >= k) {
    czy = 1;
    printf("%lld\n", x);
    return 0;
  }
  return s < k;
}
int main() {
  scanf("%lld%lld%lld", &n, &m, &k);
  minn = 1;
  maxx = n * m;
  while (maxx - minn > 1) {
    sr = (minn + maxx) / 2;
    if (f(sr))
      minn = sr;
    else
      maxx = sr;
    if (czy) return 0;
  }
  if (f(minn)) {
    minn++;
  }
  if (czy) return 0;
  f(minn);
}
