/*
TASK:minjumps
LANG:C++
*/
#include <iostream.h>
using namespace std;
int a,b,n;

int main(void)
{
 int c,r,r2,how;
 cin>>a>>b>>n;
 if(n<0)n*=-1;
/* if(n>100)
  {
   cout<<"-1\n";
   return 0;
  }*/
 if( ((a&1)==0) && ((b&1)==0) && ((n&1)==1) )
     {
      cout<<"-1\n";
      return 0;
     }
 if( ((a&1)==1) && ((b&1)==1) && ((n&1)==0) )
     {
      cout<<"-1\n";
      return 0;
     }
 r=n/b;
 r2=(n-b*r)/a;
 if( ((r*b)+(r2*a)) == n )
     {
      cout<<(r+r2)<<endl;
      return 0;
    }
 how = r+r2;

 r2=n/a;
 r=(n-b*r)/b;
 if(((r*b)+(r2*a)) == n)
  {
   cout<<(r+r2)<<endl;
   return 0;
  }
 if(n<a)
  {
   r=1;
   while( ((r*b)+n)%a != 0 ) r++;
   r2=((r*b)+n)/a;
   how=r+r2;
   r2=1;
   while( ((r2*a)+n)%b != 0 ) r2++;
   r=((r2*a)+n)/b;
   if(how>(r+r2))how=r+r2;
   cout<<how<<endl;
   return 0;
  }
 if(a<n&&n<b)
  {
   if(n%a==0)
    {
     cout<<n/a<<endl;
     return 0;
    }
   r=1;
   while( ((r*b)+n)%a != 0 ) r++;
   r2=((r*b)+n)/a;
   how=r+r2;
   r2=1;
   while( ((r2*a)+n)%b != 0 ) r2++;
   r=((r2*a)+n)/b;
   if(how>(r+r2))how=r+r2;
   cout<<how<<endl;
   return 0;
  }
  if(n>b)
   {
    r=1;
    while( ((r*b)+n)%a != 0 ) r++;
    r2=((r*b)+n)/a;
    how=r+r2;
    r2=1;
    while( ((r2*a)+n)%b != 0 ) r2++;
    r=((r2*a)+n)/b;
    if(how>(r+r2))how=r+r2;
    cout<<how<<endl;
    return 0;
  }
 return 0;
}
