#include <bits/stdc++.h>
using namespace std;
int a[100000];
bool xd = false, yd = false;
int n, l, x, y;
map<int, bool> mp;
bool check(int b, int c) {
  return (b >= 0 && b <= l &&
          (b - c >= 0 && mp[b - c] || b + c <= l && mp[b + c]));
}
int main() {
  cin >> n >> l >> x >> y;
  for (int i = 0; i < n; i++) {
    cin >> a[i];
    mp[a[i]] = true;
    xd |= mp[a[i] - x];
    yd |= mp[a[i] - y];
  }
  if (xd && yd) {
    cout << 0;
    return 0;
  }
  if (xd && !yd) {
    cout << 1 << endl << y;
    return 0;
  }
  if (!xd && yd) {
    cout << 1 << endl << x;
    return 0;
  } else {
    for (int i = 0; i < n; i++) {
      if (check(a[i] - x, y)) {
        cout << 1 << endl << a[i] - x;
        return 0;
      } else if (check(a[i] + x, y)) {
        cout << 1 << endl << a[i] + x;
        return 0;
      } else if (check(a[i] - y, x)) {
        cout << 1 << endl << a[i] - y;
        return 0;
      } else if (check(a[i] + y, x)) {
        cout << 1 << endl << a[i] + y;
        return 0;
      }
    }
  }
  cout << 2 << endl << x << " " << y;
  return 0;
}
