#include <bits/stdc++.h>
using namespace std;
signed main() {
  ios_base::sync_with_stdio(0);
  cin.tie(0);
  cout.tie(0);
  long long n, x1, x2;
  cin >> n >> x1 >> x2;
  pair<long long, long long> arr[n];
  for (long long i = 0; i < n; i++) {
    cin >> arr[i].first;
    arr[i].second = i + 1;
  }
  sort(arr, arr + n);
  long long i;
  for (i = 0; i < n; i++) {
    long long x = x1 / arr[i].first + (x1 % arr[i].first != 0);
    if (i + x < n) {
      long long y = x2 / arr[i + x].first + (x2 % arr[i + x].first != 0);
      if (i + x + y - 1 < n) {
        cout << "Yes\n";
        cout << x << " " << y << "\n";
        for (long long j = i; j <= i + x - 1; j++) {
          cout << arr[j].second << " ";
        }
        cout << "\n";
        for (long long j = i + x; j <= i + x + y - 1; j++) {
          cout << arr[j].second << " ";
        }
        break;
      }
    }
    x = x2 / arr[i].first + (x2 % arr[i].first != 0);
    if (i + x < n) {
      long long y = x1 / arr[i + x].first + (x1 % arr[i + x].first != 0);
      if (i + x + y - 1 < n) {
        cout << "Yes\n";
        cout << y << " " << x << "\n";
        for (long long j = i + x; j <= i + x + y - 1; j++) {
          cout << arr[j].second << " ";
        }
        cout << "\n";
        for (long long j = i; j <= i + x - 1; j++) {
          cout << arr[j].second << " ";
        }
        break;
      }
    }
  }
  if (i == n) cout << "No\n";
  return 0;
}
