func_code_string: #include <bits/stdc++.h>   #pragma GCC optimize( O3 )   #pragma GCC optimize( Ofast,no-stack-protector,unroll-loops,fast-math )   #pragma GCC target( avx,avx2 )   using namespace std;   long long mod = 1e9 + 7;   const long long inf = 1e9;   int main() {     cin.tie(0), cout.tie(0), ios_base::sync_with_stdio(0);     int n, l, x, y;     cin >> n >> l >> x >> y;     vector<int> a(n);     set<int> ax, ay;     map<int, int> have;     bool havex = 0, havey = 0;     for (int i = 0; i < n; ++i) {       cin >> a[i];       have[a[i]] = 1;     }     for (int i = 0; i < n; ++i) {       if (a[i] + x < l && !have[a[i] + x]) ax.insert(a[i] + x);       if (a[i] + y < l && !have[a[i] + y]) ay.insert(a[i] + y);       if (a[i] - x > 0 && !have[a[i] - x]) ax.insert(a[i] - x);       if (a[i] - y > 0 && !have[a[i] - y]) ay.insert(a[i] - y);     }     for (int i = 0; i < n; ++i) {       if (have[a[i] - x] || have[a[i] + x]) havex = 1;       if (have[a[i] - y] || have[a[i] + y]) havey = 1;     }     vector<int> ans;     if (havex && havey) {       cout << 0;       exit(0);     }     if (havex) {       cout <<  1 n  << (*ay.begin());       exit(0);     }     if (havey) {       cout <<  1 n  << (*ax.begin());       exit(0);     }     for (int val : ax) {       if (ay.count(val)) {         cout <<  1 n  << val;         exit(0);       }     }     cout <<  2 n  << (*ax.begin()) <<     << (*ay.begin());     return 0;   }   