# include <iostream>
# include <stdio.h>
# include <algorithm>
# include <queue>
# include <set>
# include <string.h>
# include <vector>
# include <fstream>
# include <math.h>
# include <sstream>
# include <stack>
# define for1(i,k,n) for(long long i=k;i<n;i++)
# define for2(i,k,n) for(long long i=k;i<=n;i++)
# define Min(x,y) ((x)<(y)?(x):(y))
# define Max(x,y) ((x)>(y)?(x):(y))
# define INF (long long int ) 1e15
# define ALL(x) (begin(x),end(x))
# define Abs(x) (x>=0?x:-x)
using namespace std;
typedef long long int ll;
ll time1,sum1;
vector< vector<int> > g;
vector <int> status;
vector <int> parent;
vector <int> low;
vector <int> in;
vector <int> fin;
vector <int> child;
vector <bool> check;
void dfs (int x)
{
++time1;
low[x]=time1;// min dfs in the subtree rooted at x,initialised to be dfs no of x
in[x]=time1; //dfs number for x stored in in x
if (status[x]!=0)
return;
status[x]=1;
for1(i,0,g[x].size())
{ //normal dfs going on
if (status[g[x][i]]==0)
{
parent[g[x][i]]=x;
++child[x];
dfs(g[x][i]);
}
}
status[x]=2;
for1(i,0,g[x].size())
{
if (g[x][i]!=parent[x])
{
low[x]=Min(low[x],low[g[x][i]]); // now the minimum vertex acessed by x except that of its parent
}
}
}
int main()
{
#ifndef ONLINE_JUDGE
freopen("in.txt", "r", stdin);
#endif
std::ios_base::sync_with_stdio (false);
ll i,j,k,x,y,l,n,m,t,sum1;
cin>>t;
while(t--)
{sum1=0; time1=0;
cin>>n>>m>>k;
g.clear();
child.clear();
in.clear();
fin.clear();
status.clear();
check.clear();
low.clear();
parent.clear();
g.resize(n);
in.resize(n);
fin.resize(n);
status.resize(n);
low.resize(n);
child.resize(n);
parent.resize(n);
check.resize(n);
fill(check.begin(),check.end(),false);
fill(parent.begin(),parent.end(),-1);
fill(status.begin(),status.end(),0);
fill(child.begin(),child.end(),0);
for1(i,0,m)
{
cin>>x>>y;
g[x].push_back(y);
g[y].push_back(x);
}
for1(i,0,n)
{
if (status[i]==0) // normal dfs
dfs(i);
}
for1(i,0,n)
{
if ((parent[i]==-1)&&(child[i]>1))
++sum1; // for root
if ((parent[i]!=-1)&&(child[i]>0))
{// for non root and non leaf
for1(j,0,g[i].size())
{
if (low[g[i][j]]>=in[i])
{ // checking its children and the increasing sum1 where the count is kept
++sum1;
break;
}
}
}
}
cout<<sum1*k<<endl;
}
return 0;
}
IyBpbmNsdWRlIDxpb3N0cmVhbT4KIyBpbmNsdWRlIDxzdGRpby5oPgojIGluY2x1ZGUgPGFsZ29yaXRobT4KIyBpbmNsdWRlIDxxdWV1ZT4KIyBpbmNsdWRlIDxzZXQ+CiMgaW5jbHVkZSA8c3RyaW5nLmg+CiMgaW5jbHVkZSA8dmVjdG9yPgojIGluY2x1ZGUgPGZzdHJlYW0+CiMgaW5jbHVkZSA8bWF0aC5oPgojIGluY2x1ZGUgPHNzdHJlYW0+CiMgaW5jbHVkZSA8c3RhY2s+CiAKIyBkZWZpbmUgZm9yMShpLGssbikgICAgICAgICAgICAgIGZvcihsb25nIGxvbmcgaT1rO2k8bjtpKyspCiMgZGVmaW5lIGZvcjIoaSxrLG4pICAgICAgICAgICAgICBmb3IobG9uZyBsb25nIGk9aztpPD1uO2krKykKIyBkZWZpbmUgTWluKHgseSkgICAgICAgICAgICAgICAgICAgKCh4KTwoeSk/KHgpOih5KSkKIyBkZWZpbmUgTWF4KHgseSkgICAgICAgICAgICAgICAgICAgKCh4KT4oeSk/KHgpOih5KSkKIyBkZWZpbmUgSU5GIChsb25nIGxvbmcgaW50ICkgMWUxNQojIGRlZmluZSBBTEwoeCkgICAgICAgICAgICAgICAgICAoYmVnaW4oeCksZW5kKHgpKQojIGRlZmluZSBBYnMoeCkgICAgICAgICAgICAgICAgICh4Pj0wP3g6LXgpCiAKdXNpbmcgbmFtZXNwYWNlIHN0ZDsKdHlwZWRlZiBsb25nIGxvbmcgaW50IGxsOwogCmxsIHRpbWUxLHN1bTE7CnZlY3RvcjwgdmVjdG9yPGludD4gPiBnOwp2ZWN0b3IgPGludD4gc3RhdHVzOwp2ZWN0b3IgPGludD4gcGFyZW50Owp2ZWN0b3IgPGludD4gbG93Owp2ZWN0b3IgPGludD4gaW47CnZlY3RvciA8aW50PiBmaW47CnZlY3RvciA8aW50PiBjaGlsZDsKdmVjdG9yIDxib29sPiBjaGVjazsKdm9pZCBkZnMgKGludCB4KQp7CgkrK3RpbWUxOyAKCWxvd1t4XT10aW1lMTsvLyBtaW4gZGZzIGluIHRoZSBzdWJ0cmVlIHJvb3RlZCBhdCB4LGluaXRpYWxpc2VkIHRvIGJlIGRmcyBubyBvZiB4Cglpblt4XT10aW1lMTsgLy9kZnMgbnVtYmVyIGZvciB4IHN0b3JlZCBpbiBpbiB4CgkJaWYgKHN0YXR1c1t4XSE9MCkKCQkJcmV0dXJuOwoJCXN0YXR1c1t4XT0xOwoJCWZvcjEoaSwwLGdbeF0uc2l6ZSgpKQoJCXsgICAvL25vcm1hbCBkZnMgZ29pbmcgb24KCQkJaWYgKHN0YXR1c1tnW3hdW2ldXT09MCkKCQkJewoJCQkJcGFyZW50W2dbeF1baV1dPXg7CgkJCQkrK2NoaWxkW3hdOwoJCQkJZGZzKGdbeF1baV0pOwoJCQl9CgkJfQoJCXN0YXR1c1t4XT0yOwpmb3IxKGksMCxnW3hdLnNpemUoKSkKewoJaWYgKGdbeF1baV0hPXBhcmVudFt4XSkKCXsKCQlsb3dbeF09TWluKGxvd1t4XSxsb3dbZ1t4XVtpXV0pOyAgLy8gbm93IHRoZSBtaW5pbXVtIHZlcnRleCBhY2Vzc2VkIGJ5IHggZXhjZXB0IHRoYXQgb2YgaXRzIHBhcmVudAoJfQp9Cgl9CiAKIAogCiAKIAogIGludCBtYWluKCkKewogI2lmbmRlZiBPTkxJTkVfSlVER0UKICAgIGZyZW9wZW4oImluLnR4dCIsICJyIiwgc3RkaW4pOwojZW5kaWYKICAgIHN0ZDo6aW9zX2Jhc2U6OnN5bmNfd2l0aF9zdGRpbyAoZmFsc2UpOwogCiAgICBsbCBpLGosayx4LHksbCxuLG0sdCxzdW0xOwogICAgCmNpbj4+dDsKd2hpbGUodC0tKQp7c3VtMT0wOyB0aW1lMT0wOwoJY2luPj5uPj5tPj5rOwoJZy5jbGVhcigpOwoJY2hpbGQuY2xlYXIoKTsKCWluLmNsZWFyKCk7CglmaW4uY2xlYXIoKTsKCXN0YXR1cy5jbGVhcigpOwoJY2hlY2suY2xlYXIoKTsKCWxvdy5jbGVhcigpOwoJcGFyZW50LmNsZWFyKCk7CglnLnJlc2l6ZShuKTsKCWluLnJlc2l6ZShuKTsKCWZpbi5yZXNpemUobik7CglzdGF0dXMucmVzaXplKG4pOwoJbG93LnJlc2l6ZShuKTsKCWNoaWxkLnJlc2l6ZShuKTsKCXBhcmVudC5yZXNpemUobik7CgljaGVjay5yZXNpemUobik7CglmaWxsKGNoZWNrLmJlZ2luKCksY2hlY2suZW5kKCksZmFsc2UpOwoJZmlsbChwYXJlbnQuYmVnaW4oKSxwYXJlbnQuZW5kKCksLTEpOwoJZmlsbChzdGF0dXMuYmVnaW4oKSxzdGF0dXMuZW5kKCksMCk7CglmaWxsKGNoaWxkLmJlZ2luKCksY2hpbGQuZW5kKCksMCk7Cglmb3IxKGksMCxtKQoJewoJCWNpbj4+eD4+eTsKCQlnW3hdLnB1c2hfYmFjayh5KTsKCQlnW3ldLnB1c2hfYmFjayh4KTsKCX0KCWZvcjEoaSwwLG4pCgl7CgkJaWYgKHN0YXR1c1tpXT09MCkgIC8vIG5vcm1hbCBkZnMKCQkJZGZzKGkpOwoJfQoJZm9yMShpLDAsbikKCXsKCQlpZiAoKHBhcmVudFtpXT09LTEpJiYoY2hpbGRbaV0+MSkpCgkJCSsrc3VtMTsgIC8vIGZvciByb290CgkJaWYgKChwYXJlbnRbaV0hPS0xKSYmKGNoaWxkW2ldPjApKQoJCXsvLyBmb3Igbm9uIHJvb3QgYW5kIG5vbiBsZWFmCgkJCWZvcjEoaiwwLGdbaV0uc2l6ZSgpKQoJCQl7CgkJCQlpZiAobG93W2dbaV1bal1dPj1pbltpXSkKCQkJCXsgIC8vICBjaGVja2luZyBpdHMgY2hpbGRyZW4gYW5kIHRoZSBpbmNyZWFzaW5nIHN1bTEgd2hlcmUgdGhlIGNvdW50IGlzIGtlcHQKCQkJCQkrK3N1bTE7CgkJCQkJYnJlYWs7CgkJCQl9CgkJCX0KCQl9Cgl9CmNvdXQ8PHN1bTEqazw8ZW5kbDsKfQpyZXR1cm4gMDsKfSA=