#include<iostream>
#include<stdlib.h>
#include<algorithm>
using namespace std;
const int N=500010;
int a[N],dp[N];
int LIS(int n)
{
int high,low,mid,len=1;
dp[1]=a[1];
for(int i=2;i<=n;i++)
{
low=1;
high=len;//不能是high=n;
while(low<=high)
{
mid=(low+high)/2;
if(a[i]>dp[mid])
low=mid+1;
else
high=mid-1;
}
dp[low]=a[i];
if(low>len)
len=low;
}
return len;
}
int main()
{
int A,B,N,M,t=0;
while(scanf("%d",&N)!=EOF)
{
t++;
for(int i=0;i<N;i++)
{
cin>>A>>B;
a[A]=B;//很巧妙的 }
M=LIS(N);
printf("Case %d:\n",t);
if( M==1)printf("My king, at most 1 road can be built.\n\n");//注意roads还是road
else printf("My king, at most %d roads can be built.\n\n",M);
}
system("pause");
return 0;
}