- #include <iostream> 
- #include <cstdio> 
- #include <queue> 
- #include <map> 
- #define mp make_pair 
- #define ii pair<int,int> 
- using namespace std; 
- const int maxn = 40000; 
- const int oo = 1000000000; 
- int t,a,b,c; 
- map <ii,int> d; 
- queue <ii> q; 
- int bfs() 
- { 
- 	if (a+b<c) return -1; 
- 	while (!q.empty()) 
- 	{ 
- 		ii p=q.front(); 
- 		q.pop(); 
- 		int x=p.first; 
- 		int y=p.second; 
- 		int dis=d[mp(x,y)]; 
- 		if ((x==c) or (y==c)) return dis; 
- 		// do nuoc vao binh 
- 		if (d.count(mp(a,y))==0) 
- 		{ 
- 			q.push(mp(a,y)); 
- 			d[mp(a,y)]=dis+1; 
- 		} 
- 		if (d.count(mp(x,b))==0) 
- 		{ 
- 			q.push(mp(x,b)); 
- 			d[mp(x,b)]=dis+1; 
- 		} 
- 		// do nuoc ra ngoai 
- 		if (d.count(mp(x,0))==0)  
- 		{ 
- 			q.push(mp(x,0)); 
- 			d[mp(x,0)]=dis+1; 
- 		} 
- 		if (d.count(mp(0,y))==0) 
- 		{ 
- 			q.push(mp(0,y)); 
- 			d[mp(0,y)]=dis+1; 
- 		} 
- 		// do nuoc tu binh b vao binh a 
- 		if ((x+y<=a) and (d.count(mp(x+y,0))==0)) 
- 		{ 
- 			q.push(mp(x+y,0)); 
- 			d[mp(x+y,0)]=dis+1; 
- 		} 
- 		if ((x+y>a) and (d.count(mp(a,y-(a-x)))==0)) 
- 		{ 
- 			q.push(mp(a,y-(a-x))); 
- 			d[mp(a,y-(a-x))]=dis+1; 
- 		} 
- 		// do nuoc tu binh b vao binh a 
- 		if ((x+y<=b) and (d.count(mp(0,x+y))==0)) 
- 		{ 
- 			q.push(mp(0,x+y)); 
- 			d[mp(0,x+y)]=dis+1; 
- 		} 
- 		if ((x+y>b) and (d.count(mp(x-(b-y),b))==0)) 
- 		{ 
- 			q.push(mp(x-(b-y),b)); 
- 			d[mp(x-(b-y),b)]=dis+1; 
- 		} 
- 	} 
- 	return -1; 
- } 
- void solve() 
- { 
- 	cin >> a >> b >> c; 
- 	d.clear(); 
- 	while (!q.empty()) q.pop(); 
- 	q.push(mp(0,0)); 
- 	d[mp(0,0)]=0; 
- 	cout << bfs() << '\n'; 
- } 
- int main() 
- { 
- 	ios_base::sync_with_stdio(false); 
- 	//freopen("POUR1.INP","r",stdin); 
- 	cin >> t; 
- 	for (int i=1; i<=t; i++) 
- 	solve(); 
- 	return 0; 
- } 
				I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8Y3N0ZGlvPgojaW5jbHVkZSA8cXVldWU+CiNpbmNsdWRlIDxtYXA+CiNkZWZpbmUgbXAgbWFrZV9wYWlyCiNkZWZpbmUgaWkgcGFpcjxpbnQsaW50Pgp1c2luZyBuYW1lc3BhY2Ugc3RkOwpjb25zdCBpbnQgbWF4biA9IDQwMDAwOwpjb25zdCBpbnQgb28gPSAxMDAwMDAwMDAwOwppbnQgdCxhLGIsYzsKbWFwIDxpaSxpbnQ+IGQ7CnF1ZXVlIDxpaT4gcTsKaW50IGJmcygpCnsKCWlmIChhK2I8YykgcmV0dXJuIC0xOwoJd2hpbGUgKCFxLmVtcHR5KCkpCgl7CgkJaWkgcD1xLmZyb250KCk7CgkJcS5wb3AoKTsKCQlpbnQgeD1wLmZpcnN0OwoJCWludCB5PXAuc2Vjb25kOwoJCWludCBkaXM9ZFttcCh4LHkpXTsKCQlpZiAoKHg9PWMpIG9yICh5PT1jKSkgcmV0dXJuIGRpczsKCQkvLyBkbyBudW9jIHZhbyBiaW5oCgkJaWYgKGQuY291bnQobXAoYSx5KSk9PTApCgkJewoJCQlxLnB1c2gobXAoYSx5KSk7CgkJCWRbbXAoYSx5KV09ZGlzKzE7CgkJfQoJCWlmIChkLmNvdW50KG1wKHgsYikpPT0wKQoJCXsKCQkJcS5wdXNoKG1wKHgsYikpOwoJCQlkW21wKHgsYildPWRpcysxOwoJCX0KCQkvLyBkbyBudW9jIHJhIG5nb2FpCgkJaWYgKGQuY291bnQobXAoeCwwKSk9PTApIAoJCXsKCQkJcS5wdXNoKG1wKHgsMCkpOwoJCQlkW21wKHgsMCldPWRpcysxOwoJCX0KCQlpZiAoZC5jb3VudChtcCgwLHkpKT09MCkKCQl7CgkJCXEucHVzaChtcCgwLHkpKTsKCQkJZFttcCgwLHkpXT1kaXMrMTsKCQl9CgkJLy8gZG8gbnVvYyB0dSBiaW5oIGIgdmFvIGJpbmggYQoJCWlmICgoeCt5PD1hKSBhbmQgKGQuY291bnQobXAoeCt5LDApKT09MCkpCgkJewoJCQlxLnB1c2gobXAoeCt5LDApKTsKCQkJZFttcCh4K3ksMCldPWRpcysxOwoJCX0KCQlpZiAoKHgreT5hKSBhbmQgKGQuY291bnQobXAoYSx5LShhLXgpKSk9PTApKQoJCXsKCQkJcS5wdXNoKG1wKGEseS0oYS14KSkpOwoJCQlkW21wKGEseS0oYS14KSldPWRpcysxOwoJCX0KCQkvLyBkbyBudW9jIHR1IGJpbmggYiB2YW8gYmluaCBhCgkJaWYgKCh4K3k8PWIpIGFuZCAoZC5jb3VudChtcCgwLHgreSkpPT0wKSkKCQl7CgkJCXEucHVzaChtcCgwLHgreSkpOwoJCQlkW21wKDAseCt5KV09ZGlzKzE7CgkJfQoJCWlmICgoeCt5PmIpIGFuZCAoZC5jb3VudChtcCh4LShiLXkpLGIpKT09MCkpCgkJewoJCQlxLnB1c2gobXAoeC0oYi15KSxiKSk7CgkJCWRbbXAoeC0oYi15KSxiKV09ZGlzKzE7CgkJfQoJfQoJcmV0dXJuIC0xOwp9CnZvaWQgc29sdmUoKQp7CgljaW4gPj4gYSA+PiBiID4+IGM7CglkLmNsZWFyKCk7Cgl3aGlsZSAoIXEuZW1wdHkoKSkgcS5wb3AoKTsKCXEucHVzaChtcCgwLDApKTsKCWRbbXAoMCwwKV09MDsKCWNvdXQgPDwgYmZzKCkgPDwgJ1xuJzsKfQppbnQgbWFpbigpCnsKCWlvc19iYXNlOjpzeW5jX3dpdGhfc3RkaW8oZmFsc2UpOwoJLy9mcmVvcGVuKCJQT1VSMS5JTlAiLCJyIixzdGRpbik7CgljaW4gPj4gdDsKCWZvciAoaW50IGk9MTsgaTw9dDsgaSsrKQoJc29sdmUoKTsKCXJldHVybiAwOwp9