整数の配列 $A$ と集合 $B$ があり、$A$ と $B$ に含まれるすべての数は互いに異なります。あなたの仕事は $A$ を整列済みの配列にすることです。そのために、$B$ から任意の数を取り出し、$A$ の任意の要素をその数に置き換えられます。この操作は何度でも行えますが、$B$ の各要素は高々一度しか使えません。
$A$ を整列済みの配列にするために必要な操作回数の最小値を求めるか、不可能であると判定してください。
入力
入力の最初の行には、$A$ と $B$ の大きさをそれぞれ表す整数 $N,M$($1 \le N,M \le 5\cdot10^5$)が与えられます。
2 行目には $N$ 個の整数 $A_1,A_2,\ldots,A_N$ が与えられます。
3 行目には $M$ 個の整数 $B_1,B_2,\ldots,B_M$ が与えられます。
全 $N+M$ 個の要素は互いに異なる正整数で、$10^9$ 以下です。
出力
$A$ を整列済みの配列にできない場合は $-1$ を出力してください。それ以外の場合は必要な操作回数の最小値を出力してください。
入出力例
入力 1
4 1 2 6 13 10 5
出力 1
-1
入力 2
4 2 2 6 13 10 5 4
出力 2
2
入力 3
4 3 2 6 13 10 5 4 19
出力 3
1
注記
3 つの例はいずれも $13>10$ が問題なので、少なくとも一方を変更する必要があります。
最初の例では、$13$ を $5$ に置き換えて小さくできますが、反対側の順序を崩してしまうため、解はありません。
2 つ目の例では $4$ もあり、崩れた側を修復できます。$2$ 回未満の操作では不可能です。
3 つ目の例ではようやく最後の要素を大きくでき、$1$ 回の操作で $A$ を整列できます。