let line
let arr = []
function getCalc(arr){
// 求最大递增序列的长度
let dp = []
let max = 1
// 遍历初始化dp
for(let i = 0;i<arr.length;i++){
dp[i] = 1
// 遍历j<i的数据,得到新的dp。新的dp为之前的[dp[max]] + 1
// 例如 [2 5 1 5 4 5 ]
// 5>2 dp[1] = dp[0] + 1 = 2
// 1 不大于2 也不大于5 dp[2] = 1
// 5大于2 大于1 dp[3] = 2
// 4大于2 大于1 dp[4] = 2
// 5大于2 大于1 大于4 dp[5] = 3 == dp[4] + 1
for(let j = 0;j<i;j++){
if(arr[i] > arr[j]){
// 遍历得到最大的dp[j] 然后+1为最新的dp
dp[i] = Math.max(dp[i],dp[j] + 1);
max = Math.max(max,dp[i])
}
}
}
return max
}
while(line = readline()){
arr.push(line)
if(arr.length == 2){
let dots = arr[1].split(' ').map(i=>parseInt(i));
let count = getCalc(dots)
console.log(count)
arr= []
}
}