func_code_string: #include <bits/stdc++.h>   using namespace std;   const int MAXN = 300010;   pair<int, int> c[MAXN];   int n, x[2];   bool check(int pos, int fst, int snd) {     int a = c[pos].first;     int k = (x[fst] + a - 1) / a;     if (pos + k >= n) {       return false;     }     int val = c[pos + k].first;     int dk = (x[snd] + val - 1) / val;     if (pos + k + dk > n) {       return false;     }     if (fst == 0) {       printf( Yes n );       printf( %d %d n , k, dk);       for (int i = 0; i < k; ++i) {         printf( %d  , c[pos + i].second + 1);       }       printf(  n );       for (int i = 0; i < dk; ++i) {         printf( %d  , c[pos + k + i].second + 1);       }       printf(  n );     } else {       printf( Yes n );       printf( %d %d n , dk, k);       for (int i = 0; i < dk; ++i) {         printf( %d  , c[pos + k + i].second + 1);       }       printf(  n );       for (int i = 0; i < k; ++i) {         printf( %d  , c[pos + i].second + 1);       }       printf(  n );     }     return true;   }   int main() {     scanf( %d%d%d , &n, &x[0], &x[1]);     for (int i = 0; i < n; ++i) {       scanf( %d , &c[i].first);       c[i].second = i;     }     sort(c, c + n);     for (int i = 0; i < n; ++i) {       if (check(i, 0, 1) || check(i, 1, 0)) {         return 0;       }     }     printf( No n );     return 0;   }   