#include <bits/stdc++.h>
using namespace std;
const int N = 200020;
struct it {
  long long w;
  int cnt;
} thing[N];
int t, n;
long long W;
int ne[N];
bool cmp(struct it a, struct it b) {
  if (a.w != b.w) return a.w > b.w;
}
int main() {
  cin >> t;
  while (t--) {
    cin >> n >> W;
    for (int i = 1; i <= n; i++) {
      long long x;
      cin >> x;
      thing[i].cnt = i;
      thing[i].w = x;
    }
    sort(thing + 1, thing + 1 + n, cmp);
    long long twoW;
    if (W % 2 == 1)
      twoW = W / 2 + 1;
    else
      twoW = W / 2;
    long long res = 0;
    int out = 0;
    for (int i = 1; i <= n; i++) {
      if (thing[i].w > W) continue;
      if (thing[i].w <= W && thing[i].w >= twoW) {
        res += thing[i].w;
        ne[++out] = thing[i].cnt;
        break;
      }
      if (thing[i].w < twoW) {
        res += thing[i].w;
        ne[++out] = thing[i].cnt;
        if (res >= twoW) break;
      }
    }
    if (res < twoW)
      printf("-1");
    else {
      printf("%d\n", out);
      for (int i = 1; i <= out; i++) printf("%d ", ne[i]);
    }
    printf("\n");
  }
}
