#include <cstdio>
#include <algorithm>
#include <cctype>
#define REP(i, l, r) for(int i = l; i <= r; i++)
#define mp make_pair
#define Jump(l, r) {\
ret += f[l][r].win;\
if (f[l][r].left) {\
tmp = Cal(it = (r) - f[l][r].left + 1); ret += tmp.first, it = tmp.second;\
} else it = succ(r);\
}
using namespace std;
typedef pair<int, int> PII;
const int MAXN = 2012; int n, k, I = -1, J = -1, a[MAXN];
inline int getC(void) {
int c; while (!isalnum(c = getchar()));
return isdigit(c) ? c - 48 : (c == 'A' ? 1 : 10);
}
struct Node {
int win, left;
Node():win(0), left(0){}
}f[MAXN][MAXN];
inline int succ(int now) {
if (now == I - 1) return J + 1;
else if (now == J) return 1;
else return now + 1;
}
inline PII Cal(int now, int end = MAXN) {
int c[2] = {}, num[2] = {};
REP(i, 0, 3) if (now != end) c[i&1] += a[now], num[i&1]++, now = succ(now);
REP(i, 0, 1) {
while (c[i] < 16 && now != end) {
c[i] += a[now], num[i]++, now = succ(now);
if (c[i] > 21) return mp(i, now);
if (num[i] == 5) return mp(i^1, now);
}
}
return c[0] >= 16 && c[1] >= 16 ? mp((int)(c[0] > c[1]), now) : mp(0, end + 2);
}
inline void Process(int l) {
int i = l;
while (i <= n) {
PII tmp = Cal(i, n + 1);
REP(j, i, tmp.second - 2) f[l][j].win = f[l][i - 1].win, f[l][j].left = j - i + 1;
f[l][tmp.second - 1].win = f[l][i - 1].win + tmp.first;
f[l][tmp.second - 1].left = 0;
i = tmp.second;
}
}
inline int Make(int l, int r) {
int ret = 0, it = l, cut = n - k + 2; PII tmp;
if (cut > r) {
Jump(l, r);
if (it < l) Jump(it, l - 1);
if (it < cut) Jump(it, cut - 1);
} else if (l - (r - cut + 1) >= 1) {
cut = l - (r - cut + 1);
Jump(l, r);
if (it < cut) Jump(it, cut - 1);
} else {
cut = r - (n - cut + 1 - (n - (r - l + 1))) + 1;
Jump(l, cut - 1);
}
return ret;
}
int main(void) {
int kase = 0;
while (scanf("%d%d", &n, &k) == 2) {
I = -1, J = -1;
REP(i, 1, n) a[i] = getC();
REP(i, 1, n) Process(i);
int Ans = 0;
REP(i, 2, n - 1) REP(j, i, n - 1) {
I = i, J = j; int tmp = Make(i, j);
Ans = max(tmp, Ans);
}
printf("Case %d: %d\n", ++kase, Ans);
}
return 0;
}
I2luY2x1ZGUgPGNzdGRpbz4KI2luY2x1ZGUgPGFsZ29yaXRobT4KI2luY2x1ZGUgPGNjdHlwZT4KI2RlZmluZSBSRVAoaSwgbCwgcikgZm9yKGludCBpID0gbDsgaSA8PSByOyBpKyspCiNkZWZpbmUgbXAgbWFrZV9wYWlyCiNkZWZpbmUgSnVtcChsLCByKSB7XAogICAgcmV0ICs9IGZbbF1bcl0ud2luO1wKCWlmIChmW2xdW3JdLmxlZnQpIHtcCgkJdG1wID0gQ2FsKGl0ID0gKHIpIC0gZltsXVtyXS5sZWZ0ICsgMSk7IHJldCArPSB0bXAuZmlyc3QsIGl0ID0gdG1wLnNlY29uZDtcCgl9IGVsc2UgaXQgPSBzdWNjKHIpO1wKfQoKdXNpbmcgbmFtZXNwYWNlIHN0ZDsKdHlwZWRlZiBwYWlyPGludCwgaW50PiBQSUk7Cgpjb25zdCBpbnQgTUFYTiA9IDIwMTI7IGludCBuLCBrLCBJID0gLTEsIEogPSAtMSwgYVtNQVhOXTsKaW5saW5lIGludCBnZXRDKHZvaWQpIHsKCWludCBjOyB3aGlsZSAoIWlzYWxudW0oYyA9IGdldGNoYXIoKSkpOyAKCXJldHVybiBpc2RpZ2l0KGMpID8gYyAtIDQ4IDogKGMgPT0gJ0EnID8gMSA6IDEwKTsKfQoKc3RydWN0IE5vZGUgewoJaW50IHdpbiwgbGVmdDsKCU5vZGUoKTp3aW4oMCksIGxlZnQoMCl7fQp9ZltNQVhOXVtNQVhOXTsKCmlubGluZSBpbnQgc3VjYyhpbnQgbm93KSB7CglpZiAobm93ID09IEkgLSAxKSByZXR1cm4gSiArIDE7CgllbHNlIGlmIChub3cgPT0gSikgcmV0dXJuIDE7CgllbHNlIHJldHVybiBub3cgKyAxOwp9CgppbmxpbmUgUElJIENhbChpbnQgbm93LCBpbnQgZW5kID0gTUFYTikgewoJaW50IGNbMl0gPSB7fSwgbnVtWzJdID0ge307CglSRVAoaSwgMCwgMykgaWYgKG5vdyAhPSBlbmQpIGNbaSYxXSArPSBhW25vd10sIG51bVtpJjFdKyssIG5vdyA9IHN1Y2Mobm93KTsKCVJFUChpLCAwLCAxKSB7CgkJd2hpbGUgKGNbaV0gPCAxNiAmJiBub3cgIT0gZW5kKSB7CgkJCWNbaV0gKz0gYVtub3ddLCBudW1baV0rKywgbm93ID0gc3VjYyhub3cpOwoJCQlpZiAoY1tpXSA+IDIxKSByZXR1cm4gbXAoaSwgbm93KTsKCQkJaWYgKG51bVtpXSA9PSA1KSByZXR1cm4gbXAoaV4xLCBub3cpOwoJCX0KCX0KCXJldHVybiBjWzBdID49IDE2ICYmIGNbMV0gPj0gMTYgPyBtcCgoaW50KShjWzBdID4gY1sxXSksIG5vdykgOiBtcCgwLCBlbmQgKyAyKTsKfQoKaW5saW5lIHZvaWQgUHJvY2VzcyhpbnQgbCkgewoJaW50IGkgPSBsOwoJd2hpbGUgKGkgPD0gbikgewoJCVBJSSB0bXAgPSBDYWwoaSwgbiArIDEpOwoJCVJFUChqLCBpLCB0bXAuc2Vjb25kIC0gMikgZltsXVtqXS53aW4gPSBmW2xdW2kgLSAxXS53aW4sIGZbbF1bal0ubGVmdCA9IGogLSBpICsgMTsKCQlmW2xdW3RtcC5zZWNvbmQgLSAxXS53aW4gPSBmW2xdW2kgLSAxXS53aW4gKyB0bXAuZmlyc3Q7CgkJZltsXVt0bXAuc2Vjb25kIC0gMV0ubGVmdCA9IDA7CgkJaSA9IHRtcC5zZWNvbmQ7Cgl9Cn0KCmlubGluZSBpbnQgTWFrZShpbnQgbCwgaW50IHIpIHsKCWludCByZXQgPSAwLCBpdCA9IGwsIGN1dCA9IG4gLSBrICsgMjsgUElJIHRtcDsKCWlmIChjdXQgPiByKSB7CgkJSnVtcChsLCByKTsKCQlpZiAoaXQgPCBsKSBKdW1wKGl0LCBsIC0gMSk7CgkJaWYgKGl0IDwgY3V0KSBKdW1wKGl0LCBjdXQgLSAxKTsKCX0gZWxzZSBpZiAobCAtIChyIC0gY3V0ICsgMSkgPj0gMSkgewoJCWN1dCA9IGwgLSAociAtIGN1dCArIDEpOwoJCUp1bXAobCwgcik7CgkJaWYgKGl0IDwgY3V0KSBKdW1wKGl0LCBjdXQgLSAxKTsKCX0gZWxzZSB7CgkJY3V0ID0gciAtIChuIC0gY3V0ICsgMSAtIChuIC0gKHIgLSBsICsgMSkpKSArIDE7CgkJSnVtcChsLCBjdXQgLSAxKTsKCX0KCXJldHVybiByZXQ7Cn0KCmludCBtYWluKHZvaWQpIHsKCWludCBrYXNlID0gMDsKCXdoaWxlIChzY2FuZigiJWQlZCIsICZuLCAmaykgPT0gMikgewoJCUkgPSAtMSwgSiA9IC0xOwoJCVJFUChpLCAxLCBuKSBhW2ldID0gZ2V0QygpOwoJCVJFUChpLCAxLCBuKSBQcm9jZXNzKGkpOwoJCWludCBBbnMgPSAwOwoJCVJFUChpLCAyLCBuIC0gMSkgUkVQKGosIGksIG4gLSAxKSB7IAoJCQlJID0gaSwgSiA9IGo7IGludCB0bXAgPSBNYWtlKGksIGopOwoJCQlBbnMgPSBtYXgodG1wLCBBbnMpOwoJCX0KCQlwcmludGYoIkNhc2UgJWQ6ICVkXG4iLCArK2thc2UsIEFucyk7Cgl9CglyZXR1cm4gMDsKfQo=