vector> duval(const string& s) { vector> res; for (int i = 0; i < sz(s);) { int j = i + 1, k = i; for (; j < sz(s) && s[k] <= s[j]; j++) { if (s[k] < s[j]) k = i; else k++; } while (i <= k) { res.push_back({i, i + j - k}); i += j - k; }} return res; } int minrotation(const string& s) { auto parts = duval(s+s); for (auto e : parts) { if (e.first < sz(s) && e.second >= sz(s)) { return e.first; }}}