#include <iostream>
#include <algorithm>
using namespace std;
const int maxn = 1000;
int a[maxn], dp[maxn];
int main()
{
int n;
cin >> n;
for (int i = 1; i <= n; i++) cin >> a[i];
int res = 0;
for (int i = 1; i <= n; i++){
dp[i] = 1; //边界
for (int j = 1; j < i;j++)
if (a[j] <= a[i] && dp[j] + 1>dp[i])
dp[i] = dp[j] + 1;
res = max(res, dp[i]);
}
cout << res << endl;
return 0;
}