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 }