#include <bits/stdc++.h>
using namespace std;
long n, l, x, y, a[1 << 20];
set<long> has;
long hx, hy;
long ans;
long thx, thy;
void check(long ps) {
  if (ps < 0 || ps > l) return;
  hx = thx;
  hy = thy;
  if (has.find(ps + x) != has.end()) hx = 1;
  if (has.find(ps + y) != has.end()) hy = 1;
  if (has.find(ps - x) != has.end()) hx = 1;
  if (has.find(ps - y) != has.end()) hy = 1;
  if (hx && hy) ans = ps;
}
int main() {
  ios_base::sync_with_stdio(0);
  cin >> n >> l >> x >> y;
  for (int i = 0; i < n; i++) {
    cin >> a[i];
    has.insert(a[i]);
  }
  hx = hy = 0;
  for (int i = 0; i < n; i++) {
    if (has.find(a[i] + x) != has.end()) hx = 1;
    if (has.find(a[i] + y) != has.end()) hy = 1;
    if (has.find(a[i] - x) != has.end()) hx = 1;
    if (has.find(a[i] - y) != has.end()) hy = 1;
  }
  thx = hx;
  thy = hy;
  if (hx && hy) {
    cout << 0 << endl;
  } else {
    ans = -1;
    for (int i = 0; i < n; i++) {
      check(a[i] - x);
      check(a[i] + x);
      check(a[i] - y);
      check(a[i] + y);
    }
    if (ans >= 0)
      cout << 1 << endl << ans << endl;
    else {
      cout << 2 << endl;
      cout << x << " " << y << endl;
    }
  }
  cin.get();
  cin.get();
  return 0;
}
