1 #include <iostream> 2 #include <sstream> 3 #include <string> 4 #include <algorithm> 5 #include <vector> 6 using namespace std; 7 8 #define GI ({int _t; scanf("%d", &_t); _t;}) 9 #define FOR(i, a, b) for (int i=a; i<b; i++) 10 #define REP(i, a) FOR(i, 0, a) 11 template<class T> string toString(T n){ostringstream ost;ost<<n;ost.flush();return ost.str();} 12 int toInt(string s){int r=0;istringstream sin(s);sin>>r;return r;} 13 #define DBGV(_v) { REP(_i, _v.size()) { cout << _v[_i] << "\t";} cout << endl;} 14 15 int main() { 16 string cur; 17 while (cin >> cur) { 18 if (cur == "#") break; 19 if (next_permutation(cur.begin(), cur.end())) { 20 printf("%s\n", cur.c_str()); 21 } 22 else { 23 printf("No Successor\n"); 24 } 25 } 26 return 0; 27 }