#include <bits/stdc++.h>
using namespace std;
const int maxn = 300005;
int c[maxn], f[maxn];
bool cmp(int a, int b) { return c[a] < c[b]; }
int ansl, ansr;
int n, x1, x2;
bool check(int x, int y) {
  int i = n;
  while (i >= 1 && 1LL * (n - i + 1) * c[f[i]] < y) i--;
  if (i == 0) return 0;
  int j = i - 1;
  while (j >= 1 && 1LL * (i - j) * c[f[j]] < x) j--;
  if (j == 0) return 0;
  ansl = j;
  ansr = i;
  return 1;
}
int main() {
  cin >> n >> x1 >> x2;
  for (int i = 1; i <= n; i++) scanf("%d", &c[i]), f[i] = i;
  sort(f + 1, f + 1 + n, cmp);
  if (check(x1, x2)) {
    puts("Yes");
    cout << ansr - ansl << ' ' << n - ansr + 1 << endl;
    for (int i = ansl; i < ansr; i++) printf("%d ", f[i]);
    cout << endl;
    for (int i = ansr; i <= n; i++) printf("%d ", f[i]);
    cout << endl;
  } else if (check(x2, x1)) {
    puts("Yes");
    cout << n - ansr + 1 << ' ' << ansr - ansl << endl;
    for (int i = ansr; i <= n; i++) printf("%d ", f[i]);
    cout << endl;
    for (int i = ansl; i < ansr; i++) printf("%d ", f[i]);
    cout << endl;
  } else
    puts("No");
}
