#include <bits/stdc++.h>
using namespace std;
const int maxn = 1e5 + 5;
struct node {
  int v, a;
  int id;
} s[105];
int cmp(node a, node b) { return a.v > b.v; }
int cmp1(node a, node b) { return a.id < b.id; }
int main(int argc, char const *argv[]) {
  int n, w;
  cin >> n >> w;
  for (int i = 0; i < n; i++) {
    cin >> s[i].v;
    s[i].id = i;
  }
  for (int i = 0; i < n; i++) {
    w -= (s[i].v + 1) / 2;
    s[i].a = (s[i].v + 1) / 2;
  }
  if (w < 0) {
    printf("-1\n");
    exit(0);
  } else {
    sort(s, s + n, cmp);
    for (int i = 0; i < n; i++) {
      if (w >= s[i].v - s[i].a) {
        w -= (s[i].v - s[i].a);
        s[i].a = s[i].v;
      } else {
        s[i].a += w;
        w = 0;
      }
    }
    sort(s, s + n, cmp1);
    for (int i = 0; i < n; i++) {
      printf("%d ", s[i].a);
    }
    printf("\n");
  }
  return 0;
}
