#include <bits/stdc++.h>
using namespace std;
int n, arr[1000001], dp[1000001];
int ans() {
dp[1] = 1;
for (int i = 2; i <= n; i ++) {
// dp[i] musi byc minimum 1, a tablica zadeklarowana
// globalnie ma zera we wszystkich szufladkach tablicy
dp[i] ++;
// szukam max posrod wszystkich dp[j] takich,
// ze j < i oraz arr[j] < arr[i]
int mx = 0;
for (int j = 1; j < i; j ++) {
if (arr[j] < arr[i])
mx = max(mx, dp[j]);
}
// powiekszam dp[i] (ktore btw jest rowne 1) o max
// sposrod dp[j] gdzie j < i oraz arr[j] < arr[i]
// UWAGA! mx moze byc rowne 0 i wtedy dp[i] pozostanie 1
dp[i] += mx;
}
// szukam max wsrod wszystkich dp[i], 1 <= i <= 1e6
int mx = dp[1];
for (int i = 2; i <= n; i ++)
mx = max(mx, dp[i]);
return mx;
}
int main() {
ios_base::sync_with_stdio(0);
cin.tie(0); cout.tie(0);
cin >> n;
for (int i = 1; i <= n; i ++)
cin >> arr[i];
cout << ans();
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+Cgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKaW50IG4sIGFyclsxMDAwMDAxXSwgZHBbMTAwMDAwMV07CgppbnQgYW5zKCkgewoJZHBbMV0gPSAxOwoKCWZvciAoaW50IGkgPSAyOyBpIDw9IG47IGkgKyspIHsKCQkvLyBkcFtpXSBtdXNpIGJ5YyBtaW5pbXVtIDEsIGEgdGFibGljYSB6YWRla2xhcm93YW5hCgkJLy8gZ2xvYmFsbmllIG1hIHplcmEgd2Ugd3N6eXN0a2ljaCBzenVmbGFka2FjaCB0YWJsaWN5CgkJZHBbaV0gKys7CgoJCS8vIHN6dWthbSBtYXggcG9zcm9kIHdzenlzdGtpY2ggZHBbal0gdGFraWNoLAoJCS8vIHplIGogPCBpIG9yYXogYXJyW2pdIDwgYXJyW2ldCgkJaW50IG14ID0gMDsKCQlmb3IgKGludCBqID0gMTsgaiA8IGk7IGogKyspIHsKCQkJaWYgKGFycltqXSA8IGFycltpXSkKCQkJCW14ID0gbWF4KG14LCBkcFtqXSk7CgkJfQoKCQkvLyBwb3dpZWtzemFtIGRwW2ldIChrdG9yZSBidHcgamVzdCByb3duZSAxKSBvIG1heAoJCS8vIHNwb3Nyb2QgZHBbal0gZ2R6aWUgaiA8IGkgb3JheiBhcnJbal0gPCBhcnJbaV0KCQkvLyBVV0FHQSEgbXggbW96ZSBieWMgcm93bmUgMCBpIHd0ZWR5IGRwW2ldIHBvem9zdGFuaWUgMQoJCWRwW2ldICs9IG14OwoJfQoKCS8vIHN6dWthbSBtYXggd3Nyb2Qgd3N6eXN0a2ljaCBkcFtpXSwgMSA8PSBpIDw9IDFlNgoJaW50IG14ID0gZHBbMV07Cglmb3IgKGludCBpID0gMjsgaSA8PSBuOyBpICsrKQoJCW14ID0gbWF4KG14LCBkcFtpXSk7CgoJcmV0dXJuIG14Owp9CgppbnQgbWFpbigpIHsKCWlvc19iYXNlOjpzeW5jX3dpdGhfc3RkaW8oMCk7CgljaW4udGllKDApOyBjb3V0LnRpZSgwKTsKCgljaW4gPj4gbjsKCglmb3IgKGludCBpID0gMTsgaSA8PSBuOyBpICsrKQoJCWNpbiA+PiBhcnJbaV07CgoJY291dCA8PCBhbnMoKTsKfQ==