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.*;
public class LettersCyclicShift {
     public static void main(String args[]) throws Exception{
               BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
               String s=br.readLine();
               int x=-1;
               int y=-1;
               int count=0;
               for(int i=0;i<s.length();i++){
                   if(s.charAt(i)=='a'){
                       count++;
                       if(count==1)
                           x=i;
                       else if(count ==2){
                           y=i;
                       }
                       else
                           break;
                   }
               }
               if(count ==0){
                   System.out.println(prev(s.toCharArray()));
               }
               else if(count==1){
                   
                   if(x!=0)
                        System.out.println(prev(s.substring(0,x).toCharArray()) + s.substring(x,s.length()));
                   else{
                       if(s.length()!=1)
                            System.out.println("a"+prev(s.substring(1,s.length()).toCharArray()));
                       else
                           System.out.println("z");
                   }
               }
               else
               {
                   int z=-1;
                   for(int i=0;i<s.length()-1;i++){
                       if((s.charAt(i)=='a' )&& s.charAt(i)==s.charAt(i+1)){
                           z=i+1;
                       }
                       else
                           break;
                   }
                   if(z==-1){
                        if(x!=0)
                            System.out.println(prev(s.substring(0,x).toCharArray()) + s.substring(x,s.length()));
                        else
                         System.out.println("a"+prev(s.substring(1,y).toCharArray())+s.substring(y,s.length()));
                   }
                   else{
                       int u=-1;
                       for(int i=z+1;i<s.length();i++){
                           if(s.charAt(i)=='a')
                           {
                               u=i;break;
                           }
                       }
                       if(u==-1){
                           if(z!=s.length()-1)
                                 System.out.println(s.substring(0,z+1)+prev(s.substring(z+1,s.length()).toCharArray()));
                           else
                               System.out.println(s.substring(0,s.length()-1)+"z");
                       }
                       else
                            System.out.println(s.substring(0,z+1)+prev(s.substring(z+1,u).toCharArray())+s.substring(u,s.length()));
                   }
               }
     }
     
     static String prev(char c[]){
         for(int i=0;i<c.length;i++){
             c[i] = (char)((int)c[i]-1);
         }
         return new String(c);
     }
}
