#include<bits/stdc++.h>
#define int long long
using namespace std;
const int N = 5050;
int n;
int arr[N];
int dp[N]; //dp数组
signed main(){
cin >> n;
for(int i = 1; i <= n; i++) cin >> arr[i];
for(int i = 1; i <= n; i++){
//对dp数组初始化 每个数字都是长度为1的序列
dp[i] = 1;
for(int j = 1; j<i; j++){
//满足上升条件
if(arr[j] < arr[i]){
//题目要求最长 因此max取最长
dp[i] = max(dp[i], dp[j]+1);
}
}
}
int ans = 0;
for(int i = 1; i <= n; i++) ans = max(ans, dp[i]);
cout << ans << endl;
return 0;
}