#include<bits/stdc++.h>
using namespace std;
#define ll long long
const ll MAX = 6676;
#define mod 1000000007
#define EPS 1e-2
ll A[6676][10];
bool visited[MAX];
ll n,p;
long double dis(ll i,ll j)
{
return ((long double)sqrt((long double)(A[i][0]-A[j][0])*(A[i][0]-A[j][0])+(A[i][1]-A[j][1])*(A[i][1]-A[j][1])));
}
long double mn[6676];
long double prim(long long int x)
{
long double mincost=0LL;
for(ll i=1;i<=n;i++)
{
visited[i]=false;
mn[i]=5000;
}
visited[1]=true;
for(ll i=1;i<=n;i++)
{
if(visited[i])
continue;
if(dis(1,i)+EPS<mn[i])
mn[i]=dis(1,i);
}
while(1)
{
long double mn1=5000;
ll ind=-1;
for(ll i=1;i<=n;i++)
{
if(!visited[i]&&mn[i]+EPS<mn1)
{
mn1=mn[i];
ind=i;
}
}
if(mn1==5000)
break;
mincost+=(mn1*p);
mincost=ceil(mincost);
if(mincost+EPS>=mod)
mincost-=mod;
visited[ind]=true;
for(ll i=1;i<=n;i++)
{
if(visited[i])
continue;
if(dis(ind,i)+EPS<mn[i])
mn[i]=dis(ind,i);
}
}
return mincost;
}
int main()
{
ios_base::sync_with_stdio(false);
cin.tie(NULL);
cout.tie(NULL);
long long int t,x,i,j;
long double mincost;
cin>>t;
ll z=0;
while(t--)
{
z++;
cout<<"Scenario #"<<z<<": ";
cin>>n>>p;
for(i=1;i<=n;i++)
{
cin>>A[i][0]>>A[i][1];
}
mincost=prim(1);
//mincost*=p;
//if(mincost>=mod)
// mincost-=mod;
cout<<mincost<<"\n";
}
return 0;
}
I2luY2x1ZGU8Yml0cy9zdGRjKysuaD4KdXNpbmcgbmFtZXNwYWNlIHN0ZDsKI2RlZmluZSBsbCBsb25nIGxvbmcKY29uc3QgbGwgTUFYID0gNjY3NjsKI2RlZmluZSBtb2QgMTAwMDAwMDAwNwojZGVmaW5lIEVQUyAxZS0yCmxsIEFbNjY3Nl1bMTBdOwpib29sIHZpc2l0ZWRbTUFYXTsKbGwgbixwOwpsb25nIGRvdWJsZSBkaXMobGwgaSxsbCBqKQp7CiAgICByZXR1cm4gKChsb25nIGRvdWJsZSlzcXJ0KChsb25nIGRvdWJsZSkoQVtpXVswXS1BW2pdWzBdKSooQVtpXVswXS1BW2pdWzBdKSsoQVtpXVsxXS1BW2pdWzFdKSooQVtpXVsxXS1BW2pdWzFdKSkpOwp9CmxvbmcgZG91YmxlIG1uWzY2NzZdOwpsb25nIGRvdWJsZSBwcmltKGxvbmcgbG9uZyBpbnQgeCkKewogICAgbG9uZyBkb3VibGUgbWluY29zdD0wTEw7CiAgICBmb3IobGwgaT0xO2k8PW47aSsrKQogICAgewogICAgICAgIHZpc2l0ZWRbaV09ZmFsc2U7CiAgICAgICAgbW5baV09NTAwMDsKICAgIH0KICAgIHZpc2l0ZWRbMV09dHJ1ZTsKICAgIGZvcihsbCBpPTE7aTw9bjtpKyspCiAgICB7CiAgICAgICAgaWYodmlzaXRlZFtpXSkKICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgaWYoZGlzKDEsaSkrRVBTPG1uW2ldKQogICAgICAgICAgICBtbltpXT1kaXMoMSxpKTsKICAgIH0KICAgIHdoaWxlKDEpCiAgICB7CiAgICAgICAgbG9uZyBkb3VibGUgbW4xPTUwMDA7CiAgICAgICAgbGwgaW5kPS0xOwogICAgICAgIGZvcihsbCBpPTE7aTw9bjtpKyspCiAgICAgICAgewogICAgICAgICAgICBpZighdmlzaXRlZFtpXSYmbW5baV0rRVBTPG1uMSkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgbW4xPW1uW2ldOwogICAgICAgICAgICAgICAgaW5kPWk7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgaWYobW4xPT01MDAwKQogICAgICAgICAgICBicmVhazsKICAgICAgICBtaW5jb3N0Kz0obW4xKnApOwogICAgICAgIG1pbmNvc3Q9Y2VpbChtaW5jb3N0KTsKICAgICAgICBpZihtaW5jb3N0K0VQUz49bW9kKQogICAgICAgICAgICBtaW5jb3N0LT1tb2Q7CiAgICAgICAgdmlzaXRlZFtpbmRdPXRydWU7CiAgICAgICAgZm9yKGxsIGk9MTtpPD1uO2krKykKICAgICAgICB7CiAgICAgICAgICAgIGlmKHZpc2l0ZWRbaV0pCiAgICAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgICAgaWYoZGlzKGluZCxpKStFUFM8bW5baV0pCiAgICAgICAgICAgICAgICBtbltpXT1kaXMoaW5kLGkpOwogICAgICAgIH0KICAgIH0KICAgIHJldHVybiBtaW5jb3N0Owp9CmludCBtYWluKCkKewogICAgaW9zX2Jhc2U6OnN5bmNfd2l0aF9zdGRpbyhmYWxzZSk7CiAgICBjaW4udGllKE5VTEwpOwogICAgY291dC50aWUoTlVMTCk7CiAgICBsb25nIGxvbmcgaW50IHQseCxpLGo7CiAgICBsb25nIGRvdWJsZSBtaW5jb3N0OwogICAgY2luPj50OwogICAgbGwgej0wOwogICAgd2hpbGUodC0tKQogICAgewogICAgICAgIHorKzsKICAgICAgICBjb3V0PDwiU2NlbmFyaW8gIyI8PHo8PCI6ICI7CiAgICAgICAgY2luPj5uPj5wOwogICAgICAgIGZvcihpPTE7aTw9bjtpKyspCiAgICAgICAgewogICAgICAgICAgICBjaW4+PkFbaV1bMF0+PkFbaV1bMV07CiAgICAgICAgfQogICAgICAgIG1pbmNvc3Q9cHJpbSgxKTsKICAgICAgICAvL21pbmNvc3QqPXA7CiAgICAgICAgLy9pZihtaW5jb3N0Pj1tb2QpCiAgICAgICAgICAvLyAgbWluY29zdC09bW9kOwogICAgICAgIGNvdXQ8PG1pbmNvc3Q8PCJcbiI7CiAgICB9CiAgICByZXR1cm4gMDsKfQo=