#include <bits/stdc++.h>
using namespace std;
long long n, l, x, y, a[100001];
map<long long, long long> m;
void read() {
  cin >> n >> l >> x >> y;
  for (long long i = 1; i < n + 1; i++) {
    cin >> a[i];
    m[a[i]] = i;
  }
}
long long f(long long d) {
  for (long long i = 1; i < n + 1; i++) {
    if (m.count(a[i] + d)) return i;
  }
  return 0;
}
signed main() {
  cin.tie(0);
  cout.tie(0);
  ios_base::sync_with_stdio(false);
  read();
  long long temp1 = f(x), temp2 = f(y);
  if (temp1 > 0) {
    if (temp2 > 0)
      return cout << 0, 0;
    else
      return cout << "1\n" << y, 0;
  }
  if (temp2 > 0) {
    return cout << "1\n" << x, 0;
  }
  long long temp = f(x + y);
  if (temp > 0) {
    return cout << 1 << "\n" << a[temp] + x, 0;
  }
  for (long long i = 1; i < n + 1; i++) {
    if (m.count(a[i] + y - x) && a[i] - x >= 0)
      return cout << "1\n" << a[i] - x, 0;
    if (m.count(a[i] + y - x) && a[i] + y <= l)
      return cout << "1\n" << a[i] + y, 0;
  }
  cout << 2 << "\n" << x << " " << y;
  return 0;
}
