$N$ 行 $N$ 列のマス目の上に $N$ 個の石が置いてあります。 $i$ 番目の石は $R_i$ 行 $C_i$ 列にあります。同じマスに複数の石が置かれていることはありません。
あなたは次の2種類の操作を任意の順で任意の回数行うことができます。
$N$ 個の石を、マス目の左上から右下にかけての対角線上に並べることが出来るかを判定するプログラムを作成してください。 可能な場合は必要な最小の操作回数を出力してください。不可能な場合は $-1$ を出力してください。
ただし、対角線上に並ぶ石の順番は関係無い ことに注意してください。 例えば、1番目の石を1行1列のマスに配置する必要はありません。
入力は標準入力から以下の形式で与えられます。
$N$ $R_1$ $C_1$ $R_2$ $C_2$ $\vdots$ $R_N$ $C_N$
問題文中の条件を満たせる場合は、必要な最小の操作回数を一行に出力してください。 不可能である場合、$-1$ を一行に出力してください。
3 2 1 3 2 1 3
2
初めに列1と列3を入れ替え、次に行2と行3を入れ替えることで達成できます。 1回の操作で条件を満たすことは出来ないため、答えは2となります。
3 1 1 1 2 3 3
-1
3 1 1 2 2 3 3
0
5 4 1 3 5 5 4 1 2 2 3
4