#include <bits/stdc++.h>
using namespace std;
int inputN, inputL, inputX, inputY;
long long result = 0, posX = 0, posY = 0;
map<long long, bool> used;
vector<long long> inputA(0);
bool checkPrev(long long cur, long long digit);
bool checkNext(long long cur, long long digit);
int main() {
  int ii;
  bool haveX = 0, haveY = 0, prev, next;
  cin >> inputN >> inputL >> inputX >> inputY;
  inputA.resize(inputN);
  for (ii = 0; ii < inputN; ii++) {
    cin >> inputA[ii];
    used[inputA[ii]] = 1;
  }
  for (ii = 0; (ii < inputN) && (!haveX || !haveY); ii++) {
    if (checkNext(inputA[ii], inputX)) haveX++;
    if (checkNext(inputA[ii], inputY)) haveY++;
  }
  if (!haveX && !haveY) {
    result += 2;
    for (ii = 0; ii < inputN; ii++) {
      next = checkNext((inputA[ii] - inputX), inputY);
      prev = checkPrev((inputA[ii] - inputX), inputY);
      if (prev || next) {
        result--;
        haveY = 1;
        posX = inputA[ii] - inputX;
        break;
      }
      next = checkNext((inputA[ii] + inputX), inputY);
      prev = checkPrev((inputA[ii] + inputX), inputY);
      if (prev || next) {
        result--;
        haveY = 1;
        posX = inputA[ii] + inputX;
        break;
      }
      next = checkNext((inputA[ii] - inputY), inputX);
      prev = checkPrev((inputA[ii] - inputY), inputX);
      if (prev || next) {
        result--;
        haveX = 1;
        posY = inputA[ii] - inputY;
        break;
      }
      next = checkNext((inputA[ii] + inputY), inputX);
      prev = checkPrev((inputA[ii] + inputY), inputX);
      if (prev || next) {
        result--;
        haveX = 1;
        posY = inputA[ii] + inputY;
        break;
      }
    }
    if (!posX) posX = inputX;
    if (!posY) posY = inputY;
  } else if (!haveX) {
    result++;
    posX = inputX;
  } else if (!haveY) {
    result++;
    posY = inputY;
  }
  cout << result << endl;
  if (!haveX) cout << posX << " ";
  if (!haveY) cout << posY << " ";
  return 0;
}
bool checkPrev(long long cur, long long digit) {
  if (((cur - digit) > -1) && (cur <= inputL) && (used[cur - digit])) return 1;
  return 0;
}
bool checkNext(long long cur, long long digit) {
  if (((cur + digit) <= inputL) && (cur > -1) && (used[cur + digit])) return 1;
  return 0;
}
