#P13270. 【模板】最小表示法

【模板】最小表示法

Description

若长度为 nn 的字符串 ss 中可以选择一个位置 ii,使得 sisns1si1=t\overline{s_i\cdots s_ns_1\cdots s_{i-1}}=t,则称 sstt 循环同构。字符串 ss最小表示为与 ss 循环同构的所有字符串中字典序最小的字符串。

给定一个长度为 nn 的字符串 ss,请求出 ss 的最小表示。

Input Format

第一行一个整数 nn

第二行一个长度为 nn 的字符串 ss

Output Format

一行,一个字符串,为 ss 的最小表示。

10
caacabcaab
aabcaacabc

Hint

对于全部数据,1n1071\le n\le 10^7,字符串 ss 仅包含小写英文字母(ASCII 9712297\sim 122)。

设置以下三档部分分,用于测试不同解法:

  • 对于 20%20\% 的数据,n103n\le 10^3
  • 对于 50%50\% 的数据,n105n\le 10^5
  • 对于 100%100\% 的数据,无特殊限制。