#include <bits/stdc++.h>
using namespace std;
int main() {
  int t;
  cin >> t;
  while (t--) {
    long long n;
    long long w;
    cin >> n;
    cin >> w;
    vector<long long> arr(n);
    int posible = -1;
    long long found = -1;
    int pos = -1;
    for (int i = 0; i < n; i++) {
      cin >> arr[i];
      if (arr[i] <= w) posible = 1;
      if (w % 2 == 0) {
        if (arr[i] >= (w / 2) && arr[i] <= w) {
          found = arr[i];
          pos = i + 1;
        }
      } else {
        if (arr[i] >= (w / 2) + 1 && arr[i] <= w) {
          found = arr[i];
          pos = i + 1;
        }
      }
    }
    if (posible == -1)
      cout << "-1"
           << "\n";
    else if (pos != -1) {
      cout << "1"
           << "\n";
      cout << pos << "\n";
    } else {
      long long sum = 0;
      queue<int> q1;
      for (int i = 0; i < n; i++) {
        if (sum > (w / 2) + 1)
          break;
        else if (arr[i] <= w && (long long)sum + arr[i] <= w) {
          sum = (long long)sum + arr[i];
          q1.push(i + 1);
        } else if (arr[i] > w)
          continue;
      }
      if (w % 2 == 0) {
        if (sum < w / 2)
          cout << "-1"
               << "\n";
        else {
          cout << q1.size() << "\n";
          while (!q1.empty()) {
            cout << q1.front() << " ";
            q1.pop();
          }
          cout << "\n";
        }
      } else if (w % 2 != 0) {
        if (sum < (w / 2) + 1)
          cout << "-1"
               << "\n";
        else {
          cout << q1.size() << "\n";
          while (!q1.empty()) {
            cout << q1.front() << " ";
            q1.pop();
          }
          cout << "\n";
        }
      }
    }
  }
}
