#include
#include
using namespace std;
int main()
{
int n;
cin >> n;
vector elementi;
for(int i = 0; i < n; i++)
{
int x;
cin >> x;
elementi.push_back(x);
}
vector kuli;
for(int i = 0; i < n; i++)
{
int indeks = lower_bound(kuli.begin(), kuli.end(), elementi[i] + 1) - kuli.begin();
if(indeks >= 0 and indeks < kuli.size()) {
kuli[indeks] = elementi[i];
}
else {
kuli.push_back(elementi[i]);
}
}
cout << kuli.size() << endl;
return 0;
}
// 3 8 2 1 5
// kuli: 3 8