#include <bits/stdc++.h>
using namespace std;
const int M = 1e5;
const int Q = 1e9 + 7;
int a[M];
int main() {
  srand(time(NULL));
  int n, k, p, x, y;
  scanf("%d%d%d%d%d", &n, &k, &p, &x, &y);
  int su = 0;
  for (int i = 0; i < k; i++) scanf("%d", &a[i]), su += a[i];
  for (int med = y; med <= p; med++) {
    int cnt = 0;
    bool ok = false;
    for (int j = 0; j < k; j++) {
      if (a[j] >= med) cnt++;
      if (a[j] == med && !ok) {
        ok = true;
      }
    }
    if (!ok) {
      cnt = min(cnt, (n - 1) / 2);
      if (k - cnt > (n - 1) / 2) continue;
      if (su + med + (n - 1) / 2 - (k - cnt) + med * ((n - 1) / 2 - cnt) <= x) {
        for (int i = 0; i < (n - 1) / 2 - (k - cnt); i++) cout << 1 << " ";
        for (int i = 0; i < 1 + (n - 1) / 2 - cnt; i++) cout << med << " ";
        return 0;
      }
    } else {
      if (k - cnt > (n - 1) / 2) continue;
      k--;
      cnt--;
      cnt = min(cnt, (n - 1) / 2);
      if (su + (n - 1) / 2 - (k - cnt) + med * ((n - 1) / 2 - cnt) <= x) {
        for (int i = 0; i < (n - 1) / 2 - (k - cnt); i++) cout << 1 << " ";
        for (int i = 0; i < (n - 1) / 2 - cnt; i++) cout << med << " ";
        return 0;
      }
      k++;
    }
  }
  cout << -1;
  return 0;
}
