#include #include #include #include #include #include #include #include #include #include #include #include #include #define rf freopen("in.in", "r", stdin) #define wf freopen("out.out", "w", stdout) #define rep(i, s, n) for(int i=int(s); i<=int(n); ++i) using namespace std; const int mx = 1e5 + 10, mod = 1e9+7; int main() { //rf; wf; //ios::sync_with_stdio(0); int t=0; cin >> t; while(t--) { long double s, h; cin >> h >> s; long double hSquared = h*h; long double maxSide = sqrt(hSquared/2); long double tolerance = 1e-12; if(hSquared/4 < s || s < 1){ cout << -1 << '\n'; continue; } long double start = 0.0, end = maxSide; while(start <= end) { long double base = (start + end)/2; long double perpend = sqrt(hSquared - (base*base)); long double area = base*perpend/2; if(area >= s) end = base - tolerance; else start = base + tolerance; } long double base = start; long double perpend = sqrt(hSquared - (base*base)); long double area = base*perpend/2; if(base > perpend) swap(base, perpend); cout << fixed << setprecision(6) << base << ' ' << perpend << ' ' << h << '\n'; assert(abs(area-s) < 0.01); } return 0; }