#include <bits/stdc++.h>
// #include "bits/stdc++.h"

#ifndef bhupixb
    #define var(...)
    #define stl(...)
#endif

using namespace std;

#define int long long

#define rep(i, a, b) for (int i = a; i <= (int)b; ++i)

int w, n;

void solve() {
    cin >> w >> n;
    map<int,int> mp;
    rep(i,1,w) {
        int x;
        cin >> x;
        mp[x]++;
    }
    vector<array<int,2>> a;
    for (auto it: mp) {
        a.push_back({it.first, it.second});
    }
    int N = a.size();
    const int inf = 1e15;
    vector<int> dp(N, inf);
    vector<int> pref_sum(N), cnt(N);
    for (int i = 0; i < N; ++i) {
        pref_sum[i] = a[i][0] * a[i][1];
        cnt[i] = a[i][1];
        if (i > 0) {
            cnt[i] += cnt[i-1];
            pref_sum[i] += pref_sum[i - 1];
       }

    }
    auto getLR = [&] (int l, int r, vector<int> &pref_sum) {
        if (l > r) return 0LL;
        if (!(l >= 0 and r < N)) {
            var(l, r);
            exit(0);
        }
        if (!l) {
            return pref_sum[r];
        }
        return pref_sum[r] - pref_sum[l-1];
    };
    int res = 1e18;
    for (int i = 0; i < N; ++i) {
        int ans = 0;
        {
            int lo = 0, hi = i - 1;
            int lastJ = i;
            while (lo <= hi) {
                int mid = (lo + hi) / 2;
                int j = mid;
                int diff = a[i][0] - a[j][0];
                int cnt1 = a[j][1];
                int seedha = diff * a[j][1];
                int ulta = ((n - a[i][0]) + (a[j][0])) * cnt1;
                if (seedha <= ulta) {
                    hi = mid - 1;
                    lastJ = mid;
                }
                else {
                    lo = mid + 1;
                }
            }
            if (lastJ != i) {
                int ct = getLR(lastJ, i-1, cnt);
                int sum = getLR(lastJ, i - 1, pref_sum);
                int ok = a[i][0] * ct - sum;
                ans += ok;
            }
            if (lastJ > 0) {
                int j = lastJ - 1;
                int ct = getLR(0, j, cnt);
                int ok = 0;
                ok += ct * (n - a[i][0]);
                ok += getLR(0, j, pref_sum);
                var(ok);
                ans += ok;
            }
        }
        {
            int lo = i + 1, hi = N - 1;
            int lastJ = i;
            while (lo <= hi) {
                int mid = (lo + hi) / 2;
                int j = mid;
                int diff = a[j][0] - a[i][0];
                int seedha = diff * a[j][1];
                int ulta = (n - a[j][0]) * a[j][1] + (a[i][0]) * a[j][1];
                if (seedha <= ulta) {
                    lastJ = mid;
                    lo = mid + 1;
                }
                else {
                    hi = mid - 1;
                }
            }
            if (lastJ != i) {
               int ct = getLR(i+1, lastJ, cnt);
               int sum = getLR(i+1, lastJ, pref_sum);
               int ok = sum - ct * a[i][0];
               ans += ok;
            }
            if (lastJ < N - 1) {
                int j = lastJ + 1;
                int ct = getLR(j, N - 1, cnt);
                int sum = getLR(j, N - 1, pref_sum);
                int ok = 0;
                ok += n * ct - sum + ct * a[i][0];
                ans += ok;
            }
        }
        res = min(ans, res);
    }
    cout << res << '\n';
}

// #define single_test

signed main() {
    ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0);
    int t = 1;
    #ifndef single_test
        cin >> t;
    #endif
    for (int i = 1; i <= t; ++i) {
        cout << "Case #" << i << ": ";
        solve();
    }
    return 0;
}