#include <bits/stdc++.h>
#pragma GCC optimize("Ofast")
#pragma GCC target("avx,avx2")
using namespace std;
auto clk = clock();
const long double pi = acos(-1.0);
const int day[12] = {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
const int digarr[10] = {6, 2, 5, 5, 4, 5, 6, 3, 7, 6};
const int dx[4] = {0, 1, 0, -1};
const int dy[4] = {1, 0, -1, 0};
const int dxo[8] = {-1, -1, -1, 0, 1, 1, 1, 0};
const int dyo[8] = {-1, 0, 1, 1, 1, 0, -1, -1};
const int alf = 26;
const int dig = 10;
const int two = 2;
const int th = 3;
const long long prost = 239;
const long long btc = 30;
const long double eps = 1e-10;
const long long INF = (long long)(1e18 + 239);
const int BIG = (int)(1e9 + 239);
const int MOD = 998244353;
const long long MOD2 = (long long)MOD * (long long)MOD;
const long long infl = 0x3f3f3f3f3f3f3f3fLL;
const int infi = 0x3f3f3f3f;
const int mod = 1000000007;
inline int add(int x, int y) { return x + y >= mod ? x + y - mod : x + y; }
inline int add(int x, int y, int z) { return add(add(x, y), z); }
inline int sub(int x, int y) { return x - y < 0 ? x - y + mod : x - y; }
inline int mul(int x, int y) { return 1LL * x * y % mod; }
inline int mul(int x, int y, int z) { return mul(mul(x, y), z); }
int main() {
  ios_base::sync_with_stdio(0);
  cin.tie(0);
  cout.tie(0);
  int t;
  cin >> t;
  while (t--) {
    long long n, w;
    cin >> n >> w;
    vector<pair<long long, long long> > vp(n);
    long long z;
    for (int i = 0; i < n; ++i) {
      cin >> z;
      vp[i] = {z, i + 1};
    }
    sort(vp.begin(), vp.end());
    int flag = 0;
    for (int i = 0; i < n; i++) {
      if (vp[i].first >= (w + 1) / 2 and vp[i].first <= w) {
        cout << 1 << '\n';
        cout << vp[i].second << '\n';
        flag = 1;
        break;
      }
    }
    if (flag) continue;
    set<long long> st;
    long long sum = 0;
    for (int i = 0; i < n and vp[i].first < w; i++) {
      sum += vp[i].first;
      st.insert(vp[i].second);
      if (sum >= (w + 1) / 2) {
        cout << st.size() << '\n';
        for (auto x : st) {
          cout << x << " ";
        }
        cout << '\n';
        flag = 1;
        break;
      }
    }
    if (flag)
      continue;
    else
      cout << -1 << '\n';
  }
  return 0;
}
