#include <bits/stdc++.h>
using namespace std;
struct node {
  int id, a;
} q[105];
bool cmp1(node a, node b) { return a.a > b.a; }
bool cmp2(node a, node b) { return a.id < b.id; }
int n, w;
int main() {
  cin >> n >> w;
  int i;
  int sum = 0;
  for (i = 1; i <= n; i++) {
    scanf("%d", &q[i].a);
    q[i].id = i;
    sum += q[i].a;
  }
  if (sum < w) {
    printf("-1\n");
    return 0;
  }
  sort(q + 1, q + 1 + n, cmp1);
  int Sum = 0;
  int b[105];
  for (i = 1; i <= n; i++) {
    Sum += (q[i].a + 1) / 2;
    b[i] = (q[i].a + 1) / 2;
  }
  if (Sum > w) {
    printf("-1\n");
    return 0;
  }
  w -= Sum;
  for (i = 1; i <= n; i++) {
    if (w == 0) break;
    if (w >= q[i].a - b[i]) {
      w -= (q[i].a - b[i]);
      b[i] = q[i].a;
    } else {
      b[i] += w;
      w = 0;
    }
  }
  for (i = 1; i <= n; i++) q[i].a = b[i];
  sort(q + 1, q + 1 + n, cmp2);
  for (i = 1; i <= n; i++) cout << q[i].a << " ";
  return 0;
}
