You are given a non-empty string s consisting of lowercase English letters. You have to pick exactly one non-empty substring of s and shift all its letters 'z' $\rightarrow$ 'y' $\rightarrow$ 'x' $\rightarrow \ldots \rightarrow$ 'b' $\rightarrow$ 'a' $\rightarrow$ 'z'. In other words, each character is replaced with the previous character of English alphabet and 'a' is replaced with 'z'.

What is the lexicographically minimum string that can be obtained from s by performing this shift exactly once?


-----Input-----

The only line of the input contains the string s (1 ≤ |s| ≤ 100 000) consisting of lowercase English letters.


-----Output-----

Print the lexicographically minimum string that can be obtained from s by shifting letters of exactly one non-empty substring.


-----Examples-----
Input
codeforces

Output
bncdenqbdr

Input
abacaba

Output
aaacaba



-----Note-----

String s is lexicographically smaller than some other string t of the same length if there exists some 1 ≤ i ≤ |s|, such that s_1 = t_1, s_2 = t_2, ..., s_{i} - 1 = t_{i} - 1, and s_{i} < t_{i}.

```python

USER_FILENAME = "<user_code>"
import sys, json, builtins
import math, heapq, bisect, itertools, functools, collections, statistics, fractions, decimal, operator, array, random, re, string, os, pathlib
try:
    import resource as _res
except Exception:
    _res = None
from collections import Counter, defaultdict, deque, OrderedDict
from functools import lru_cache, reduce
from itertools import accumulate, permutations, combinations, product
from math import gcd, ceil, floor, sqrt
from decimal import Decimal
try:
    from typing import *
except Exception:
    pass
try:
    sys.setrecursionlimit(1_000_000)
except Exception:
    pass
try:
    import site as _site
    try:
        _sys_sites = _site.getsitepackages() if hasattr(_site, "getsitepackages") else []
        for _p in _sys_sites:
            if _p and _p not in sys.path:
                sys.path.append(_p)
    except Exception:
        pass
    try:
        _usp = _site.getusersitepackages()
        if isinstance(_usp, str):
            _usp = [_usp]
        for _p in _usp:
            if _p and _p not in sys.path:
                sys.path.append(_p)
    except Exception:
        pass
except Exception:
    pass

ns = {"__name__": "__main__"}
for _k, _v in list(globals().items()):
    if not _k.startswith("_"):
        ns[_k] = _v
_CODE = '# print("Input the string")\nst = input()\n\nif st == \'a\':\n    print(\'z\')\nelse:\n    apos = st.find(\'a\')\n    if apos == -1:\n        #  No as in the word at all--shift everything down\n        answerlist = []\n        for ch in st:\n            newch = chr(ord(ch)-1)\n            answerlist.append(newch)\n        print(\'\'.join(answerlist))\n    elif apos > 0:\n        #  Shift everything up to the first a\n        answerlist = []\n        for i in range(0, apos):\n            newch = chr(ord(st[i])-1)\n            answerlist.append(newch)\n        print(\'\'.join(answerlist) + st[apos:])\n    else:\n        #  The hard case--it starts with an a\n        #  Find the first non-a\n        pos = 1\n        while pos < len(st) and st[pos] == \'a\':\n            pos += 1\n        if pos == len(st):  # All letters are a--must change last letter to z\n            print(st[0:len(st)-1] + \'z\')\n        else:\n            # Change everything from pos to the next a\n            nextapos = st.find(\'a\', pos+1)\n            if nextapos == -1:  # No more as--change to the end\n                answerlist = []\n                for i in range(pos, len(st)):\n                    newch = chr(ord(st[i])-1)\n                    answerlist.append(newch)\n                print(st[0:pos] + \'\'.join(answerlist))\n            else:   # Change everything between pos and nextapos\n                answerlist = []\n                for i in range(pos, nextapos):\n                    newch = chr(ord(st[i])-1)\n                    answerlist.append(newch)\n                print(st[0:pos] + \'\'.join(answerlist) + st[nextapos:])\n             \n            \n        \n        \n'
_co = compile(_CODE, USER_FILENAME, "exec")
exec(_co, ns, ns)

```

Measured memory_bytes: 14003