// AOL Q.0042
// YAMADA Terushige 2013.2.13.

#include<iostream>
#include<algorithm>

using namespace std;

int main(){

  int W,N;
  int nloop=0;
  while(cin >> W >> N){
    if (W == 0) break;
    nloop++;

    int v[N],w[N];
    char c;
    for (int i = 0;i < N;i++)
      cin >> v[i] >> c >> w[i];

    int dp[1001]={0};
    for(int i=0;i<N;i++)
      for(int k=W;k>=w[i];k--)
	dp[k] = max( dp[k] , dp[k-w[i]] + v[i] );

    int k=0;
    while( dp[k] < dp[W] ){
      k++;
    }

    cout << "Case " << nloop << ':' << endl << dp[W] << endl << k << endl;
  }
  return 0;
}
