func_code_string: #include <bits/stdc++.h>   using namespace std;   const int N = 3e5 + 10;   int n, x1, x2;   pair<int, int> c[N], f[2];   int main() {     ios_base::sync_with_stdio(false);     cin.tie(0);     cout.tie(0);     cin >> n >> x1 >> x2;     for (int i = 0; i < n; i++) cin >> c[i].first, c[i].second = i;     sort(c, c + n);     int i = n - 1;     for (; ~i; --i)       if (i + (x1 + c[i].first - 1) / c[i].first - 1 < n) {         f[0] = {i, i + (x1 + c[i].first - 1) / c[i].first};         break;       }     int j = i;     for (; ~i; --i)       if (i + (x2 + c[i].first - 1) / c[i].first - 1 < j) {         f[1] = {i, i + (x2 + c[i].first - 1) / c[i].first};         break;       }     if (i >= 0) {       cout <<  Yes n ;       cout << f[0].second - f[0].first <<     << f[1].second - f[1].first <<   n ;       for (; f[0].first < f[0].second; f[0].first++)         cout << c[f[0].first].second + 1 <<    ;       cout <<   n ;       for (; f[1].first < f[1].second; f[1].first++)         cout << c[f[1].first].second + 1 <<    ;       return 0;     }     i = n - 1;     for (; ~i; --i)       if (i + (x2 + c[i].first - 1) / c[i].first - 1 < n) {         f[1] = {i, i + (x2 + c[i].first - 1) / c[i].first};         break;       }     j = i;     for (; ~i; --i)       if (i + (x1 + c[i].first - 1) / c[i].first - 1 < j) {         f[0] = {i, i + (x1 + c[i].first - 1) / c[i].first};         break;       }     if (i >= 0) {       cout <<  Yes n ;       cout << f[0].second - f[0].first <<     << f[1].second - f[1].first <<   n ;       for (; f[0].first < f[0].second; f[0].first++)         cout << c[f[0].first].second + 1 <<    ;       cout <<   n ;       for (; f[1].first < f[1].second; f[1].first++)         cout << c[f[1].first].second + 1 <<    ;       return 0;     }     cout <<  No ;     return 0;   }   