#include<iostream>
#include<algorithm>
#include<cstdio>
using namespace std;
int tr[1001][2],dp[1001][1001];
int main(){
  int w,n,c=1;
  while(cin >>w,w){
    cin >>n;
    for(int i=0; i<1001; i++) for(int j=0; j<1001; j++) dp[i][j] = 0;
    for(int i=1; i<=n; i++) scanf("%d,%d",&tr[i][0],&tr[i][1]);
    for(int i=1; i<=n; i++){
      for(int j=0; j<=w; j++){
	dp[i][j] = max(dp[i][j],dp[i-1][j]);
	if(j+tr[i][1]<=w) dp[i][j+tr[i][1]] = max(dp[i][j+tr[i][1]],dp[i-1][j]+tr[i][0]);
      }
    }
    int ans = 0,y;
    for(int i=0; i<=w; i++){
      if(ans < dp[n][i]){ans = dp[n][i];y = i;}
    }
    cout <<"Case "<<c<<":"<<endl<<ans<<endl<<y<<endl;
    c++;
  }
  return 0;
}