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 java.io.*;
import java.util.*;

public class Main
{ 
    static BufferedReader br;
    static StringTokenizer st;
    static PrintWriter pr = new PrintWriter(new BufferedWriter(new OutputStreamWriter(System.out)));
    
    public static class AL<T> extends ArrayList<T> {};

    public static void main(String[] args) throws IOException 
	{
		br = new BufferedReader(new InputStreamReader(System.in));
		String s = nxtLn();
		int[] a = new int[s.length()];
		char[] ans = new char[s.length()];
		for(int i=0; i<a.length; i++) a[i] = (s.charAt(i) - 1 == 'a' - 1? 'z': s.charAt(i) - 1);
		AL<Integer> rg = new AL<>();
		for(int i=0; i<a.length; i++) if(a[i] < s.charAt(i)) rg.add(i);

		if(rg.size() > 0)
		{
		    int i = 1;
    		while(i<rg.size() && rg.get(i) == rg.get(i-1) + 1) i++;
    		
    		int j = 0;
    		for(; j<rg.get(0); j++) ans[j] = s.charAt(j);
    		for(; j<=rg.get(i-1); j++) ans[j] = (char) a[j]; 
    		for(; j<s.length(); j++) ans[j] = s.charAt(j);
    		pr.println(ans);
		}
		else 
		{
		    char tmp = s.charAt(s.length()-1) - 1 == 'a' - 1? 'z': (char) (s.charAt(s.length()-1) - 1);
		    pr.println(s.substring(0,s.length()-1) + tmp);
		}
    		
		pr.flush();
		pr.close();
    }
    
    static int nxtInt(){
        return Integer.parseInt(nxt());
    }
    
    static long nxtLong(){
        return Long.parseLong(nxt());
    }
    
    static double nxtDoub(){
        return Double.parseDouble(nxt());
    }
    
    static String nxt(){
        return st.nextToken();
    }
    
    static String nxtLn() throws IOException{
        return br.readLine();
    }
}