T792607 【C1075】 - 下一个识别码

题目描述

每台计算机的一个基本组成部分将是一个唯一的识别码,由最多50个字符组成,这些字符取自26个小写字母。对于任何给定的代码,字符集的选择有些随意。将代码印刷到芯片上的复杂方式使得制造商更容易生产出其他代码的重新排列,而不是生产出不同选择字母的新代码。因此,一旦一组字母被选择,所有从中可推导出的可能代码都会在更改该组之前使用。 例如,假设决定一个代码将恰好包含3个`a`,2个`b`和1个`c`,那么在这些条件下允许的60个代码中,其中三个是: ``` abaabc abaacb ababac ``` 这三个代码按照字典顺序从上到下列出。在使用这组字符生成的所有识别码中,这些识别码按照这个顺序连续出现。 编写一个程序来协助发放这些识别码。您的程序将接受一个最多包含50个小写字母的序列(可能包含重复字符),并打印出后续的识别码(如果存在的话),或者如果给定的代码是该字符集序列中的最后一个,则打印消息`No Successor`。

输入格式

输入将由一系列行组成,每行包含一个表示识别码的字符串。整个文件将以包含单个`#`的行终止。

输出格式

对于每个输入的识别码,对应有一行输出,是该识别码的下一个后继识别码或单词`No Successor`(代表已经是最后一个识别码了)

说明/提示

对于100%的数据满足:1