#include <bits/stdc++.h>
using namespace std;
const int MAXN = 3e5 + 100;
const int N = 1e6 + 100;
const long long int mod = 1e9 + 7;
const long long int hashh = 311;
const long long int INF = 1e18;
pair<long long int, long long int> a[MAXN];
int main() {
  ios::sync_with_stdio(false);
  cin.tie(0);
  cout.tie(0);
  int n, m, k;
  cin >> n >> m >> k;
  for (int i = 0; i < n; i++) cin >> a[i].first, a[i].second = i + 1;
  sort(a, a + n);
  for (int i = 0; i < n; i++) {
    int x = m / a[i].first;
    if (m % a[i].first > 0) x++;
    if (x + i < n) {
      int y = k / a[i + x].first;
      if (k % a[i + x].first > 0) y++;
      if (x + y + i <= n) {
        cout << "Yes \n";
        cout << x << " " << y << "\n";
        for (int j = i; j < x + i; j++) cout << a[j].second << " ";
        cout << "\n";
        for (int j = x + i; j < x + y + i; j++) cout << a[j].second << " ";
        return 0;
      }
    }
    x = k / a[i].first;
    if (k % a[i].first > 0) x++;
    if (x + i < n) {
      int y = m / a[i + x].first;
      if (m % a[i + x].first > 0) y++;
      if (x + y + i <= n) {
        cout << "Yes \n";
        cout << y << " " << x << "\n";
        for (int j = x + i; j < x + y + i; j++) cout << a[j].second << " ";
        cout << "\n";
        for (int j = i; j < x + i; j++) cout << a[j].second << " ";
        return 0;
      }
    }
  }
  cout << "No";
}
