#include<bits/stdc++.h>
using namespace std;
vector<vector<int>>dp;
vector<int>val;
int solve(int index,int pindex){
    if(index==n)return 0;
    if(dp[index][pindex+1]!=-1)return dp[index][pindex+1];
    int take=0;
    if(pindex==-1 || val[index]>val[pindex]){
        take=1+solve(index+1,index);
    }
    int nottake=solve(index+1,pindex);
    return dp[index][pindex+1]=max(take,nottake);
}
int main(){
    int n;
    cin>>n;
    val.resize(n);
    for(int i=0;i<n;i++){
        cin>>val[i];
    }
    dp.assign(n,vector<int>(n+1,-1));
    cout<<solve(0,-1);
}