#include <bits/stdc++.h>
using namespace std;
int main() {
  ios::sync_with_stdio(false);
  cin.tie(0);
  long long n, l, x, y;
  cin >> n >> l >> x >> y;
  map<long long, bool> mp1, mp2, mp3, mp4;
  bool zx = false, zy = false;
  vector<long long> a(n);
  for (int i = 0; i < n; i++) cin >> a[i];
  for (int i = 0; i < n; i++) {
    mp1[a[i] + x] = true;
    mp1[a[i] - x] = true;
    mp4[a[i] + y] = true;
    mp4[a[i] - y] = true;
    mp2[a[i] + (x + y)] = true;
    mp2[a[i] - (x + y)] = true;
    mp2[a[i] + (x - y)] = true;
    mp2[a[i] - (x - y)] = true;
    mp3[a[i]] = true;
  }
  for (int i = 0; i < n; i++) {
    if (mp1[a[i]]) {
      zx = true;
    }
    if (mp4[a[i]]) {
      zy = true;
    }
  }
  if (zx && zy) {
    cout << 0 << endl;
    return 0;
  }
  if (zx) {
    cout << 1 << endl;
    cout << y << endl;
    return 0;
  }
  if (zy) {
    cout << 1 << endl;
    cout << x << endl;
    return 0;
  }
  for (int i = 0; i < n; i++) {
    if (mp2[a[i]]) {
      if (mp3[a[i] + (x + y)]) {
        cout << 1 << endl;
        cout << (a[i] + x) << endl;
        return 0;
      }
      if (mp3[a[i] - (x + y)]) {
        cout << 1 << endl;
        cout << (a[i] - x) << endl;
        return 0;
      }
      if (mp3[a[i] - (x - y)]) {
        if (a[i] - x > 0) {
          cout << 1 << endl;
          cout << (a[i] - x) << endl;
          return 0;
        } else if (a[i] + y < l) {
          cout << 1 << endl;
          cout << (a[i] + y) << endl;
          return 0;
        }
      }
      if (mp3[a[i] + (x - y)]) {
        if (a[i] + x < l) {
          cout << 1 << endl;
          cout << (a[i] + x) << endl;
          return 0;
        } else if (a[i] - y > 0) {
          cout << 1 << endl;
          cout << (a[i] - y) << endl;
          return 0;
        }
      }
    }
  }
  cout << 2 << endl;
  cout << x << " " << y << endl;
}
