#include<stdio.h>
int f[100010],a[100010],d[100010];
void main(){
int max(int x,int y);
int i=1,j,k,t=1,ans=0,m=1,p=0;
while(scanf("%d",&a[i])==1){i++;}
i--;
for(j=1;j<=i;j++){
f[j]=1;
for(k=t;k>0;k--){
if(a[j]<=a[d[k]]){
f[j] = f[d[k]]+1;
break;
}
}
t = max(t,f[j]);
d[f[j]] = j;
ans = max(ans,f[j]);
}
printf("%d\n",ans);
ans=1;
t=0;
for(j=1;j<=i;j++){
f[j]=1;
for(k=t;k>0;k--){
if(a[j]>a[d[k]]){
f[j] = f[d[k]]+1;
break;
}
}
t = max(t,f[j]);
d[f[j]] = j;
ans = max(ans,f[j]);
}
printf("%d",ans);
}
int max(int x,int y){
return x>y?x:y;
}