#include <bits/stdc++.h>
using namespace std;
#define int long long int
#define double long double
#define print(a) for(auto x : a) cout << x << " "; cout << endl
inline int power(int a, int b) {
int x = 1;
while (b) {
if (b & 1) x *= a;
a *= a;
b >>= 1;
}
return x;
}
const int M = 1000000007;
const int N = 3e5+9;
const int INF = 2e9+1;
const int LINF = 2000000000000000001;
//_ ***************************** START Below *******************************
bool isPossible(int n, int m, int k, int mid){
int p = mid*(mid+1)/2;
int sum = p + p;
int left = mid-k;
if(left<0){
sum += abs(left);
}
else sum -= (left*(left+1))/2;
int right = mid - (n-k+1);
if(right<0){
sum += abs(right);
}
else sum -= (right * (right+1))/2;
sum -= mid;
return sum <= m;
}
int consistency(int n, int m, int k){
int s = 0;
int e = INF;
while(s<e){
int mid = s + (e-s+1)/2;
if(isPossible(n, m, k, mid)){
s = mid;
}
else e = mid-1;
}
return e;
}
int practice(int n, int m, int k){
return 0;
}
void solve() {
int n, m, k;
cin>>n >> m >> k;
int ans = consistency(n, m, k);
// int check = practice(n, m, k);
// cout << ans << " -> " << check << endl;
cout << ans << endl;
}
int32_t main() {
ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0);
srand(time(0)); //* Seed random
int t = 1;
cin >> t;
while (t--) {
solve();
}
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CiNkZWZpbmUgaW50ICAgICAgICAgICAgICBsb25nIGxvbmcgaW50CiNkZWZpbmUgZG91YmxlICAgICAgICAgICBsb25nIGRvdWJsZQojZGVmaW5lIHByaW50KGEpICAgICAgICAgZm9yKGF1dG8geCA6IGEpIGNvdXQgPDwgeCA8PCAiICI7IGNvdXQgPDwgZW5kbAppbmxpbmUgaW50IHBvd2VyKGludCBhLCBpbnQgYikgewogICAgaW50IHggPSAxOwogICAgd2hpbGUgKGIpIHsKICAgICAgICBpZiAoYiAmIDEpIHggKj0gYTsKICAgICAgICBhICo9IGE7CiAgICAgICAgYiA+Pj0gMTsKICAgIH0KICAgIHJldHVybiB4Owp9CgoKY29uc3QgaW50IE0gPSAxMDAwMDAwMDA3Owpjb25zdCBpbnQgTiA9IDNlNSs5Owpjb25zdCBpbnQgSU5GID0gMmU5KzE7CmNvbnN0IGludCBMSU5GID0gMjAwMDAwMDAwMDAwMDAwMDAwMTsKCi8vXyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiBTVEFSVCBCZWxvdyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCgoKYm9vbCBpc1Bvc3NpYmxlKGludCBuLCBpbnQgbSwgaW50IGssIGludCBtaWQpewoJaW50IHAgPSBtaWQqKG1pZCsxKS8yOwoJCglpbnQgc3VtID0gcCArIHA7CgkKCWludCBsZWZ0ID0gbWlkLWs7CglpZihsZWZ0PDApewoJCXN1bSArPSBhYnMobGVmdCk7Cgl9CgllbHNlIHN1bSAtPSAobGVmdCoobGVmdCsxKSkvMjsKCglpbnQgcmlnaHQgPSBtaWQgLSAobi1rKzEpOwoJaWYocmlnaHQ8MCl7CgkJc3VtICs9IGFicyhyaWdodCk7Cgl9CgllbHNlIHN1bSAtPSAocmlnaHQgKiAocmlnaHQrMSkpLzI7CgkKCXN1bSAtPSBtaWQ7CgkKCXJldHVybiBzdW0gPD0gbTsKCQp9CgppbnQgY29uc2lzdGVuY3koaW50IG4sIGludCBtLCBpbnQgayl7CgkKCWludCBzID0gMDsKCWludCBlID0gSU5GOwoJCgl3aGlsZShzPGUpewoJCWludCBtaWQgPSBzICsgKGUtcysxKS8yOwoJCWlmKGlzUG9zc2libGUobiwgbSwgaywgbWlkKSl7CgkJCXMgPSBtaWQ7CgkJfQoJCWVsc2UgZSA9IG1pZC0xOwoJfQoJCglyZXR1cm4gZTsKCn0KCgoKCmludCBwcmFjdGljZShpbnQgbiwgaW50IG0sIGludCBrKXsKCQoJcmV0dXJuIDA7Cn0KCgoKCgoKdm9pZCBzb2x2ZSgpIHsKICAgIAogICAgaW50IG4sIG0sIGs7CiAgICBjaW4+Pm4gPj4gbSA+PiBrOwogICAgCiAgICBpbnQgYW5zID0gY29uc2lzdGVuY3kobiwgbSwgayk7CiAgICAvLyBpbnQgY2hlY2sgPSBwcmFjdGljZShuLCBtLCBrKTsKCS8vIGNvdXQgPDwgYW5zIDw8ICIgLT4gIiA8PCBjaGVjayA8PCBlbmRsOwoJCgkKCWNvdXQgPDwgYW5zIDw8IGVuZGw7CgoKfQoKCgoKCmludDMyX3QgbWFpbigpIHsKICAgIGlvc19iYXNlOjpzeW5jX3dpdGhfc3RkaW8oMCk7IGNpbi50aWUoMCk7IGNvdXQudGllKDApOwogICAgc3JhbmQodGltZSgwKSk7IC8vKiBTZWVkIHJhbmRvbQoKICAgIGludCB0ID0gMTsKICAgIGNpbiA+PiB0OwogICAgd2hpbGUgKHQtLSkgewogICAgICAgIHNvbHZlKCk7CiAgICB9CgogICAgcmV0dXJuIDA7Cn0=