#include <iostream>
#include <math.h>
#include <algorithm>
#include <string>
#include <string.h>
#include <queue>
#include <vector>
#include <set>
#include <map>
#include <tuple>
#include <stdlib.h>
#define rep(i,n) for (int i = 0; i < (n); ++i)
using namespace std;
#define PI 3.14159265358979
typedef long long int ll;

const double pi=3.1415;
ll f(ll a,ll b,ll x){return ll(a*x/b)-a*(ll(x/b));}
int main()
{
   ll a,b,n,maxi=-100100100,k=0;
   cin>>a>>b>>n;
   ll x =sqrt(n);
   bool flag=false;
   if(f(a,b,x)>f(a,b,x+1)){
   		flag=false;
   	}else flag=true;
   while(true)
   {
   	if(flag==false&&f(a,b,x)>f(a,b,x-1)){x=sqrt(n);k++;flag=true;}
   	else if(flag==true&&f(a,b,x)>f(a,b,x+1)){x=sqrt(n);flag=false;k++;}
   	else if(x>=n||x<0){x=sqrt(n);flag=false;k++;}
   	if(flag)x++;
   	else x--;
   	if(maxi<f(a,b,x))
   	{
   		maxi=f(a,b,x);
   	}
   	if(k==2)break;
   }
   cout<<maxi;
}
