#include <iostream>
using namespace std;
int main(void)
{ int n,i,j,a[100],b[100];//b[i]表示以a[i]为终点时最长的串
while(cin>>n)
{ i=0; while(i<n) cin>>a[i++];
for(b[0]=1,i=1;i<n;i++)
for(b[i]=1,j=0;j<i;j++)
if(a[i]>a[j]&&b[j]+1>b[i]) b[i]=b[j]+1;
//b[i]=max{1, b[j] + 1} (j = 0, 2, ..., i- 1, 且a[j] < a[i])
sort(b,b+n);//取最长的
cout<<b[n-1]<<endl;
}
}