#include <bits/stdc++.h>
int cmp(const void *a, const void *b) { return *(int *)a > *(int *)b ? 1 : -1; }
int a[1010], b[1010];
double mid(int i) {
  if (i & 1) return a[i / 2] * 1.0;
  return (a[i / 2 - 1] + a[i / 2]) / 2.0;
}
int main() {
  int n, k, p, x, y, sum = 0;
  double m;
  int i, j, l;
  scanf("%d%d%d%d%d", &n, &k, &p, &x, &y);
  for (i = 0; i < k; i++) {
    scanf("%d", &a[i]);
    sum += a[i];
  }
  l = -1;
  for (i = k, j = 0; i < n; i++, j++) {
    qsort(a, i, sizeof(a[0]), cmp);
    m = mid(i);
    if (m < y)
      a[i] = y;
    else {
      a[i] = 1;
      if (m == y) l = i;
    }
    sum += a[i];
    b[j] = a[i];
  }
  qsort(a, n, sizeof(a[0]), cmp);
  m = mid(n);
  if (sum <= x)
    if (m >= y) {
      for (i = 0; i < n - k - 1; i++) printf("%d ", b[i]);
      printf("%d\n", b[n - k - 1]);
    } else if (l != -1) {
      a[l] = y;
      qsort(a, n, sizeof(a[0]), cmp);
      m = mid(n);
      if (m >= y && sum + y - 1 <= x) {
        for (i = 0; i < n - k - 1; i++)
          if (b[i] == 1) {
            b[i] = y;
            break;
          }
        for (i = 0; i < n - k - 1; i++) printf("%d ", b[i]);
        printf("%d\n", b[n - k - 1]);
      } else
        printf("-1\n");
    } else
      printf("-1\n");
  else
    printf("-1\n");
  return 0;
}
