#include <bits/stdc++.h>
using namespace std;
const int N = 1e7;
int f[N];
int cnt;
int main()
{
int n;
cin >> n;
f[0] = -2e9;
for(int i = 1; i <= n; i ++ )
{
int p;
cin >> a;
if(p > f[cnt]) f[ ++ cnt] = p;
else
{
int x = lower_bound(f + 1, f + cnt + 1, p) - f;
f[x] = p;
}
}
cout << cnt;
}