#include<bits/stdc++.h>
#pragma GCC optimize("O2")
#pragma GCC optimize("O3")
#pragma GCC optimize("Ofast")
#define int long long
#define pii pair<int,int>
#define ii int,int
#define fi first
#define se second
#define pb push_back
#define lb lower_bound
#define ub upper_bound
#define umap unordered_map
#define BIT(mask, i) ((mask >> i)&1)
#define ALL(c) c.begin(), c.end()
using namespace std;
mt19937 rd(chrono::high_resolution_clock::now().time_since_epoch().count());
int rand(int l, int r){
return l + rd()*rd()%(r-l+1);
}
const int N = 1e6+7;
const int M = 1e3+3;
const int MOD = 1e9+7;
const int inf = 3e18;
int n;
signed main(){
ios_base::sync_with_stdio(0);
cin.tie(0);
cout.tie(0);
cin >> n;
multiset<int> st;
for(int i = 1; i <= n; i++){
int x;
cin >> x;
auto j = st.upper_bound(x);
if(j != st.end()){ // tim duoc vi tri phu hop de chen
st.erase(j);;
}
st.insert(x);
}
cout << st.size();
}
I2luY2x1ZGU8Yml0cy9zdGRjKysuaD4KCiNwcmFnbWEgR0NDIG9wdGltaXplKCJPMiIpCiNwcmFnbWEgR0NDIG9wdGltaXplKCJPMyIpCiNwcmFnbWEgR0NDIG9wdGltaXplKCJPZmFzdCIpCgojZGVmaW5lIGludCBsb25nIGxvbmcKCiNkZWZpbmUgcGlpIHBhaXI8aW50LGludD4KI2RlZmluZSBpaSBpbnQsaW50CiNkZWZpbmUgZmkgZmlyc3QKI2RlZmluZSBzZSBzZWNvbmQKI2RlZmluZSBwYiBwdXNoX2JhY2sKI2RlZmluZSBsYiBsb3dlcl9ib3VuZAojZGVmaW5lIHViIHVwcGVyX2JvdW5kCiNkZWZpbmUgdW1hcCB1bm9yZGVyZWRfbWFwCiNkZWZpbmUgQklUKG1hc2ssIGkpICgobWFzayA+PiBpKSYxKQojZGVmaW5lIEFMTChjKSBjLmJlZ2luKCksIGMuZW5kKCkKCnVzaW5nIG5hbWVzcGFjZSBzdGQ7CgptdDE5OTM3IHJkKGNocm9ubzo6aGlnaF9yZXNvbHV0aW9uX2Nsb2NrOjpub3coKS50aW1lX3NpbmNlX2Vwb2NoKCkuY291bnQoKSk7CmludCByYW5kKGludCBsLCBpbnQgcil7CiAgICByZXR1cm4gIGwgKyByZCgpKnJkKCklKHItbCsxKTsKfQoKY29uc3QgaW50IE4gPSAxZTYrNzsKY29uc3QgaW50IE0gPSAxZTMrMzsKY29uc3QgaW50IE1PRCA9IDFlOSs3Owpjb25zdCBpbnQgaW5mID0gM2UxODsKCmludCBuOwoKc2lnbmVkIG1haW4oKXsKICAgIGlvc19iYXNlOjpzeW5jX3dpdGhfc3RkaW8oMCk7CiAgICBjaW4udGllKDApOwogICAgY291dC50aWUoMCk7CiAgICBjaW4gPj4gbjsKICAgIG11bHRpc2V0PGludD4gc3Q7CgogICAgZm9yKGludCBpID0gMTsgaSA8PSBuOyBpKyspewogICAgICAgIGludCB4OwogICAgICAgIGNpbiA+PiB4OwogICAgICAgIGF1dG8gaiA9IHN0LnVwcGVyX2JvdW5kKHgpOwogICAgICAgIGlmKGogIT0gc3QuZW5kKCkpeyAvLyB0aW0gZHVvYyB2aSB0cmkgcGh1IGhvcCBkZSBjaGVuCiAgICAgICAgICAgIHN0LmVyYXNlKGopOzsKICAgICAgICB9CiAgICAgICAgc3QuaW5zZXJ0KHgpOwogICAgfQogICAgY291dCA8PCBzdC5zaXplKCk7Cn0KCgo=