#include<iostream>
using namespace std;
const int N=1005;
int main(){
int t,r=0,cnt=0,maxx=0,k[N],a[N],b[N];
while(cin>>t){
a[++cnt]=t;
b[cnt]=1;
for(int i=1;i<cnt;i++)
if(a[i]>=a[cnt])b[cnt]=max(b[i]+1,b[cnt]);
maxx=max(maxx,b[cnt]);
int mi=30*N,s;
for(int i=0;i<r;i++){
if(t<=k[i]){
if(mi>k[i]-t){
mi=k[i]-t;
s=i;
}
}
}
if(mi<30*N)k[s]=t;
else k[r++]=t;
}
cout<<maxx<<"\n"<<r;
return 0;
}