#include <iostream>
#include <cstring>
using namespace std;
int main(){
int N;
cin>>N;
int S[N];
for(int i=0; i<N; ++i)
cin>>S[i];
int f[N];
for(int i=0; i<N; ++i) f[i]=1;
// f[i]表示以字符i为结尾的最长上升子序列
int maxL = 1;
for(int i=1; i<N; ++i){
for(int j=0; j<i; ++j){
if(S[j]<S[i])
f[i] = max(f[i], f[j]+1);
}
maxL = max(maxL, f[i]);
}
cout<<maxL<<endl;
return 0;
}