#include <bits/stdc++.h>
using namespace std;
int main() {
  std::ios_base::sync_with_stdio(false);
  int n;
  long long l, first, second;
  cin >> n >> l >> first >> second;
  vector<long long> a(n);
  map<long long, bool> flag;
  for (int i = 0; i < int(n); i++) {
    cin >> a[i];
    flag[a[i]] = true;
  }
  bool fx = false, fy = false;
  for (int i = n - 1; i >= 0; i--) {
    if (flag.count(a[i] - first)) fx = true;
    if (flag.count(a[i] - second)) fy = true;
  }
  if (!fx && !fy) {
    long long diff = second - first;
    for (int i = 0; i < n; i++) {
      if (flag.count(a[i] - diff)) {
        if (a[i] + first <= l) {
          cout << 1 << "\n";
          cout << a[i] + first;
          return 0;
        }
        if (a[i] - second >= 0) {
          cout << 1 << "\n";
          cout << a[i] - second;
          return 0;
        }
      }
    }
    long long add = first + second;
    for (int i = 0; i < n; i++) {
      if (flag.count(a[i] + add)) {
        if (a[i] + first <= l) {
          cout << 1 << "\n";
          cout << a[i] + first;
          return 0;
        }
      }
    }
    cout << 2 << "\n";
    cout << first << " " << second;
  } else if (!fx) {
    cout << 1 << "\n";
    cout << first;
  } else if (!fy) {
    cout << 1 << "\n";
    cout << second;
  } else
    cout << "0\n";
  return 0;
}
