#include<stdio.h>
#include<string.h>
int w[1000],v[1000],W,N,dp[10000][1000],dpw[10000][1000];

bool solve(int num)
{
	memset(dp,0,sizeof(dp));
	memset(dpw,0,sizeof(dpw));
	scanf("%d",&W);
	if(W==0)
		return false;
	scanf("%d",&N);
	for(int i=0;i<N;i++)
		scanf("%d,%d",&v[i],&w[i]);
	for(int i=0;i<N;i++)
		for(int j=0;j<=W;j++)
		{
			if(j<w[i])
			{
				dp[i+1][j]=dp[i][j];
				dpw[i+1][j]=dpw[i][j];
			}
			else
			{
				int t1=dp[i][j], t2=dp[i][j-w[i]]+v[i], w1=dpw[i][j], w2=dpw[i][j-w[i]]+w[i];
				if(t1>t2||(t1==t2&&w1<w2))
				{
					dp[i+1][j]=t1;
					dpw[i+1][j]=w1;
				}
				else
				{
					dp[i+1][j]=t2;
					dpw[i+1][j]=w2;
				}
			}
		}
		printf("Case %d:\n%d\n%d\n",num,dp[N][W],dpw[N][W]);
		return true;
}

int main()
{
	for(int i=0;;i++)
		if(!solve(i+1))
			return 0;
}