#include <bits/stdc++.h>
using namespace std;
struct node {
  int num;
  long long x;
} tmp;
bool cmp(node a, node b) { return a.x > b.x; }
int main() {
  ios::sync_with_stdio(false), cin.tie(0), cout.tie(0);
  int t;
  vector<node> v;
  cin >> t;
  while (t--) {
    v.clear();
    long long n, w;
    long long x;
    cin >> n >> w;
    for (int i = 1; i <= n; i++) {
      cin >> x;
      if (x > w)
        continue;
      else {
        tmp.x = x;
        tmp.num = i;
        v.push_back(tmp);
      }
    }
    if (v.empty()) {
      cout << "-1\n";
      continue;
    }
    sort(v.begin(), v.end(), cmp);
    int flag = 0;
    for (int i = 0; i < v.size(); i++) {
      if (v[i].x >= w / 2 + w % 2) {
        cout << "1\n";
        cout << v[i].num << '\n';
        flag = 1;
        break;
      }
    }
    if (flag == 0) {
      long long ssum = 0;
      int k;
      for (k = v.size() - 1; k >= 0; k--) {
        ssum += v[k].x;
        if (ssum >= w / 2 + w % 2) break;
      }
      if (k >= 0) {
        cout << v.size() - k << '\n';
        for (int i = v.size() - 1; i >= k; i--) {
          cout << v[i].num << ' ';
        }
        cout << '\n';
      } else
        cout << "-1\n";
    }
  }
  return 0;
}
