#include <iostream>
#include <algorithm>
using namespace std;
int main ()
{
int n;
cin>>n;
long arr[1003];
long F[1003];
for (int i=1; i<=n; i++)
cin>>arr[i];
arr[0] = 0;
F[0] = 0;
for (int i=1; i<=n; i++)
{
F[i] = 1;
for (int j=i-1; j>=1; j--)
{
if (arr[i]>arr[j])
{
F[i]=max(F[i], F[j]+1);
}
}
}
long dmax = 1;
for (int i=1; i<=n; i++)
if (F[i]>=dmax)
dmax = F[i];
cout<<dmax;
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8YWxnb3JpdGhtPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKaW50IG1haW4gKCkKewoJaW50IG47CgljaW4+Pm47Cglsb25nIGFyclsxMDAzXTsKCWxvbmcgRlsxMDAzXTsKCWZvciAoaW50IGk9MTsgaTw9bjsgaSsrKQoJCWNpbj4+YXJyW2ldOwoJYXJyWzBdID0gMDsKCUZbMF0gPSAwOwoJZm9yIChpbnQgaT0xOyBpPD1uOyBpKyspCgl7CgkJRltpXSA9IDE7CgkJZm9yIChpbnQgaj1pLTE7IGo+PTE7IGotLSkKCQl7CgkJCWlmIChhcnJbaV0+YXJyW2pdKQoJCQl7CgkJCQlGW2ldPW1heChGW2ldLCBGW2pdKzEpOwoJCQl9CgkJfQoJfQoJCglsb25nIGRtYXggPSAxOwoJZm9yIChpbnQgaT0xOyBpPD1uOyBpKyspCgkJaWYgKEZbaV0+PWRtYXgpCgkJCWRtYXggPSBGW2ldOwoJY291dDw8ZG1heDsKCXJldHVybiAwOwp9