#include <bits/stdc++.h>
using namespace std;
pair<int, int> *a;
int n;
bool f(int x, int y, bool t) {
  bool k = 0;
  for (int i = 0; i < int(n); i++) {
    if (long long int(a[i].first) * (i + 1) >= x) {
      for (int j = int(i + 1); j < int(n); j++) {
        if (long long int(a[j].first) * (j - i) >= y) {
          k = 1;
          cout << "Yes\n";
          if (t) {
            cout << j - 1 << ' ' << i + 1 << '\n';
            for (int k = int(i + 1); k < int(j + 1); k++)
              cout << a[k].second << ' ';
            cout << '\n';
            for (int k = 0; k < int(i + 1); k++) cout << a[k].second << ' ';
            cout << '\n';
          } else {
            cout << i + 1 << ' ' << j - 1 << '\n';
            for (int k = 0; k < int(i + 1); k++) cout << a[k].second << ' ';
            cout << '\n';
            for (int k = int(i + 1); k < int(j + 1); k++)
              cout << a[k].second << ' ';
            cout << '\n';
          }
          break;
        }
      }
    }
    if (k) break;
  }
  return k;
}
int main() {
  ios_base::sync_with_stdio(0);
  cin.tie(0);
  ;
  int x, y;
  cin >> n >> x >> y;
  a = new pair<int, int>[n];
  for (int i = 0; i < int(n); i++) {
    int z;
    cin >> z;
    a[i] = make_pair(z, i + 1);
  }
  sort(a, a + n);
  int m = n / 2;
  for (int i = 0; i < int(m); i++) {
    pair<int, int> b = a[i];
    a[i] = a[n - i - 1];
    a[n - i - 1] = b;
  }
  if (!f(x, y, 0) && !f(y, x, 1)) cout << "No\n";
  return 0;
}
