#include <bits/stdc++.h>
using namespace std;
const int maxn = 5e3 + 100;
set<int> st;
set<int>::iterator it;
int main() {
  int n, l, x, y;
  st.clear();
  cin >> n >> l >> x >> y;
  for (int i = 0; i < n; i++) {
    int k;
    scanf("%d", &k);
    st.insert(k);
  }
  bool ax = false, ay = false;
  for (it = st.begin(); it != st.end(); it++) {
    int tmp = *it;
    if (st.find(tmp + x) != st.end()) ax = true;
    if (st.find(tmp + y) != st.end()) ay = true;
  }
  int ans = 0, a[10];
  if (ax == false) a[ans++] = x;
  if (ay == false) a[ans++] = y;
  if (ans == 2) {
    for (it = st.begin(); it != st.end(); it++) {
      if (st.find(*it + x + y) != st.end()) {
        ans = 1;
        a[0] = *it + x;
        break;
      }
      if (st.find(*it + y - x) != st.end()) {
        int tmp = 0;
        if (*it + y < l) tmp = *it + y;
        if (*it - x > 0) tmp = *it - x;
        if (!tmp) continue;
        ans = 1;
        a[0] = tmp;
        break;
      }
    }
  }
  printf("%d\n", ans);
  ;
  for (int i = 0; i < ans; i++) {
    if (i) printf(" ");
    printf("%d", a[i]);
  }
  if (ans) printf("\n");
  return 0;
}
