#CF2084C. 你优雅地飞向远方

你优雅地飞向远方

C. 你优雅地飞向远方
时间限制:每个测试点 2 秒
内存限制:256 兆字节


题目描述

给定两个长度为 nn 的排列 aabb。你可以执行至多 nn以下操作:

选择两个下标 iijj1i,jn1 \le i, j \le niji \neq j),交换 aia_iaja_j,同时交换 bib_ibjb_j

判断在若干次操作后,能否使 aabb 互为逆序。换句话说,要求对于每个 i=1,2,,ni = 1, 2, \dots, n,满足:

ai=bn+1ia_i = b_{n + 1 - i}

如果可能,输出任意一种合法的操作序列;否则输出 1-1


输入格式

每个测试文件包含多个测试用例。
第一行包含一个整数 tt1t1041 \le t \le 10^4),表示测试用例的数量。

接下来每个测试用例:

  • 第一行包含一个整数 nn2n2×1052 \le n \le 2 \times 10^5)—— 排列的长度。
  • 第二行包含 nn 个整数 a1,a2,,ana_1, a_2, \dots, a_n1ain1 \le a_i \le n)。
  • 第三行包含 nn 个整数 b1,b2,,bnb_1, b_2, \dots, b_n1bin1 \le b_i \le n)。

数据保证 aabb 是长度为 nn 的排列。
所有测试用例的 nn 之和不超过 2×1052 \times 10^5


输出格式

对于每个测试用例:

  • 如果不可能,输出一行 1-1
  • 否则,第一行输出一个整数 mm0mn0 \le m \le n)—— 操作次数。
    接下来 mm 行,每行输出两个整数 iijj1i,jn1 \le i, j \le niji \neq j),表示依次进行的操作。
    如果有多种可行方案,输出任意一种即可。

示例

输入

5
2
1 2
1 2
2
1 2
2 1
4
1 3 2 4
2 4 1 3
5
2 5 1 3 4
3 5 4 2 1
5
3 1 2 4 5
1 2 3 4 5

输出

-1
0
1
1 2
2
1 2
1 3
-1

样例解释

  • 第二个测试用例bb 已经是 aa 的逆序。
  • 第三个测试用例:执行一次操作后,bb 成为 aa 的逆序:
    交换 a1,a2a_1, a_2b1,b2b_1, b_2
    此时 a=[3,1,2,4]a = [3, 1, 2, 4]b=[4,2,1,3]b = [4, 2, 1, 3]
  • 第四个测试用例:依次执行以下操作后,bb 成为 aa 的逆序:
    1. 交换 a1,a2a_1, a_2b1,b2b_1, b_2,得到 a=[5,2,1,3,4]a = [5, 2, 1, 3, 4]b=[5,3,4,2,1]b = [5, 3, 4, 2, 1]
    2. 交换 a1,a3a_1, a_3b1,b3b_1, b_3,得到 a=[1,2,5,3,4]a = [1, 2, 5, 3, 4]b=[4,3,5,2,1]b = [4, 3, 5, 2, 1]