#include <bits/stdc++.h>
using namespace std;
int main() {
int t;
cin >> t;
while (t--) {
long long s, k, m;
cin >> s >> k >> m;
long long flipsCount = m / k;
// Number of times the hourglass was flipped
long long sandAfterFlip;
// Amount of sand remaining right after the last flip
if (k >= s) {
// Sand always finishes before the next flip
sandAfterFlip = s;
} else {
if (flipsCount % 2 == 0)
// Even number of flips → sand is fully restored
sandAfterFlip = s;
else
// Odd number of flips → only k minutes of sand
sandAfterFlip = k;
}
long long timeAfterLastFlip = m % k;
// Minutes passed after the last flip
long long remainingSand = max(0LL, sandAfterFlip - timeAfterLastFlip);
// Sand that will continue falling after Vadim leaves
cout << remainingSand << '\n';
}
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CgppbnQgbWFpbigpIHsKICAgIGludCB0OwogICAgY2luID4+IHQ7CiAgICB3aGlsZSAodC0tKSB7CiAgICAgICAgbG9uZyBsb25nIHMsIGssIG07CiAgICAgICAgY2luID4+IHMgPj4gayA+PiBtOwoKICAgICAgICBsb25nIGxvbmcgZmxpcHNDb3VudCA9IG0gLyBrOyAKICAgICAgICAvLyBOdW1iZXIgb2YgdGltZXMgdGhlIGhvdXJnbGFzcyB3YXMgZmxpcHBlZAoKICAgICAgICBsb25nIGxvbmcgc2FuZEFmdGVyRmxpcDsKICAgICAgICAvLyBBbW91bnQgb2Ygc2FuZCByZW1haW5pbmcgcmlnaHQgYWZ0ZXIgdGhlIGxhc3QgZmxpcAoKICAgICAgICBpZiAoayA+PSBzKSB7CiAgICAgICAgICAgIC8vIFNhbmQgYWx3YXlzIGZpbmlzaGVzIGJlZm9yZSB0aGUgbmV4dCBmbGlwCiAgICAgICAgICAgIHNhbmRBZnRlckZsaXAgPSBzOwogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgIGlmIChmbGlwc0NvdW50ICUgMiA9PSAwKQogICAgICAgICAgICAgICAgLy8gRXZlbiBudW1iZXIgb2YgZmxpcHMg4oaSIHNhbmQgaXMgZnVsbHkgcmVzdG9yZWQKICAgICAgICAgICAgICAgIHNhbmRBZnRlckZsaXAgPSBzOwogICAgICAgICAgICBlbHNlCiAgICAgICAgICAgICAgICAvLyBPZGQgbnVtYmVyIG9mIGZsaXBzIOKGkiBvbmx5IGsgbWludXRlcyBvZiBzYW5kCiAgICAgICAgICAgICAgICBzYW5kQWZ0ZXJGbGlwID0gazsKICAgICAgICB9CgogICAgICAgIGxvbmcgbG9uZyB0aW1lQWZ0ZXJMYXN0RmxpcCA9IG0gJSBrOwogICAgICAgIC8vIE1pbnV0ZXMgcGFzc2VkIGFmdGVyIHRoZSBsYXN0IGZsaXAKCiAgICAgICAgbG9uZyBsb25nIHJlbWFpbmluZ1NhbmQgPSBtYXgoMExMLCBzYW5kQWZ0ZXJGbGlwIC0gdGltZUFmdGVyTGFzdEZsaXApOwogICAgICAgIC8vIFNhbmQgdGhhdCB3aWxsIGNvbnRpbnVlIGZhbGxpbmcgYWZ0ZXIgVmFkaW0gbGVhdmVzCgogICAgICAgIGNvdXQgPDwgcmVtYWluaW5nU2FuZCA8PCAnXG4nOwogICAgfSAgICAKICAgIHJldHVybiAwOwp9