#include <bits/stdc++.h>
using namespace std;
int n, x1, x2;
pair<int, int> a[400000];
int main() {
  scanf("%d%d%d", &n, &x1, &x2);
  for (int i = 1; i <= n; i++) scanf("%d", &a[i].first), a[i].second = i;
  sort(a + 1, a + n + 1);
  for (int k = 1; k <= n; k++) {
    int ts = a[n - k + 1].first;
    int u = (x1 + ts - 1) / ts;
    int v = k - u;
    if (v >= 1 && (x2 + v - 1) / v <= a[n - v + 1].first) {
      puts("Yes");
      printf("%d %d\n", u, v);
      for (int i = n - k + 1; i < n - v + 1; i++) printf("%d ", a[i].second);
      puts("");
      for (int i = n - v + 1; i <= n; i++) printf("%d ", a[i].second);
      return 0;
    }
    v = (x2 + ts - 1) / ts;
    u = k - v;
    if (u >= 1 && (x1 + u - 1) / u <= a[n - u + 1].first) {
      puts("Yes");
      printf("%d %d\n", u, v);
      for (int i = n - u + 1; i <= n; i++) printf("%d ", a[i].second);
      puts("");
      for (int i = n - k + 1; i < n - u + 1; i++) printf("%d ", a[i].second);
      return 0;
    }
  }
  puts("No");
  return 0;
}
