#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;

int LIS(vector<int> a){
	vector<int> lis;

	lis.push_back(a[0]);
	for(int i=1;i<a.size();i++)
		if(a[i] > lis[lis.size()-1]){
			lis.push_back(a[i]);
		}else{
			lis.pop_back();
			lis.push_back(a[i]);
		}

	return lis.size();
}

int main(){

	int n, num;
	vector<int> a, lis;

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

	cout<<LIS(a)<<endl;
	return 0;
}