#include <vector>
#include <list>
#include <map>
#include <set>
#include <string>
#include <cstring>
#include <deque>
#include <stack>
#include <bitset>
#include <algorithm>
#include <functional>
#include <numeric>
#include <utility>
#include <sstream>
#include <iostream>
#include <iomanip>
#include <cstdio>
#include <cmath>
#include <cstdlib>
#include <ctime>
using namespace std;
long a[111100] = {};
set<long> s;
long n,m,l,x,y;
int main () {
cin >> n >> l >> x >> y;
for (int i = 0; i < n; i ++){
cin >> a[i];
s.insert(a[i]);
}
long ans = 0;
for (int i = 0; i < n; i ++){
if (ans % 2 == 0)
if (s.count(a[i]-x) > 0 || s.count(a[i]+x) > 0)
ans = ans | 1;
if ((ans & 2) == 0) { cout << a[i] + y;
if (s.count(a[i]-y) > 0 || s.count(a[i]+y) > 0)
ans = ans | 2;
}
cout << a[i] + y<< " " << ans << endl;
}
if (ans == 3) {
cout << 0;
return 0;
}
if (ans == 1) {
printf("%d\n%d",1,y);
return 0;
}
if (ans == 2) {
printf("%d\n%d",1,x);
return 0;
}
for (int i =0; i < n; i ++) {
long t = a[i] - x;
if (t > 0) {
if (s.count(t-y) > 0 || s.count(t+y) > 0) {
printf("%d\n%d",1,t);
return 0;
}
}
t = a[i] + x;
if (t <= l) {
if (s.count(t-y) > 0 || s.count(t+y) > 0) {
printf("%d\n%d",1,t);
return 0;
}
}
}
printf("%d\n%d %d",2,x,y);
}
I2luY2x1ZGUgPHZlY3Rvcj4KI2luY2x1ZGUgPGxpc3Q+CiNpbmNsdWRlIDxtYXA+CiNpbmNsdWRlIDxzZXQ+CiNpbmNsdWRlIDxzdHJpbmc+CiNpbmNsdWRlIDxjc3RyaW5nPgojaW5jbHVkZSA8ZGVxdWU+CiNpbmNsdWRlIDxzdGFjaz4KI2luY2x1ZGUgPGJpdHNldD4KI2luY2x1ZGUgPGFsZ29yaXRobT4KI2luY2x1ZGUgPGZ1bmN0aW9uYWw+CiNpbmNsdWRlIDxudW1lcmljPgojaW5jbHVkZSA8dXRpbGl0eT4KI2luY2x1ZGUgPHNzdHJlYW0+CiNpbmNsdWRlIDxpb3N0cmVhbT4KI2luY2x1ZGUgPGlvbWFuaXA+CiNpbmNsdWRlIDxjc3RkaW8+CiNpbmNsdWRlIDxjbWF0aD4KI2luY2x1ZGUgPGNzdGRsaWI+CiNpbmNsdWRlIDxjdGltZT4KCnVzaW5nIG5hbWVzcGFjZSBzdGQ7CmxvbmcgYVsxMTExMDBdID0ge307CnNldDxsb25nPiBzOwpsb25nIG4sbSxsLHgseTsKCmludCBtYWluICgpIHsKICAgIGNpbiA+PiBuID4+IGwgPj4geCA+PiB5OwogICAgZm9yIChpbnQgaSA9IDA7IGkgPCBuOyBpICsrKXsKICAgICAgICBjaW4gPj4gYVtpXTsKICAgICAgICBzLmluc2VydChhW2ldKTsKICAgIH0KICAgIGxvbmcgYW5zID0gMDsKICAgIGZvciAoaW50IGkgPSAwOyBpIDwgbjsgaSArKyl7CiAgICAgICAgaWYgKGFucyAlIDIgPT0gMCkKICAgICAgICAgICAgaWYgKHMuY291bnQoYVtpXS14KSA+IDAgfHwgcy5jb3VudChhW2ldK3gpID4gMCkgCiAgICAgICAgICAgICAgICBhbnMgPSBhbnMgfCAxOwogICAgICAgIGlmICgoYW5zICYgMikgPT0gMCkgeyBjb3V0IDw8IGFbaV0gKyB5OwogICAgICAgICAgICBpZiAocy5jb3VudChhW2ldLXkpID4gMCB8fCBzLmNvdW50KGFbaV0reSkgPiAwKSAKICAgICAgICAgICAgICAgIGFucyA9IGFucyB8IDI7ICAgICAKICAgICAgICAgICAgICAgfQogICAgICAgIGNvdXQgPDwgYVtpXSArIHk8PCAiICIgPDwgYW5zIDw8IGVuZGw7CiAgICB9CiAgICAKICAgIGlmIChhbnMgPT0gMykgewogICAgICAgIGNvdXQgPDwgMDsKICAgICAgICByZXR1cm4gMDsKICAgIH0KICAgIGlmIChhbnMgPT0gMSkgewogICAgICAgIHByaW50ZigiJWRcbiVkIiwxLHkpOwogICAgICAgIHJldHVybiAwOwogICAgfQogICAgaWYgKGFucyA9PSAyKSB7CiAgICAgICAgcHJpbnRmKCIlZFxuJWQiLDEseCk7CiAgICAgICAgcmV0dXJuIDA7CiAgICB9CiAgICBmb3IgKGludCBpID0wOyBpIDwgbjsgaSArKykgewogICAgICAgIGxvbmcgdCA9IGFbaV0gLSB4OwogICAgICAgIGlmICh0ID4gMCkgewogICAgICAgICAgICBpZiAocy5jb3VudCh0LXkpID4gMCB8fCBzLmNvdW50KHQreSkgPiAwKSB7CiAgICAgICAgICAgICAgICBwcmludGYoIiVkXG4lZCIsMSx0KTsKICAgICAgICAgICAgICAgIHJldHVybiAwOwogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICB0ID0gYVtpXSArIHg7CiAgICAgICAgaWYgKHQgPD0gbCkgewogICAgICAgICAgICBpZiAocy5jb3VudCh0LXkpID4gMCB8fCBzLmNvdW50KHQreSkgPiAwKSB7CiAgICAgICAgICAgICAgICBwcmludGYoIiVkXG4lZCIsMSx0KTsKICAgICAgICAgICAgICAgIHJldHVybiAwOwogICAgICAgICAgICB9CiAgICAgICAgfSAgICAgICAgCiAgICB9CiAgICBwcmludGYoIiVkXG4lZCAlZCIsMix4LHkpOwp9Cg==