#include <bits/stdc++.h>
using namespace std;
int main() {
  long long i, j, k, l, m, n, tc;
  cin >> tc;
  while (tc--) {
    long long w;
    cin >> n >> w;
    pair<long long, long long> ar[n + 10];
    for (i = 0; i < n; i++) {
      cin >> ar[i].first;
      ar[i].second = i + 1;
    }
    sort(ar, ar + n);
    long long til = 0;
    vector<long long> ans;
    pair<long long, long long> pk = {(w + 1) / 2, -1};
    m = lower_bound(ar, ar + n, pk) - ar;
    if (m != n && ar[m].first >= (w + 1) / 2 && ar[m].first <= w)
      til = ar[m].first, ans.push_back(ar[m].second);
    else {
      for (i = m - 1; i >= 0; i--) {
        if (til + ar[i].first < (w + 1) / 2) {
          til += ar[i].first;
          ans.push_back(ar[i].second);
        } else if (til + ar[i].first <= w) {
          til += ar[i].first;
          ans.push_back(ar[i].second);
          break;
        }
      }
    }
    if (til >= ((w + 1) / 2) && til <= w) {
      cout << ans.size() << '\n';
      for (auto x : ans) cout << x << " ";
      cout << '\n';
    } else
      cout << -1 << '\n';
  }
}
