public class Main {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
while (in.hasNext()) {
int n = in.nextInt();
int[] array = new int[n];
for(int i =0 ; i < n; i++) {
array[i] = in.nextInt();
}
System.out.println(LLS(array,n));
}
}
public static int LLS(int[] array, int n ) {
int[] dp = new int[n];
dp[0] = 1;
int res = 1;
for(int i = 1; i < n; i++) {
//相当于dp数组每一个元素初始为1;
dp[i] = 1;
for(int j = 0; j < i; j++) {
//只要后面的数大于前面的任意数,就可以在后面拼接,大小加一
if(array[i] > array[j]) {
//取最大拼接数
dp[i] = Math.max(dp[i] , dp[j]+1);
}
}
//取最大数
res = Math.max(res, dp[i]);
}
return res;
}
}