Please subscribe to the official Codeforces channel in Telegram via the link: https://t.me/codeforces_official.
×

No tag edit access

E. DZY Loves Planting

time limit per test

3 secondsmemory limit per test

256 megabytesinput

standard inputoutput

standard outputDZY loves planting, and he enjoys solving tree problems.

DZY has a weighted tree (connected undirected graph without cycles) containing *n* nodes (they are numbered from 1 to *n*). He defines the function *g*(*x*, *y*) (1 ≤ *x*, *y* ≤ *n*) as the longest edge in the shortest path between nodes *x* and *y*. Specially *g*(*z*, *z*) = 0 for every *z*.

For every integer sequence *p*_{1}, *p*_{2}, ..., *p*_{n} (1 ≤ *p*_{i} ≤ *n*), DZY defines *f*(*p*) as .

DZY wants to find such a sequence *p* that *f*(*p*) has maximum possible value. But there is one more restriction: the element *j* can appear in *p* at most *x*_{j} times.

Please, find the maximum possible *f*(*p*) under the described restrictions.

Input

The first line contains an integer *n* (1 ≤ *n* ≤ 3000).

Each of the next *n* - 1 lines contains three integers *a*_{i}, *b*_{i}, *c*_{i} (1 ≤ *a*_{i}, *b*_{i} ≤ *n*; 1 ≤ *c*_{i} ≤ 10000), denoting an edge between *a*_{i} and *b*_{i} with length *c*_{i}. It is guaranteed that these edges form a tree.

Each of the next *n* lines describes an element of sequence *x*. The *j*-th line contains an integer *x*_{j} (1 ≤ *x*_{j} ≤ *n*).

Output

Print a single integer representing the answer.

Examples

Input

4

1 2 1

2 3 2

3 4 3

1

1

1

1

Output

2

Input

4

1 2 1

2 3 2

3 4 3

4

4

4

4

Output

3

Note

In the first sample, one of the optimal *p* is [4, 3, 2, 1].

Codeforces (c) Copyright 2010-2018 Mike Mirzayanov

The only programming contests Web 2.0 platform

Server time: Dec/12/2018 11:52:04 (d1).

Desktop version, switch to mobile version.

Supported by

User lists

Name |
---|