#include <bits/stdc++.h>
using namespace std;

int main() {
    int n;
    cin>>n;
    int arr[5005];
    for(int i=0;i<n;i++){
        cin>>arr[i];
    }
    int ans[5005];//维护数组
    ans[0]=1;
    for(int i=0;i<n;i++)
    {
        for(int j=0;j<i;j++)//遍历维护数组找到能接下去的值 在对应的i上++
        {
            if(arr[i]>=arr[j])ans[i]=max(ans[i],ans[j]+1);
            else ans[i]=max(1,ans[i]);
        }
    }
    int *op=max_element(ans,ans+n);
    cout<<*op<<endl;
}
// Ciallo~(∠・ω< )⌒★
// Ciallo~(∠・ω< )⌒★
// Ciallo~(∠・ω< )⌒★
// Ciallo~(∠・ω< )⌒★
// Ciallo~(∠・ω< )⌒★
// Ciallo~(∠・ω< )⌒★
// Ciallo~(∠・ω< )⌒★
// Ciallo~(∠・ω< )⌒★