#include <bits/stdc++.h>
using namespace std;
template <typename T>
void read(T &x) {
  x = 0;
  char ch = getchar();
  long long f = 1;
  while (!isdigit(ch)) {
    if (ch == '-') f *= -1;
    ch = getchar();
  }
  while (isdigit(ch)) {
    x = x * 10 + ch - 48;
    ch = getchar();
  }
  x *= f;
}
struct p {
  int id, v;
};
bool cmp(const p &a, const p &b) { return a.v < b.v; }
vector<p> a;
vector<int> ans;
int main() {
  int t;
  int n, x;
  long long m, sum;
  scanf("%d", &t);
  while (t--) {
    scanf("%d%lld", &n, &m);
    ans.clear();
    a.clear();
    sum = 0;
    for (int i = 1; i <= n; ++i) {
      scanf("%d", &x);
      if (x <= m) {
        a.push_back({i, x});
        sum += x;
      }
    }
    if (sum * 2 < m) {
      printf("-1\n");
      continue;
    }
    sort(a.begin(), a.end(), cmp);
    int sz = a.size();
    if (a[sz - 1].v * 2 >= m) {
      printf("1\n%d\n", a[sz - 1].id);
      continue;
    }
    long long tmp = 0;
    for (int i = 0; tmp * 2 < m; ++i) {
      ans.push_back(a[i].id);
      tmp += a[i].v;
    }
    printf("%d\n", ans.size());
    for (auto v : ans) printf("%d ", v);
    printf("\n");
  }
  return 0;
}
