#include <bits/stdc++.h>
using namespace std;
const int maxn = 3 * 1e5 + 5;
typedef struct stan_node {
  long long int load;
  long long int id;
  stan_node(long long int load, long long int id) {
    this->load = load;
    this->id = id;
  }
} sn;
long long int n, s1, s2;
sn *res[maxn];
bool cmp_load(sn *a, sn *b) { return a->load < b->load; }
int main(void) {
  cin >> n >> s1 >> s2;
  for (int i = 1; i <= n; i++) {
    long long int load;
    cin >> load;
    res[i] = new stan_node(load, i);
  }
  sort(res + 1, res + n + 1, cmp_load);
  long long int x, flag = 0;
  for (x = n; x > 0; x--) {
    long long int load = res[x]->load;
    if (load * (n - x + 1) >= s2) {
      flag = 1;
      break;
    }
  }
  if (flag == 1) {
    long long int start = x - 1;
    flag = 0;
    for (x = x - 1; x > 0; x--) {
      long long int load = res[x]->load;
      if (load * (start - x + 1) >= s1) {
        flag = 1;
        break;
      }
    }
    if (flag == 1) {
      cout << "Yes" << endl;
      cout << start - x + 1 << " " << n - start << endl;
      for (int i = x; i <= start; i++) {
        cout << res[i]->id << " ";
      }
      cout << endl;
      for (int i = start + 1; i <= n; i++) {
        cout << res[i]->id << " ";
      }
      cout << endl;
      return 0;
    }
  }
  flag = 0;
  for (x = n; x > 0; x--) {
    long long int load = res[x]->load;
    if (load * (n - x + 1) >= s1) {
      flag = 1;
      break;
    }
  }
  if (flag == 1) {
    long long int start = x - 1;
    flag = 0;
    for (x = x - 1; x > 0; x--) {
      long long int load = res[x]->load;
      if (load * (start - x + 1) >= s2) {
        flag = 1;
        break;
      }
    }
    if (flag == 1) {
      cout << "Yes" << endl;
      cout << n - start << " " << start - x + 1 << endl;
      for (int i = start + 1; i <= n; i++) {
        cout << res[i]->id << " ";
      }
      cout << endl;
      for (int i = x; i <= start; i++) {
        cout << res[i]->id << " ";
      }
      cout << endl;
      return 0;
    }
  }
  cout << "No" << endl;
  return 0;
}
