#include <bits/stdc++.h>   using namespace std;   int n;   long long k, x;   long long a[200010];   int main() {     int n;     while (cin >> n >> k >> x) {       int negative = 0;       for (int i = 0; i < n; i++) {         cin >> a[i];         if (a[i] < 0) ++negative;       }       if (negative % 2 == 0) {         int minId = 0;         for (int i = 1; i < n; i++) {           if (abs(a[i]) < abs(a[minId])) minId = i;         }         long long num = abs(a[minId]) / x + 1;         if (a[minId] >= 0)           a[minId] -= min(num, k) * x;         else           a[minId] += min(num, k) * x;         k = max(k - num, 0LL);       }       priority_queue<pair<long long, int>, vector<pair<long long, int> >,                      greater<pair<long long, int> > >           que;       for (int i = 0; i < n; i++) {         que.push(make_pair(abs(a[i]), i));       }       while (k--) {         pair<int, int> cur = que.top();         que.pop();         int id = cur.second;         if (a[id] >= 0)           a[id] += x;         else           a[id] -= x;         que.push(make_pair(abs(a[id]), id));       }       for (int i = 0; i < n; i++) {         if (i != n - 1)           cout << a[i] <<    ;         else           cout << a[i] << endl;       }     }     return 0;   }   