#include <bits/stdc++.h>
const long long MAXN = 5e3 + 5;
long long N, M, k;
using namespace std;
long long check(long long m) {
  long long sumn = 0;
  for (long long i = 1; i <= m && i <= N; i++) {
    sumn += min(m / i, M);
  }
  return sumn;
}
int main() {
  while (~scanf("%lld%lld%lld", &N, &M, &k)) {
    long long p, q = 0;
    long long l = 0, r = k, m = (l + r) / 2;
    while (l < r) {
      p = check(m);
      if (p < k) {
        l = m + 1;
      } else {
        r = m;
      }
      m = (l + r) / 2;
    }
    for (long long i = 2; i <= sqrt(m); i++) {
      if (m % i == 0) {
        q = 1;
        break;
      }
    }
    printf("%lld\n", m);
  }
  return 0;
}
