#include <stdio.h>
#include <string.h>
#define NUM 105
int less(const char* s, int j, int ans) {
int n = strlen(s);
for (int i = 0; i < n; i++) {
if (s[(j + i) % n] != s[(ans + i) % n])//依次判断ans与当前位置的字母大小,相等就比较下一位,直到可以分出大小或全部相等
return s[(j + i) % n] < s[(ans + i) % n];//若当前位置字母小于ans则返回比较值1,反之亦然
}
return 0;//全部相等返回0
}
int main() {
char s [NUM];
int t;
scanf_s("%d", &t);
while (t--) { //重复输入多个序列
scanf_s("%s", s,sizeof(s));
int n = strlen(s);
int ans = 0;//ans的含义是目前找到的最小序列的起始位置
for (int i =1; i < n; i++) {//i的含义是当前需要判断的位置
if (less(s, i, ans))ans = i;//根据返回值判断ans是否改变为目前判断位置
}
for (int i = 0; i < n; i++) {
printf("%c", s[(i+ans)%n]);//注意输出要从判断位置输出
}
putchar('\n');
}
return 0;
}