#include<bits/stdc++.h>
using namespace std;
short n,a[100005],c[100005],b[100005],tot,x;
int main(){
while(cin>>a[++n]);
n--;
for(int i=1;i<=n;i++){
c[i]=a[n-i+1];
}
b[++tot]=c[1];
for(int i=2;i<=n;i++){
if(c[i]<b[tot]){
x=upper_bound(b+1,b+tot+1,c[i])-b;
b[x]=c[i];
}
else b[++tot]=c[i];
}
cout<<tot<<endl;
memset(b,0,sizeof(b));
tot=0;
b[++tot]=a[1];
for(int i=2;i<=n;i++){
if(a[i]<=b[tot]){
x=upper_bound(b+1,b+tot+1,a[i])-b;
b[x]=a[i];
}
else b[++tot]=a[i];
}
cout<<tot<<endl;
return 0;
}