#include <bits/stdc++.h>
using namespace std;
const int maxn = (int)1e6;
const int inf = (int)2e9;
const double eps = 1e-9;
const int mod = (int)1e9 + 7;
int n, l, x, y, a[maxn], ok1, ok2;
map<int, int> was;
bool check(int v) {
  if (v >= 0 && v <= l && (was.count(v - x) || was.count(v + x) || ok1) &&
      (ok2 || was.count(v - y) || was.count(v + y)))
    return true;
  return false;
}
int main() {
  scanf("%d%d%d%d", &n, &l, &x, &y);
  for (int i = 1; i <= n; ++i) {
    scanf("%d", &a[i]);
    if (was.count(a[i] - x)) ok1 = true;
    if (was.count(a[i] - y)) ok2 = true;
    was[a[i]] = true;
  }
  if (ok1 && ok2) {
    puts("0");
    return 0;
  }
  for (int i = 1; i <= n; ++i) {
    if (check(a[i] - x)) {
      puts("1");
      cout << a[i] - x << '\n';
      return 0;
    }
    if (check(a[i] - y)) {
      puts("1");
      cout << a[i] - y << '\n';
      return 0;
    }
    if (check(a[i] + x)) {
      puts("1");
      cout << a[i] + x << '\n';
      return 0;
    }
    if (check(a[i] + y)) {
      puts("1");
      cout << a[i] + y << '\n';
      return 0;
    }
  }
  puts("2");
  cout << x << ' ' << y << '\n';
  return 0;
}
