#include using namespace std; const int MaxN = 1e3 + 10; int en; int n, E; pair < int, int > x[MaxN]; double p[MaxN]; void solve() { scanf("%d%d", &n, &E); assert (1 <= n && n <= 1000); assert (1 <= E && E <= 1000); for (int i = 1; i <= n; ++i) { scanf("%d", &x[i].first); assert (1 <= x[i].first && x[i].first <= 1000); x[i].second = i; } en += n; sort(x + 1, x + n + 1); if (E < x[1].first || x[n].first < E) { printf("-1\n"); return; } double all = 1, e = E; for (int i = 1; i <= n; ++i) { double l = 0, r = all; if (i == n) { p[x[i].second] = all; break; } for (int it = 0; it < 40; ++it) { double m = (l + r) / 2; if (m * x[i].first + (all - m) * x[n].first >= e) { l = m; } else { r = m; } } p[x[i].second] = (l + r) / 2.0; all -= p[x[i].second]; } for (int i = 1; i <= n; ++i) { printf("%.9f%c", p[i], i == n ? '\n' : ' '); } } int main() { // freopen("input.txt", "r", stdin); int t; scanf("%d", &t); assert (1 <= t && t <= 100000); for (int i = 1; i <= t; ++i) { solve(); } assert (1 <= en && en <= 1000000); return 0; }