#include<bits/stdc++.h>
#define ll long long
#define r(x); freopen(x,"r",stdin);
#define w(x); freopen(x,"w",stdout);
using namespace std;
ll n,m,t,a[100100],g[100100],f[100100];
int main(){
ll qwq;
while(cin>>qwq){
a[++n]=qwq;
}
reverse(a+1,a+n+1);
for(ll i=1;i<=n;i++){
ll x=lower_bound(g+1,g+m+1,a[i])-g;
if(x>m)g[++m]=a[i];
else g[x]=a[i];
}
reverse(a+1,a+n+1);
for(ll i=1;i<=n;i++){
ll x=lower_bound(f+1,f+t+1,a[i])-f;
if(x>t)f[++t]=a[i];
else f[x]=a[i];
}
printf("%lld\n%lld",m,t);
return 0;
}