简单回文
题号:NC266741
时间限制:C/C++/Rust/Pascal 2秒,其他语言4秒
空间限制:C/C++/Rust/Pascal 256 M,其他语言512 M
64bit IO Format: %lld

题目描述

我们称 p(t) 为字符串 t 中本质不同回文子串的个数。

我们称在字符串 t 的末尾加上一个字符从而产生的新字符串为 t+1

给定长度为 n 的字符串 s,请你求出有多少种不同的字符加到字符串 s 的末尾能够使得 p(s+1) 最大。

输入描述:

第一行包含一个整数 T\ (1\leq T \leq 10^4),表示测试用例的组数。

每组测试用例的第一行包含两个整数 n,m\ (1 \leq m\leq n \leq 262144),表示字符串 s 的长度和字符集大小。

每组测试用例的第二行包含 n 个整数 s_i\ (1 \leq s_i\leq m),表示 s 的第 i 个字符是第 s_i 种字符。

对于所有测试用例,保证 n 的总和不超过 262144

输出描述:

对于每组测试用例,输出一个整数,表示有多少种满足条件的不同字符。
示例1

输入

复制
2
2 1
1 1
3 3
1 2 3

输出

复制
1
2