#include <bits/stdc++.h>
using namespace std;
vector<long long> a(100500);
map<long long, long long> d;
long long n, L, x, y;
bool zero() {
  bool girl = false, boy = false;
  for (long long i = 1; i <= n; i++) {
    long long start = a[i];
    long long fgirl = a[i] + x, fboy = a[i] + y;
    if (d[fgirl] == 1) girl = true;
    if (d[fboy] == 1) boy = true;
  }
  if (boy && girl) {
    cout << 0;
    exit(0);
  }
  if (boy) {
    cout << 1 << endl;
    cout << x;
    exit(0);
  }
  if (girl) {
    cout << 1 << endl;
    cout << y;
    exit(0);
  }
}
bool easy() {}
bool one() {
  for (long long i = 1; i < n; i++) {
    long long start = a[i];
    long long for_girl = start + x;
    if (d[for_girl] == 1) {
      long long up = start + y;
      if (up <= L) {
        cout << 1 << endl << up;
        exit(0);
      }
      long long down = for_girl - y;
      if (down >= 0) {
        cout << 1 << endl << down;
        exit(0);
      }
    }
    long long for_boy = start + y;
    if (d[for_boy] == 1) {
      long long up = start + x;
      if (up <= L) {
        cout << 1 << endl << up;
        exit(0);
      }
      long long down = for_boy - x;
      if (down >= 0) {
        cout << 1 << endl << down;
        exit(0);
      }
    }
  }
  for (long long i = 1; i < n; i++) {
    long long finish = a[i];
    long long for_girl = finish - x;
    if (d[for_girl] == 1) {
      long long up = for_girl + y;
      if (up <= L) {
        cout << 1 << endl << up;
        exit(0);
      }
      long long down = finish - y;
      if (down >= 0) {
        cout << 1 << endl << down;
        exit(0);
      }
    }
    long long for_boy = finish - y;
    if (d[for_boy] == 1) {
      long long up = for_boy + x;
      if (up <= L) {
        cout << 1 << endl << up;
        exit(0);
      }
      long long down = finish - x;
      if (down >= 0) {
        cout << 1 << endl << down;
        exit(0);
      }
    }
  }
  for (long long i = 1; i < n; i++) {
    long long start = a[i];
    long long for_girl = start + x;
    if (d[for_girl] == 0 && for_girl <= L) {
      if ((for_girl + y <= L && d[for_girl + y]) ||
          (for_girl - y >= 0 && (d[for_girl - y]))) {
        cout << 1 << endl;
        cout << for_girl;
        exit(0);
      }
    }
    long long for_boy = start + y;
    if (d[for_boy] == 0 && for_boy <= L) {
      if ((for_boy + x <= L && d[for_boy + x]) ||
          (for_boy - x >= 0 && d[for_boy - x])) {
        cout << 1 << endl;
        cout << for_boy;
        exit(0);
      }
    }
  }
  for (long long i = 1; i < n; i++) {
    long long finish = a[i];
    long long for_girl = finish - x;
    if (d[for_girl] == 0 && for_girl >= 0) {
      if ((for_girl + y <= L && d[for_girl + y]) ||
          (for_girl - y >= 0 && (d[for_girl - y]))) {
        cout << 1 << endl;
        cout << for_girl;
        exit(0);
      }
    }
    long long for_boy = finish - y;
    if (d[for_boy] == 0 && for_boy >= 0) {
      if ((for_boy + x <= L && d[for_boy + x]) ||
          (for_boy - x >= 0 && d[for_boy - x])) {
        cout << 1 << endl;
        cout << for_boy;
        exit(0);
      }
    }
  }
}
int main() {
  cin >> n >> L >> x >> y;
  long long i, j;
  for (i = 1; i <= n; i++) {
    cin >> a[i];
    d[a[i]] = 1;
  }
  zero();
  one();
  cout << 2 << endl << x << " " << y << endl;
  return 0;
}
