#include <bits/stdc++.h>
using namespace std;
#pragma comment(linker, "/STACK:100000000")
int mas[100100];
int sum[100100];
set<int> st;
int main() {
  int n, l, x, y;
  scanf("%d %d %d %d", &n, &l, &x, &y);
  for (int i = 0; i < n; i++) scanf("%d", &mas[i]);
  for (int i = 0; i < n; i++) st.insert(mas[i]);
  bool f1 = false;
  bool f2 = false;
  for (int i = 0; i < n; i++) {
    int v = mas[i];
    if (st.find(v + x) != st.end()) f1 = true;
    if (st.find(v + y) != st.end()) f2 = true;
  }
  if (f1 && f2) {
    printf("0\n");
    return 0;
  }
  if (f1 || f2) {
    printf("1\n");
    if (f1)
      printf("%d\n", y);
    else
      printf("%d\n", x);
    return 0;
  }
  bool f = false;
  for (int i = 0; i < n; i++) {
    int v = mas[i];
    int lll = v - x;
    int rr = v + x;
    if (lll >= 0) {
      if (st.find(lll + y) != st.end() || st.find(lll - y) != st.end()) {
        printf("1\n%d\n", lll);
        return 0;
      }
    }
    if (rr <= l) {
      if (st.find(rr + y) != st.end() || st.find(rr - y) != st.end()) {
        printf("1\n%d\n", rr);
        return 0;
      }
    }
  }
  printf("2\n%d %d", x, y);
  return 0;
}
