#include<bits/stdc++.h>
using namespace std;
const int N=1e5+10;
int n,m,a[N],dp[N],ans,ma=1,x,k,b[N];
int main(){
while(cin>>x){
b[++n]=x;a[n]=x;
bool f=true;
for(int j=1;j<=k;j++){
if(x<=b[j]){
b[j]=x;
f=false;
break;
}
}
if(f==true){
k++;
b[k]=x;
}
}
dp[1]=a[1];
for(int i=2;i<=n;i++){
if(a[i]<dp[ma]){
ma++;
dp[ma]=a[i];
}else{
int l=1,r=ma;
while(l<=r){
int mid=l+r>>1;
if(a[i]<dp[mid])l=mid+1;
else r=mid-1;
}
dp[l]=a[i];
}
}
printf("%d\n%d",ma,k);
return 0;
}