#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;   }   