Дано рядок, побудуйте його суфіксний масив. Суфіксний масив — це масив усіх суфіксів рядка, впорядкований у лексикографічному порядку. Кожен суфікс представляється його початковою позицією (цілим числом).
Рядок вважається лексикографічно меншим за рядок , якщо існує таке , що s_i < t_i, і s_j = t_j для всіх j < i. Якщо такого не існує і рядок коротший за , то також вважається меншим.
Тут s_i позначає код -го символу рядка .
Один рядок — англійський текст. Довжина тексту не перевищує 10^5. Коди всіх символів у тексті належать діапазону від до .
Виведіть цілих чисел — суфіксний масив для заданого рядка.
Приклад 1