#include<bits/stdc++.h>
using namespace std;
int a[500005], b[5000005],len,cnt;
int main() {
while (cin >> a[cnt++]); --cnt;
//最长不下降
for (int i = cnt - 1; i >= 0; --i) {
if (a[i] >= b[len])b[++len] = a[i];
else {
auto j = upper_bound(b, b + len + 1, a[i]) - b;
b[j] = a[i];
}
}
cout << len << endl;
memset(b, 0, cnt);
len = 0;
//最长不上升
for (int i = 0; i < cnt; ++i) {
if (a[i] > b[len])b[++len] = a[i];
else {
auto j = lower_bound(b, b + len + 1, a[i]) - b;
b[j] = a[i];
}
}
cout << len << endl;
return 0;
}