#include <bits/stdc++.h>
using namespace std;
const int N = 100010;
int n, BIT[N];
void update(int idx, int val) {
  while (idx <= n) {
    BIT[idx] = max(val, BIT[idx]);
    idx += idx & -idx;
  }
}
int get(int idx) {
  int ret = 0;
  while (idx > 0) {
    ret = max(BIT[idx], ret);
    idx -= idx & -idx;
  }
  return ret;
}
int main() {
  scanf("%d", &n);
  int ans = 0;
  for (int i = 0, x; i < n; ++i) {
    scanf("%d", &x);
    update(x, get(x) + 1);
  }
  printf("%d\n", get(n));
  return 0;
}
