#include <bits/stdc++.h>
using namespace std;
bool compare(tuple<int, int> a, tuple<int, int> b) {
  return get<1>(a) > get<1>(b);
}
int main() {
  ios_base::sync_with_stdio(0);
  cin.tie(0);
  cout.tie(0);
  int T;
  cin >> T;
  for (int test_case = 1; test_case <= T; test_case++) {
    long long n, W;
    cin >> n >> W;
    vector<tuple<int, int>> arr(n);
    for (int i = 0; i < n; i++) {
      int temp;
      cin >> temp;
      arr[i] = make_tuple(i, temp);
    }
    if (W == 0) {
      cout << 0 << endl;
    } else {
      sort(arr.begin(), arr.end(), compare);
      long long sum = 0;
      vector<int> answer;
      answer.clear();
      bool possible = false;
      for (int i = 0; i < n; i++) {
        if (sum + get<1>(arr[i]) <= W) {
          sum += get<1>(arr[i]);
          answer.push_back(get<0>(arr[i]));
          if (sum >= (W + 1) / 2) {
            possible = true;
            break;
          }
        }
      }
      if (!possible) {
        cout << -1 << endl;
      } else {
        cout << answer.size() << endl;
        for (int i = 0; i < answer.size(); i++) {
          cout << answer[i] + 1 << " ";
        }
        cout << endl;
      }
    }
  }
}
