#include<stdio.h>
#include<stdlib.h>
#define MAXN 100
int max(int x,int y)
{
return (x>y)?x:y;
}
/*
第一问中,很明显就是最长下降子序列
第二问中。每一个导弹最终的结果都是要被打的,如果它后面有一个比它高的导弹,那打它的这个装置无论如何也不能打那个导弹了,经过这么一分析,这个问题便抽象成在已知序列里找最长不下降序列的问题。"
*/
int main(void)
{
freopen("in.txt","r",stdin);
int i,j,k;
int a[MAXN];
int b[MAXN]={0},c[MAXN]={0};
int n=1;
while(scanf("%d",&a[n])!=EOF)
{
n++;
}
n--;
for(i=1;i<=n;i++)
{
for(j=1;j<i;j++)
{
if(a[i]<a[j])
b[i]=max(b[i],b[j]+1);
if(a[i]>=a[j])
c[i]=max(c[i],c[j]+1);
}
}
int maxb=0,maxc=0;
for(i=1;i<=n;i++)
{
maxb=max(maxb,b[i]);
maxc=max(maxc,c[i]);
}
printf("%d\n%d\n",maxb+1,maxc+1);
return 0;
}