#include <bits/stdc++.h>
typedef struct {
  int a, v, i;
} F;
int cmpa(const void *a, const void *b) { return ((F *)a)->a - ((F *)b)->a; }
int cmpi(const void *a, const void *b) { return ((F *)a)->i - ((F *)b)->i; }
int n, w;
F a[105];
int main() {
  scanf("%d%d", &n, &w);
  for (int i = 0; i < n; ++i) {
    scanf("%d", &a[i].a);
    a[i].i = i;
    a[i].v = (a[i].a >> 1) + (a[i].a & 1);
    w -= a[i].v;
  }
  if (w < 0) return 0 * puts("-1");
  qsort(a, n, sizeof(F), cmpa);
  while (w) {
    for (int i = n - 1; w && i >= 0; --i) {
      if (a[i].v + 1 <= a[i].a) {
        ++a[i].v;
        --w;
      }
    }
  }
  qsort(a, n, sizeof(F), cmpi);
  for (int i = 0; i < n; ++i) {
    printf("%d%c", a[i].v, " \n"[i + 1 == n]);
  }
  return 0;
}
