#include <bits/stdc++.h>
using namespace std;
vector<int> v;
int main() {
  int n, l, x, y, z, flag = 0, flag1 = 0, flag2 = 0, i, ans;
  cin >> n >> l >> x >> y;
  for (i = 0; i < n; i++) {
    cin >> z;
    v.push_back(z);
  }
  for (i = 0; i < n; i++) {
    if (binary_search(v.begin(), v.end(), v[i] - x) ||
        binary_search(v.begin(), v.end(), v[i] + x)) {
      flag1 = 1;
      break;
    }
  }
  for (i = 0; i < n; i++) {
    if (binary_search(v.begin(), v.end(), v[i] - y) ||
        binary_search(v.begin(), v.end(), v[i] + y)) {
      flag2 = 1;
      break;
    }
  }
  if (flag1 == 1 && flag2 == 1) {
    cout << 0 << endl;
  } else if (flag1 == 1 && flag2 == 0)
    cout << 1 << endl << y << endl;
  else if (flag1 == 0 && flag2 == 1)
    cout << 1 << endl << x << endl;
  else {
    for (i = 0; i < n; i++) {
      if (((binary_search(v.begin(), v.end(), v[i] - x + y) &&
            v[i] - x + y >= 0 && v[i] - x + y <= l) ||
           (binary_search(v.begin(), v.end(), v[i] - x - y) &&
            v[i] - x - y >= 0)) &&
          v[i] - x >= 0) {
        ans = v[i] - x;
        flag = 1;
        break;
      } else if (((binary_search(v.begin(), v.end(), v[i] + x + y) &&
                   v[i] + x + y <= l) ||
                  (binary_search(v.begin(), v.end(), v[i] + x - y) &&
                   v[i] + x - y <= l && v[i] + x - y >= 0)) &&
                 v[i] + x <= l) {
        ans = v[i] + x;
        flag = 1;
        break;
      } else if (((binary_search(v.begin(), v.end(), v[i] - y + x) &&
                   v[i] - y + x >= 0 && v[i] - y + x <= l) ||
                  (binary_search(v.begin(), v.end(), v[i] - y - x) &&
                   v[i] - x - y >= 0)) &&
                 v[i] - y >= 0) {
        ans = v[i] - y;
        flag = 1;
        break;
      } else if (((binary_search(v.begin(), v.end(), v[i] + x + y) &&
                   v[i] + x + y <= l) ||
                  (binary_search(v.begin(), v.end(), v[i] + y - x) &&
                   v[i] + y - x <= l && v[i] + y - x >= 0)) &&
                 v[i] + y <= l) {
        ans = v[i] + y;
        flag = 1;
        break;
      }
    }
    if (flag == 1)
      cout << 1 << endl << ans << endl;
    else
      cout << 2 << endl << x << " " << y << endl;
  }
  return 0;
}
