#include<iostream>
#include<algorithm>
#include<vector>
using namespace std;
int n, cnt = 0;
const int N = 5e5 + 10;
vector<long long> f(N, 1);
vector<long long> f1(N, 1);
bool st[N];
int a[N], ct;
int main() {
cin >> n;
while (cin >> a[++ct]) {
}
for (int i = 2; i <= ct; i++) {
for (int j = 1; j < i; j++) {
if (a[j] >= a[i]) {
f[i] = max(f[i], f[j] + 1);
}
}
}
long long maxi = 0;
for (int i = 1; i <= ct; i++) {
maxi = max(maxi, f[i]);
}
cout << maxi << endl;
maxi = 0;
for (int i = 2; i <= ct; i++) {
for (int j = 1; j < i; j++) {
if (a[j] < a[i]) {
f1[i] = max(f1[i], f1[j] + 1);
}
}
}
for (int i = 1; i <= ct; i++) {
maxi = max(maxi, f1[i]);
}
cout << maxi;
return 0;
}