#include <bits/stdc++.h>
using namespace std;
const int N = 2e6 + 9;
const long long mod = 998244353;
const long long Inf = 1e18;
struct node {
  int w, id;
} p[N];
int main() {
  int T;
  scanf("%d", &T);
  while (T--) {
    int n;
    long long W;
    scanf("%d%lld", &n, &W);
    long long sum = 0;
    for (int i = (1); i < (n + 1); ++i) {
      scanf("%d", &p[i].w);
      p[i].id = i;
    }
    sort(p + 1, p + 1 + n, [](node &a, node &b) { return a.w > b.w; });
    vector<int> ans;
    for (int i = (1); i < (n + 1); ++i) {
      if (p[i].w > W) continue;
      sum += p[i].w;
      ans.push_back(p[i].id);
      if (sum >= (W + 1 >> 1)) break;
    }
    if (sum >= (W + 1 >> 1)) {
      printf("%d\n", (int)ans.size());
      for (auto v : ans) printf("%d ", v);
    } else
      printf("-1");
    printf("\n");
  }
}
