#include <bits/stdc++.h>
using namespace std;
const int N = 200000 + 13;
int n;
long long W, lim;
pair<int, int> a[N];
bool vis[N];
inline bool check() {
  long long sum = 0;
  int cnt = 0;
  for (int i = 1; i <= n; ++i) sum += a[i].first, cnt += (a[i].first <= W);
  return sum >= lim && cnt;
}
int main() {
  int T;
  scanf("%d", &T);
  while (T--) {
    scanf("%d%lld", &n, &W);
    lim = (W - 1) / 2 + 1;
    for (int i = 1, x; i <= n; ++i) scanf("%d", &x), a[i] = make_pair(x, i);
    if (!check()) {
      puts("-1");
      continue;
    }
    sort(a + 1, a + n + 1, greater<pair<int, int> >());
    long long sum = 0;
    bool ok = 0;
    for (int i = 1; i <= n; ++i) {
      if (a[i].first > W || sum + a[i].first > W) continue;
      sum += a[i].first;
      vis[i] = 1;
      if (sum >= lim) {
        ok = 1;
        int ans = 0;
        for (int j = 1; j <= i; ++j) ans += (vis[j] == 1);
        printf("%d\n", ans);
        for (int j = 1; j <= i; ++j)
          if (vis[j]) printf("%d ", a[j].second);
        puts("");
        break;
      }
    }
    if (!ok) puts("-1");
    for (int i = 1; i <= n; ++i) vis[i] = 0;
  }
  return 0;
}
