#include <bits/stdc++.h>
using namespace std;
int n, l, x, y, a, b, c, d;
int aa[100100];
int find(int q) {
  int j = 1;
  for (int i = 2; i <= n; i++) {
    while (aa[i] - aa[j] > q) j++;
    if (aa[i] - aa[j] == q) return j;
  }
  return 0;
}
int find1(int q) {
  int j = 1;
  for (int i = 2; i <= n; i++) {
    while (aa[i] - aa[j] > q) j++;
    if (aa[i] - aa[j] == q) {
      int ll = aa[j], rr = aa[i];
      if (ll - x > 0) return ll - x;
      if (rr + x < l) return rr + x;
    }
  }
  return 0;
}
int main() {
  scanf("%d%d%d%d", &n, &l, &x, &y);
  for (int i = 1; i <= n; i++) scanf("%d", &aa[i]);
  a = find(x);
  b = find(y);
  if (a && b) {
    printf("0");
    return 0;
  }
  if (a) {
    printf("1\n");
    printf("%d", y);
    return 0;
  }
  if (b) {
    printf("1\n");
    printf("%d", x);
    return 0;
  }
  if (x + y <= l) c = find(x + y);
  if (c) {
    printf("1\n");
    printf("%d", aa[c] + x);
    return 0;
  }
  d = find1(y - x);
  if (d) {
    printf("1\n");
    printf("%d", d);
    return 0;
  }
  printf("2\n");
  printf("%d %d", x, y);
  return 0;
}
