#include<stdio.h>
#include<string>
#include<stdlib.h>
#include<math.h>
#include<iostream>
#include<vector>
#include<algorithm>
#include<numeric>
#include<string.h>
#include<map>
#include<queue>

using namespace std;

typedef pair<int,int> pii;

#define rep(i,j) for(int i=0;i<(j);i++)
#define reps(i,j,k) for(int i=j;i<=k;i++)
#define in(i,j,k) ((i)>=(j)&&(i)<=(k))

int dp[1000][1000];

int main(){
	int n,W,v[1000],w[1000],c=0,ans,we;
	for(;;){
		scanf("%d",&W);
		if(!W)break;
		scanf("%d",&n);
		ans=0;
		we=1023;
		rep(i,n)scanf("%d,%d",v+i,w+i);
		rep(i,n)rep(j,W)dp[j][i]=0;
		reps(i,1,W-1){
			reps(j,1,n-1){
				if(w[j]<=i)dp[i][j]=max(dp[i-1][j-1],dp[i-w[j]][j-1]+v[j]);
				else dp[i][j]=dp[i][j-1];
				ans=max(ans,dp[i][j]);
			}
		}
		for(int i=0;i<W&&we==1023;i++)rep(j,n)if(dp[i][j]==ans){we=i;break;}
		printf("Case %d:\n%d\n%d\n",++c,ans,we);
	}
	return 0;
}