Vi viene fornito un elenco di n stringhe. Per ognuna di queste stringhe s, dovete determinare una stringa successiva t presente nello stesso elenco (potendo anche coincidere con s).
La stringa successiva è definita come la stringa più piccola che compaia all’inizio di s.
Input
La prima riga dell’input contiene un singolo intero, n (1 ≤ n ≤ 100 000), che rappresenta il numero di stringhe nell’elenco.
Le successive n righe contengono le stringhe. Ciascuna stringa è formata da lettere minuscole dell’alfabeto inglese.
È garantito che il numero totale di caratteri nell’input non sia superiore a .
Output
Per ogni stringa s in ingresso, stampate in una nuova riga la relativa stringa successiva t.
Esempi
Input
Output
5
abaca
aba
abacaba
bacab
dabacaba
aba
aba
aba
bacab
dabacaba
Spiegazione
Per la stringa “abaca” la stringa successiva è “aba”.
Per la stringa “aba”, la successiva è “aba” stessa.
Per la stringa “abacaba” la stringa successiva è “aba”.
Per la stringa “abcab” la stringa successiva è “bacab”.
Per la stringa “dabacaba” la stringa successiva è “dabacaba”.