func_code_string: #include <bits/stdc++.h>   using namespace std;   struct node {     int num;     long long x;   } tmp;   bool cmp(node a, node b) { return a.x > b.x; }   int main() {     ios::sync_with_stdio(false), cin.tie(0), cout.tie(0);     int t;     vector<node> v;     cin >> t;     while (t--) {       v.clear();       long long n, w;       long long x;       cin >> n >> w;       for (int i = 1; i <= n; i++) {         cin >> x;         if (x > w)           continue;         else {           tmp.x = x;           tmp.num = i;           v.push_back(tmp);         }       }       if (v.empty()) {         cout <<  -1 n ;         continue;       }       sort(v.begin(), v.end(), cmp);       int flag = 0;       for (int i = 0; i < v.size(); i++) {         if (v[i].x >= w / 2 + w % 2) {           cout <<  1 n ;           cout << v[i].num <<   n ;           flag = 1;           break;         }       }       if (flag == 0) {         long long ssum = 0;         int k;         for (k = v.size() - 1; k >= 0; k--) {           ssum += v[k].x;           if (ssum >= w / 2 + w % 2) break;         }         if (k >= 0) {           cout << v.size() - k <<   n ;           for (int i = v.size() - 1; i >= k; i--) {             cout << v[i].num <<    ;           }           cout <<   n ;         } else           cout <<  -1 n ;       }     }     return 0;   }   