#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; }