#include <bits/stdc++.h>
using namespace std;
const long double pi = 3.14159265358979323;
const double EPS = 1e-12;
const int N = 1e6 + 5;
const int MOD = 1e9 + 7;
std::vector<pair<long long int, long long int> > v;
int main() {
  ios_base::sync_with_stdio(0);
  cin.tie(NULL);
  cout.tie(NULL);
  long long int n, x, xx, y;
  cin >> n >> x >> xx;
  for (int i = 0; i < n; i++) {
    cin >> y;
    v.push_back({y, i});
  }
  sort(v.begin(), v.end());
  for (int i = 0; i < n; i++) {
    long long int t = (x + v[i].first - 1) / v[i].first;
    if (t + i < n) {
      long long int tt = (xx + v[t + i].first - 1) / v[t + i].first;
      if (t + i + tt <= n) {
        cout << "Yes\n";
        cout << t << " " << tt << "\n";
        for (int j = i; j < t + i; j++) cout << v[j].second + 1 << " ";
        cout << "\n";
        for (int j = t + i; j < tt + t + i; j++) cout << v[j].second + 1 << " ";
        return 0;
      }
    }
  }
  for (int i = 0; i < n; i++) {
    long long int t = (xx + v[i].first - 1) / v[i].first;
    if (t + i < n) {
      long long int tt = (x + v[t + i].first - 1) / v[t + i].first;
      if (tt + t + i <= n) {
        cout << "Yes\n";
        cout << tt << " " << t << "\n";
        for (int j = t + i; j < tt + t + i; j++) cout << v[j].second + 1 << " ";
        cout << "\n";
        for (int j = i; j < t + i; j++) cout << v[j].second + 1 << " ";
        return 0;
      }
    }
  }
  cout << "No\n";
  return 0;
}
