#include <bits/stdc++.h>
using namespace std;
const double pi = acos(-1.0);
const double eps = 1e-8;
int main() {
  ios_base::sync_with_stdio(0);
  map<long long, bool> mapa;
  long long in[200009];
  long long n, len, x, y;
  cin >> n >> len >> x >> y;
  for (int i = 0; i < n; i++) {
    cin >> in[i];
    mapa[in[i]] = true;
  }
  bool x_mila = false, y_mila = false;
  for (int i = 0; i < n; i++) {
    if (mapa[in[i] - x] == true) x_mila = true;
    if (mapa[in[i] + x] == true) x_mila = true;
    if (mapa[in[i] - y] == true) y_mila = true;
    if (mapa[in[i] + y] == true) y_mila = true;
  }
  if (x_mila && y_mila) {
    cout << "0" << endl;
    return 0;
  }
  vector<int> opt;
  for (int i = 0; i < n; i++) {
    if (in[i] - x >= 0) opt.push_back(in[i] - x);
    if (in[i] + x <= len) opt.push_back(in[i] + x);
    if (in[i] - y >= 0) opt.push_back(in[i] - y);
    if (in[i] + y <= len) opt.push_back(in[i] + y);
  }
  for (int i = 0; i < ((int)(opt.size())); i++) {
    bool xm = false, ym = false;
    int curr = opt[i];
    if (mapa[curr - x] || mapa[curr + x]) xm = true;
    if (mapa[curr - y] || mapa[curr + y]) ym = true;
    if ((xm && ym) || (x_mila && ym) || (xm && y_mila)) {
      cout << "1" << endl;
      cout << curr << endl;
      return 0;
    }
  }
  cout << "2" << endl;
  cout << x << " " << y << endl;
  return 0;
}
