#include<bits/stdc++.h>
using namespace std;
int dp[100001],a[100001];
int main()
{
int n=1,j=0;
while(cin>>a[n])
{
n++;
//if(n==9)
//break;
}
n--;
//cout<<n<<endl;
for(int i=1;i<=n;i++)
{
if(i==1)
{
j++;
dp[1]=a[1];
}
else
if(dp[j]>=a[i])
{
dp[j+1]=a[i];
j++;
}
else
{
//cout<<i<<endl;
int first=1,last=j;
while(first<=last)
{
int mid=(first+last)/2;
if(dp[mid]>=a[i]) first=mid+1;
else last=mid-1;
}
dp[first]=a[i];
//for(int jj=1;jj<=j;jj++)
//{
// cout<<dp[jj]<<" ";
//}
//cout<<endl<<endl;
}
}
memset(dp,0,sizeof(dp));
int jj=0;
for(int i=1;i<=n;i++)
{
if(i==1)
{
jj++;
dp[1]=a[1];
}
else
if(dp[jj]<=a[i])
{
dp[jj+1]=a[i];
jj++;
}
else
{
int first=1,last=jj;
while(first<=last)
{
int mid=(first+last+1)>>2;
if(dp[mid]<=a[i]) first=mid+1;
else last=mid-1;
}
dp[first]=a[i];
}
}
cout<<j<<endl;
cout<<jj<<endl;
return 0;
}