#include <bits/stdc++.h>
using namespace std;
struct Node {
  int v;
  int id;
} node[110];
int t[110];
bool cmp(Node x, Node y) { return x.v > y.v; }
int main() {
  int n, w;
  cin.sync_with_stdio(false);
  while (cin >> n >> w) {
    for (int i = 0; i < n; i++) {
      cin >> node[i].v;
      node[i].id = i;
    }
    bool flag = true;
    for (int i = 0; i < n; i++) {
      if (node[i].v & 1)
        t[i] = node[i].v / 2 + 1, w -= t[i];
      else
        t[i] = node[i].v / 2, w -= t[i];
      if (w < 0) {
        flag = false;
        printf("-1\n");
        break;
      }
    }
    if (!flag) continue;
    sort(node, node + n, cmp);
    for (int i = 0; i < n; i++) {
      if (w > (node[i].v - t[node[i].id])) {
        int d = node[i].v - t[node[i].id];
        t[node[i].id] = node[i].v;
        w = w - d;
      } else {
        t[node[i].id] += w;
        break;
      }
    }
    for (int i = 0; i < n - 1; i++) cout << t[i] << ' ';
    cout << t[n - 1] << endl;
  }
  return 0;
}
