#include <bits/stdc++.h>
using namespace std;
int main(){
multiset <int> mulse;
int n, a, m;
cin>>n;
for(int i = 1; i <= n; i++) {
cin>>a;
mulse.insert(a);
auto m=mulse.lower_bound(a);
m++;
if (m!=mulse.end())
mulse.erase(m);
}
cout<<mulse.size();
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CmludCBtYWluKCl7Cm11bHRpc2V0IDxpbnQ+IG11bHNlOwppbnQgbiwgYSwgbTsKY2luPj5uOwpmb3IoaW50IGkgPSAxOyBpIDw9IG47IGkrKykgewogICAgY2luPj5hOwogICAgbXVsc2UuaW5zZXJ0KGEpOwogICAgYXV0byBtPW11bHNlLmxvd2VyX2JvdW5kKGEpOwogICAgbSsrOwogICAgaWYgKG0hPW11bHNlLmVuZCgpKSAKICAgICAgICBtdWxzZS5lcmFzZShtKTsKfQpjb3V0PDxtdWxzZS5zaXplKCk7CiAgICByZXR1cm4gMDsKfQo=