You are given a graph G consisting of N nodes and M edges. Each node of G is either colored in black or white. Also, each edge of G has a particular wieight. Now, you need to find the least expensive path between node 1 and node N, such that difference of the number of black nodes and white nodes on the path is no more than 1.
It is guaranteed G does not consist of multiple edges and self loops.
Input Format:
The first line contains two space separated integers N and M. Each of the next M lines contains 3 space separated integers u,v,l which denotes that there is an edge from node u to node v having a weight l. The next line contains N space separated integers where each integer is either 0 or 1. If the ith integer is 0 it denotes that ith node is black , otherwise it is white.
Constraints
1≤N≤1000
1≤M≤10000
1≤l≤1000
1≤u,v≤N,u≠v
Output Format
Output a single integer denoting the length of the optimal path fulfilling the requirements. Print -1 if there is no such path.
The optimal path satisfying all the conditions would be :
1−>2−>3−>5−>6