#include <bits/stdc++.h>   using namespace std;   #pragma GCC optimize( Ofast,no-stack-protector )   #pragma GCC target( sse,sse2,sse3,ssse3,sse4,popcnt,abm,mmx,avx,tune=native )   #pragma GCC optimize( unroll-loops )   long long fun(long long n, long long m, long long mid) {     long long val = 0;     for (long long i = 1; i <= n; i++) val += min(m, (mid - 1) / i);     return val;   }   int main() {     ios_base::sync_with_stdio(false);     cin.tie(NULL);     cout.tie(NULL);     ;     long long tst = 1;     for (long long tt = 1; tt <= tst; tt++) {       long long n, m, k;       cin >> n >> m >> k;       long long l = 1, r = (n * m) + 1;       while (l < r) {         long long mid = (l + r) / 2;         if (fun(n, m, mid) < k)           l = mid + 1;         else           r = mid;       }       cout << l - 1 << endl;     }     return 0;   }   