#include <bits/stdc++.h>
using namespace std;
long long N = 0, M, K;
long long MOD = 1073741824;
string S, S1;
struct st {
  string x;
};
bool operator<(const st& a, const st& b) { return a.x.size() < b.x.size(); }
long long gcd(long long a, long long b) {
  while (b > 0) {
    a %= b;
    swap(a, b);
  }
  return a;
}
long long fact(long long x) {
  long long x1 = 1;
  while (x >= 1) {
    x1 *= x;
    x--;
  }
  return x1;
}
void prime(long long n, vector<long long>& pr) {
  vector<long long> lp(n + 90);
  for (long long i = 2; i <= n; ++i) {
    if (!lp[i]) {
      pr.push_back(i);
      lp[i] = i;
    }
    for (long long j = 0; j < pr.size() && pr[j] <= lp[i] && i * pr[j] <= n;
         ++j) {
      lp[i * pr[j]] = pr[j];
    }
  }
}
void dfs(long long x, vector<long long>& a, vector<long long>& b,
         vector<long long>& w, vector<vector<long long>>& v,
         vector<long long>& an, long long x0, long long x1, long long z) {
  w[x] = 1;
  z = z ^ 1;
  if (z == 0 && ((x0 == 1 && a[x] == b[x]) || (x0 == 0 && a[x] != b[x]))) {
    an.push_back(x);
    x0 = x0 ^ 1;
  }
  if (z == 1 && ((x1 == 1 && a[x] == b[x]) || (x1 == 0 && a[x] != b[x]))) {
    an.push_back(x);
    x1 = x1 ^ 1;
  }
  for (long long i : v[x]) {
    if (!w[i]) dfs(i, a, b, w, v, an, x0, x1, z);
  }
}
signed main() {
  ios::sync_with_stdio(false);
  cin.tie(0);
  cout.tie(0);
  string s;
  long long n, k = 0, m = 0;
  long long x = 1, y = 0, ans = 0;
  cin >> s;
  vector<long long> a;
  map<long long, long long> se;
  n = s.size();
  char c[3] = {'a', 'b', 'z'};
  for (long long i = 1; i < n - 1; i++) {
    if (s[i] == s[i - 1]) {
      x = 0;
      while (s[i] == c[x] || s[i + 1] == c[x]) x++;
      s[i] = c[x];
    }
  }
  if (n >= 2 && s[n - 1] == s[n - 2]) {
    if (s[n - 1] == c[0])
      s[n - 1] = c[1];
    else
      s[n - 1] = c[0];
  }
  cout << s << '\n';
  cin >> N;
  return 0;
}
