#include <bits/stdc++.h>
using namespace std;
struct node {
  int id;
  long long data;
};
int const maxn = 2e5 + 10;
int const inf = 0x3f3f3f3f;
int const mod = 1e9 + 7;
int t, n, re;
long long W, mid, sum;
node a[maxn];
bool cmp(node a, node b) { return a.data < b.data; }
int main() {
  cin >> t;
  while (t--) {
    scanf("%d%lld", &n, &W);
    mid = (W + 1) >> 1;
    int flag = 0;
    int f = 0;
    sum = 0;
    for (int i = 1; i <= n; ++i) {
      scanf("%lld", &a[i].data);
      a[i].id = i;
      if (a[i].data <= W) {
        flag = 1;
        if (a[i].data >= mid) {
          re = a[i].id;
          f = 1;
        }
      }
    }
    if (f) {
      printf("1\n%d\n", re);
    } else {
      if (flag == 0) {
        printf("-1\n");
      } else {
        sort(a + 1, a + n + 1, cmp);
        sum = 0;
        re = 0;
        for (int i = 1; i <= n; ++i) {
          sum += a[i].data;
          if (sum > W) {
            flag = 0;
            break;
          }
          if (sum >= (W + 1) / 2) {
            re = i;
            break;
          }
        }
        if (flag && re) {
          printf("%d\n", re);
          for (int i = 1; i <= re; ++i) {
            printf("%d ", a[i].id);
          }
          printf("\n");
        } else {
          printf("-1\n");
        }
      }
    }
  }
  return 0;
}
