严格来说,“几乎”(almost)这个词等同于“不”(no)。但另一方面,这两个词并不完全是同义词。更准确地说,“几乎”这个词在含义上更接近“是”(yes)而不是“不”。
我们称两个单词为“共轭词”(conjugates),如果可以通过将第一个单词开头的字母反复移动到末尾,从而得到第二个单词。例如,单词 ababa 和 abaab 是共轭词,但 ababa 和 baaab 不是。我们称两个单词为“几乎共轭词”(almost conjugates),如果:
- 它们不是共轭词,并且
- 通过将第一个单词开头的字母反复移动到末尾,我们可以得到一个与第二个单词恰好在一个位置上不同的单词。
例如,单词 ababa 和 aaaab 是几乎共轭词,但 ababa 和 bbbbb 不是。
请编写一个程序:
- 从标准输入读取两个单词,
- 检查它们是否为几乎共轭词,如果是,则给出证明,
- 将结果写入标准输出。
输入格式
输入的第一行包含一个整数 $n$ ($1 \le n \le 1\,000\,000$),表示每个单词的长度。第二行包含第一个单词,第三行包含第二个单词。每个单词都是由 $n$ 个小写英文字母组成的序列。
输出格式
输出的第一行应包含一个单词——如果输入的两个单词是几乎共轭词,则输出 TAK(波兰语中的“是”),否则输出 NIE(波兰语中的“不”)。如果第一行输出了 TAK,则第二行应包含一个递增的非负整数序列,每个整数都在 $[0, n - 1]$ 范围内,并用空格分隔。该序列应包含所有可能的移动操作次数(将第一个单词开头的字母移动到末尾的次数),使得操作后的单词与第二个单词恰好在一个位置上不同。
样例
输入 1
5 ababa aaaab
输出 1
TAK 2 4
输入 2
5 ababa bbbbb
输出 2
NIE