/*
TASK:minjumps
LANG:C++
*/
#include<iostream>
#include<cmath>
#include<vector>
#include<string>
#include<algorithm>
#define MAXN 99999
using namespace std;
int n,a,b;
int D[1000];
void solve()
{
     cin>>a>>b>>n;
     if(n<0)n=-n;
     if(n>100){cout<<-1<<endl;return;}
     if (a>b)swap(a,b);
     int i;
  //   cout<<a<<" "<<b<<endl;
     for(i=0;i<1000;i++)
     D[i]=MAXN;
     D[0]=0;
     for(i=a;i<=100;i++)
     if(i-b>=0)D[i]=min(min(D[i-a]+1,D[i]),D[i-b]+1);
else
D[i]=min(D[i],D[i-a]+1);
    // for(i=0;i<=100;i++)
     //cout<<D[i]<<" ";cout<<endl;

int j,k;
for(k=0;k<100;k++)
for(i=1;i<=100;i++)
      for(j=1;j<=100;j++)
      {
                        D[i]=min(D[i],min(D[j]+D[abs(i-j)],D[j]+D[i+j]));   
     /*cout<<"{"<<i<<" ";
     if(D[i]==D[j]+D[abs(i-j)]+1)cout<<j<<" "<<abs(i-j)<<endl;
     else
     if(D[i]==D[i+j]+1)cout<<i+j<<endl;
      else
      cout<<"stay"<<endl;
      */
      }
      // for(i=0;i<=100;i++)
     //cout<<D[i]<<" ";cout<<endl;
if(D[n]==MAXN)cout<<-1<<"\n";
else
cout<<D[n]<<"\n";
}

int main()
{
solve();
//system("pause");
return 0;
}
