#include <stdio.h>
int qsort(int a[],int b[],int s,int t)
{
int x,i,j,temp;
if(s>=t) return 0;
x=b[s];i=s;j=t;
while(i<j)
{
while(b[j]<x&&i<j) j--;
if(i<j)
{
temp=b[i];
b[i]=b[j];
b[j]=temp;
temp=a[i];
a[i]=a[j];
a[j]=temp;
}
while(b[i]>=x&&i<j) i++;
if(i<j)
{
temp=b[i];
b[i]=b[j];
b[j]=temp;
temp=a[i];
a[i]=a[j];
a[j]=temp;
}
}
if(s<=i-1) qsort(a,b,s,i-1);
if(t>=j+1) qsort(a,b,j+1,t);
return 0;
}
int main(void)
{
int n,i,j,a[1010]={0},b[1010]={0},max,time,count=0;
while(scanf("%d",&n)==1)
{
if(n==0) break;
count++;
for(i=0;i<n;i++)
scanf("%d%d",&a[i],&b[i]);
i=0;j=n-1;
qsort(a,b,i,j);max=a[0]+b[0];time=0;
for(i=0;i<n;i++)
{
time+=a[i];
if(time+b[i]>max)
max=time+b[i];
}
printf("Case %d: %d\n",count,max);
}
return 0;
}
int qsort(int a[],int b[],int s,int t)
{
int x,i,j,temp;
if(s>=t) return 0;
x=b[s];i=s;j=t;
while(i<j)
{
while(b[j]<x&&i<j) j--;
if(i<j)
{
temp=b[i];
b[i]=b[j];
b[j]=temp;
temp=a[i];
a[i]=a[j];
a[j]=temp;
}
while(b[i]>=x&&i<j) i++;
if(i<j)
{
temp=b[i];
b[i]=b[j];
b[j]=temp;
temp=a[i];
a[i]=a[j];
a[j]=temp;
}
}
if(s<=i-1) qsort(a,b,s,i-1);
if(t>=j+1) qsort(a,b,j+1,t);
return 0;
}
int main(void)
{
int n,i,j,a[1010]={0},b[1010]={0},max,time,count=0;
while(scanf("%d",&n)==1)
{
if(n==0) break;
count++;
for(i=0;i<n;i++)
scanf("%d%d",&a[i],&b[i]);
i=0;j=n-1;
qsort(a,b,i,j);max=a[0]+b[0];time=0;
for(i=0;i<n;i++)
{
time+=a[i];
if(time+b[i]>max)
max=time+b[i];
}
printf("Case %d: %d\n",count,max);
}
return 0;
}