#include<bits/stdc++.h>
using namespace std;
int main()
{
ios_base::sync_with_stdio(false);
string s,be="",mid="",af="";
cin>>s;
int pos=s.length(),pos2=s.length();
for(int i=0;i<s.length();i++)
{
if(s[i]!='a') // this thing looks for the first non 'a' character in the string.
{pos=i;break;}
else
be=be+s[i];// until we find non 'a' character the string is stored in be.
}
//cout<<"before "<<be<<endl;
if(pos+1<=s.length()) // if there is a non 'a' character present in the string
{
for(int i=pos;i<s.length();i++) // from the first non 'a' character in the string to length of string
{
if(s[i]=='a') // if i get an 'a' i record it's position in pos2 and breaks out of the loop
{pos2=i;break;}
else
mid=mid+char(s[i]-1);// until i encounter 'a' there is a cyclic shift
}
//cout<<"mid "<<mid<<endl;
if(pos2+1<=s.length()) // if we encounter an 'a' and there is some more string left
{
for(int i=pos2;i<s.length();i++) //we print it as it is
af=af+s[i];
}
//cout<<"after "<<af<<endl;
cout<<be<<mid<<af<<"\n"; // Hence be is before encountering first non 'a' character ,mid is cyclic shift of characters ,af is remaining string
}
else // if string only comprises of 'a'
{
for(int i=0;i<s.length()-1;i++)
cout<<s[i];
cout<<"z"<<"\n";
}
}
I2luY2x1ZGU8Yml0cy9zdGRjKysuaD4KdXNpbmcgbmFtZXNwYWNlIHN0ZDsKaW50IG1haW4oKQp7CiAgICBpb3NfYmFzZTo6c3luY193aXRoX3N0ZGlvKGZhbHNlKTsKc3RyaW5nIHMsYmU9IiIsbWlkPSIiLGFmPSIiOwpjaW4+PnM7CmludCBwb3M9cy5sZW5ndGgoKSxwb3MyPXMubGVuZ3RoKCk7CmZvcihpbnQgaT0wO2k8cy5sZW5ndGgoKTtpKyspCnsKaWYoc1tpXSE9J2EnKSAvLyB0aGlzIHRoaW5nIGxvb2tzIGZvciB0aGUgZmlyc3Qgbm9uICdhJyBjaGFyYWN0ZXIgaW4gdGhlIHN0cmluZy4Ke3Bvcz1pO2JyZWFrO30KZWxzZQpiZT1iZStzW2ldOy8vIHVudGlsIHdlIGZpbmQgbm9uICdhJyBjaGFyYWN0ZXIgdGhlIHN0cmluZyBpcyBzdG9yZWQgaW4gYmUuCn0KLy9jb3V0PDwiYmVmb3JlICI8PGJlPDxlbmRsOwppZihwb3MrMTw9cy5sZW5ndGgoKSkgLy8gaWYgdGhlcmUgaXMgYSBub24gJ2EnIGNoYXJhY3RlciBwcmVzZW50IGluIHRoZSBzdHJpbmcgCnsKZm9yKGludCBpPXBvcztpPHMubGVuZ3RoKCk7aSsrKSAvLyBmcm9tIHRoZSBmaXJzdCBub24gJ2EnIGNoYXJhY3RlciBpbiB0aGUgc3RyaW5nIHRvIGxlbmd0aCBvZiBzdHJpbmcKewppZihzW2ldPT0nYScpIC8vIGlmIGkgZ2V0IGFuICdhJyBpIHJlY29yZCBpdCdzIHBvc2l0aW9uIGluIHBvczIgYW5kIGJyZWFrcyBvdXQgb2YgdGhlIGxvb3AKe3BvczI9aTticmVhazt9CmVsc2UKbWlkPW1pZCtjaGFyKHNbaV0tMSk7Ly8gdW50aWwgaSBlbmNvdW50ZXIgJ2EnIHRoZXJlIGlzIGEgY3ljbGljIHNoaWZ0IAp9Ci8vY291dDw8Im1pZCAiPDxtaWQ8PGVuZGw7CmlmKHBvczIrMTw9cy5sZW5ndGgoKSkgLy8gaWYgd2UgZW5jb3VudGVyIGFuICdhJyBhbmQgdGhlcmUgaXMgc29tZSBtb3JlIHN0cmluZyBsZWZ0CnsKZm9yKGludCBpPXBvczI7aTxzLmxlbmd0aCgpO2krKykgLy93ZSBwcmludCBpdCBhcyBpdCBpcwphZj1hZitzW2ldOwp9Ci8vY291dDw8ImFmdGVyICI8PGFmPDxlbmRsOwpjb3V0PDxiZTw8bWlkPDxhZjw8IlxuIjsgLy8gSGVuY2UgYmUgaXMgYmVmb3JlIGVuY291bnRlcmluZyBmaXJzdCBub24gJ2EnIGNoYXJhY3RlciAsbWlkIGlzIGN5Y2xpYyBzaGlmdCBvZiBjaGFyYWN0ZXJzICxhZiBpcyByZW1haW5pbmcgc3RyaW5nIAp9CmVsc2UgLy8gaWYgc3RyaW5nIG9ubHkgY29tcHJpc2VzIG9mICdhJwp7CmZvcihpbnQgaT0wO2k8cy5sZW5ndGgoKS0xO2krKykKY291dDw8c1tpXTsKY291dDw8InoiPDwiXG4iOwoKfQp9