/*
TASK: minjumps
LANG: c++
*/

#include<iostream>
using namespace std;
int a,b,n,m[20010][6],used[20005],level;
void bfs(int v)
{
 int queue[20005],qtop=0,ttop=1,tfront=0,front=0;
 queue[qtop++]=v;
 used[v]=1;
 while(qtop>tfront)
 {
  level++;
  for(int i=front;i<ttop;i++)
   {
    for(int j=1;j<=m[queue[i]][0];j++)
     if(used[m[queue[i]][j]]==0)
      {
       used[m[queue[i]][j]]=1;
       if(m[queue[i]][j]==n){return;}
       queue[qtop++]=m[queue[i]][j];                        
      }       
    tfront++;
   }       
  front=tfront;
  ttop=qtop; 
 }
}
int main()
{
 cin>>a>>b>>n;
 n=n+10000;
 for(int i=0;i<=20000;i++) 
  {
   if(i+a<=20000) m[i][++m[i][0]]=i+a;
   if(i-a>=0) m[i][++m[i][0]]=i-a;
   if(i+b<=20000) m[i][++m[i][0]]=i+b;
   if(i-b>=0) m[i][++m[i][0]]=i-b;
  }
 bfs(10000);
 if(used[n]) cout<<level<<endl;
  else cout<<"-1"<<endl;
 return 0;    
}
