#include<bits/stdc++.h>
using namespace std;
int a[100005],f[100005],t;
int main()
{
while(cin>>a[++t]);t--;
for (int i=1;i<=t;i++)
{
f[i]=1;
for (int j=1;j<i;j++)
if (a[j]>=a[i]&&f[j]+1>f[i])
f[i]=f[j]+1;
}
int maxx=0;
for (int i=1;i<=t;i++)
maxx=max(maxx,f[i]);
memset(f,0,sizeof(f));
int minn=0;
for(int i=1;i<=t;i++)
{
f[i]=1;
for(int j=1;j<i;j++)
if(a[i]>a[j]&&f[i]<f[j]+1)//真的不理解
f[i]=f[j]+1;
}
for(int i=1;i<=t;++i){
minn=max(minn,f[i]);//为啥取最大
}
printf("%d\n%d",maxx,minn);
}