#include <bits/stdc++.h>
using namespace std;
pair<long long int, long long int> check(long long int num, long long int n,
                                         long long int m) {
  long long int bound = min(n, m);
  long long int lb = max(n, m);
  long long int chalk1 = 0, chalk2 = 0;
  for (long long int i = 1; i < bound + 1; i++) {
    chalk1 += min(lb, (num - 1) / i);
    chalk2 += min((num) / i, lb);
  }
  chalk1 += 1;
  return make_pair(chalk1, chalk2);
}
int main() {
  ios_base::sync_with_stdio(false);
  cin.tie(NULL);
  long long int n, m, k;
  cin >> n >> m >> k;
  long long int beg = 1, end = n * m;
  while (beg < end) {
    long long int mid = beg + (end - beg) / 2;
    pair<long long int, long long int> pos = check(mid, n, m);
    if (pos.first <= k && pos.second >= k) {
      beg = mid;
      break;
    } else if (pos.first > k) {
      end = mid - 1;
    } else {
      beg = mid + 1;
    }
  }
  cout << beg;
  return 0;
}
