#include<bits/stdc++.h>
using namespace std;
int n,x,ans,dp[100001];
vector<int>v;
int main(){
    cin>>n;
    for(int i=0;i<n;i++){
    	cin>>x;
    	v.push_back(x);
    	dp[i]=1;
    	for(int j=i-1;j>=0;j--){
    		if(v[i]>v[j])dp[i]=max(dp[i],dp[j]+1);
    	}
    	ans=max(ans,dp[i]);
    }
    cout<<ans;
	return 0;
}

/**************************************************************
	Problem: 1893
	User: chenjingqi
	Language: C++
	Result: Time Limit Exceed
****************************************************************/