- #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); 
- } 
-   
- 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+ICphZGo7CiAgICB2b2lkIERGU1V0aWwoaW50IHYsIGJvb2wgdmlzaXRlZFtdKTsKcHVibGljOgogICAgR3JhcGgoaW50IFYpOwogICAgdm9pZCBhZGRFZGdlKGludCB2LCBpbnQgdyk7CiAgICB2b2lkIERGUygpOwp9OwoKR3JhcGg6OkdyYXBoKGludCBWKQp7CiAgICB0aGlzLT5WID0gVjsKICAgIGFkaiA9IG5ldyBsaXN0PGludD5bVl07CiAgICB2YWw9KGludCAqKW1hbGxvYyhzaXplb2YoaW50KSooVikpOwp9Cgp2b2lkIEdyYXBoOjphZGRFZGdlKGludCB2LCBpbnQgdykKewogICAgYWRqW3ZdLnB1c2hfYmFjayh3KTsKfQoKdm9pZCBHcmFwaDo6REZTVXRpbChpbnQgdiwgYm9vbCB2aXNpdGVkW10pCnsKICAgIHZpc2l0ZWRbdl0gPSB0cnVlOwoKICAgIGlmKHZhbFt2XT49MCkKICAgIHsKICAgICAgICAvL3ByaW50ZigieyAlbGxkICVkIixtaSxtaW5fYWxsKTsKICAgICAgICBtaT1taW5pbXVtKHZhbFt2XSxtaSk7CiAgICAgICAgbWluX2FsbD1taW5pbXVtKHZhbFt2XSxtaW5fYWxsKTsKICAgICAgICAvL3ByaW50ZigiJWxsZCAlZCB9XG4iLG1pLG1pbl9hbGwpOwogICAgfQoKCiAgICBsaXN0PGludD46Oml0ZXJhdG9yIGk7CiAgICBmb3IoaSA9IGFkalt2XS5iZWdpbigpOyBpICE9IGFkalt2XS5lbmQoKTsgKytpKQogICAgICAgIGlmKCF2aXNpdGVkWyppXSkKICAgICAgICAgICAgREZTVXRpbCgqaSwgdmlzaXRlZCk7Cn0KCnZvaWQgR3JhcGg6OkRGUygpCnsKICAgIGJvb2wgKnZpc2l0ZWQgPSBuZXcgYm9vbFtWXTsKICAgIGZvcihpbnQgaSA9IDA7IGkgPCBWOyBpKyspCiAgICAgICAgdmlzaXRlZFtpXSA9IGZhbHNlOwoKICAgIGZvcihpbnQgaT0xO2k8VjtpKyspCiAgICB7CiAgICAgICAgaWYodmlzaXRlZFtpXT09ZmFsc2UpCiAgICAgICAgewogICAgICAgICAgICBtaT1NQVg7CiAgICAgICAgICAgIC8vcHJpbnRmKCIkJWxsZFxuIixtaSk7CiAgICAgICAgICAgIAogICAgICAgICAgICBkaXNqb2ludCsrOwoKICAgICAgICAgICAgREZTVXRpbChpLCB2aXNpdGVkKTsKICAgICAgICAgICAgICAgIAogICAgICAgICAgICBpZihtaT09TUFYKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgIGFucz0tMTsKICAgICAgICAgICAgICAgIC8vcHJpbnRmKCIqKlxuIik7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgfQogICAgICAgICAgICBlbHNlCiAgICAgICAgICAgIGFucys9bWk7CiAgICAgICAgICAgIC8vcHJpbnRmKCIlbGxkKipcbiIsYW5zKTsKICAgICAgICB9CiAgICAgICAgaWYoYW5zPT0tMSlicmVhazsKCiAgICB9Cn0KCmludCBtYWluKCkKewogICAgaW50IG4sbTsKICAgIG49cmVhZCgpOwogICAgbT1yZWFkKCk7CiAgICAKICAgIAogICAgCiAgICAgICAgR3JhcGggZyhuKzEpOwogICAgICAgIG1pbl9hbGw9TUFYOwkKICAgICAgICBmb3IoaW50IGk9MDtpPG07aSsrKQogICAgICAgIHsKICAgICAgICAgICAgaW50IGEsYjsKICAgICAgICAgICAgYT1yZWFkKCk7CiAgICAgICAgICAgIGI9cmVhZCgpOwogICAgICAgICAgICBnLmFkZEVkZ2UoYSxiKTsKICAgICAgICB9CiAgICAgICAgZm9yKGludCBpPTE7aTw9bjtpKyspCiAgICAgICAgICAgIHNjYW5mKCIlZCIsJnZhbFtpXSk7CiAgICAgICAgCiAgICBpZihuPT0xKQogICAgewogICAgICAgIHByaW50ZigiMFxuIik7CiAgICB9CiAgICBlbHNlCiAgICB7CiAgICAgICAgZy5ERlMoKTsKICAgICAgICBpZihkaXNqb2ludD09MSkKICAgICAgICB7CiAgICAgICAgICAgIHByaW50ZigiMFxuIik7CiAgICAgICAgfQogICAgICAgIGVsc2UKICAgICAgICB7CiAgICAgICAgICAgIGlmKGFucz09LTEpCiAgICAgICAgICAgICAgICBwcmludGYoIi0xXG4iKTsKICAgICAgICAgICAgZWxzZQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBkaXNqb2ludC09MjsKICAgICAgICAgICAgICAgIGFucys9ZGlzam9pbnQqbWluX2FsbDsKICAgICAgICAgICAgICAgIHByaW50ZigiJWxsZFxuIixhbnMpOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgfQogICAgcmV0dXJuIDA7Cn0K