#include<stdio.h>
#include<bits/stdc++.h>
#define vi vector<int>
#define int long long
#define pf printf
#define mod 1000000009
using namespace std;
void boost(){
ios_base::sync_with_stdio(0);
cin.tie(0);
cout.tie(0);
}
int pow(int n,int m){
if(m%2==0){
int pro=pow(n,m/2);
return ((pro)%mod*(pro)%mod)%mod;
}else{
return ((n)%mod*(pow(n,m-1))%mod)%mod;
}
}
int32_t main(){
boost();
int t,t1=0;
cin>>t;
while(t--){
t1++;
int w,n;
cin>>w>>n;
int a[w]={0};
for(int i=0;i<w;i++){
cin>>a[i];
}
sort(a,a+w);
int prefix[w]={0};
int suffix[w+1]={0};
suffix[w]=0;
int ans[n]={0};
for(int i=0;i<w;i++){
if(i==0){
prefix[i]=a[i];
}else{
prefix[i]=prefix[i-1]+a[i];
}
}
for(int i=w-1;i>=0;i--){
if(i==w-1){
suffix[i]=n-a[i];
}else{
suffix[i]=suffix[i+1]+n-a[i];
}
}
for(int i=0;i<w;i++){
int curr=a[i];
int low=i+1,high=w-1;
while(low<=high){
int mid=low+(high-low)/2;
int front=a[mid]-a[i];
int back=n-a[mid]+a[i];
if(front<=back){
low=mid+1;
}else{
high=mid-1;
}
}
if(low-1>=0){
ans[i]=(prefix[low-1]-prefix[i]-(low-1-i)*a[i])+(suffix[0]-suffix[i])-i*(n-a[i]);
if(low<w){
ans[i]+=(suffix[low]+(w-low)*a[i]);
}
}
}
int mini=LONG_LONG_MAX;
for(int i=0;i<w;i++){
mini=min(mini,ans[i]);
}
pf("Case #%lld: %lld\n",t1,mini);
}
return 0;
}
I2luY2x1ZGU8c3RkaW8uaD4KI2luY2x1ZGU8Yml0cy9zdGRjKysuaD4KI2RlZmluZSB2aSB2ZWN0b3I8aW50PgojZGVmaW5lIGludCBsb25nIGxvbmcgCiNkZWZpbmUgcGYgcHJpbnRmCiNkZWZpbmUgbW9kIDEwMDAwMDAwMDkKdXNpbmcgbmFtZXNwYWNlIHN0ZDsKdm9pZCBib29zdCgpewogICAgaW9zX2Jhc2U6OnN5bmNfd2l0aF9zdGRpbygwKTsgCiAgICBjaW4udGllKDApOyAKICAgIGNvdXQudGllKDApOyAKfQppbnQgcG93KGludCBuLGludCBtKXsKICAgIGlmKG0lMj09MCl7CiAgICAgIGludCBwcm89cG93KG4sbS8yKTsKICAgICAgcmV0dXJuICgocHJvKSVtb2QqKHBybyklbW9kKSVtb2Q7CiAgICB9ZWxzZXsKICAgICAgIHJldHVybiAoKG4pJW1vZCoocG93KG4sbS0xKSklbW9kKSVtb2Q7CiAgICB9Cn0KaW50MzJfdCBtYWluKCl7CiAgYm9vc3QoKTsKICBpbnQgdCx0MT0wOwogIGNpbj4+dDsKICB3aGlsZSh0LS0pewogICAgICB0MSsrOwogICAgICBpbnQgdyxuOwogICAgICBjaW4+Pnc+Pm47CiAgICAgIGludCBhW3ddPXswfTsKICAgICAgZm9yKGludCBpPTA7aTx3O2krKyl7CiAgICAgICAgICBjaW4+PmFbaV07CiAgICAgIH0KICAgICAgc29ydChhLGErdyk7CiAgICAgIGludCBwcmVmaXhbd109ezB9OwogICAgICBpbnQgc3VmZml4W3crMV09ezB9OwogICAgICBzdWZmaXhbd109MDsKICAgICAgaW50IGFuc1tuXT17MH07CiAgICAgIGZvcihpbnQgaT0wO2k8dztpKyspewogICAgICAgICAgaWYoaT09MCl7CiAgICAgICAgICAgICAgcHJlZml4W2ldPWFbaV07CiAgICAgICAgICB9ZWxzZXsKICAgICAgICAgICAgICBwcmVmaXhbaV09cHJlZml4W2ktMV0rYVtpXTsKICAgICAgICAgIH0KICAgICAgfQogICAgICBmb3IoaW50IGk9dy0xO2k+PTA7aS0tKXsKICAgICAgICAgIGlmKGk9PXctMSl7CiAgICAgICAgICAgICAgc3VmZml4W2ldPW4tYVtpXTsKICAgICAgICAgIH1lbHNlewogICAgICAgICAgICAgIHN1ZmZpeFtpXT1zdWZmaXhbaSsxXStuLWFbaV07CiAgICAgICAgICB9CiAgICAgIH0KICAgICAgZm9yKGludCBpPTA7aTx3O2krKyl7CiAgICAgICAgaW50IGN1cnI9YVtpXTsKICAgICAgICBpbnQgbG93PWkrMSxoaWdoPXctMTsKICAgICAgICB3aGlsZShsb3c8PWhpZ2gpewogICAgICAgICAgICBpbnQgbWlkPWxvdysoaGlnaC1sb3cpLzI7CiAgICAgICAgICAgIGludCBmcm9udD1hW21pZF0tYVtpXTsKICAgICAgICAgICAgaW50IGJhY2s9bi1hW21pZF0rYVtpXTsKICAgICAgICAgICAgaWYoZnJvbnQ8PWJhY2spewogICAgICAgICAgICAgICAgbG93PW1pZCsxOwogICAgICAgICAgICB9ZWxzZXsKICAgICAgICAgICAgICAgIGhpZ2g9bWlkLTE7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgaWYobG93LTE+PTApewogICAgICAgICAgICBhbnNbaV09KHByZWZpeFtsb3ctMV0tcHJlZml4W2ldLShsb3ctMS1pKSphW2ldKSsoc3VmZml4WzBdLXN1ZmZpeFtpXSktaSoobi1hW2ldKTsKICAgICAgICAgICAgaWYobG93PHcpewogICAgICAgICAgICAgICAgYW5zW2ldKz0oc3VmZml4W2xvd10rKHctbG93KSphW2ldKTsKICAgICAgICAgICAgfQogICAgICAgIH0gIAogICAgICB9CiAgICAgIGludCBtaW5pPUxPTkdfTE9OR19NQVg7CiAgICAgIGZvcihpbnQgaT0wO2k8dztpKyspewogICAgICAgICAgbWluaT1taW4obWluaSxhbnNbaV0pOwogICAgICB9CiAgICAgIHBmKCJDYXNlICMlbGxkOiAlbGxkXG4iLHQxLG1pbmkpOwogIH0KcmV0dXJuIDA7Cn0=