#include <bits/stdc++.h>
using namespace std;
int n, l, x, y, a[100000];
set<int> st;
void Solve() {
  for (int i = 0; i < n; i++) {
    if (a[i] + y <= l &&
        (a[i] + y <= l - x && st.find(a[i] + x + y) != st.end() ||
         st.find(a[i] + y - x) != st.end())) {
      printf("1\n%d\n", a[i] + y);
      return;
    }
    if (a[i] - x >= 0 && st.find(a[i] - x + y) != st.end()) {
      printf("1\n%d\n", a[i] - x);
      return;
    }
  }
  printf("2\n%d %d\n", x, y);
}
int main() {
  scanf("%d%d%d%d", &n, &l, &x, &y);
  for (int i = 0; i < n; i++) scanf("%d", &a[i]);
  sort(a, a + n);
  for (int i = 0; i < n; i++) st.insert(a[i]);
  bool fx = false, fy = false;
  for (int i = 0; i < n && !fx; i++) {
    if (st.find(a[i] + x) != st.end()) fx = true;
  }
  for (int i = 0; i < n && !fy; i++) {
    if (st.find(a[i] + y) != st.end()) fy = true;
  }
  if (fx && fy)
    printf("0\n");
  else if (fx || fy)
    printf("1\n%d\n", fx ? y : x);
  else
    Solve();
  getchar();
  getchar();
  return 0;
}
