dfs(2 ^ 1000)
#include<iostream>
using namespace std;
const int N = 1010;
int a[N],ans,k[N];
int n;
void dfs(int len){
if(len > ans)
{
ans = len;
}
for(int i = k[len] + 1;i <= n;i ++){
if(a[i] > a[k[len]]){
k[len + 1] = i;
dfs(len + 1);
}
}
}
int main(){
a[0] = -1 << 30;
k[0] = 0;
cin >> n;
for(int i = 1;i <= n;i ++) cin >> a[i];
dfs(0);
cout << ans << endl;
return 0;
}