#include <bits/stdc++.h>
using namespace std;
bool pal(string s) {
  long long n = s.size();
  for (long long i = 0; i < n / 2; i++)
    if (s[i] != s[n - i - 1]) return false;
  return true;
}
int32_t main() {
  ios_base::sync_with_stdio(false);
  cin.tie(NULL);
  cout.tie(NULL);
  long long test = 1;
  while (test--) {
    long long n, k, x, ab = 1e10, p, c = 0, f;
    cin >> n >> k >> x;
    vector<long long> v(n);
    for (long long i = 0; i < n; i++) {
      cin >> v[i];
      if (abs(v[i]) < abs(ab)) {
        ab = abs(v[i]);
        p = i;
      }
      if (v[i] < 0) c++;
    }
    if (c % 2 == 0) {
      f = abs(ab) / x + 1;
      f = min(f, k);
      k -= f;
      if (v[p] < 0)
        v[p] += f * x;
      else
        v[p] -= f * x;
    }
    set<pair<long long, long long> > s;
    for (long long i = 0; i < n; i++) s.insert({abs(v[i]), i});
    while (k > 0) {
      k--;
      p = s.begin()->second;
      if (v[p] < 0) {
        v[p] -= x;
        s.erase(s.begin());
        s.insert({abs(v[p]), p});
      } else {
        v[p] += x;
        s.erase(s.begin());
        s.insert({v[p], p});
      }
    }
    for (long long i = 0; i < n; i++) cout << v[i] << " ";
  }
  return 0;
}
