/*
TASK:MINJUMPS
LANG:C++
*/
#include<iostream>
using namespace std;
void razb1(int x,int a,int b, int c)
{
    int aa=0,bb=0,cc=0,xx=x,part1=(b/c),part2=(b%c);
    cc=xx/c;
    xx-=(c*cc);
    if (part2==0) 
    {
        bb=cc/part1;
        cc-=(part1*bb);
    }
    else if (part1==0) 
    {
        bb=xx/part2;
        xx-=(part2*bb);
    }
    else
    {
        int k=cc/part1,kk=xx/part2;
        bb=min(k,kk);
        xx-=(part2*bb);
        cc-=(part1*bb);
    }
    if (xx!=0) { cout<<-1<<endl; return;}
    aa=min(bb,cc);
    cc-=aa;
    bb-=aa;
    cout<<aa+bb+cc*2<<endl;
    return;
}
void razb2(int x,int a)
{
    if ((x%a)==0) cout<<x/a<<endl;
    else cout<<-1<<endl;
    return;
} 
int main()
{
    int n,a,b,c;
    cin>>a>>b>>n;
    if (n<0)
    { 
        c=min(a,b);
        c-=max(a,b);
        razb2(n,c);
    }
    else
    {
        if (b>a) swap(a,b);
        c=max(a,b);
        c-=min(a,b);
        razb1(n,a,b,c);
    }
    return 0;
}
        
    
    
