#include <bits/stdc++.h>
using namespace std;
int a[300010];
int main() {
  int n, s1, s2;
  scanf("%d%d%d", &n, &s1, &s2);
  for (int i = 1; i <= n; i++) scanf("%d", &a[i]);
  sort(a + 1, a + n + 1);
  for (int i = 1; i <= n; i++) {
    int flag = 0;
    int num = s1 % a[i] ? s1 / a[i] + 1 : s1 / a[i];
    int j = i + num;
    if (a[j] * (n - j + 1) >= s2) flag = 1;
    if (flag) {
      cout << "Yes" << endl;
      cout << num << ' ' << n - j + 1 << endl;
      for (int k = i; k < i + num; k++) cout << a[k] << ' ';
      cout << endl;
      for (int k = i + num; k <= n; k++) cout << a[k] << ' ';
      return 0;
    }
    num = s2 % a[i] ? s2 / a[i] + 1 : s2 / a[i];
    j = i + num;
    if (a[j] * (n - j + 1) >= s1) flag = 1;
    if (flag) {
      cout << "Yes" << endl;
      cout << n - j + 1 << ' ' << num << endl;
      for (int k = i + num; k <= n; k++) cout << a[k] << ' ';
      cout << endl;
      for (int k = i; k < i + num; k++) cout << a[k] << ' ';
      return 0;
    }
  }
  cout << "No";
  return 0;
}
