#include<bits/stdc++.h>
using namespace std;
const long long MaxN = 1e3 + 5;
long long n,a[MaxN], dp[MaxN];
void input()
{
cin >> n;
for (long long i=1; i<=n; i++)
{
cin >> a[i];
}
}
void solve()
{
for (long long i=1; i<=n; i++)
{
dp[i]=1; // base case
}
long long ans=1;//nếu dãy ban đầu là dãy giảm dần thì mỗi phần tử vẫn là 1 dãy tăng dần nên base ans = 1
for (long long i=2; i<=n; i++)
{
for (long long j=1; j<i; j++)
{
if(a[i]>a[j])
{
dp[i]=max(dp[i],dp[j]+1);
}
}
ans=max(ans,dp[i]);
}
cout << ans;
}
int main()
{
ios_base::sync_with_stdio(0);
cin.tie(0);
input();
solve();
return 0;
}
I2luY2x1ZGU8Yml0cy9zdGRjKysuaD4KdXNpbmcgbmFtZXNwYWNlIHN0ZDsKY29uc3QgbG9uZyBsb25nIE1heE4gPSAxZTMgKyA1Owpsb25nIGxvbmcgbixhW01heE5dLCBkcFtNYXhOXTsKdm9pZCBpbnB1dCgpCnsKICAgIGNpbiA+PiBuOwogICAgZm9yIChsb25nIGxvbmcgaT0xOyBpPD1uOyBpKyspCiAgICB7CiAgICAgICAgY2luID4+IGFbaV07CiAgICB9Cn0Kdm9pZCBzb2x2ZSgpCnsKICAgIGZvciAobG9uZyBsb25nIGk9MTsgaTw9bjsgaSsrKQogICAgewogICAgICAgIGRwW2ldPTE7IC8vIGJhc2UgY2FzZQogICAgfQogICAgbG9uZyBsb25nIGFucz0xOy8vbuG6v3UgZMOjeSBiYW4gxJHhuqd1IGzDoCBkw6N5IGdp4bqjbSBk4bqnbiB0aMOsIG3hu5dpIHBo4bqnbiB04butIHbhuqtuIGzDoCAxIGTDo3kgdMSDbmcgZOG6p24gbsOqbiBiYXNlIGFucyA9IDEKICAgIGZvciAobG9uZyBsb25nIGk9MjsgaTw9bjsgaSsrKQogICAgewogICAgICAgIGZvciAobG9uZyBsb25nIGo9MTsgajxpOyBqKyspCiAgICAgICAgewogICAgICAgICAgICBpZihhW2ldPmFbal0pCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIGRwW2ldPW1heChkcFtpXSxkcFtqXSsxKTsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgICAgICBhbnM9bWF4KGFucyxkcFtpXSk7CiAgICB9CiAgICBjb3V0IDw8IGFuczsKfQppbnQgbWFpbigpCnsKICAgIGlvc19iYXNlOjpzeW5jX3dpdGhfc3RkaW8oMCk7CiAgICBjaW4udGllKDApOwogICAgaW5wdXQoKTsKICAgIHNvbHZlKCk7CiAgICByZXR1cm4gMDsKfQo=