#include <bits/stdc++.h>
#pragma GCC optimize("Ofast")
#pragma GCC target( \
    "avx,avx2,fma,sse,sse2,sse3,ssse3,sse4,popcnt,abm,mmx,avx,tune=native")
using namespace std;
long long MOD = 1e9 + 7;
int main() {
  ios::sync_with_stdio(0), cin.tie(0), cout.tie(0),
      cout << fixed << setprecision(20);
  long long n, l, x, y;
  cin >> n >> l >> x >> y;
  set<long long> q;
  for (int i = 0; i < n; i++) {
    long long a;
    cin >> a;
    q.insert(a);
  }
  long long fl1 = 0, fl2 = 0;
  for (auto i : q) {
    if (q.count(i + x) || q.count(i - x)) {
      fl1 = 1;
    }
    if (q.count(i + y) || q.count(i - y)) {
      fl2 = 1;
    }
  }
  if (fl1 && fl2) {
    cout << 0;
    return 0;
  }
  if (fl1 || fl2) {
    cout << 1 << endl;
    if (!fl1)
      cout << x;
    else
      cout << y;
    return 0;
  }
  set<long long> q2;
  for (auto i : q) {
    if (0 <= i - x) q2.insert(i - x);
    if (i + x <= l) q2.insert(i + x);
  }
  for (auto i : q) {
    if (q2.count(i - y) || q2.count(i + y)) {
      cout << 1 << endl;
      if (q2.count(i - y))
        cout << i - y;
      else
        cout << i + y;
      return 0;
    }
  }
  cout << 2 << endl;
  cout << x << " " << y;
}
