const gcd = (a, b) => b === 0 ? a : gcd(b, a % b);
const isPossible = (a, b, c) =>
c <= Math.max(a, b) && c % gcd(a, b) === 0;
const minSteps = (a, b, c) => {
if (!isPossible(a, b, c)) return -1;
const visited = new Set();
const queue = [[0, 0, 0]];
while (queue.length) {
const [x, y, steps] = queue.shift();
if (x === c || y === c) return steps;
const key = x + y;
if (visited.has(key)) continue;
visited.add(key);
const nextStates = [
[a, y], [x, b],
[0, y], [x, 0],
[x - Math.min(x, b - y), y + Math.min(x, b - y)],
[x + Math.min(y, a - x), y - Math.min(y, a - x)]
];
for (const [nx, ny] of nextStates) {
queue.push([nx, ny, steps + 1]);
}
}
return -1;
};
process.stdin.resume();
process.stdin.setEncoding('utf8');
process.stdin.on('data', function (chunk) {
var lines = chunk.toString().split('\n');
const t = Number(lines[0]);
let idx = 1;
for (let i = 0; i < t; i++) {
const a = Number(lines[idx++]);
const b = Number(lines[idx++]);
const c = Number(lines[idx++]);
console.log(minSteps(a, b, c));
}
});
Y29uc3QgZ2NkID0gKGEsIGIpID0+IGIgPT09IDAgPyBhIDogZ2NkKGIsIGEgJSBiKTsKCmNvbnN0IGlzUG9zc2libGUgPSAoYSwgYiwgYykgPT4KICBjIDw9IE1hdGgubWF4KGEsIGIpICYmIGMgJSBnY2QoYSwgYikgPT09IDA7Cgpjb25zdCBtaW5TdGVwcyA9IChhLCBiLCBjKSA9PiB7CiAgaWYgKCFpc1Bvc3NpYmxlKGEsIGIsIGMpKSByZXR1cm4gLTE7CgogIGNvbnN0IHZpc2l0ZWQgPSBuZXcgU2V0KCk7CiAgY29uc3QgcXVldWUgPSBbWzAsIDAsIDBdXTsKCiAgd2hpbGUgKHF1ZXVlLmxlbmd0aCkgewogICAgY29uc3QgW3gsIHksIHN0ZXBzXSA9IHF1ZXVlLnNoaWZ0KCk7CiAgICBpZiAoeCA9PT0gYyB8fCB5ID09PSBjKSByZXR1cm4gc3RlcHM7CgogICAgY29uc3Qga2V5ID0geCArIHk7CiAgICBpZiAodmlzaXRlZC5oYXMoa2V5KSkgY29udGludWU7CiAgICB2aXNpdGVkLmFkZChrZXkpOwoKICAgIGNvbnN0IG5leHRTdGF0ZXMgPSBbCiAgICAgIFthLCB5XSwgW3gsIGJdLAogICAgICBbMCwgeV0sIFt4LCAwXSwKICAgICAgW3ggLSBNYXRoLm1pbih4LCBiIC0geSksIHkgKyBNYXRoLm1pbih4LCBiIC0geSldLAogICAgICBbeCArIE1hdGgubWluKHksIGEgLSB4KSwgeSAtIE1hdGgubWluKHksIGEgLSB4KV0KICAgIF07CgogICAgZm9yIChjb25zdCBbbngsIG55XSBvZiBuZXh0U3RhdGVzKSB7CiAgICAgIHF1ZXVlLnB1c2goW254LCBueSwgc3RlcHMgKyAxXSk7CiAgICB9CiAgfQoKICByZXR1cm4gLTE7Cn07CgoKcHJvY2Vzcy5zdGRpbi5yZXN1bWUoKTsKcHJvY2Vzcy5zdGRpbi5zZXRFbmNvZGluZygndXRmOCcpOwoKcHJvY2Vzcy5zdGRpbi5vbignZGF0YScsIGZ1bmN0aW9uIChjaHVuaykgewoJdmFyIGxpbmVzID0gY2h1bmsudG9TdHJpbmcoKS5zcGxpdCgnXG4nKTsKCQoKY29uc3QgdCA9IE51bWJlcihsaW5lc1swXSk7CmxldCBpZHggPSAxOwoKZm9yIChsZXQgaSA9IDA7IGkgPCB0OyBpKyspIHsKICBjb25zdCBhID0gTnVtYmVyKGxpbmVzW2lkeCsrXSk7CiAgY29uc3QgYiA9IE51bWJlcihsaW5lc1tpZHgrK10pOwogIGNvbnN0IGMgPSBOdW1iZXIobGluZXNbaWR4KytdKTsKICBjb25zb2xlLmxvZyhtaW5TdGVwcyhhLCBiLCBjKSk7Cn0KfSk7Cgo=