#include <bits/stdc++.h>
using namespace std;
int main() {
  long long int n, x1, x2, y, min = INT_MAX, j1, j2;
  cin >> n >> x1 >> x2;
  vector<pair<long long int, long long int> > v;
  for (long long int i = 0; i < n; i++) {
    cin >> y;
    v.push_back(make_pair(y, i));
  }
  sort(v.begin(), v.end());
  for (j1 = n - 1; j1 >= 0; j1--) {
    if (v[j1].first * (n - j1) >= x1) break;
  }
  for (j2 = j1 - 1; j2 >= 0; j2--) {
    if (v[j2].first * (j1 - j2) >= x2) break;
  }
  if (j2 >= 0) {
    cout << "Yes" << endl;
    for (long long int i = j1; i < n; i++) {
      cout << v[i].second + 1 << " ";
    }
    cout << endl;
    for (long long int i = j2; i < j1; i++) {
      cout << v[i].second + 1 << " ";
    }
    return 0;
  }
  for (j1 = n - 1; j1 >= 0; j1--) {
    if (v[j1].first * (n - j1) >= x2) break;
  }
  for (j2 = j1 - 1; j2 >= 0; j2--) {
    if (v[j2].first * (j1 - j2) >= x1) break;
  }
  if (j2 >= 0) {
    cout << "Yes" << endl;
    for (long long int i = j2; i < j1; i++) {
      cout << v[i].second + 1 << " ";
    }
    cout << endl;
    for (long long int i = j1; i < n; i++) {
      cout << v[i].second + 1 << " ";
    }
    return 0;
  }
  cout << "No" << endl;
}
