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.
def cyclic(y):
	for i in range(len(y)):
		if y[i]=='a':
			y[i]=='z'
		else:
			y[i]=chr(ord(y[i])-1)
	return y

y=list(raw_input())
j=len(y)-1
if len(y)==1 and y[0]=='a':
	print 'z'
elif list(set(y))==['a']:
	print ''.join(y[:len(y)-1])+'z'
else:
	if y[0]=='a':
		for i in range(1,len(y)):
			if y[i]=='a' and y[i-1]!='a':
				j=i
				break
	else:
		for i in range(len(y)):
			if y[i]=='a':
				j=i
				break
	a=y[:j]
	a=cyclic(a)
	if j==len(y)-1 and y[j]!=a:
		b=cyclic(list(y[j]))
		print ''.join(a)+''.join(b)
	else:
		print ''.join(a)+''.join(y[j:])