#include <bits/stdc++.h>
using namespace std;
int main() {
  int n, len, x, y;
  cin >> n >> len >> x >> y;
  int *a = new int[n];
  for (int i = 0; i < n; i++) scanf("%d", a + i);
  bool flag1 = false;
  bool flag2 = false;
  int k, l;
  k = 0;
  l = 1;
  while (l < n) {
    if (a[l] - a[k] == x) {
      flag1 = true;
      break;
    } else if (a[l] - a[k] > x) {
      k++;
    } else
      l++;
  }
  k = 0;
  l = 1;
  while (l < n) {
    if (a[l] - a[k] == y) {
      flag2 = true;
      break;
    } else if (a[l] - a[k] > y) {
      k++;
    } else
      l++;
  }
  if (flag1 & flag2) {
    cout << 0 << endl;
    return 0;
  }
  if (flag1) {
    cout << 1 << endl << y << endl;
    return 0;
  }
  if (flag2) {
    cout << 1 << endl << x << endl;
    return 0;
  }
  k = 0;
  l = 1;
  while (l < n) {
    if (a[l] - a[k] == y + x) {
      cout << 1 << endl << a[k] + x << endl;
      return 0;
    } else if (a[l] - a[k] > y + x) {
      k++;
    } else
      l++;
  }
  k = 0;
  l = 1;
  while (l < n) {
    if (a[l] - a[k] == y - x && (a[k] - x >= 0)) {
      cout << 1 << endl << a[k] - x << endl;
      return 0;
    } else if (a[l] - a[k] == y - x && (a[l] + x <= len)) {
      cout << 1 << endl << a[l] + x << endl;
      return 0;
    } else if (a[l] - a[k] > y - x) {
      k++;
    } else
      l++;
  }
  cout << 2 << endl;
  cout << x << ' ' << y << endl;
  return 0;
}
