#include <bits/stdc++.h>
using namespace std;
const long long inf = 1e16;
const int maxn = 1e6;
long long n, x1, x2;
pair<long long, int> c[maxn];
long long mn, mx;
void solve() {
  int limit = -1;
  for (int i = n - 1; i > 0; i--) {
    if (c[i].first * (n - i) >= mn) {
      limit = i;
      break;
    }
  }
  if (limit == -1) return;
  for (int i = limit - 1; i >= 0; i--) {
    if (c[i].first * (limit - i) >= mx) {
      cout << "Yes\n";
      if (x1 == mn) {
        cout << n - limit << " " << limit - i << "\n";
        for (int j = limit; j < n; j++) {
          cout << c[j].second << " ";
        }
        cout << "\n";
        for (int j = i; j < limit; j++) {
          cout << c[j].second << " ";
        }
        cout << "\n";
      } else {
        cout << limit - i << " " << n - limit << "\n";
        for (int j = i; j < limit; j++) {
          cout << c[j].second << " ";
        }
        cout << "\n";
        for (int j = limit; j < n; j++) {
          cout << c[j].second << " ";
        }
        cout << "\n";
      }
      exit(0);
    }
  }
}
int main() {
  ios_base::sync_with_stdio(false);
  cin.tie(NULL);
  cout.tie(NULL);
  cin >> n >> x1 >> x2;
  for (int i = 0; i < n; i++) cin >> c[i].first, c[i].second = i + 1;
  sort(c, c + n);
  mn = x1, mx = x2;
  solve();
  swap(mn, mx);
  solve();
  cout << "No\n";
}
