← Home
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)
	}
}