#D7098. Rotation Sort

    ID: 5896 Type: Default 2000ms 1073MiB

Rotation Sort

Rotation Sort

You are given a permutation p = (p_1, \ldots, p_N) of \{ 1, \ldots, N \}. You can perform the following two kinds of operations repeatedly in any order:

  • Pay a cost A. Choose integers l and r (1 \leq l < r \leq N), and shift (p_l, \ldots, p_r) to the left by one. That is, replace p_l, p_{l + 1}, \ldots, p_{r - 1}, p_r with p_{l + 1}, p_{l + 2}, \ldots, p_r, p_l, respectively.
  • Pay a cost B. Choose integers l and r (1 \leq l < r \leq N), and shift (p_l, \ldots, p_r) to the right by one. That is, replace p_l, p_{l + 1}, \ldots, p_{r - 1}, p_r with p_r, p_l, \ldots, p_{r - 2}, p_{r - 1}, respectively.

Find the minimum total cost required to sort p in ascending order.

Constraints

  • All values in input are integers.
  • 1 \leq N \leq 5000
  • 1 \leq A, B \leq 10^9
  • (p_1 \ldots, p_N) is a permutation of \{ 1, \ldots, N \}.

Input

Input is given from Standard Input in the following format:

N A B p_1 \cdots p_N

Output

Print the minimum total cost required to sort p in ascending order.

Examples

Input

3 20 30 3 1 2

Output

20

Input

4 20 30 4 2 3 1

Output

50

Input

1 10 10 1

Output

0

Input

4 1000000000 1000000000 4 3 2 1

Output

3000000000

Input

9 40 50 5 3 4 7 6 1 2 9 8

Output

220

inputFormat

input are integers.

  • 1 \leq N \leq 5000
  • 1 \leq A, B \leq 10^9
  • (p_1 \ldots, p_N) is a permutation of \{ 1, \ldots, N \}.

Input

Input is given from Standard Input in the following format:

N A B p_1 \cdots p_N

outputFormat

Output

Print the minimum total cost required to sort p in ascending order.

Examples

Input

3 20 30 3 1 2

Output

20

Input

4 20 30 4 2 3 1

Output

50

Input

1 10 10 1

Output

0

Input

4 1000000000 1000000000 4 3 2 1

Output

3000000000

Input

9 40 50 5 3 4 7 6 1 2 9 8

Output

220

样例

3 20 30
3 1 2
20