#include <bits/stdc++.h>
using namespace std;
const long long N = 3e5 + 5;
const long long INF = 1e9;
const long long mod = 1e9 + 7;
long long n, x1, x2, bisa[N];
pair<long long, long long> arr[N];
int main() {
  ios_base::sync_with_stdio(false);
  cin.tie(NULL);
  cout.tie(NULL);
  cin >> n >> x1 >> x2;
  for (long long i = 1; i <= n; i++) {
    cin >> arr[i].first;
    arr[i].second = i;
  }
  sort(arr + 1, arr + n + 1);
  reverse(arr + 1, arr + n + 1);
  for (int i = 1; i <= n; i++) {
    int z = (x1 + arr[i].first - 1) / arr[i].first;
    if (z >= i) continue;
    int r = i - z;
    int z2 = (x2 + arr[r].first - 1) / arr[r].first;
    if (z2 <= r) {
      cout << "Yes" << endl;
      cout << z << " " << z2 << endl;
      for (int j = i - z + 1; j <= i; j++) {
        cout << arr[j].second << " ";
      }
      cout << endl;
      for (int j = r - z2 + 1; j <= r; j++) {
        cout << arr[j].second << " ";
      }
      cout << endl;
      return 0;
    }
  }
  for (int i = 1; i <= n; i++) {
    int z = (x2 + arr[i].first - 1) / arr[i].first;
    if (z >= i) continue;
    int r = i - z;
    int z2 = (x1 + arr[r].first - 1) / arr[r].first;
    if (z2 <= r) {
      cout << "Yes" << endl;
      cout << z2 << " " << z << " " << endl;
      for (int j = r - z2 + 1; j <= r; j++) {
        cout << arr[j].second << " ";
      }
      cout << endl;
      for (int j = i - z + 1; j <= i; j++) {
        cout << arr[j].second << " ";
      }
      cout << endl;
      return 0;
    }
  }
  cout << "No" << endl;
}
