你一定熟悉外星人 Eko Eko 的故事,他名字的由来是因为他的翻译设备出了故障。这个小外星人再次回到地球,帮助地球人在降临节后进行清理工作。然而,Eko Eko 的翻译设备又停止工作了。
这一次,设备不仅重复了一个单词,还改变了单词中字母的顺序。例如,单词 “slon” 首先变成了 “slonslon”,然后通过改变字母的顺序,它可能变成 “slosnoln” 或 “soolnlsn” 等。修复 Eko Eko 设备所需的黄金数量取决于将他翻译错误的单词转换为一个由重复构成的单词所需的相邻字符交换次数。
例如,如果 Eko Eko 的设备将一个单词翻译为 “soolnlsn”,那么进行四次相邻字符交换就足以得到一个由重复构成的单词 —— “olsnolsn”(参见第三个样例的说明),因此四块黄金就足以修复他的设备。请注意,通过一系列此类交换得到的单词不一定是 Eko Eko 最初想要说的单词。这并不影响修复设备所需的黄金数量。
你想帮助 Eko Eko,但如果你从你母亲那里偷了大量的珠宝,你就得不到圣诞礼物了。这就是为什么对于一个从 Eko Eko 的翻译设备中输出的给定单词,你需要确定通过相邻字符交换将其变为一个由重复构成的单词所需的最少交换次数。
输入格式
第一行包含一个正整数 $n$ —— Eko Eko 想要说的单词的长度。
第二行包含一个长度为 $2n$ 的字符串,每个字符都是拉丁字母表中的小写字母,代表从 Eko Eko 的翻译设备中输出的单词。每个字母出现的次数均为偶数。
输出格式
在唯一的一行中,输出将 Eko Eko 的单词转换为一个单重复单词所需的最少相邻字符交换次数。
子任务
在所有子任务中,$n$ 的约束为 $1 \le n \le 100\,000$。
| 子任务 | 分值 | 约束 |
|---|---|---|
| 1 | 10 | 字符串由 $n$ 个 a 和 $n$ 个 b 组成。 |
| 2 | 20 | 每个字母最多出现两次。 |
| 3 | 20 | 前 $n$ 个字母和后 $n$ 个字母相同,但顺序可能不同。 |
| 4 | 20 | $1 \le n \le 1000$ |
| 5 | 40 | 无附加约束。 |
样例
输入格式 1
3 koeeok
输出格式 1
3
输入格式 2
3 kekoeo
输出格式 2
1
输入格式 3
4 soolnlsn
输出格式 3
4
说明
第三个样例的说明:
将 soolnlsn 变为一个单重复单词的一种四次交换方法是:
soolnlsn → solonlsn → solnolsn → oslnolsn → olsnolsn