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.IOException;
import java.io.InputStream;
import java.io.PrintWriter;
import java.util.HashMap;
import java.util.InputMismatchException;
import java.util.Iterator;
import java.util.Set;
import java.util.TreeSet;
import java.util.*;

/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */

/**
 *
 * @author APPURVA
 */
public class Main {

    public static void main(String[] args) {
		InputReader ir = new InputReader(System.in);
		PrintWriter pw = new PrintWriter(System.out);
                String s =ir.readString();
                int count=0;
                for(int j=0;j<s.length();j++){
                    if(s.charAt(j)=='a')
                        count++;
                }
                if (count == s.length()) {
                    for (int i = 0; i < s.length()-1; i++) {
                        System.out.print('a');
                    }
                    System.out.println('z');
                }
                else if (s.length()==1) {
                    if (s.charAt(0)=='a') {
                    System.out.println('z');
                 }
                    else 
                    System.out.println((char)(s.charAt(0)-1));
                }
        else{
            if(s.charAt(0)=='a' ){
                    int  i=1;
                    System.out.print(s.charAt(0));
                    while(s.charAt(i)=='a' && i<=s.length()-1){
                        System.out.print((char)(s.charAt(i)));
                        i++;
                    }//System.out.println(i);
                    if(i<=s.length()-1){
                    while(i<=s.length()-1 && s.charAt(i)!='a'){
                            System.out.print((char)(s.charAt(i)-1));
                            i++;    
                        }
                    }
                    for(int j=i;j<s.length();j++){
                        System.out.print((char)(s.charAt(j)));
                    }
                }
                else{
                    int i=0;
                    
                    while(i<=s.length()-1 && s.charAt(i)!='a'){
                            System.out.print((char)(s.charAt(i)-1));
                            i++;    
                            
                        }
                    
                    for(int j=i;j<s.length();j++){
                        System.out.print((char)(s.charAt(j)));
                    }
                    
                }
            
        }
                
                 

	}

    
	
    
    
    
	static class InputReader {

		private final InputStream stream;
		private final byte[] buf = new byte[8192];
		private int curChar, snumChars;
		private SpaceCharFilter filter;

		public InputReader(InputStream stream) {
			this.stream = stream;
		}

		public int snext() {
			if (snumChars == -1)
				throw new InputMismatchException();
			if (curChar >= snumChars) {
				curChar = 0;
				try {
					snumChars = stream.read(buf);
				} catch (IOException e) {
					throw new InputMismatchException();
				}
				if (snumChars <= 0)
					return -1;
			}
			return buf[curChar++];
		}

		public int nextInt() {
			int c = snext();
			while (isSpaceChar(c))
				c = snext();
			int sgn = 1;
			if (c == '-') {
				sgn = -1;
				c = snext();
			}
			int res = 0;
			do {
				if (c < '0' || c > '9')
					throw new InputMismatchException();
				res *= 10;
				res += c - '0';
				c = snext();
			} while (!isSpaceChar(c));
			return res * sgn;
		}

		public long nextLong() {
			int c = snext();
			while (isSpaceChar(c))
				c = snext();
			int sgn = 1;
			if (c == '-') {
				sgn = -1;
				c = snext();
			}
			long res = 0;
			do {
				if (c < '0' || c > '9')
					throw new InputMismatchException();
				res *= 10;
				res += c - '0';
				c = snext();
			} while (!isSpaceChar(c));
			return res * sgn;
		}

		public int[] nextIntArray(int n) {
			int a[] = new int[n];
			for (int i = 0; i < n; i++)
				a[i] = nextInt();
			return a;
		}

		public String readString() {
			int c = snext();
			while (isSpaceChar(c))
				c = snext();
			StringBuilder res = new StringBuilder();
			do {
				res.appendCodePoint(c);
				c = snext();
			} while (!isSpaceChar(c));
			return res.toString();
		}

		public boolean isSpaceChar(int c) {
			if (filter != null)
				return filter.isSpaceChar(c);
			return c == ' ' || c == '\n' || c == '\r' || c == '\t' || c == -1;
		}

		public interface SpaceCharFilter {
			public boolean isSpaceChar(int ch);
		}
	}
    
}
