import java.io.*;
import java.util.*;
class Solution {
static int N, answer;
static int[] arr;
static StringBuilder sb = new StringBuilder();
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int T = Integer.parseInt(br.readLine());
for (int t = 1; t <= T; t++) {
N = Integer.parseInt(br.readLine());
arr = new int[N];
StringTokenizer st = new StringTokenizer(br.readLine());
for (int i = 0; i < N; i++) {
arr[i] = Integer.parseInt(st.nextToken());
}
answer = 0;
for (int i = 0; i < N; i++) {
int num = arr[i];
int cnt = 1;
for (int j = i+1; j < N; j++) {
if (num < arr[j]) {
num = arr[j];
cnt++;
}
}
answer = Math.max(answer, cnt);
}
sb.append("#").append(t).append(" ").append(answer).append("\n");
}
System.out.println(sb);
}
}
import java.io.*;
import java.util.*;
class Solution {
static int N, answer;
static int[] arr;
static int[] dp;
static StringBuilder sb = new StringBuilder();
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int T = Integer.parseInt(br.readLine());
for (int t = 1; t <= T; t++) {
N = Integer.parseInt(br.readLine());
arr = new int[N];
dp = new int[N];
StringTokenizer st = new StringTokenizer(br.readLine());
for (int i = 0; i < N; i++) {
arr[i] = Integer.parseInt(st.nextToken());
}
answer = 1;
for (int i = 0; i < N; i++) {
dp[i] = 1;
for (int j = 0; j < i; j++) {
if (arr[i] > arr[j]) {
dp[i] = Math.max(dp[i], dp[j] + 1);
}
}
answer = Math.max(answer, dp[i]);
}
sb.append("#").append(t).append(" ").append(answer).append("\n");
}
System.out.println(sb);
}
}
dp를 처음 사용해 보아서 이해가 쉽지 않아 따로 정리를 할 예정이다.