#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
void solve() {
int n;
cin >> n;
long long max_a = 0;
int count_ge_2 = 0; // 记录数量大于等于 2 的卡牌种类数
for (int i = 0; i < n; i++) {
long long a;
cin >> a;
if (a >= 2) {
count_ge_2++;
}
max_a = max(max_a, a);
}
// 只有一种卡牌,必死无疑
if (n == 1) {
cout << -1 << "\n";
return;
}
// 根据上面的推导进行判断
if (count_ge_2 == 0) {
// 没有任何重复的牌,闭着眼翻都能赢
cout << 0 << "\n";
} else if (count_ge_2 == 1) {
// 只有一种牌有重复,留一张在暗牌里当内鬼,暗牌堆就全是不重复的牌了
cout << max_a - 1 << "\n";
} else {
// 有多种牌存在重复,必须把最多的那种牌全看光
cout << max_a << "\n";
}
}
int main() {
// 算法竞赛起手式:解除输入输出的绑定,提升速度
int t;
cin >> t;
while (t--) {
solve();
}
return 0;
}