#include<iostream>
#include <list>
#include<cstdio>
#include<cstdlib>
#define minimum(a,b) a<b?a:b
#define MAX 123456789
using namespace std;
int *val,disjoint=0;
long long int mi,ans=0,min_all;
int read()
{
int t=0;char c;
c=getchar();
while((c<'0'||c>'9'))c=getchar();
while(c>='0'&&c<='9')
{
t=(t<<3)+(t<<1)+c-'0';
c=getchar();
}
return t;
}
class Graph
{
int V;
list<int> *adj;
void DFSUtil(int v, bool visited[]);
public:
Graph(int V);
void addEdge(int v, int w);
void DFS();
};
Graph::Graph(int V)
{
this->V = V;
adj = new list<int>[V];
val=(int *)malloc(sizeof(int)*(V));
}
void Graph::addEdge(int v, int w)
{
adj[v].push_back(w);
adj[w].push_back(v);
}
void Graph::DFSUtil(int v, bool visited[])
{
visited[v] = true;
if(val[v]>=0)
{
//printf("{ %lld %d",mi,min_all);
mi=minimum(val[v],mi);
min_all=minimum(val[v],min_all);
//printf("%lld %d }\n",mi,min_all);
}
list<int>::iterator i;
for(i = adj[v].begin(); i != adj[v].end(); ++i)
if(!visited[*i])
DFSUtil(*i, visited);
}
void Graph::DFS()
{
bool *visited = new bool[V];
for(int i = 0; i < V; i++)
visited[i] = false;
for(int i=1;i<V;i++)
{
if(visited[i]==false)
{
mi=MAX;
//printf("$%lld\n",mi);
disjoint++;
DFSUtil(i, visited);
if(mi==MAX)
{
ans=-1;
//printf("**\n");
break;
}
else
ans+=mi;
//printf("%lld**\n",ans);
}
if(ans==-1)break;
}
}
int main()
{
int n,m;
n=read();
m=read();
Graph g(n+1);
min_all=MAX;
for(int i=0;i<m;i++)
{
int a,b;
a=read();
b=read();
g.addEdge(a,b);
}
for(int i=1;i<=n;i++)
scanf("%d",&val[i]);
if(n==1)
{
printf("0\n");
}
else
{
g.DFS();
if(disjoint==1)
{
printf("0\n");
}
else
{
if(ans==-1)
printf("-1\n");
else
{
disjoint-=2;
ans+=disjoint*min_all;
printf("%lld\n",ans);
}
}
}
return 0;
}
I2luY2x1ZGU8aW9zdHJlYW0+CiNpbmNsdWRlIDxsaXN0PgojaW5jbHVkZTxjc3RkaW8+CiNpbmNsdWRlPGNzdGRsaWI+CiNkZWZpbmUgbWluaW11bShhLGIpIGE8Yj9hOmIKI2RlZmluZSBNQVggMTIzNDU2Nzg5Cgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKaW50ICp2YWwsZGlzam9pbnQ9MDsKbG9uZyBsb25nIGludCBtaSxhbnM9MCxtaW5fYWxsOwoKCmludCByZWFkKCkKewogICAgaW50IHQ9MDtjaGFyIGM7CiAgICBjPWdldGNoYXIoKTsKICAgIHdoaWxlKChjPCcwJ3x8Yz4nOScpKWM9Z2V0Y2hhcigpOwogICAgd2hpbGUoYz49JzAnJiZjPD0nOScpCiAgICB7CiAgICAgICAgdD0odDw8MykrKHQ8PDEpK2MtJzAnOwogICAgICAgIGM9Z2V0Y2hhcigpOwogICAgfQogICAgcmV0dXJuIHQ7Cn0KCmNsYXNzIEdyYXBoCnsKICAgIGludCBWOwogICAgbGlzdDxpbnQ+ICphZGo7CiAgICB2b2lkIERGU1V0aWwoaW50IHYsIGJvb2wgdmlzaXRlZFtdKTsKcHVibGljOgogICAgR3JhcGgoaW50IFYpOwogICAgdm9pZCBhZGRFZGdlKGludCB2LCBpbnQgdyk7CiAgICB2b2lkIERGUygpOwp9OwoKR3JhcGg6OkdyYXBoKGludCBWKQp7CiAgICB0aGlzLT5WID0gVjsKICAgIGFkaiA9IG5ldyBsaXN0PGludD5bVl07CiAgICB2YWw9KGludCAqKW1hbGxvYyhzaXplb2YoaW50KSooVikpOwp9Cgp2b2lkIEdyYXBoOjphZGRFZGdlKGludCB2LCBpbnQgdykKewogICAgYWRqW3ZdLnB1c2hfYmFjayh3KTsKICAgIGFkalt3XS5wdXNoX2JhY2sodik7Cn0KCnZvaWQgR3JhcGg6OkRGU1V0aWwoaW50IHYsIGJvb2wgdmlzaXRlZFtdKQp7CiAgICB2aXNpdGVkW3ZdID0gdHJ1ZTsKCiAgICBpZih2YWxbdl0+PTApCiAgICB7CiAgICAgICAgLy9wcmludGYoInsgJWxsZCAlZCIsbWksbWluX2FsbCk7CiAgICAgICAgbWk9bWluaW11bSh2YWxbdl0sbWkpOwogICAgICAgIG1pbl9hbGw9bWluaW11bSh2YWxbdl0sbWluX2FsbCk7CiAgICAgICAgLy9wcmludGYoIiVsbGQgJWQgfVxuIixtaSxtaW5fYWxsKTsKICAgIH0KCgogICAgbGlzdDxpbnQ+OjppdGVyYXRvciBpOwogICAgZm9yKGkgPSBhZGpbdl0uYmVnaW4oKTsgaSAhPSBhZGpbdl0uZW5kKCk7ICsraSkKICAgICAgICBpZighdmlzaXRlZFsqaV0pCiAgICAgICAgICAgIERGU1V0aWwoKmksIHZpc2l0ZWQpOwp9Cgp2b2lkIEdyYXBoOjpERlMoKQp7CiAgICBib29sICp2aXNpdGVkID0gbmV3IGJvb2xbVl07CiAgICBmb3IoaW50IGkgPSAwOyBpIDwgVjsgaSsrKQogICAgICAgIHZpc2l0ZWRbaV0gPSBmYWxzZTsKCiAgICBmb3IoaW50IGk9MTtpPFY7aSsrKQogICAgewogICAgICAgIGlmKHZpc2l0ZWRbaV09PWZhbHNlKQogICAgICAgIHsKICAgICAgICAgICAgbWk9TUFYOwogICAgICAgICAgICAvL3ByaW50ZigiJCVsbGRcbiIsbWkpOwogICAgICAgICAgICAKICAgICAgICAgICAgZGlzam9pbnQrKzsKCiAgICAgICAgICAgIERGU1V0aWwoaSwgdmlzaXRlZCk7CiAgICAgICAgICAgICAgICAKICAgICAgICAgICAgaWYobWk9PU1BWCkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICBhbnM9LTE7CiAgICAgICAgICAgICAgICAvL3ByaW50ZigiKipcbiIpOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZWxzZQogICAgICAgICAgICBhbnMrPW1pOwogICAgICAgICAgICAvL3ByaW50ZigiJWxsZCoqXG4iLGFucyk7CiAgICAgICAgfQogICAgICAgIGlmKGFucz09LTEpYnJlYWs7CgogICAgfQp9CgppbnQgbWFpbigpCnsKICAgIGludCBuLG07CiAgICBuPXJlYWQoKTsKICAgIG09cmVhZCgpOwogICAgCiAgICAKICAgIAogICAgICAgIEdyYXBoIGcobisxKTsKICAgICAgICBtaW5fYWxsPU1BWDsJCiAgICAgICAgZm9yKGludCBpPTA7aTxtO2krKykKICAgICAgICB7CiAgICAgICAgICAgIGludCBhLGI7CiAgICAgICAgICAgIGE9cmVhZCgpOwogICAgICAgICAgICBiPXJlYWQoKTsKICAgICAgICAgICAgZy5hZGRFZGdlKGEsYik7CiAgICAgICAgfQogICAgICAgIGZvcihpbnQgaT0xO2k8PW47aSsrKQogICAgICAgICAgICBzY2FuZigiJWQiLCZ2YWxbaV0pOwogICAgICAgIAogICAgaWYobj09MSkKICAgIHsKICAgICAgICBwcmludGYoIjBcbiIpOwogICAgfQogICAgZWxzZQogICAgewogICAgICAgIGcuREZTKCk7CiAgICAgICAgaWYoZGlzam9pbnQ9PTEpCiAgICAgICAgewogICAgICAgICAgICBwcmludGYoIjBcbiIpOwogICAgICAgIH0KICAgICAgICBlbHNlCiAgICAgICAgewogICAgICAgICAgICBpZihhbnM9PS0xKQogICAgICAgICAgICAgICAgcHJpbnRmKCItMVxuIik7CiAgICAgICAgICAgIGVsc2UKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgZGlzam9pbnQtPTI7CiAgICAgICAgICAgICAgICBhbnMrPWRpc2pvaW50Km1pbl9hbGw7CiAgICAgICAgICAgICAgICBwcmludGYoIiVsbGRcbiIsYW5zKTsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0KICAgIHJldHVybiAwOwp9Cg==