#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;   }   