#include <bits/stdc++.h>
using namespace std;
#define ll long long
#define ull unsigned long long
#define fast ios::sync_with_stdio(0), cin.tie(0);
#define fi first
#define se second
const int MN = 1e5 + 67;
ll a[MN], b[MN];
ll q;
bool check(ull mid, ull n, ull k) {
// ull p = mid / k;
// ull t = mid % k;
return k * (mid) * (mid + 1) / 2 <= n;
}
int main() {
fast
if (fopen("open.inp", "r")) {
freopen("open.inp", "r", stdin);
freopen("open.out", "w", stdout);
}
cin >> q;
while (q--) {
ull n,k;
cin >> n >> k;
ull l = 1, r = 2e10, res = 0;
while (l <= r) {
ull mid = (l + r) / 2;
if (check(mid, n, k)) {
res = mid;
res += ( (n - (k * (mid) * (mid + 1) / 2) ) / (mid + 1) );
l = mid + 1;
}
else r = mid - 1;
}
cout << res << endl;
}
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CiNkZWZpbmUgbGwgbG9uZyBsb25nCiNkZWZpbmUgdWxsIHVuc2lnbmVkIGxvbmcgbG9uZwojZGVmaW5lIGZhc3QgaW9zOjpzeW5jX3dpdGhfc3RkaW8oMCksIGNpbi50aWUoMCk7CiNkZWZpbmUgZmkgZmlyc3QKI2RlZmluZSBzZSBzZWNvbmQKY29uc3QgaW50IE1OID0gMWU1ICsgNjc7CgpsbCBhW01OXSwgYltNTl07CmxsIHE7Cgpib29sIGNoZWNrKHVsbCBtaWQsIHVsbCBuLCB1bGwgaykgewogICAgLy8gdWxsIHAgPSBtaWQgLyBrOwogICAgLy8gdWxsIHQgPSBtaWQgJSBrOwogICAgcmV0dXJuIGsgKiAobWlkKSAqIChtaWQgKyAxKSAvIDIgIDw9IG47Cn0KaW50IG1haW4oKSB7CiAgICBmYXN0CiAgICBpZiAoZm9wZW4oIm9wZW4uaW5wIiwgInIiKSkgewogICAgICAgIGZyZW9wZW4oIm9wZW4uaW5wIiwgInIiLCBzdGRpbik7CiAgICAgICAgZnJlb3Blbigib3Blbi5vdXQiLCAidyIsIHN0ZG91dCk7CiAgICB9CiAgICBjaW4gPj4gcTsKICAgIHdoaWxlIChxLS0pIHsKICAgICAgICB1bGwgbixrOwogICAgICAgIGNpbiA+PiBuID4+IGs7CiAgICAgICAgdWxsIGwgPSAxLCByID0gMmUxMCwgcmVzID0gMDsKICAgICAgICB3aGlsZSAobCA8PSByKSB7CiAgICAgICAgICAgIHVsbCBtaWQgPSAobCArIHIpIC8gMjsKICAgICAgICAgICAgaWYgKGNoZWNrKG1pZCwgbiwgaykpIHsKICAgICAgICAgICAgICAgIHJlcyA9IG1pZDsKICAgICAgICAgICAgICAgIHJlcyArPSAoIChuIC0gKGsgKiAobWlkKSAqIChtaWQgKyAxKSAvIDIpICkgLyAobWlkICsgMSkgKTsKICAgICAgICAgICAgICAgIGwgPSBtaWQgKyAxOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGVsc2UgciA9IG1pZCAtIDE7CiAgICAgICAgfQogICAgICAgIGNvdXQgPDwgcmVzIDw8IGVuZGw7CiAgICB9CiAgICByZXR1cm4gMDsKfQ==