#include <bits/stdc++.h>
using namespace std;
const long long MOD = 1e9 + 7;
const int INF = 1e9 + 7;
void solve() {
  int n, x1, x2;
  cin >> n >> x1 >> x2;
  vector<pair<int, int>> cs(n);
  for (int i = 0; i < n; ++i) {
    cin >> cs[i].first;
    cs[i].second = i;
  }
  sort(cs.begin(), cs.end());
  int kol1 = 0;
  for (int i = int(cs.size()) - 1; i >= 0; --i) {
    int minc = cs[i].first;
    kol1++;
    int power = x1 / kol1 + int(x1 % kol1 != 0);
    if (power <= minc) {
      int kol2 = 0;
      for (int j = i - 1; j >= 0; --j) {
        int minc = cs[j].first;
        kol2++;
        power = x2 / kol2 + int(x2 % kol2 != 0);
        if (power <= minc) {
          cout << "Yes\n";
          cout << kol1 << ' ' << kol2 << '\n';
          for (int ii = 0; ii < kol1; ++ii) {
            cout << cs[i + ii].second + 1 << ' ';
          }
          cout << '\n';
          for (int ii = 0; ii < kol2; ++ii) {
            cout << cs[j + ii].second + 1 << ' ';
          }
          exit(0);
        }
      }
      break;
    }
  }
  int kol2 = 0;
  for (int i = int(cs.size()) - 1; i >= 0; --i) {
    int minc = cs[i].first;
    kol2++;
    int power = x2 / kol2 + int(x2 % kol2 != 0);
    if (power <= minc) {
      int kol1 = 0;
      for (int j = i - 1; j >= 0; --j) {
        int minc = cs[j].first;
        kol1++;
        power = x1 / kol1 + int(x1 % kol1 != 0);
        if (power <= minc) {
          cout << "Yes\n";
          cout << kol1 << ' ' << kol2 << '\n';
          for (int ii = 0; ii < kol1; ++ii) {
            cout << cs[j + ii].second + 1 << ' ';
          }
          cout << '\n';
          for (int ii = 0; ii < kol2; ++ii) {
            cout << cs[i + ii].second + 1 << ' ';
          }
          exit(0);
        }
      }
      break;
    }
  }
  cout << "No";
}
int main() {
  solve();
  return 0;
}
