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' <image> 'y' <image> 'x' <image> 'b' <image> 'a' <image> '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 s1 = t1, s2 = t2, ..., si - 1 = ti - 1, and si < ti.
import sys

s = sys.stdin.readline().strip()


def ceaser(s):
    alph = {'a':'z'}
    for ch in range(ord('b'),ord('z')+1):
        alph[chr(ch)] = chr(ch-1)
    retS = ''
    
    aaa = 0
    pos = 0
    while pos<len(s) and s[pos]=='a':
        aaa+=1
        pos+=1
    
    try:
        last_letter = s[pos]
    except:
        last_letter = 'b'
    add_letters = 0
    while pos<len(s) and s[pos]!='a':
        if last_letter==s[pos]:
            add_letters+=1
        else:
            retS = retS+alph[last_letter]*add_letters
            add_letters = 1
            last_letter = s[pos]
        pos+=1
    retS = retS+alph[last_letter]*add_letters
    
    if aaa==len(s):
        retS = 'a'*(aaa-1)+'z'
    else:
        retS = 'a'*aaa+retS+s[pos::]
    #while pos<len(s):
        #retS = retS+s[pos]
        #pos+=1
    return retS
    
    
def doTest():
    assert ceaser('codeforces')=='bncdenqbdr'
    assert ceaser('abacaba')=='aaacaba'
    
#doTest()

print(ceaser(s))