#include <bits/stdc++.h>
using namespace std;
int n;
long long l, x, y;
long long arr[100005];
int main() {
  cin >> n >> l >> x >> y;
  for (int i = 0; i < n; ++i) scanf("%I64d", &arr[i]);
  bool xx = 0, yy = 0;
  for (int i = 0; i < n; ++i) {
    if (binary_search(arr, arr + i, arr[i] - x)) xx = 1;
    if (binary_search(arr, arr + i, arr[i] - y)) yy = 1;
  }
  if (xx && yy) {
    cout << "0\n";
    return 0;
  }
  if (xx) {
    cout << "1\n" << y << endl;
    return 0;
  }
  if (yy) {
    cout << "1\n" << x << endl;
    return 0;
  }
  for (int i = 0; i < n; ++i) {
    long long x1 = arr[i] - x;
    if (x1 >= 0 && x1 <= l &&
        (binary_search(arr, arr + n, x1 - y) ||
         binary_search(arr, arr + n, x1 + y))) {
      cout << "1\n" << x1 << endl;
      return 0;
    }
    x1 = arr[i] + x;
    if (x1 >= 0 && x1 <= l &&
        (binary_search(arr, arr + n, x1 - y) ||
         binary_search(arr, arr + n, x1 + y))) {
      cout << "1\n" << x1 << endl;
      return 0;
    }
    x1 = arr[i] - y;
    if (x1 >= 0 && x1 <= l &&
        (binary_search(arr, arr + n, x1 - x) ||
         binary_search(arr, arr + n, x1 + x))) {
      cout << "1\n" << x1 << endl;
      return 0;
    }
    x1 = arr[i] + y;
    if (x1 >= 0 && x1 <= l &&
        (binary_search(arr, arr + n, x1 - x) ||
         binary_search(arr, arr + n, x1 + x))) {
      cout << "1\n" << x1 << endl;
      return 0;
    }
  }
  cout << "2\n" << x << " " << y << endl;
  return 0;
}
