#include <bits/stdc++.h>
using namespace std;
int b[105];
struct node {
  int data;
  int id;
} a[105];
bool cmp(node a, node b) { return a.data > b.data; }
int main() {
  int n, w;
  int i, j;
  cin >> n >> w;
  memset(b, 0, sizeof(b));
  for (i = 1; i <= n; ++i) cin >> a[i].data, a[i].id = i;
  sort(a + 1, a + 1 + n, cmp);
  bool jd = true;
  for (i = 1; i <= n; ++i) {
    int ii = a[i].id;
    if (a[i].data % 2 == 0) {
      b[ii] += a[i].data / 2;
      w -= a[i].data / 2;
    } else {
      b[ii] += (a[i].data + 1) / 2;
      w -= (a[i].data + 1) / 2;
    }
    if (w < 0) {
      jd = false;
      break;
    }
  }
  if (!jd) {
    puts("-1");
    return 0;
  }
  for (i = 1; i <= n; ++i) {
    int ii = a[i].id;
    int res = a[i].data - b[ii];
    if (w > res) {
      w -= res;
      b[ii] += res;
    } else if (w == res) {
      w -= res;
      b[ii] += res;
    } else if (w < res) {
      b[ii] += w;
      w = 0;
    }
    if (w == 0) break;
  }
  for (i = 1; i <= n; ++i) printf("%d%c", b[i], i == n ? '\n' : ' ');
  return 0;
}
