#include <bits/stdc++.h>
using std::endl;
using std::istream;
using std::ostream;
class Problem {
 public:
  Problem(istream& in) : sum(0), good_marks(0) {
    in >> N >> K >> P >> X >> Y;
    read_arr(in);
  }
  void solve_and_print(ostream&) const;

 private:
  void read_arr(istream&);
  int N, K, P, X, Y;
  int sum;
  int good_marks;
};
int main(void) {
  std::ios_base::sync_with_stdio(false);
  std::cin.tie(0);
  Problem p(std::cin);
  p.solve_and_print(std::cout);
  return 0;
}
void Problem::read_arr(istream& in) {
  for (int ii = 0; ii < K; ++ii) {
    int ai;
    in >> ai;
    sum += ai;
    if (ai >= Y) ++good_marks;
  }
}
void Problem::solve_and_print(ostream& out) const {
  static const int need_y = (N + 1) / 2;
  const int cy = need_y - good_marks;
  const int cnt_y = (cy > 0) ? cy : 0;
  const int cnt_rest = N - (K + cnt_y);
  if (cnt_rest < 0) {
    out << "-1" << endl;
    return;
  }
  if (sum + (Y * cnt_y) + cnt_rest > X) {
    out << "-1" << endl;
    return;
  }
  {
    static const char s[] = " ";
    const char* d = s + 1;
    for (int ii = 0; ii < cnt_y; ++ii, d = s) out << d << Y;
    for (int ii = 0; ii < cnt_rest; ++ii, d = s) out << d << "1";
    out << endl;
  }
}
