#pragma GCC optimize ("unroll-loops")
//#pragma GCC optimize ("O3", "omit-frame-pointer","inline")
#pragma GCC target("sse,sse2,sse3,ssse3,sse4,sse4.2,fma,popcnt,abm,mmx,avx,avx2")
#include <bits/stdc++.h>
using namespace std;
/***********************************************/
/* Dear online judge:
* I've read the problem, and tried to solve it.
* Even if you don't accept my solution, you should respect my effort.
* I hope my code compiles and gets accepted.
* ___ __ _______ _______
* |\ \|\ \ |\ ___ \ |\ ___ \
* \ \ \/ /|_\ \ __/| \ \ __/|
* \ \ ___ \\ \ \_|/__\ \ \_|/__
* \ \ \\ \ \\ \ \_|\ \\ \ \_|\ \
* \ \__\\ \__\\ \_______\\ \_______\
* \|__| \|__| \|_______| \|_______|
*/
//const long long mod = 1000000007;
const long long mod = 998244353;
mt19937 rng((int) chrono::steady_clock::now().time_since_epoch().count());
const int mxN = 100010;
const long double PI = acosl(-1);
int main(int argc, char *argv[]) {
#ifdef ONLINE_JUDGE
ios_base::sync_with_stdio(false);
cin.tie(nullptr);
//freopen("input.txt", "r", stdin);
//freopen("output.txt", "w", stdout);
#endif
freopen("polygon.in","r",stdin);
srand(time(NULL));
cout << fixed << setprecision(9);
int t = 1;
// int Case = 1;
cin >> t;
// t = 10000;
while (t--) {
long double P, X;
cin >> P >> X;
bool f = false;
for (int n = 3; n < 100000; n++) {
long double S = P / n;
long double A = (S * S * n) / (4 * tanl(PI / n));
// cerr << n << ' ' << A << ' ' << A / P << '\n';
if (A > X * P) {
cout << n - 1 << '\n';
f = true;
break;
}
}
if (!f) {
cout << "KEE\n";
}
}
return 0;
}
/* stuff you should look for:
* overflow, array bounds
* special cases (n=1?)
* clear arrays
* DON'T STICK TO ONE APPROACH
* solve simpler or different variation
* Solve DP using graph ( \_(-_-)_/ )
*/
I3ByYWdtYSBHQ0Mgb3B0aW1pemUgKCJ1bnJvbGwtbG9vcHMiKQovLyNwcmFnbWEgR0NDIG9wdGltaXplICgiTzMiLCAib21pdC1mcmFtZS1wb2ludGVyIiwiaW5saW5lIikKI3ByYWdtYSBHQ0MgdGFyZ2V0KCJzc2Usc3NlMixzc2UzLHNzc2UzLHNzZTQsc3NlNC4yLGZtYSxwb3BjbnQsYWJtLG1teCxhdngsYXZ4MiIpCgojaW5jbHVkZSA8Yml0cy9zdGRjKysuaD4KdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KLyogRGVhciBvbmxpbmUganVkZ2U6CiAqIEkndmUgcmVhZCB0aGUgcHJvYmxlbSwgYW5kIHRyaWVkIHRvIHNvbHZlIGl0LgogKiBFdmVuIGlmIHlvdSBkb24ndCBhY2NlcHQgbXkgc29sdXRpb24sIHlvdSBzaG91bGQgcmVzcGVjdCBteSBlZmZvcnQuCiAqIEkgaG9wZSBteSBjb2RlIGNvbXBpbGVzIGFuZCBnZXRzIGFjY2VwdGVkLgogKiAgX19fICBfXyAgICAgX19fX19fXyAgICBfX19fX19fCiAqIHxcICBcfFwgIFwgIHxcICBfX18gXCAgfFwgIF9fXyBcCiAqIFwgXCAgXC8gIC98X1wgXCAgIF9fL3wgXCBcICAgX18vfAogKiAgXCBcICAgX19fICBcXCBcICBcX3wvX19cIFwgIFxffC9fXwogKiAgIFwgXCAgXFwgXCAgXFwgXCAgXF98XCBcXCBcICBcX3xcIFwKICogICAgXCBcX19cXCBcX19cXCBcX19fX19fX1xcIFxfX19fX19fXAogKiAgICAgXHxfX3wgXHxfX3wgXHxfX19fX19ffCBcfF9fX19fX198CiAqLwovL2NvbnN0IGxvbmcgbG9uZyBtb2QgPSAxMDAwMDAwMDA3Owpjb25zdCBsb25nIGxvbmcgbW9kID0gOTk4MjQ0MzUzOwptdDE5OTM3IHJuZygoaW50KSBjaHJvbm86OnN0ZWFkeV9jbG9jazo6bm93KCkudGltZV9zaW5jZV9lcG9jaCgpLmNvdW50KCkpOwoKY29uc3QgaW50IG14TiA9IDEwMDAxMDsKCmNvbnN0IGxvbmcgZG91YmxlIFBJID0gYWNvc2woLTEpOwoKaW50IG1haW4oaW50IGFyZ2MsIGNoYXIgKmFyZ3ZbXSkgewojaWZkZWYgT05MSU5FX0pVREdFCglpb3NfYmFzZTo6c3luY193aXRoX3N0ZGlvKGZhbHNlKTsKCWNpbi50aWUobnVsbHB0cik7Ci8vZnJlb3BlbigiaW5wdXQudHh0IiwgInIiLCBzdGRpbik7Ci8vZnJlb3Blbigib3V0cHV0LnR4dCIsICJ3Iiwgc3Rkb3V0KTsKI2VuZGlmCgogICAgZnJlb3BlbigicG9seWdvbi5pbiIsInIiLHN0ZGluKTsKCXNyYW5kKHRpbWUoTlVMTCkpOwoJY291dCA8PCBmaXhlZCA8PCBzZXRwcmVjaXNpb24oOSk7CgoJaW50IHQgPSAxOwovLwlpbnQgQ2FzZSA9IDE7CgljaW4gPj4gdDsKLy8JdCA9IDEwMDAwOwoJd2hpbGUgKHQtLSkgewoJCWxvbmcgZG91YmxlIFAsIFg7CgkJY2luID4+IFAgPj4gWDsKCQlib29sIGYgPSBmYWxzZTsKCQlmb3IgKGludCBuID0gMzsgbiA8IDEwMDAwMDsgbisrKSB7CgkJCWxvbmcgZG91YmxlIFMgPSBQIC8gbjsKCQkJbG9uZyBkb3VibGUgQSA9IChTICogUyAqIG4pIC8gKDQgKiB0YW5sKFBJIC8gbikpOwovLwkJCWNlcnIgPDwgbiA8PCAnICcgPDwgQSA8PCAnICcgPDwgQSAvIFAgPDwgJ1xuJzsKCQkJaWYgKEEgPiBYICogUCkgewoJCQkJY291dCA8PCBuIC0gMSA8PCAnXG4nOwoJCQkJZiA9IHRydWU7CgkJCQlicmVhazsKCQkJfQoJCX0KCQlpZiAoIWYpIHsKCQkJY291dCA8PCAiS0VFXG4iOwoJCX0KCX0KCXJldHVybiAwOwp9CgovKiBzdHVmZiB5b3Ugc2hvdWxkIGxvb2sgZm9yOgogKiBvdmVyZmxvdywgYXJyYXkgYm91bmRzCiAqIHNwZWNpYWwgY2FzZXMgKG49MT8pCiAqIGNsZWFyIGFycmF5cwogKiBET04nVCBTVElDSyBUTyBPTkUgQVBQUk9BQ0gKICogc29sdmUgc2ltcGxlciBvciBkaWZmZXJlbnQgdmFyaWF0aW9uCiAqIFNvbHZlIERQIHVzaW5nIGdyYXBoICggXF8oLV8tKV8vICkKICovCg==