#include<iostream>
#include<cstdio>
#include<cstdlib>
#include<cstring>
#include<algorithm>
#include<cmath>
using namespace std;
int temp[100005],z[100005],sum[100005],top=1;
int check(int x){
int l=0,r=top,mid=0;
while(l+1!=r){
mid=(l+r)>>1;
if(temp[mid]>=x) l=mid;
else r=mid;
}
return l+1;
}
int main(){
int n=1,m,i,j,k=1;
while(scanf("%d",&z[n])!=EOF){
n++;
}
n--;
temp[1]=z[1];
for(i=2;i<=n;i++){
if(temp[top]>=z[i]){
top++;
temp[top]=z[i];
}
else{
temp[check(z[i])]=z[i];
}
}
sum[k]=z[1];
for(i=2;i<=n;i++){
for(j=1;j<=k;j++){
if(z[i]<=sum[j]){
sum[j]=z[i];
break;
}
else
if(j==k){
k++;
sum[k]=z[i];
}
}
}
printf("%d %d",top,k);
return 0;
}