#include <iostream>
#include <cmath>
#include <algorithm>
#include <cstring>
int a[2000], dp[2000];
using namespace std;
int main ()
{
ios::sync_with_stdio (false);
cin.tie (0);
cout.tie (0);
int n;
cin >> n;
for (register int i = 1; i <= n; ++i) cin >> a[i];
for (register int i = 1; i <= n; ++i)
{
int mx = 0;
for (register int j = 1; j < i; ++j)
if (a[j] < a[i])
mx = max (mx, dp[j]);
dp[i] = mx + 1;
}
int mx = 0;
for (register int i = 1; i <= n; ++i) mx = max (mx, dp[i]);
cout << mx;
return 0;
}