/*
题意:在字符串全排列中,输出给出字符串后面的那一个字符串
思路:找规律,简单题,一次AC
*/
#include <cstdio>
#include <cstring>
#include <algorithm>
using namespace std;
int main()
{
//freopen("data.in","r",stdin);
int len,cur;
char str[60],p[60];
while(1)
{
scanf("%s",str);
if(strcmp(str,"#")==0)
break;
len=strlen(str);
for(cur=len-2;cur>=0 && str[cur]>=str[cur+1];cur--);
if(cur<0)
printf("No Successor\n");
else
{
char c='z';
int pos;
for(int i=cur+1;i<len;i++)
if(str[i]>str[cur] && str[i]<c)
{
pos=i;
c=str[i];
}
str[pos]=str[cur];
str[cur]=c;
int u=0;
for(int i=cur+1;i<len;i++)
p[u++]=str[i];
p[u]=0;
sort(p,p+u);
u=0;
for(int i=cur+1;i<len;i++)
str[i]=p[u++];
printf("%s\n",str);
}
}
return 0;
}
#include <cstdio>
#include <cstring>
#include <algorithm>
using namespace std;
int main()
{
while(1)
{
char str[60];
scanf("%s",str);
if(strcmp(str,"#")==0)
break;
if(next_permutation(str,str+strlen(str)))
printf("%s\n",str);
else
printf("No Successor\n");
}
return 0;
}