#include <bits/stdc++.h>
using namespace std;
int n, l, x, y, a[100005];
bool xok, yok;
pair<int, int> ff(int v) {
  int l = 0;
  for (int r = 0; r < n; r++) {
    while (a[l] + v < a[r]) l++;
    if (a[l] + v == a[r]) return make_pair(a[l], a[r]);
  }
  return make_pair(-1, -1);
}
pair<int, int> fl(int v) {
  int r = n - 1;
  for (int l = n - 1; l >= 0; l--) {
    while (a[l] + v < a[r]) r--;
    if (a[l] + v == a[r]) return make_pair(a[l], a[r]);
  }
}
int main() {
  ios::sync_with_stdio(false);
  cin >> n >> l >> x >> y;
  for (int i = 0; i < n; i++) cin >> a[i];
  if (ff(x) != make_pair(-1, -1)) xok = true;
  if (ff(y) != make_pair(-1, -1)) yok = true;
  if (xok && yok) {
    cout << 0;
    return 0;
  } else if (xok) {
    cout << 1 << endl << y;
    return 0;
  } else if (yok) {
    cout << 1 << endl << x;
    return 0;
  } else {
    pair<int, int> ss = ff(x + y);
    if (ss != make_pair(-1, -1)) {
      cout << 1 << endl << ss.first + x;
      return 0;
    }
    ss = ff(y - x);
    if (ss != make_pair(-1, -1) && ss.first + y <= l) {
      cout << 1 << endl << ss.first + y;
      return 0;
    }
    ss = fl(y - x);
    if (ss != make_pair(-1, -1) && ss.first - x >= 0) {
      cout << 1 << endl << ss.first - x;
      return 0;
    }
    cout << 2 << endl << x << ' ' << y << endl;
    return 0;
  }
}
