#include <bits/stdc++.h>
using namespace std;
const int OO = 1e8 + 10;
const int MOD = 1e9 + 7;
const int MAX = 2e5 + 1;
const double EPS = (1e-9);
map<int, bool> mp;
int main() {
  int n, x, y, l, last, ans;
  bool f1 = 0, f2 = 0, f3 = 0;
  cin >> n >> l >> x >> y;
  for (int i = 0; i < n; i++) {
    int a;
    cin >> a;
    mp[a] = 1;
  }
  for (auto it = mp.begin(); it != mp.end(); it++) {
    if (mp.count(it->first + (x - y)) && it->first + x <= l)
      f3 = 1, ans = it->first + x;
    if (mp.count(it->first - (x - y)) && it->first - x >= 0)
      f3 = 1, ans = it->first - x;
    if (mp.count(it->first + x + y)) f3 = 1, ans = it->first + x;
    if (mp.count(it->first + x)) f1 = 1;
    if (mp.count(it->first + y)) f2 = 1;
  }
  if (f1 && f2) return cout << "0\n", 0;
  if (f3) return cout << "1\n" << ans << '\n', 0;
  if (f1) return cout << "1\n" << y << '\n', 0;
  if (f2) return cout << "1\n" << x << '\n', 0;
  return cout << "2\n" << x << " " << y << '\n', 0;
}
