#include <bits/stdc++.h>
using namespace std;
long long n, l, x, y;
map<long long, bool> mp;
int a[100005];
void chk(int d, int t) {
  if (d < 0 || d > l) return;
  if ((mp[d + t] || mp[d - t])) {
    cout << 1 << endl << d;
    exit(0);
  }
}
int main() {
  bool fst = false, sec = false;
  cin >> n >> l >> x >> y;
  for (int i = 0; i < n; i++) {
    cin >> a[i];
    mp[a[i]] = true;
  }
  for (int i = 0; i < n; i++) {
    if (mp[a[i] - x]) fst = true;
    if (mp[a[i] + x]) fst = true;
    if (mp[a[i] - y]) sec = true;
    if (mp[a[i] + y]) sec = true;
  }
  if (fst && sec) {
    cout << 0;
    return 0;
  } else if (fst && !sec) {
    cout << 1 << endl << y;
    return 0;
  } else if (!fst && sec) {
    cout << 1 << endl << x;
    return 0;
  } else {
    for (int i = 0; i < n; i++) {
      chk(a[i] + x, y);
      chk(a[i] - x, y);
      chk(a[i] + y, x);
      chk(a[i] - y, x);
    }
    cout << 2 << endl << x << ' ' << y;
    return 0;
  }
}
