#include <bits/stdc++.h>
using namespace std;

int main() {
    int n;
    cin >> n;

    vector<int>a;
    for(int i = 0; i < n; i++){
        int num;
        cin >> num;

        auto cur = upper_bound(a.begin(), a.end(), num);
        if(cur == a.end())
            a.push_back(num);
        else
            *cur = num;
    }
    cout << a.size() << endl;
    return 0;
}