#include <stdio.h>
#include <stdlib.h>
int longestIncreasingSubsequence(int arr[], int n) {
if (n == 0) return 0;
int *dp = (int*)malloc(n * sizeof(int)); // dp[i] 表示以 arr[i] 结尾的 LIS 长度
int max_len = 1; // 全局最长长度
for (int i = 0; i < n; i++) {
dp[i] = 1; // 初始化为1(每个元素自身)
for (int j = 0; j < i; j++) {
if (arr[j] >= arr[i] && dp[i] < dp[j] + 1) {
dp[i] = dp[j] + 1; // 更新更长的子序列
}
}
if (dp[i] > max_len) max_len = dp[i]; // 更新全局最大值
}
free(dp);
return max_len;
}
int main() {
int n;
int arr[27];
scanf("%d",&n);
for(int i = 0 ; i < n ; i++){
scanf("%d",&arr[i]);
}
printf("%d\n", longestIncreasingSubsequence(arr, n));
return 0;
}