#include <bits/stdc++.h>
using namespace std;
const int MOD = 1e9 + 7;
#define ll long long int
#define pii pair<int, int>
#define pb push_back
#define eb emplace_back
#define ff first
#define ss second
#define vi vector<int>
#define vpii vector<pii>
#define si set<int>
#define mpii map<int, int>
#define prq priority_queue<int>
#define sz(s) (int) s.size()
#define pf printf
#define sf scanf
#define pi 2 * acos (0.0)
#define rnd(a, b) ((((rand()<<15)^rand())%((b)-(a) + 1))+(a))
#define FAST_IO ios_base::sync_with_stdio(false),cin.tie(NULL)
const double EPS = 1e-9;
const int MXX = 10 + 5;
 
int n, m;
int a[MXX], dp[MXX][MXX];
bool oka(int n)
{
    int N = n, rem;
    vi v;
    while(N>0)
    {
        rem = N % 10;
        v.pb(rem);
        N/=10;
    }
    for(int i = 1; i<sz(v); i++)
    {
        if(abs(v[i]-v[i-1])>2)
        {
            return false;
        }
    }
    return true;
}
int solve(int i, int dg)// dg is the last taken digit
{
    if(i>=n)return 1; // built an n-digits succefully.

    if(dp[i][dg]!=-1)return dp[i][dg];

    int ways = 0;
    for(int j=0;j<m;j++){
    	 	if(i==0 || abs(a[j]-dg)<=2){ // if i == 0 that means there's no previous taken digit
    	 								// so we try to take a digit from the set
    	 								// also we're checking the validity of n-digits
    	 								// by comparing the current digit with the last taken digit.
    	 								// to know if we can add it or no.
    	 		
    	 		ways+=solve(i+1,a[j]); // pass the digit a[j] to the parameter as the last taken digit. 
    	 	}
    }
    
    return dp[i][dg] = ways;
}
int main()
{
 
    FAST_IO;
    int q;
    cin>>q;
    int kas = 1;
    while(q--)
    {
        cin>>m>>n;
        memset(dp, -1, sizeof(dp));
        for(int i = 0; i<m; i++)cin>>a[i];
        cout<<"Case "<<kas++<<": "<<solve(0, 0)<<endl;
    }
    return 0;
}