#if defined(__GNUG__) && !defined(__clang__)
#include <bits/stdc++.h>
#endif

#define inf(T) (numeric_limits<T>::min())
#define sup(T) (numeric_limits<T>::max())
#define rep(i,n) for (int i = 0; i < (n); i++)
#define asc(c) (c).begin(), (c).end()
#define desc(c) (c).rbegin(), (c).rend()
#define mp(...) make_pair(__VA_ARGS__)
#define mt(...) make_tuple(__VA_ARGS__)

using namespace std;

using ll = long long;
using ld = long double;

template <class Key>          using uset = unordered_set<Key>;
template <class Key, class T> using umap = unordered_map<Key, T>;

int main()
{
  cin.tie(0);
  ios::sync_with_stdio(false);

  string s;
  cin >> s;
  rep(i,s.size()) {
    s[i] = 'A' + (static_cast<int>(s[i] - 'A') - i - 1 + 2600) % 26;
  }
  cout << s << endl;

  return 0;
}