#include <bits/stdc++.h>
using namespace std;
const long long int N = 1e5 + 5;
const long long int mod = 1e17 + 7;
set<long long int> s;
bool gi, bo;
long long int res = 0;
long long int c[5];
int main() {
  ios::sync_with_stdio(false);
  long long int n, l, x, y;
  cin >> n >> l >> x >> y;
  for (long long int i = 1; i < n + 1; i++) {
    long long int z;
    cin >> z;
    s.insert(z);
    if (s.count(z - x) or s.count(z + x)) {
      gi = 1;
    }
    if (s.count(z - y) or s.count(z + y)) {
      bo = 1;
    }
    if (gi == 1 and bo == 1) {
      cout << "0\n";
      return 0;
    }
    if (res != 1) {
      if (s.count(z - x - y)) {
        res = 1;
        c[1] = z - x;
      }
      if (s.count(z + x + y)) {
        res = 1;
        c[1] = z + x;
      }
      if (s.count(z + x - y) and z + x <= l) {
        res = 1;
        c[1] = z + x;
      }
      if (s.count(z - x + y) and z + y <= l) {
        res = 1;
        c[1] = z + y;
      }
      if (s.count(z + x - y) and z - y >= 0) {
        res = 1;
        c[1] = z - y;
      }
      if (s.count(z - x + y) and z - x >= 0) {
        res = 1;
        c[1] = z - x;
      }
    }
  }
  if (res != 1) {
    res = 0;
    if (!gi) {
      res++;
      c[res] = x;
      s.insert(x);
    }
    if (!bo) {
      res++;
      c[res] = y;
    }
  }
  cout << res << endl;
  for (long long int i = 1; i < res + 1; i++) {
    cout << c[i] << " ";
  }
  return 0;
}
