#include // #include using namespace std; // using namespace atcoder; using ll = long long; using ull = unsigned long long; using P = pair; #define rep(i,n) for(ll i = 0;i < (ll)n;i++) #define ALL(x) (x).begin(),(x).end() #define MOD 1000000007 int main(){ ll a,b,k; cin >> a >> b >> k; ll d = __gcd(a,b); a /= d;b /= d; ll res = k/(a + b - 1)*a*b; k %= (a + b -1); auto bs = [&](ll n,ll m){ ll l = 0,r = k+1; while(r-l > 1){ ll mid = (l+r)/2; if(mid + n*mid/m <= k)l = mid; else r = mid; } return (l + n*l/m == k ? n*l : -1); }; ll x = bs(a,b); if(x >= 0)res += x; x = bs(b,a); if(x >= 0)res += x; res *= d; cout << res << "\n"; return 0; }