//最长递减子序列问题,和LIS没什么区别
#include "stdio.h"
using namespace std;
int n;
int missile[26];//记录导弹高度
int dp[26];//记录最长递减子序列长度
void Init(){
dp[1] = 1;int max;
for (int i = 2; i <= n; ++i) {//动态规划求最长递减子序列
max = 1;
for (int j = 1; j <= i; ++j) {
if (missile[j] >= missile[i]){
if (dp[j] + 1 > max)
max = dp[j] + 1;
}
}
dp[i] = max;
}
}
int main(){
while (scanf("%d",&n)!=EOF){
for (int i = 1; i <= n; ++i) {
scanf("%d",missile+i);
}
Init();
int max = 0;
for (int i = 1; i <= n; ++i) {//找到dp中最大值(最长递减子序列长度)
if (dp[i] > max)
max = dp[i];
}
printf("%d\n",max);
}
}