#include <bits/stdc++.h>
using namespace std;
const int INF = 1 << 30;
pair<int, int> server[311111];
int main() {
  int n, x1, x2, temp, k1, k2;
  scanf("%d %d %d", &n, &x1, &x2);
  for (int i = 1; i <= n; i++) {
    scanf("%d", &server[i].first);
    server[i].second = i;
  }
  sort(server + 1, server + n + 1);
  for (int i = 1; i <= n; i++) {
    temp = server[n - i + 1].first;
    k1 = (x1 + temp - 1) / temp;
    k2 = i - k1;
    if (k2 >= 1 && (x2 + k2 - 1) / k2 <= server[n - k2 + 1].first) {
      printf("Yes\n%d %d\n", k1, k2);
      for (int j = n - i + 1; j < n - i + 1 + k1; j++)
        printf("%d ", server[j].second);
      printf("\n");
      for (int j = n - i + 1 + k1; j <= n; j++) printf("%d ", server[j].second);
      return 0;
    }
    k2 = (x2 + temp - 1) / temp;
    k1 = i - k2;
    if (k1 >= 1 && (x1 + k1 - 1) / k1 <= server[n - k1 + 1].first) {
      printf("Yes\n%d %d\n", k1, k2);
      for (int j = n - i + 1 + k2; j <= n; j++) printf("%d ", server[j].second);
      printf("\n");
      for (int j = n - i + 1; j < n - i + 1 + k2; j++)
        printf("%d ", server[j].second);
      return 0;
    }
  }
  printf("No\n");
}
