#include <bits/stdc++.h>
using namespace std;
const int N = 1e5 + 5, INF = int(1e9) + 1, mod = 1e9 + 7;
const long long BIG = 1e16;
int n, l, a[N], b[10], c[5], ans;
set<int> s;
int main() {
  ios_base::sync_with_stdio(0), cin.tie(0), cout.tie(0);
  cin >> n >> l >> c[0] >> c[1];
  for (int i = 1; i <= n; i++) {
    cin >> a[i];
    s.insert(a[i]);
  }
  int x = c[0], y = c[1];
  bool fx = 0, fy = 0;
  for (int i = 1; i <= n; i++) {
    if (a[i] - y >= 0 and s.count(a[i] - y)) {
      fy = 1;
    }
    if (a[i] + y <= l and s.count(a[i] + y)) {
      fy = 1;
    }
    if (a[i] + x <= l and s.count(a[i] + x)) {
      fx = 1;
    }
    if (a[i] - x >= 0 and s.count(a[i] - x)) {
      fx = 1;
    }
  }
  if (fx and fy) {
    cout << "0\n";
    return 0;
  }
  if (fx and !fy) {
    cout << "1\n";
    cout << y << '\n';
    return 0;
  }
  if (!fx and fy) {
    cout << "1\n";
    cout << x << '\n';
    return 0;
  }
  for (int i = 1; i <= n; i++) {
    if (a[i] + x <= l and a[i] + x + y <= l and s.count(a[i] + x + y)) {
      cout << "1\n";
      cout << a[i] + x << endl;
      return 0;
    }
    if (a[i] + x <= l and a[i] + x - y >= 0 and s.count(a[i] + x - y)) {
      cout << 1 << endl;
      cout << a[i] + x << endl;
      return 0;
    }
    if (a[i] - x >= 0 and a[i] - x + y <= l and s.count(a[i] - x + y)) {
      cout << "1\n";
      cout << a[i] - x << endl;
      return 0;
    }
    if (a[i] - x >= 0 and a[i] - x - y >= 0 and s.count(a[i] - x - y)) {
      cout << 1 << endl;
      cout << a[i] - x << endl;
      return 0;
    }
  }
  cout << 2 << endl;
  cout << x << " " << y << endl;
}
