Dwarf Tower | 프로그래밍의 벗 PivotOJ
PivotOJ

Dwarf Tower

시간 제한: 2000ms메모리 제한: 256MB출처: NEERC Northern Subregional 2013BOJ 9446

문제

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 ci 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.

입력

The first line of input contains two integers n and m (1 ≤ n ≤ 10 000; 0 ≤ m ≤ 100 000) — the number of different items and the number of crafting types.

The second line contains n integers ci — values of the items (0 ≤ ci ≤ 109).

The following m lines describe crafting types, each line contains three distinct integers ai, xi, yi — ai is the item that can be crafted from items xi and yi (1 ≤ ai, xi, yi ≤ n, ai ≠ xi, xi ≠ yi, yi ≠ ai).

출력

The output should contain a single integer — the least amount of money to spend.

예제

예제 1

입력
5 3
5 0 1 2 5
5 2 3
4 2 3
1 4 5
출력
2
이 문제는 채점 준비 중입니다. 테스트 데이터가 확보되면 제출이 가능합니다.