import java.util. *;
import java.io. *;

public class Main {
    public static BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
    public static PrintWriter out = new PrintWriter(new OutputStreamWriter(System.out));
    public static StringTokenizer st;
    public static void main(String[] args) throws IOException {
        int T = Integer.parseInt(br.readLine());
        while (T-- > 0) {
            solve();
        }
        out.flush();
        out.close();
        br.close();
    }
    public static void solve () throws IOException {
        int n = Integer.parseInt(br.readLine());
        int m = n - 1;
        int[] a = new int[m];
        st = new StringTokenizer(br.readLine());
        for(int i = 0; i < m; i++) {
            a[i] = Integer.parseInt(st.nextToken());
        }
        int ans = 1;
        int[] dp1 = new int[m];
        dp1[0] = 1;
        for(int i = 1; i < m; i++) {
            dp1[i] = 1;
            if(a[i - 1] + 1 == a[i]) dp1[i] = dp1[i - 1] + 1;
            ans = Math.max(ans, dp1[i]);
        }
        int[] dp2 = new int[m];
        dp2[m - 1] = 1;
        for(int i = m - 2; i >= 0; i--) {
            dp2[i] = 1;
            if(a[i] + 1 == a[i + 1]) dp2[i] = dp2[i + 1] + 1;
            ans = Math.max(ans, dp2[i]);
        }
        if(a[0] > 1) ans = Math.max(ans, dp2[0] + 1);
        if(a[m - 1] < n) ans = Math.max(ans, dp1[m - 1] + 1);
        for(int i = 0; i < m - 1; i++) {
            if(a[i] + 2 == a[i + 1]) {
                ans = Math.max(ans, dp1[i] + dp2[i + 1] + 1);
            } else {
                ans = Math.max(ans, Math.max(dp1[i], dp2[i + 1]) + 1);
            }
        }
        out.println(ans);
    }
}