import java.util.Scanner;
import java.util.Arrays;
// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {
public static void main
(String[] args
) { Scanner in
= new Scanner
(System.
in); String[] str
= in.
nextLine().
split(" "); // for(String s:str) System.out.printf("%s\n",s);
if (str.length == 1 && str[0]=="#"){
return ;
}
String last
= str
[str.
length - 1]; str[str.length - 1] = last.substring(0, last.length() - 1);
Arrays.
sort(str,
(s1, s2
)->s2.
length() - s1.
length()); int i = 1;
while(i<str.length){
// System.out.printf("cur=%s,pre=%s,i=%d\n",cur,pre,i);
if(pre.length()==cur.length()){
int start=i-1;
int end=i+1;
while(end<str.length && str[end].length()==str[start].length()){
end++;
}
Arrays.
sort(str,start,end,
(s1,s2
)->(new StringBuilder
(s1
)).
reverse().
toString().
compareTo((new StringBuilder
(s2
)).
reverse().
toString())); i=end-1;
}
i++;
}
StringBuilder res=new StringBuilder();
for (String s
: str
) res.
append(s
).
append(" "); System.
out.
printf(res.
substring(0,res.
length()-1).
toString()); }
}
aW1wb3J0IGphdmEudXRpbC5TY2FubmVyOwppbXBvcnQgamF2YS51dGlsLkFycmF5czsKCi8vIOazqOaEj+exu+WQjeW/hemhu+S4uiBNYWluLCDkuI3opoHmnInku7vkvZUgcGFja2FnZSB4eHgg5L+h5oGvCnB1YmxpYyBjbGFzcyBNYWluIHsKICAgIHB1YmxpYyBzdGF0aWMgdm9pZCBtYWluKFN0cmluZ1tdIGFyZ3MpIHsKICAgICAgICBTY2FubmVyIGluID0gbmV3IFNjYW5uZXIoU3lzdGVtLmluKTsKICAgICAgICBTdHJpbmdbXSBzdHIgPSBpbi5uZXh0TGluZSgpLnNwbGl0KCIgIik7CiAgICAgICAgLy8gZm9yKFN0cmluZyBzOnN0cikgU3lzdGVtLm91dC5wcmludGYoIiVzXG4iLHMpOwogICAgICAgIGlmIChzdHIubGVuZ3RoID09IDEgJiYgc3RyWzBdPT0iIyIpewogICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oKTsKICAgICAgICAgICAgcmV0dXJuIDsKICAgICAgICB9CiAgICAgICAgU3RyaW5nIGxhc3QgPSBzdHJbc3RyLmxlbmd0aCAtIDFdOwogICAgICAgIHN0cltzdHIubGVuZ3RoIC0gMV0gPSBsYXN0LnN1YnN0cmluZygwLCBsYXN0Lmxlbmd0aCgpIC0gMSk7CiAgICAgICAgQXJyYXlzLnNvcnQoc3RyLCAoczEsIHMyKS0+czIubGVuZ3RoKCkgLSBzMS5sZW5ndGgoKSk7CiAgICAgICAgZm9yKFN0cmluZyBzOnN0cikgU3lzdGVtLm91dC5wcmludGYoIiVzXG4iLHMpOwogICAgICAgIGludCBpID0gMTsKICAgICAgICB3aGlsZShpPHN0ci5sZW5ndGgpewogICAgICAgICAgICBTdHJpbmcgY3VyPXN0cltpXTsKICAgICAgICAgICAgU3RyaW5nIHByZT1zdHJbaS0xXTsKICAgICAgICAgICAgLy8gU3lzdGVtLm91dC5wcmludGYoImN1cj0lcyxwcmU9JXMsaT0lZFxuIixjdXIscHJlLGkpOwogICAgICAgICAgICBpZihwcmUubGVuZ3RoKCk9PWN1ci5sZW5ndGgoKSl7CiAgICAgICAgICAgICAgICBpbnQgc3RhcnQ9aS0xOwogICAgICAgICAgICAgICAgaW50IGVuZD1pKzE7CiAgICAgICAgICAgICAgICB3aGlsZShlbmQ8c3RyLmxlbmd0aCAmJiBzdHJbZW5kXS5sZW5ndGgoKT09c3RyW3N0YXJ0XS5sZW5ndGgoKSl7CiAgICAgICAgICAgICAgICAgICAgZW5kKys7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBBcnJheXMuc29ydChzdHIsc3RhcnQsZW5kLChzMSxzMiktPihuZXcgU3RyaW5nQnVpbGRlcihzMSkpLnJldmVyc2UoKS50b1N0cmluZygpLmNvbXBhcmVUbygobmV3IFN0cmluZ0J1aWxkZXIoczIpKS5yZXZlcnNlKCkudG9TdHJpbmcoKSkpOwogICAgICAgICAgICAgICAgaT1lbmQtMTsKICAgICAgICAgICAgfQogICAgICAgICAgICBpKys7CiAgICAgICAgfQogICAgICAgIFN0cmluZ0J1aWxkZXIgcmVzPW5ldyBTdHJpbmdCdWlsZGVyKCk7CiAgICAgICAgZm9yIChTdHJpbmcgcyA6IHN0cikgcmVzLmFwcGVuZChzKS5hcHBlbmQoIiAiKTsKICAgICAgICBTeXN0ZW0ub3V0LnByaW50ZihyZXMuc3Vic3RyaW5nKDAscmVzLmxlbmd0aCgpLTEpLnRvU3RyaW5nKCkpOwogICAgfQoKfQ==