Problem: One day Masha was walking in the park and found a graph under a tree... Surprised? Did you think that this problem would have some logical and reasoned story? No way! So, the problem...
Masha has an oriented graph which -th vertex contains some positive integer . Initially Masha can put a coin at some vertex. In one operation she can move a coin placed in some vertex to any other vertex such that there is an oriented edge in the graph. Each time when the coin is placed in some vertex , Masha write down an integer in her notebook (in particular, when Masha initially puts a coin at some vertex, she writes an integer written at this vertex in her notebook). Masha wants to make exactly operations in such way that the maximum number written in her notebook is as small as possible.
Input Format: The first line contains three integers , and (, , ) — the number of vertices and edges in the graph, and the number of operation that Masha should make.
The second line contains integers () — the numbers written in graph vertices.
Each of the following lines contains two integers and () — it means that there is an edge in the graph.
It's guaranteed that graph doesn't contain loops and multi-edges.
Output Format: Print one integer — the minimum value of the maximum number that Masha wrote in her notebook during optimal coin movements.
If Masha won't be able to perform operations, print .
Note: Graph described in the first and the second examples is illustrated below.
In the first example Masha can initially put a coin at vertex . After that she can perform three operations: , and . Integers and will be written in the notepad.
In the second example Masha can initially put a coin at vertex . After that she can perform operations: , , , , and so on. Integers will be written in the notepad.
In the third example Masha won't be able to perform operations.