#include <bits/stdc++.h>
using namespace std;
#define int long long   // <-----!!!!!!!!!!!!!!!!!!!

#define rep(i,n) for (int i=0;i<(n);i++)
#define rep2(i,a,b) for (int i=(a);i<(b);i++)
#define rrep(i,n) for (int i=(n)-1;i>=0;i--)
#define rrep2(i,a,b) for (int i=(a)-1;i>=b;i--)
#define chmin(a,b) (a)=min((a),(b));
#define chmax(a,b) (a)=max((a),(b));
#define all(a) (a).begin(),(a).end()
#define rall(a) (a).rbegin(),(a).rend()
#define printV(v) cerr<<(#v)<<":";for(auto(x):(v)){cerr<<" "<<(x);}cerr<<endl;
#define printVS(vs) cerr<<(#vs)<<":"<<endl;for(auto(s):(vs)){cerr<<(s)<< endl;}
#define printVV(vv) cerr<<(#vv)<<":"<<endl;for(auto(v):(vv)){for(auto(x):(v)){cerr<<" "<<(x);}cerr<<endl;}
#define printP(p) cerr<<(#p)<<(p).first<<" "<<(p).second<<endl;
#define printVP(vp) cerr<<(#vp)<<":"<<endl;for(auto(p):(vp)){cerr<<(p).first<<" "<<(p).second<<endl;}

inline void output(){ cerr << endl; }
template<typename First, typename... Rest>
inline void output(const First& first, const Rest&... rest) {
    cerr << first << " "; output(rest...);
}

using ll = long long;
using Pii = pair<int, int>;
using TUPLE = tuple<int, int, int>;
using vi = vector<int>;
using vvi = vector<vi>;
using vvvi = vector<vvi>;
const int inf = 1ll << 60;
const int mod = 1e9 + 7;
using Graph = vector<vector<int>>;

signed main() {
  std::ios::sync_with_stdio(false);
  std::cin.tie(0);

  int W, n;
  int t = 1;
  while (cin >> W) {
    if (W == 0) return 0;
    cin >> n;
    vi v(n), w(n);
    string s;
    rep(i, n) {
      getline(cin, s, ',');
      v[i] = stoi(s);
      cin >> w[i];
    }

    vvi dp(n+1, vi(W+1, -inf));
    dp[0][0] = 0;
    rep2(i, 1, n + 1) {
      rep(j, W + 1) {
        chmax(dp[i][j], dp[i-1][j]);
        if (j - w[i-1] >= 0) {
          chmax(dp[i][j], dp[i-1][j-w[i-1]] + v[i-1]);
        }
      }
    }

    cout << "Case " << t << ":" << endl;
    int ma_v = *max_element(all(dp[n]));
    int mi_w = inf;
    rep(j, W+1) {
      if (dp[n][j] == ma_v) {
        mi_w = j;
        break;
      }
    }
    cout << ma_v << endl;
    cout << mi_w << endl;

    t++;
  }
}

