# 01 Sort

## 题目描述

给定两个长度为 $n$ 的序列 $a[1...n]$ 和 $b[1...n]$，其中每个 $a[i]$ 都对应一个属性 $b[i]$，并且 $b[i]$ 的取值只能为 $0$ 或者 $1$。

定义一次操作的规则如下：

- 选择满足 $b[i]\neq b[j]$ 的两个数 $i$ 和 $j \ (1\le i,j\le n, i\neq j)$，分别交换对应的 $a[i],a[j]$ 和 $b[i], b[j]$

你最多可以执行 $x\in [0, 10^5]$ 次操作，请你判断能否在规定次数内，使得序列 $a[1...n]$ 排序成非降顺序吗？如果可以，请你输出一种可能的操作方案；如果不可以，则输出 $-1$。

## 输入格式

第一行包含一个整数 $t$，代表 $t$ 组数据

每组数据的第一行保包含 $1$ 个整数 $n$，表示序列长度

每组数据的第二行 $n$ 个整数 $a[1...n]$

每组数据的第三行 $n$ 个整数 $b[1...n]$，表示每个 $a[i]$ 对应的属性 $0$ 或 $1$

## 输出格式

请你分别输出 $t$ 组数据的答案。

对于每组数据，第一行输出一个整数 $x \ (x\in [0, 10^5])$ 代表操作次数，若无解则输出 $-1$。接下来的 $x$ 行，每行两个整数 $i$ 和 $j$，代表一次操作。

如果有多个答案，则打印其中任何一个。你不必尽量减少移动的次数。

## 样例 #1

### 样例输入 #1

```
5
4
10 20 20 30
0 1 0 1
3
3 1 2
0 1 1
4
2 2 4 8
1 1 1 1
3
5 15 4
0 0 0
4
20 10 100 50
1 0 0 1
```

### 样例输出 #1

```
0
2
1 2
2 3
0
-1
2
1 2
3 4
```

## 提示

对于 $20\%$ 数据，$1\le t\le 10$，$1\le n\le 100$，$1\le a[i]\le 100$，所有 $b[i]=0$

对于 $100\%$ 数据，$1\le t\le 100$，$1\le n\le 10^3$，$1\le a[i]\le 10^5$，$b[i]\in \{0,1\}$