#include <cstdio>
#include <cstring>
#define max(a,b)((a)>=(b)?(a):(b))
int dp[1001],w[1000],v[1000],W,N;
int main() {
	for(int Case=1;scanf("%d",&W),W;Case++) {
		memset(dp,0,sizeof(dp));
		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=W;j>=w[i];j--) {
				dp[j]=max(dp[j],dp[j-w[i]]+v[i]);
			}
		}
		int _w;
		for(_w=W-1;_w>=0;_w--) {
			if(dp[_w]!=dp[W]) break;
		}
		printf("Case %d:\n",Case);
		printf("%d\n%d\n",dp[W],_w+1);
	}
}