#include<bits/stdc++.h>
#define please return
#define AC 0;
#define endl '\n'
using namespace std;
const int N=5e4+5;
int p[N],p1[N],n,a[N],b[N],l=1;
int main(){
ios::sync_with_stdio(false);
cin.tie(0);
cout.tie(0);
while(cin>>a[++n]){
}
n--;
for(int i=1;i<=n;i++)
b[i]=a[n+1-i];
p1[1]=b[1];
for(int i=2;i<=n;i++){
if(b[i]>p1[l])
p1[++l]=b[i];
else
p1[lower_bound(p1+1,p1+l+1,b[i])-p1]=b[i];
}
cout<<l<<endl;
l=1;
p[1]=a[1];
for(int i=2;i<=n;i++){
if(a[i]>p[l])
p[++l]=a[i];
else
p[lower_bound(p+1,p+l+1,a[i])-p]=a[i];
}
cout<<l;
please AC
}