#include <bits/stdc++.h>
using namespace std;
int A[100005];
set<int> st;
int main() {
  int i, ans, n;
  while (scanf("%d", &n) != EOF) {
    st.clear();
    set<int>::iterator it;
    for (i = 1; i <= n; i++) {
      scanf("%d", &A[i]);
      if (st.size()) {
        it = st.lower_bound(A[i]);
        if (it != st.end()) {
          st.erase(it);
        }
      }
      st.insert(A[i]);
    }
    printf("%d\n", st.size());
  }
  return 0;
}
