#include <bits/stdc++.h>
using namespace std;
const long long inf = (long long)1e18;
const long long mod = (long long)1e9 + 7;
const double eps = (double)1e-9;
const double pi = acos(-1.0);
const int dx[] = {0, 0, 1, 0, -1};
const int dy[] = {0, 1, 0, -1, 0};
const int N = 300500;
int n, xa, xb;
pair<int, int> a[N];
pair<bool, bool> ok[N];
pair<pair<int, int>, pair<int, int> > p[N];
int main() {
  cin.tie(NULL);
  cout.tie(NULL);
  ios_base::sync_with_stdio(false);
  cin >> n >> xa >> xb;
  for (int i = 1; i <= n; ++i) cin >> a[i].first, a[i].second = i;
  sort(a + 1, a + n + 1);
  for (int i = n; i >= 1; --i) {
    int l = 1, r = 1e9;
    while (l <= r) {
      int md = (l + r) >> 1;
      if ((xa + md - 1) / md <= a[i].first)
        r = md - 1;
      else
        l = md + 1;
    }
    ok[i].first = ok[i + 1].first;
    ok[i].second = ok[i + 1].second;
    p[i] = p[i + 1];
    if (n - i + 1 >= r + 1) {
      ok[i].first = 1, p[i].first = make_pair(i, r + 1);
      if (ok[i + r + 1].second) {
        cout << "Yes\n";
        cout << r + 1 << " " << p[i + r + 1].second.second << endl;
        for (int j = i; j <= i + r; ++j) cout << a[j].second << " ";
        cout << endl;
        for (int j = p[i + r + 1].second.first;
             j <= p[i + r + 1].second.first + p[i + r + 1].second.second - 1;
             ++j)
          cout << a[j].second << " ";
        return 0;
      }
    }
    l = 1, r = 1e9;
    while (l <= r) {
      int md = (l + r) >> 1;
      if ((xb + md - 1) / md <= a[i].first)
        r = md - 1;
      else
        l = md + 1;
    }
    if (n - i + 1 >= r + 1) {
      ok[i].second = 1, p[i].second = make_pair(i, r + 1);
      if (ok[i + r + 1].first) {
        cout << "Yes\n";
        cout << p[i + r + 1].first.second << " " << r + 1 << endl;
        for (int j = p[i + r + 1].first.first;
             j <= p[i + r + 1].first.first + p[i + r + 1].first.second - 1; ++j)
          cout << a[j].second << " ";
        cout << endl;
        for (int j = i; j <= i + r; ++j) cout << a[j].second << " ";
        return 0;
      }
    }
  }
  cout << "No";
  return 0;
}
