#include<bits/stdc++.h>
using namespace std;
int a[10005],b[10005],pos,pos2,x,dp[10005],it,l,r,mid,cnt;
int main(){
while(cin>>x)
{
a[++pos]=x;
}
for(int i=pos;i>=1;i--)
{
if(dp[it]<=a[i])
{
dp[++it]=a[i];
}
else
{
l=0,r=it;
while(l<r)
{
mid=(l+r)/2;
if(dp[mid]>=a[i])r=mid;
else l=mid+1;
}
}
}
cout<<it<<'\n';
while(pos)
{
for(int i=1;i<=pos;i++)dp[i]=0;
it=0;
for(int i=pos;i>=1;i--)
{
if(dp[it]<=a[i])
{
dp[++it]=a[i];
}
else
{
l=0,r=it;
while(l<r)
{
mid=(l+r)/2;
if(dp[mid]>=a[i])r=mid;
else l=mid+1;
}
dp[l]=min(dp[l],a[i]);
}
}
for(int i=1;i<=it;i++)
{
for(int j=1;j<=pos;j++)
{
if(a[j]==dp[i])
{
a[j]=-1;
break;
}
}
}
pos2=0;
for(int i=1;i<=pos;i++)
{
if(a[i]!=-1)b[++pos2]=a[i];
}
pos=pos2;
for(int i=1;i<=pos2;i++)
{
a[i]=b[i];
}
cnt++;
}
cout<<cnt;
return 0;
}