#include <iostream>
#include <vector>
#include <algorithm>
#include <map>
#include <deque>
#include <cmath>
#include <set>
#include <unordered_map>
#include <iomanip>
#include <climits>
using namespace std;
#define all(v) ((v).begin()), ((v).end())
#define sz(v) ((int)((v).size()))
#define clr(v, d) memset(v, d, sizeof(v))
#define rep(i, v) for (int i = 0; i < sz(v); ++i)
#define lp(i, n) for (int i = 0; i < (int)(n); ++i)
#define lpi(i, j, n) for (int i = (j); i < (int)(n); ++i)
#define lpd(i, j, n) for (int i = (j); i >= (int)(n); --i)
typedef long long ll;
void fast_io()
{
ios_base::sync_with_stdio(false);
cin.tie(nullptr);
cout.tie(nullptr);
#ifndef ONLINE_JUDGE
freopen("input.txt", "r", stdin);
freopen("output.txt", "w", stdout);
#endif
}
void sieve(bool is_prime[], int n){
is_prime[0] = false, is_prime[1] = false;
lpi(i, 2, n+1){
is_prime[i] = true;
}
for (int i = 2; i*i <= n; i++){
if (is_prime[i]){
for (int j = i*i; j <= n; j+=i){
is_prime[j] = false;
}
}
}
}
int main()
{
fast_io();
int t;
cin >> t;
lpi(x, 1, t + 1)
{
int n, k;
cin >> n >> k;
int almost_primes = 0;
bool is_prime[++n];
sieve(is_prime, n);
int primes[k];
lp(i, k)
{
cin >> primes[i];
}
lpi(i, 2, n)
{
if (is_prime[i]) continue;
int counter = 0;
lp(j, k)
{
if (i % primes[j])
{
counter++;
}
}
if (counter == k)
almost_primes++;
}
cout << "Case " << x << ": " << almost_primes << endl;
}
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8dmVjdG9yPgojaW5jbHVkZSA8YWxnb3JpdGhtPgojaW5jbHVkZSA8bWFwPgojaW5jbHVkZSA8ZGVxdWU+CiNpbmNsdWRlIDxjbWF0aD4KI2luY2x1ZGUgPHNldD4KI2luY2x1ZGUgPHVub3JkZXJlZF9tYXA+CiNpbmNsdWRlIDxpb21hbmlwPgojaW5jbHVkZSA8Y2xpbWl0cz4KCnVzaW5nIG5hbWVzcGFjZSBzdGQ7CgojZGVmaW5lIGFsbCh2KSAoKHYpLmJlZ2luKCkpLCAoKHYpLmVuZCgpKQojZGVmaW5lIHN6KHYpICgoaW50KSgodikuc2l6ZSgpKSkKI2RlZmluZSBjbHIodiwgZCkgbWVtc2V0KHYsIGQsIHNpemVvZih2KSkKI2RlZmluZSByZXAoaSwgdikgZm9yIChpbnQgaSA9IDA7IGkgPCBzeih2KTsgKytpKQojZGVmaW5lIGxwKGksIG4pIGZvciAoaW50IGkgPSAwOyBpIDwgKGludCkobik7ICsraSkKI2RlZmluZSBscGkoaSwgaiwgbikgZm9yIChpbnQgaSA9IChqKTsgaSA8IChpbnQpKG4pOyArK2kpCiNkZWZpbmUgbHBkKGksIGosIG4pIGZvciAoaW50IGkgPSAoaik7IGkgPj0gKGludCkobik7IC0taSkKdHlwZWRlZiBsb25nIGxvbmcgbGw7Cgp2b2lkIGZhc3RfaW8oKQp7CiAgICBpb3NfYmFzZTo6c3luY193aXRoX3N0ZGlvKGZhbHNlKTsKICAgIGNpbi50aWUobnVsbHB0cik7CiAgICBjb3V0LnRpZShudWxscHRyKTsKI2lmbmRlZiBPTkxJTkVfSlVER0UKICAgIGZyZW9wZW4oImlucHV0LnR4dCIsICJyIiwgc3RkaW4pOwogICAgZnJlb3Blbigib3V0cHV0LnR4dCIsICJ3Iiwgc3Rkb3V0KTsKI2VuZGlmCn0Kdm9pZCBzaWV2ZShib29sIGlzX3ByaW1lW10sIGludCBuKXsKICAgIGlzX3ByaW1lWzBdID0gZmFsc2UsIGlzX3ByaW1lWzFdID0gZmFsc2U7CiAgICBscGkoaSwgMiwgbisxKXsKICAgICAgICBpc19wcmltZVtpXSA9IHRydWU7CiAgICB9CiAgICBmb3IgKGludCBpID0gMjsgaSppIDw9IG47IGkrKyl7CiAgICAgICAgaWYgKGlzX3ByaW1lW2ldKXsKICAgICAgICAgICAgZm9yIChpbnQgaiA9IGkqaTsgaiA8PSBuOyBqKz1pKXsKICAgICAgICAgICAgICAgIGlzX3ByaW1lW2pdID0gZmFsc2U7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICB9Cn0KCmludCBtYWluKCkKewogICAgZmFzdF9pbygpOwogICAgaW50IHQ7CiAgICBjaW4gPj4gdDsKCiAgICBscGkoeCwgMSwgdCArIDEpCiAgICB7CiAgICAgICAgaW50IG4sIGs7CiAgICAgICAgY2luID4+IG4gPj4gazsKICAgICAgICBpbnQgYWxtb3N0X3ByaW1lcyA9IDA7CiAgICAgICAgCiAgICAgICAgYm9vbCBpc19wcmltZVsrK25dOwogICAgICAgIHNpZXZlKGlzX3ByaW1lLCBuKTsKICAgICAgICAKICAgICAgICBpbnQgcHJpbWVzW2tdOwogICAgICAgIGxwKGksIGspCiAgICAgICAgewogICAgICAgICAgICBjaW4gPj4gcHJpbWVzW2ldOwogICAgICAgIH0KCiAgICAgICAgbHBpKGksIDIsIG4pCiAgICAgICAgewogICAgICAgICAgICBpZiAoaXNfcHJpbWVbaV0pIGNvbnRpbnVlOwoKICAgICAgICAgICAgaW50IGNvdW50ZXIgPSAwOwogICAgICAgICAgICBscChqLCBrKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBpZiAoaSAlIHByaW1lc1tqXSkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBjb3VudGVyKys7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICAgICAgaWYgKGNvdW50ZXIgPT0gaykKICAgICAgICAgICAgICAgIGFsbW9zdF9wcmltZXMrKzsKICAgICAgICB9CiAgICAgICAgY291dCA8PCAiQ2FzZSAiIDw8IHggPDwgIjogIiA8PCBhbG1vc3RfcHJpbWVzIDw8IGVuZGw7CiAgICB9Cn0=