#include <bits/stdc++.h>
using namespace std;
long long n, x1, x2;
pair<long long, long long> arr[300001];
int32_t main() {
  ios::sync_with_stdio(0);
  cin.tie(0);
  cout.tie(0);
  ;
  cin >> n >> x1 >> x2;
  for (long long i = 0; i < n; i++) {
    long long a;
    cin >> a;
    arr[i] = {a, i + 1};
  }
  sort(arr + 0, arr + n);
  reverse(arr + 0, arr + n);
  for (long long i = 0; i < n; i++) {
    if (x1 <= arr[i].first * (i + 1)) {
      for (long long j = i + 1; j < n; j++) {
        if (x2 <= arr[j].first * (j - i)) {
          cout << "Yes"
               << "\n";
          cout << i + 1 << " " << j - i << "\n";
          for (long long k = 0; k <= i; k++) cout << arr[k].second << " ";
          cout << "\n";
          for (long long k = i + 1; k <= j; k++) cout << arr[k].second << " ";
          cout << "\n";
          return 0;
        }
      }
      break;
    }
  }
  for (long long i = 0; i < n; i++) {
    if (x2 <= arr[i].first * (i + 1)) {
      for (long long j = i + 1; j < n; j++) {
        if (x1 <= arr[j].first * (j - i)) {
          cout << "Yes"
               << "\n";
          cout << j - i << " " << i + 1 << "\n";
          for (long long k = i + 1; k <= j; k++) cout << arr[k].second << " ";
          cout << "\n";
          for (long long k = 0; k <= i; k++) cout << arr[k].second << " ";
          cout << "\n";
          return 0;
        }
      }
      break;
    }
  }
  cout << "No";
}
