#include <bits/stdc++.h>
using namespace std;
long long x, y, n, len, ans = 2;
map<long long, long long> g;
int main() {
  ios_base::sync_with_stdio(0);
  cin.tie(0);
  cout.tie(0);
  bool casex = false, casey = false;
  cin >> n >> len >> x >> y;
  for (long long i = 1; i <= n; i++) {
    long long p;
    cin >> p;
    if (g.count(p - x) && !casex) ans--, casex = true;
    if (g.count(p - y) && !casey) ans--, casey = true;
    g[p]++;
  }
  if (ans) {
    if (ans == 2)
      for (auto it = g.begin(); it != g.end(); it++) {
        if (!casex && !casey) {
          if (g.count(it->first + x + y) ||
              (g.count(it->first + x - y) &&
               (it->first + x <= len || it->first - y >= 0))) {
            cout << 1 << endl;
            if (it->first + x <= len)
              cout << it->first + x;
            else
              cout << it->first - y;
            return 0;
          } else if (g.count(it->first + y - x) &&
                     (it->first - x >= 0 || it->first + y <= len)) {
            cout << 1 << endl;
            if (it->first - x >= 0)
              cout << it->first - x;
            else
              cout << it->first + y;
            return 0;
          }
        }
      }
    if (ans == 1) {
      if (casex) {
        cout << 1 << endl;
        cout << g.begin()->first + y;
        return 0;
      } else {
        cout << 1 << endl;
        cout << g.begin()->first + x;
        return 0;
      }
    } else {
      cout << 2 << endl;
      cout << g.begin()->first + x << endl;
      cout << g.begin()->first + y;
    }
  } else
    cout << 0;
}
