//利用二分法,利用矩阵的规律计算排名
#include<bits/stdc++.h>
using namespace std;
using ll = long long;
ll n, m, k;
ll check(ll mid){ //假设一个mid,计算小于mid元素的个数,与k进行比较,移动二分边界
ll res = 0;
for(int i = 1;i <= n; i++) res += min(m, mid/i); //mid/i是在第i行符合小于mid元素的个数
return res;
}
int main(){
cin >> n >> m >> k;
ll l = 0, r = n * m + 5;
while(l + 1 != r){ //二分边界条件
ll mid = (l + r) / 2;
if(check(mid) >= k) r = mid;
else l = mid;
}
cout << r << ' ';
return 0;
}