- #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==