AT_agc062_b [AGC062B] Split and Insert

Description

[problemUrl]: https://atcoder.jp/contests/agc062/tasks/agc062_b $ 1 $ から $ N $ までの整数からなる順列 $ A=(A_1,A_2,\dots,A_N) $ があります。はじめ $ A_i=i\ (1\leq\ i\ \leq\ N) $ です。 高橋君はこの順列に対し以下のような操作を $ K $ 回行います。 - $ 0\ \leq\ k\

Input Format

入力は以下の形式で標準入力から与えられます。 > $ N $ $ K $ $ C_1 $ $ C_2 $ $ \dots $ $ C_K $ $ P_1 $ $ P_2 $ $ \dots $ $ P_N $

Output Format

$ K $ 回の操作の後、$ A=(P_1,P_2,\dots,P_N) $ が成り立つように操作を行うことが不可能な場合、 `-1` を出力してください。可能な場合、そのような一連の操作のコストの最小値を出力してください。

Explanation/Hint

### 制約 - $ 2\ \leq\ N\ \leq\ 100 $ - $ 1\ \leq\ K\ \leq\ 100 $ - $ 1\ \leq\ C_i\ \leq\ 10^9 $ - $ (P_1,P_2,\dots,P_N) $ は $ 1 $ から $ N $ までの整数からなる順列 - 入力される値はすべて整数 ### Sample Explanation 1 操作で $ k=2 $ とし、$ A_3=3 $ を $ A_1,A_2 $ より前に、 $ A_4=4 $ を $ A_1,A_2 $ の後に挿入することで $ A=(3,1,2,4) $ とすることができ、 $ A=(P_1,P_2,P_3,P_4) $ が成り立ちます。この操作のコストは $ 2\ \times\ C_1\ =\ 6 $ です。 操作後、 $ A=(P_1,P_2,P_3,P_4) $ が成り立つように操作するとき、コストの最小値は $ 6 $ であることが証明できます。 ### Sample Explanation 2 操作後、$ A=(P_1,P_2,P_3,P_4) $ が成り立つように操作することはできません。