#include <bits/stdc++.h>
using namespace std;
const int mod = 1000000007;
const long long INF = 1000000000000000000;
const int N = 100005;
int n, l, x, y;
int a[N];
int main() {
  cin >> n >> l >> x >> y;
  for (int i = 0; i < n; ++i) {
    scanf("%d", &a[i]);
  }
  int flag_x = 0;
  int flag_y = 0;
  for (int i = 0; i < n; ++i) {
    if (binary_search(a, a + n, a[i] + x)) flag_x = 1;
    if (binary_search(a, a + n, a[i] + y)) flag_y = 1;
  }
  if (flag_x == 1 && flag_y == 1) {
    cout << 0 << endl;
    cout << endl;
  } else if (flag_x == 1 || (x == y)) {
    cout << 1 << endl;
    cout << y << endl;
  } else if (flag_y == 1) {
    cout << 1 << endl;
    cout << x << endl;
  } else {
    for (int i = 0; i < n; ++i) {
      if (binary_search(a, a + n, a[i] + x + y)) {
        cout << 1 << endl;
        cout << a[i] + x << endl;
        return 0;
      }
      if (binary_search(a, a + n, a[i] + abs(x - y))) {
        if (a[i] + max(x, y) <= l) {
          cout << 1 << endl;
          cout << a[i] + max(x, y) << endl;
          return 0;
        }
        if (a[i] - min(x, y) >= 0) {
          cout << 1 << endl;
          cout << a[i] - min(x, y) << endl;
          return 0;
        }
      }
    }
    cout << 2 << endl;
    cout << x << " " << y << endl;
  }
  return 0;
}
