#include <bits/stdc++.h>
using namespace std;
const int N = 100005;
int n, a[N], x, y, d;
int check(int val) {
  int p = lower_bound(a + 1, a + n + 1, val) - a;
  return (a[p] == val);
}
int rep(int val) {
  if (val < 0 || val > d) return 0;
  return (check(val - y) || check(val + y));
}
int main() {
  ios_base::sync_with_stdio(0);
  cin >> n >> d >> x >> y;
  for (int i = 1; i <= n; i++) cin >> a[i];
  int X = 0, Y = 0;
  for (int i = 1; i <= n; i++) {
    if (check(a[i] - x)) X = 1;
    if (check(a[i] - y)) Y = 1;
  }
  if (X && Y) {
    cout << "0";
    return 0;
  }
  if (X || Y) {
    cout << "1\n" << (1 - X) * x + (1 - Y) * y;
    return 0;
  }
  for (int i = 1; i <= n; i++) {
    X = rep(a[i] + x);
    Y = rep(a[i] - x);
    if (X || Y) {
      cout << "1\n" << (X * (a[i] + x) + Y * (a[i] - x));
      return 0;
    }
  }
  cout << "2\n" << x << " " << y;
  return 0;
}
