Little H 有一个排列 $P$,他想把 $P$ 分割成序列 $A$ 和序列 $B$。
具体来说,Little H 会按顺序从 $P$ 中取出若干元素放入序列 $A$,而剩余的元素将按顺序构成另一个序列 $B$。
例如,如果 $P = [1, 2, 3, 4, 5]$,他可以将 $P$ 分割为 $A = [1, 3, 5]$,$B = [2, 4]$。
他非常喜欢上升子序列和下降子序列。定义 $f(A)$ 为 $A$ 的最长上升子序列的长度,$g(B)$ 为 $B$ 的最长下降子序列的长度。你需要告诉他 $f(A) + g(B)$ 的最大值。
输入格式
第一行包含一个正整数 $T$ ($1 \le T \le 2 \cdot 10^5$),表示测试用例的数量。
对于每个测试用例,第一行包含一个整数 $n$ ($1 \le n \le 2 \cdot 10^5$),表示排列 $P$ 的长度。
第二行包含 $n$ 个整数 $P_1, P_2, \dots, P_n$ ($1 \le P_i \le n$),保证 $P_i$ 是一个排列。
所有测试用例的 $n$ 之和不超过 $2 \cdot 10^5$。
输出格式
对于每个测试用例,输出一行,包含一个整数,表示 $f(A) + g(B)$ 的最大值。
样例
输入 1
3 5 3 5 1 4 2 4 1 2 4 3 5 3 5 2 1 4
输出 1
4 4 5