// Problem: D2. Removal of a Sequence (Hard Version)
// Contest: Codeforces - Educational Codeforces Round 184 (Rated for Div. 2)
// URL: https://codeforces.com/contest/2169/problem/D2
// Memory Limit: 512 MB
// Time Limit: 2000 ms
//
// Powered by CP Editor (https://cpeditor.org)
#include <assert.h>
#include <bits/stdc++.h>
using namespace std;
#ifndef __DEBUG__
#define dbg(...) 42
#endif
template <class T> using mpq = priority_queue<T, vector<T>, greater<T>>;
namespace rngs = std::ranges;
using ll = long long;
using a2l = array<ll, 2>;
using vl = vector<ll>;
void solve()
{
ll x, y, k, n = 1e12;
cin >> x >> y >> k;
if (y == 1) {
assert(x != 0);
cout << -1 << '\n';
return;
}
ll t = y - 1;
while (x > 0) {
ll d = k / t;
if (d) {
ll a = (t - k % t) / d + 1;
// a = min(a, (n - k) / d);
a = min(a, x);
dbg(a, x, d, k);
k += a * d;
x -= a;
} else {
break;
}
}
if (k <= n) {
cout << k << '\n';
} else {
cout << -1 << '\n';
}
}
int main(int argc, char **argv)
{
std::ios::sync_with_stdio(false);
std::cin.tie(nullptr);
ll t = 1;
cin >> t;
while (t--)
solve();
return 0;
};