package main
import (
"bufio"
"fmt"
"os"
)
func main() {
reader := bufio.NewReader(os.Stdin)
writer := bufio.NewWriter(os.Stdout)
defer writer.Flush()
var t int
if _, err := fmt.Fscan(reader, &t); err != nil {
return
}
for tc := 0; tc < t; tc++ {
var n int
fmt.Fscan(reader, &n)
cnt := make([]int, n+2)
first := make([]int, n+2)
for i := 0; i <= n+1; i++ {
first[i] = -1
}
for i := 0; i < n; i++ {
var v int
fmt.Fscan(reader, &v)
if v <= n+1 {
cnt[v]++
if first[v] == -1 {
first[v] = i
}
}
}
sumCost := 0
sumCnt := 0
ans := 0
minF := n + 1
for m := 0; m <= n+1; m++ {
totalGreater := n - sumCnt - cnt[m]
currentLen := totalGreater + sumCost
if currentLen > ans {
ans = currentLen
}
if cnt[m] == 0 {
break
}
if first[m] < minF {
minF = first[m]
}
cost := cnt[m]
if first[m] == minF {
cost = 1
}
sumCost += cost
sumCnt += cnt[m]
}
fmt.Fprintln(writer, ans)
}
}