#include <bits/stdc++.h>
using namespace std;
const int M = 1e9 + 7;
int n;
vector<pair<long long, long long>> A;
int main() {
  ios_base::sync_with_stdio(false);
  cin.tie(NULL);
  cin >> n;
  vector<long long> r(2);
  cin >> r[0] >> r[1];
  vector<vector<int>> res(2);
  A = vector<pair<long long, long long>>(n);
  for (int i = 0; i < n; ++i) {
    cin >> A[i].first;
    A[i].second = i;
  }
  sort(A.begin(), A.end());
  int i1 = 0, i2 = 1;
  for (int w = 0; w < 2; ++w) {
    long long r2 = r[i2];
    long long r1 = r[i1];
    int r2st = -1, r1st = -1;
    for (int i = n - 1; i >= 0; --i) {
      if (r2 <= A[i].first * (n - i)) {
        r2st = i;
        break;
      }
    }
    if (r2st != -1) {
      for (int i = r2st - 1; i >= 0; --i) {
        if (r1 <= A[i].first * (r2st - i)) {
          r1st = i;
          break;
        }
      }
      if (r1st != -1) {
        for (int i = r1st; i < r2st; ++i) {
          res[i1].push_back(A[i].second + 1);
        }
        for (int i = r2st; i < n; ++i) {
          res[i2].push_back(A[i].second + 1);
        }
        cout << "Yes"
             << "\n";
        cout << res[0].size() << " " << res[1].size() << "\n";
        for (int i = 0; i < 2; ++i) {
          for (int j : res[i]) {
            cout << j << " ";
          }
          cout << "\n";
        }
        return 0;
      }
    }
    swap(i1, i2);
  }
  cout << "No"
       << "\n";
  return 0;
}
