#include <bits/stdc++.h>   using namespace std;   long n, l, x, y, a[1 << 20];   set<long> has;   long hx, hy;   long ans;   long thx, thy;   void check(long ps) {     if (ps < 0 || ps > l) return;     hx = thx;     hy = thy;     if (has.find(ps + x) != has.end()) hx = 1;     if (has.find(ps + y) != has.end()) hy = 1;     if (has.find(ps - x) != has.end()) hx = 1;     if (has.find(ps - y) != has.end()) hy = 1;     if (hx && hy) ans = ps;   }   int main() {     ios_base::sync_with_stdio(0);     cin >> n >> l >> x >> y;     for (int i = 0; i < n; i++) {       cin >> a[i];       has.insert(a[i]);     }     hx = hy = 0;     for (int i = 0; i < n; i++) {       if (has.find(a[i] + x) != has.end()) hx = 1;       if (has.find(a[i] + y) != has.end()) hy = 1;       if (has.find(a[i] - x) != has.end()) hx = 1;       if (has.find(a[i] - y) != has.end()) hy = 1;     }     thx = hx;     thy = hy;     if (hx && hy) {       cout << 0 << endl;     } else {       ans = -1;       for (int i = 0; i < n; i++) {         check(a[i] - x);         check(a[i] + x);         check(a[i] - y);         check(a[i] + y);       }       if (ans >= 0)         cout << 1 << endl << ans << endl;       else {         cout << 2 << endl;         cout << x <<     << y << endl;       }     }     cin.get();     cin.get();     return 0;   }   