#include<bits/stdc++.h>
using namespace std;
int a[30001],n,c;
//拦截的当前导弹的编号,拦截的数量,当前的高度
void dp(int i,int num,int h){
if(i>n) return;
//比较出最大值
c = max(c,num);
//向后递归
for(int k=i+1;k<=n;k++){
//如果高度 >= 当前导弹高度,则递归
if( h >= a[k]){
dp(k,num+1,a[k]);
}else{
dp(k,num,h);
}
}
}
int main(){
int i;
cin>>n;
for(i=1;i<=n;i++){
cin>>a[i];
}
//每个导弹都可能成为第一枚
for(i=1;i<=n;i++){
dp(i,1,a[i]);
}
cout<<c;
return 0;
}
/**************************************************************
Problem: 1795
User: admin
Language: C++
Result: Accepted
Time:15 ms
Memory:2192 kb
****************************************************************/