#include #include #include #include #include using namespace std; int main(){ ios::sync_with_stdio(false); cin.tie(nullptr); int N; cin >> N; vector A(N); for(int i = 0; i < N; i++){ cin >> A[i]; A[i] = -A[i]; } long long INF = 1e18; vector dp(N, INF); for(int i = 0; i < N; i++){ int ind = lower_bound(dp.begin(), dp.end(), A[i]) - dp.begin(); dp[ind] = A[i]; } int cnt = 0; for(int i = 0; i < N; i++){ if(dp[i] == INF) break; cnt++; } cout << cnt << endl; }