#include <iostream> 
#include <vector>

using namespace std;

//注意精度
int main() {
	long long n, m, k;
	cin >> n >> m >> k;
	//在1 ~ n查找target上界
	long long l = 1, r = n * m;
	while (r > l) {
		long long mid = (r - l) / 2 + l;
		long long cnt = 0;
		for (int i = 1; i <= n; i++) {
			cnt += min(m, mid / i);
		}
		if (cnt >= k) r = mid;
		else l = mid + 1; 
	}
	cout << l << endl; 
}