output_description: Print the lexicographically smallest string after performing exactly K
  operations on s.
  
  * * *
input_description: The input is given from Standard Input in the following format:
  
      
      
      s
      K
attempt: #include <bits/stdc++.h>
  
  using namespace std;
  typedef long long ll;
  
  #define rep(i, n) for (int i = 0; i < (int)(n); i++)
  #define rep2(i, s, n) for (int i = (s); i < (int)(n); i++)
  
  
  
  int main()
  {
  
  #ifdef DEBUG
      cout << "DEBUG MODE" << endl;
      ifstream in("input.txt"); //for debug
      cin.rdbuf(in.rdbuf());    //for debug
  #endif
      string s;
      cin >> s;
      int k, a;
      cin >> k;
      rep(i, s.length()-1){
          a = 'z' - s[i];
          if (k > a){
              k -= a + 1;
              s[i] = 'a';
          }
      }
      k %= 26;
      s[s.length()-1] += k;
      if (s[s.length()-1] > 'z')
          s[s.length()-1] -= 26;
      cout << s << endl;
      return 0;
  }
  
problem_description: Statement
  
  Mr. Takahashi has a string s consisting of lowercase English letters. He
  repeats the following operation on s exactly K times.
  
    * Choose an arbitrary letter on s and change that letter to the next alphabet. Note that the next letter of `z` is `a`.
  
  For example, if you perform an operation for the second letter on `aaz`, `aaz`
  becomes `abz`. If you then perform an operation for the third letter on `abz`,
  `abz` becomes `aba`.
  
  Mr. Takahashi wants to have the lexicographically smallest string after
  performing exactly K operations on s. Find the such string.
samples: [{"input": "xyz\n    4", "output": "aya\n    \n\nFor example, you can perform the following operations: `xyz`, `yyz`, `zyz`,\n`ayz`, `aya`.\n\n* * *"}, {"input": "a\n    25", "output": "z\n    \n\nYou have to perform exactly K operations.\n\n* * *"}, {"input": "codefestival\n    100", "output": "aaaafeaaivap"}]