#include <bits/stdc++.h>
#pragma GCC optimize(2)
#pragma GCC optimize(3, "Ofast", "inline")
using namespace std;
const long long Linf = 0x7f7f7f7f7f7f7f7f;
const int Inf = 0x3f3f3f3f;
const int MAXN = 2e5 + 10;
long long n, w;
pair<long long, long long> a[MAXN];
void doit() {
  cin >> n >> w;
  for (int i = 1; i <= n; i++) cin >> a[i].first, a[i].second = i;
  sort(a + 1, a + n + 1, greater<pair<long long, long long> >());
  vector<long long> ans;
  long long sum = 0;
  long long l = (w + 1) / 2, r = w;
  for (int i = 1; i <= n; i++) {
    if (sum + a[i].first > r)
      continue;
    else if (sum + a[i].first < l)
      sum += a[i].first, ans.push_back(a[i].second);
    else {
      sum += a[i].first;
      ans.push_back(a[i].second);
      break;
    }
  }
  if (sum < l || sum > r)
    cout << -1 << endl;
  else {
    cout << ans.size() << endl;
    for (auto x : ans) cout << x << ' ';
    cout << endl;
  }
}
int main() {
  ios::sync_with_stdio(false);
  cin.tie(0);
  cout.tie(0);
  long long _;
  cin >> _;
  while (_--) doit();
  return 0;
}
