#include <bits/stdc++.h>
using namespace std;
const int N = 3e5 + 7;
const int mod = 1e9 + 7;
const int B = sqrt(N);
int n, l, x, y;
int kh;
int a[N];
map<int, int> m, m1, m2;
int main() {
  ios_base::sync_with_stdio(0);
  cin >> n >> l >> x >> y;
  for (int i = 1; i <= n; i++) {
    cin >> a[i];
    m[a[i]] = 1;
  }
  for (int i = 1; i <= n; i++) {
    if (m[a[i] + y]) {
      m1[a[i] + y] = 1;
      kh = 1;
    }
  }
  int gh = 0;
  for (int i = 1; i <= n; i++) {
    if (m[a[i] + x]) gh = 1;
    if (m[a[i] + x] && kh) {
      cout << 0;
      return 0;
    }
    m2[a[i] + x] = 1;
  }
  for (int i = 1; i <= n; i++) {
    int r = a[i] + x;
    int r1 = a[i] + y;
    if (r <= l) {
      if (m[r + y] || m[r - y] || kh) {
        cout << 1 << "\n";
        cout << r;
        return 0;
      }
    }
    if (r1 <= l) {
      if (m[r1 - x] || m[r1 + x] || gh) {
        cout << 1 << "\n";
        cout << r1;
        return 0;
      }
    }
    r = a[i] - x;
    r1 = a[i] - y;
    if (r >= 0) {
      if (m[r + y] || m[r - y] || kh) {
        cout << 1 << "\n";
        cout << r;
        return 0;
      }
    }
    if (r1 >= 0) {
      if (m[r1 - x] || m[r1 + x] || gh) {
        cout << 1 << "\n";
        cout << r1;
        return 0;
      }
    }
  }
  cout << 2 << "\n";
  cout << x << " " << y;
}
