#include <vector>
#include <iostream>
#include <algorithm>
using namespace std;
int main()
{
vector <vector<int> > v;
int n;
cin>>n;
for(int i=0; i<n; i++)
{
int num;
cin>>num;
int pos = -1;
int min = 1e9;
for(int j=0;j<v.size();j++)
{
if(num<=v[j][v[j].size()-1] && v[j][v[j].size()-1]<min)
{
min = v[j][v[j].size()-1];
pos = j;
}
}
if(pos == -1)
{
vector <int> a;
a.push_back(num);
v.push_back(a);
}
else
{
v[pos].push_back(num);
}
}
cout<<v.size();
return 0;
}
/**************************************************************
Problem: 1771
User: admin
Language: C++
Result: Accepted
Time:5 ms
Memory:2076 kb
****************************************************************/