#include <bits/stdc++.h>
using namespace std;
void ioboost();
int n, m = 1;
long long x, k;
set<pair<long long, int> > h;
long long a[202020];
int main() {
  cin >> n >> k >> x;
  h.insert(make_pair((long long)1e17, -1));
  for (int i = 0; i < n; i++) {
    cin >> a[i];
    m *= a[i] >= 0 ? 1 : -1;
    h.insert(make_pair(abs(a[i]), i));
  }
  if (m == 1 && k * x <= h.begin()->first) {
    if (k * x == h.begin()->first)
      a[h.begin()->second] = 0;
    else
      a[h.begin()->second] += a[h.begin()->second] < 0 ? k * x : -k * x;
  } else {
    if (m == 1) {
      pair<long long, int> tmp = *h.begin();
      a[h.begin()->second] -=
          (h.begin()->first / x + 1) * (a[h.begin()->second] < 0 ? -x : x);
      k -= tmp.first / x + 1;
      h.erase(tmp);
      tmp.first = abs(a[tmp.second]);
      h.insert(tmp);
    }
    while (k) {
      pair<long long, int> tmp = *h.begin();
      h.erase(tmp);
      long long d = min(k, (h.begin()->first - tmp.first) / x + 1);
      k -= d;
      a[tmp.second] -= d * (a[tmp.second] < 0 ? x : -x);
      tmp.first += d * x;
      h.insert(tmp);
    }
  }
  for (int i = 0; i < n; i++) cout << a[i] << " ";
  return 0;
}
void ioboost() {
  cin.tie(0);
  ios_base ::sync_with_stdio(0);
}
