#include <bits/stdc++.h>
using namespace std;
long long int n, m;
long long int getit(long long int x) {
  long long int i, r = 0, c = min(x, n);
  for (i = 1; i <= c; i++) {
    r += min(m, x / i);
  }
  return r;
}
int main() {
  long long int k, l = 1, md, h, r, x;
  scanf("%I64d %I64d %I64d", &n, &m, &k);
  if (n > m) {
    r = n;
    n = m;
    m = r;
  }
  h = n * m;
  r = h;
  while (l <= h) {
    md = (l + h) / 2ll;
    x = getit(md);
    if (x < k) {
      l = md + 1;
    } else {
      r = md;
      h = md - 1;
    }
  }
  printf("%I64d\n", r);
  return 0;
}
