#include<iostream>
#include<algorithm>
using namespace std;
int q[1010],s[1010]; //s[i] 以q[i]结尾的最长子序列的长度
int main()
{
int n,x = 0;
cin>>n;
for(int i = 1;i <= n;i ++) cin>>q[i];
for(int i = 1;i <= n;i ++)
{
s[i] = 1; //如果q[i]之前的所有数都大于q[i],则s[i] = 1。
for(int j = 1;j < i;j ++)
{
if(q[j] < q[i])
s[i] = max(s[i],s[j] + 1);
}
}
sort(s + 1,s + 1 + n);
cout<<s[n]<<endl;
return 0;
}