import java.util.;
import java.io.;
public class Main{
public static void main(String[] args)throws Exception{
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String[] numStr = br.readLine().split(” “);
int n = 0,m = 0;
long k = 0;
for(int i = 0;i < numStr.length;i++){
n = Integer.parseInt(numStr[0]);
m = Integer.parseInt(numStr[1]);
k = Long.parseLong(numStr[2]);
}
BinarySearch(k,m,n);
}
public static void BinarySearch(long target,int m,int n){
long left = 1,right = (long)m*n;
while(left <= right){
long mid = left + (right - left) / 2;
long num = getTarget(mid,m,n);
if(num >= target){
right = mid - 1;
}else{
left = mid + 1;
}
}
System.out.println(left);
}
public static long getTarget(long mid,int m,int n){
long sum = 0;
for(int i = 1;i <= n;i++){
sum += Math.min(m,mid / i);
}
return sum;
}
}