#include <bits/stdc++.h>   using namespace std;   const int nax = 3e5 + 5;   long long n, x1, x2;   array<long long, 2> c[nax];   int main() {     ios::sync_with_stdio(0);     cin.tie(0);     cin >> n >> x1 >> x2;     for (int i = 0; i < n; i++) cin >> c[i][0], c[i][1] = i;     sort(c, c + n);     for (int rep = 0; rep < 2; rep++) {       int best = n - 1;       for (; ~best; --best)         if (c[best][0] >= (x2 + n - best - 1) / (n - best)) break;       if (best == -1) continue;       for (int k = 1; k < n; k++) {         int j = lower_bound(c, c + n, array<long long, 2>{(x1 + k - 1) / k}) - c;         if (j + k - 1 >= best) continue;         cout <<  Yes n ;         if (rep == 0) {           cout << k <<     << n - best <<   n ;           for (int i = j; i < j + k; i++) cout << c[i][1] + 1 <<    ;           cout <<   n ;           for (int i = best; i < n; i++) cout << c[i][1] + 1 <<    ;           cout <<   n ;         } else {           cout << n - best <<     << k <<   n ;           for (int i = best; i < n; i++) cout << c[i][1] + 1 <<    ;           cout <<   n ;           for (int i = j; i < j + k; i++) cout << c[i][1] + 1 <<    ;           cout <<   n ;         }         exit(0);       }       swap(x1, x2);     }     cout <<  No n ;   }   