AT_pakencamp_2024_day3_1_k 門松

Description

$ (1,2,\ldots,N) $ の順列 $ P=(P_1,P_2,\ldots,P_N) $ と $ 0,1 $ からなる長さ $ N-1 $ の数列 $ C $ が与えられます。 ここで、与えられる順列 $ P $ は以下の条件を満たすことが保証されます。 - 整数 $ i\ (1 \le i \le N-1) $ について、 $ i $ が奇数ならば $ P_i < P_{i+1} $ を、 $ i $ が偶数ならば $ P_i > P_{i+1} $ を満たす。 あなたは、最初すべての要素が $ -1 $ である長さ $ N-1 $ の数列 $ b $ を用意して、以下の二種類の操作を任意の順番で $ 300000 $ 回以下任意の回数行うことができます。 - type 1 : 整数 $ i\ (1 \le i \le N-1) $ を選ぶ。 $ P_i $ と $ P_{i+1} $ を swap する。 - type 2 : 整数 $ i\ (1 \le i \le N-1) $ を選ぶ。 $ P_i < P_{i+1} $ ならば $ b_i = 0 $ , $ P_i > P_{i+1} $ ならば $ b_i=1 $ と置き換える。 $ b=C $ とすることが可能か判定し、可能ならば操作方法を一つ示してください。

Input Format

入力は以下の形式で標準入力から与えられる。 > $ N $ $ P_1 $ $ P_2 $ $ \ldots $ $ P_N $ $ C_1 $ $ C_2 $ $ \ldots $ $ C_{N-1} $

Output Format

$ b=C $ とすることが不可能な場合は、 `-1` と一行に出力せよ。 $ b=C $ とすることが可能な場合は、操作回数を $ M $ として、以下の形式で出力せよ。 > $ M $ $ T_1 $ $ I_1 $ $ T_2 $ $ I_2 $ $ \vdots $ $ T_M $ $ I_M $ ただし、 $ T_k $ は $ k $ 回目の操作において type $ T_k $ を選ぶことを表し、 $ I_k $ は $ k $ 回目の操作において $ i=I_k $ とすることを表す。

Explanation/Hint

### Constraints - $ 2 \leq N \leq 2 \times 10^{5} $ - $ P $ は $ (1,2,\ldots, N) $ の順列 - 整数 $ i\ (1 \le i \le N-1) $ について、 $ i $ が奇数ならば $ P_i < P_{i+1} $ 、 $ i $ が偶数ならば $ P_i > P_{i+1} $ - $ C_i \in \lbrace 0,1 \rbrace \ (1 \le i \le N-1) $ - 入力は全て整数