#include <bits/stdc++.h>
using namespace std;
using ll = long long;
const ll NMAX = 1000000000000LL; // 1e12
// Số phần tử còn lại trong [1..m] sau x lần
ll survivors(ll m, ll y, ll x) {
if (m <= 0) return 0;
if (y == 1) {
// nếu có 1 lần trở lên thì xoá hết
return 0;
}
ll cur = m;
ll remSteps = x;
while (remSteps > 0 && cur > 0) {
ll rem = cur / y; // số bị xoá mỗi bước ở trạng thái này
if (rem == 0) break;
// tìm s lớn nhất sao cho trong s bước tiếp theo, rem vẫn giữ nguyên
// điều kiện: floor((cur - (s-1)*rem) / y) == rem
// suy ra: (cur - (s-1)*rem) / y >= rem
// => (s-1) <= (cur - rem*y) / rem
ll s_max;
if (cur - rem * y < 0) {
s_max = 0; // không có (s-1) >=0 thỏa, tức rem sẽ đổi ngay bước sau => ta chỉ làm 1 bước
} else {
s_max = (cur - rem * y) / rem; // đây là (s-1) max
}
ll s = s_max + 1; // số bước mà rem giữ nguyên tối đa
if (s <= 0) s = 1;
if (s > remSteps) s = remSteps;
// apply s steps
// cur -= s * rem
// careful not overflow: rem and s fit in ll, product <= cur <= 1e12
cur -= s * rem;
remSteps -= s;
}
return cur;
}
int main() {
ios::sync_with_stdio(false);
cin.tie(nullptr);
int T;
if (!(cin >> T)) return 0;
while (T--) {
ll x, y, k;
cin >> x >> y >> k;
// nếu tổng phần tử còn lại trong toàn bộ dãy < k thì -1
ll total = survivors(NMAX, y, x);
if (total < k) {
cout << -1 << '\n';
continue;
}
ll lo = 1, hi = NMAX, ans = -1;
while (lo <= hi) {
ll mid = lo + (hi - lo) / 2;
if (survivors(mid, y, x) >= k) {
ans = mid;
hi = mid - 1;
} else lo = mid + 1;
}
cout << ans << '\n';
}
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CnVzaW5nIGxsID0gbG9uZyBsb25nOwpjb25zdCBsbCBOTUFYID0gMTAwMDAwMDAwMDAwMExMOyAvLyAxZTEyCgovLyBT4buRIHBo4bqnbiB04butIGPDsm4gbOG6oWkgdHJvbmcgWzEuLm1dIHNhdSB4IGzhuqduCmxsIHN1cnZpdm9ycyhsbCBtLCBsbCB5LCBsbCB4KSB7CiAgICBpZiAobSA8PSAwKSByZXR1cm4gMDsKICAgIGlmICh5ID09IDEpIHsKICAgICAgICAvLyBu4bq/dSBjw7MgMSBs4bqnbiB0cuG7nyBsw6puIHRow6wgeG/DoSBo4bq/dAogICAgICAgIHJldHVybiAwOwogICAgfQogICAgbGwgY3VyID0gbTsKICAgIGxsIHJlbVN0ZXBzID0geDsKICAgIHdoaWxlIChyZW1TdGVwcyA+IDAgJiYgY3VyID4gMCkgewogICAgICAgIGxsIHJlbSA9IGN1ciAvIHk7IC8vIHPhu5EgYuG7iyB4b8OhIG3hu5dpIGLGsOG7m2Mg4bufIHRy4bqhbmcgdGjDoWkgbsOgeQogICAgICAgIGlmIChyZW0gPT0gMCkgYnJlYWs7CiAgICAgICAgLy8gdMOsbSBzIGzhu5tuIG5o4bqldCBzYW8gY2hvIHRyb25nIHMgYsaw4bubYyB0aeG6v3AgdGhlbywgcmVtIHbhuqtuIGdp4buvIG5ndXnDqm4KICAgICAgICAvLyDEkWnhu4F1IGtp4buHbjogZmxvb3IoKGN1ciAtIChzLTEpKnJlbSkgLyB5KSA9PSByZW0KICAgICAgICAvLyBzdXkgcmE6IChjdXIgLSAocy0xKSpyZW0pIC8geSA+PSByZW0KICAgICAgICAvLyA9PiAocy0xKSA8PSAoY3VyIC0gcmVtKnkpIC8gcmVtCiAgICAgICAgbGwgc19tYXg7CiAgICAgICAgaWYgKGN1ciAtIHJlbSAqIHkgPCAwKSB7CiAgICAgICAgICAgIHNfbWF4ID0gMDsgLy8ga2jDtG5nIGPDsyAocy0xKSA+PTAgdGjhu49hLCB04bupYyByZW0gc+G6vSDEkeG7lWkgbmdheSBixrDhu5tjIHNhdSA9PiB0YSBjaOG7iSBsw6BtIDEgYsaw4bubYwogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgIHNfbWF4ID0gKGN1ciAtIHJlbSAqIHkpIC8gcmVtOyAvLyDEkcOieSBsw6AgKHMtMSkgbWF4CiAgICAgICAgfQogICAgICAgIGxsIHMgPSBzX21heCArIDE7IC8vIHPhu5EgYsaw4bubYyBtw6AgcmVtIGdp4buvIG5ndXnDqm4gdOG7kWkgxJFhCiAgICAgICAgaWYgKHMgPD0gMCkgcyA9IDE7CiAgICAgICAgaWYgKHMgPiByZW1TdGVwcykgcyA9IHJlbVN0ZXBzOwogICAgICAgIC8vIGFwcGx5IHMgc3RlcHMKICAgICAgICAvLyBjdXIgLT0gcyAqIHJlbQogICAgICAgIC8vIGNhcmVmdWwgbm90IG92ZXJmbG93OiByZW0gYW5kIHMgZml0IGluIGxsLCBwcm9kdWN0IDw9IGN1ciA8PSAxZTEyCiAgICAgICAgY3VyIC09IHMgKiByZW07CiAgICAgICAgcmVtU3RlcHMgLT0gczsKICAgIH0KICAgIHJldHVybiBjdXI7Cn0KCmludCBtYWluKCkgewogICAgaW9zOjpzeW5jX3dpdGhfc3RkaW8oZmFsc2UpOwogICAgY2luLnRpZShudWxscHRyKTsKICAgIGludCBUOwogICAgaWYgKCEoY2luID4+IFQpKSByZXR1cm4gMDsKICAgIHdoaWxlIChULS0pIHsKICAgICAgICBsbCB4LCB5LCBrOwogICAgICAgIGNpbiA+PiB4ID4+IHkgPj4gazsKCiAgICAgICAgLy8gbuG6v3UgdOG7lW5nIHBo4bqnbiB04butIGPDsm4gbOG6oWkgdHJvbmcgdG/DoG4gYuG7mSBkw6N5IDwgayB0aMOsIC0xCiAgICAgICAgbGwgdG90YWwgPSBzdXJ2aXZvcnMoTk1BWCwgeSwgeCk7CiAgICAgICAgaWYgKHRvdGFsIDwgaykgewogICAgICAgICAgICBjb3V0IDw8IC0xIDw8ICdcbic7CiAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgIH0KCiAgICAgICAgbGwgbG8gPSAxLCBoaSA9IE5NQVgsIGFucyA9IC0xOwogICAgICAgIHdoaWxlIChsbyA8PSBoaSkgewogICAgICAgICAgICBsbCBtaWQgPSBsbyArIChoaSAtIGxvKSAvIDI7CiAgICAgICAgICAgIGlmIChzdXJ2aXZvcnMobWlkLCB5LCB4KSA+PSBrKSB7CiAgICAgICAgICAgICAgICBhbnMgPSBtaWQ7CiAgICAgICAgICAgICAgICBoaSA9IG1pZCAtIDE7CiAgICAgICAgICAgIH0gZWxzZSBsbyA9IG1pZCArIDE7CiAgICAgICAgfQogICAgICAgIGNvdXQgPDwgYW5zIDw8ICdcbic7CiAgICB9CiAgICByZXR1cm4gMDsKfQo=