#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][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 cnt, int dg)
{
    if(i>=m)return 0;
    if(dp[i][cnt][dg]!=-1)return dp[i][cnt][dg];
    if(cnt == n)
    {
          if(oka(dg))
          {
             return 1;
          }
    }
    int ways = 0;
    ways+= solve(i + 1, cnt + 1, (dg*10 + a[i]));
    ways+=solve(i, cnt, dg);
    return dp[i][cnt][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, 0)<<endl;
    }
    return 0;
}
