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);
}
}