#include<bits/stdc++.h>
using namespace std;
int v1, v2, v3, ans, a, b, z, x1, x2;
//map<node, int> m;
bool m[300][300];
void js(int i)
{
if(i == 1)
x1 = v1, x2 = b;
else if(i == 2)
x1 = a, x2 = v2;
else if(i == 3)
x1 = 0, x2 = b;
else if(i == 4)
x1 = a, x2 = 0;
else if(i == 5)
if(b > v1 - a) x1 = v1, x2 = b - (v1 - a);
else x1 = a + b, x2 = 0;
else if(i == 6)
if(a > v2 - b) x2 = v2, x1 = a - (v2 - b);
else x2 = a + b, x1 = 0;
}
int main()
{
queue<int> q;
scanf("%d%d%d", &v1, &v2, &v3);
q.push(0), q.push(0), q.push(0);
while(!q.empty()){
a = q.front();
q.pop();
b = q.front();
q.pop();
z = q.front();
q.pop();
if(a == v3 || b == v3 || a + b == v3){
ans = z;
break;
}
for(int i = 1; i <= 6; i++){
js(i);
if(!m[x1][x2]){
m[x1][x2] = 1;
q.push(x1), q.push(x2), q.push(z +1);
}
}
}
cout<<ans<<endl;
return 0;
}