#include <string>
#include <vector>
#include <iostream>
#include <algorithm>
using namespace std;

int main() {
	string s;
	cin >> s;
	char minSymbol = 'Z';
	vector <int> indicesOfMinSymbol;
	for (int i = 0; i < s.size(); i++) {
		 if (s[i] < minSymbol) 
		    minSymbol = s[i];
	}
	for (int i = 0; i < s.size(); i++) {
		 if (s[i] == minSymbol && s[i - 1] != minSymbol) 
		     indicesOfMinSymbol.push_back(i);
	}
	int indexOfMinLexicSubstr = indicesOfMinSymbol[0];
	for (int i = 1; i < indicesOfMinSymbol.size(); i++) {
		 if (s.compare(indexOfMinLexicSubstr, s.size() - indicesOfMinSymbol[i], s, indicesOfMinSymbol[i], string::npos) > 0) 
			 indexOfMinLexicSubstr = indicesOfMinSymbol[i];
	}
	rotate(s.begin(), s.begin() + indexOfMinLexicSubstr, s.end());
	cout << s;
	return 0;
}