#include #include #include #include #include using namespace std; using ll=long long; int main(){ cin.tie(nullptr); ios::sync_with_stdio(false); int ttt; cin>>ttt; while(ttt--){ int n,m; cin>>n>>m; vector a(n); vector> edges; ll ans=0; for(int i=0;i>a[i]; edges.push_back({a[i],n,i}); ans-=a[i]; } for(int i=0;i>u>>v; u--;v--; edges.push_back({a[u]+a[v],u,v}); } ranges::sort(edges,greater{}); atcoder::dsu uf(n+1); for(auto[w,u,v]:edges){ if(!uf.same(u,v)){ ans+=w; uf.merge(u,v); } } cout<