#include <bits/stdc++.h>
using namespace std;
vector<pair<long long, long long> > v;
int main() {
  ios_base::sync_with_stdio(false);
  cin.tie(0);
  cout.tie(0);
  long long n, x, y, z;
  cin >> n >> x >> y;
  for (long long i = 0; i < n; i++) {
    cin >> z;
    v.push_back({z, i});
  }
  sort(v.begin(), v.end());
  for (int i = n - 2; i > -1; i--) {
    int p1, p2, p3, e1, e2;
    long long val1, val2;
    val1 = v[i].first;
    e1 = (x + val1 - 1) / val1;
    p1 = i + e1;
    if (p1 < n) {
      val2 = v[p1].first;
      e2 = (y + val2 - 1) / val2;
      p2 = p1 + e2;
      if (p2 <= n) {
        cout << "Yes" << endl;
        cout << e1 << " " << e2 << endl;
        for (int j = i; j < p1; j++) cout << v[j].second + 1 << " ";
        cout << endl;
        for (int j = p1; j < p2; j++) cout << v[j].second + 1 << " ";
        cout << endl;
        return 0;
      }
    }
    val1 = v[i].first;
    e1 = (y + val1 - 1) / val1;
    p1 = i + e1;
    if (p1 < n) {
      val2 = v[p1].first;
      e2 = (x + val2 - 1) / val2;
      p2 = p1 + e2;
      if (p2 <= n) {
        cout << "Yes" << endl;
        cout << e2 << " " << e1 << endl;
        for (int j = p1; j < p2; j++) cout << v[j].second + 1 << " ";
        cout << endl;
        for (int j = i; j < p1; j++) cout << v[j].second + 1 << " ";
        cout << endl;
        return 0;
      }
    }
  }
  cout << "No" << endl;
  return 0;
}
