March 28 ADA University Students + Schoolchildren
Dwarf Tower
Little Vasya is playing a new game named "Dwarf Tower". In this game there are n different items, which you can put on your dwarf character. Items are numbered from 1 to n. Vasya wants to get the item with number 1.
There are two ways to obtain an item:
You can buy an item. The i-th item costs
c[i]
money.You can craft an item. This game supports only m types of crafting. To craft an item, you give two particular different items and get another one as a result.
Help Vasya to spend the least amount of money to get the item number 1.
Input data
The first line contains two integers n and m (1 ≤ n ≤ 10000, 0 ≤ m ≤ 100000) - the number of different items and the number of crafting types.
The second line contains n integers c[i]
- values of the items (0 ≤ c[i]
≤ 10^9
).
The following m lines describe crafting types, each line contains three distinct integers a[i]
, x[i]
, y[i]
- a[i]
is the item that can be crafted from items x[i]
and y[i]
(1 ≤ a[i]
, x[i]
, y[i]
≤ n, a[i]
≠ x[i]
, x[i]
≠ y[i]
, y[i]
≠ a[i]
).
Output data
Print a single integer - the least amount of money to spend.
Examples
5 3 5 0 1 2 5 5 2 3 4 2 3 1 4 5
2
3 1 2 2 1 1 2 3
2