编程题
### 问题描述
小然是一位年轻的魔法师,他有一本神秘的魔法书。这本书有 $N$ 页,每一页都有一种特殊的密码,密码是由 $0$ 到 $9$ 的数字组成的字符串。但是,魔法书的每一页都有一个防护咒语,密码只能通过特殊的方式去修改。
小然想把魔法书的每一页的密码都修改成他想要的密码。但是,他只有 $K$ 点魔法力量,每次修改密码都会消耗魔法力量。
小然有两种魔法:
- **魔法一**:选择两个不同的页面,交换任意一个字符。这个魔法不需要消耗魔法力量。
- **魔法二**:选择一个页面,替换其中一个字符为任意数字。这个魔法会消耗 $1$ 点魔法力量。
小然想知道,他是否能用有限的 $K$ 点魔法力量,将魔法书的每一页的密码都修改成他想要的密码。
你能帮助小然解决这个问题吗?
### 输入格式
首先你会得到一个整数 $T$,表示有 $T$ 组测试数据。
对于每组测试数据:
- 第一行包含两个整数 $N$ 和 $K$,表示魔法书有 $N$ 页,小然有 $K$ 点魔法力量。
- 第二行包含 $N$ 个空格分隔数字字符串,表示魔法书每一页现在的密码。
- 第三行包含 $N$ 个空格分隔数字字符串,表示小然想要修改成的密码。
### 输出格式
对于每组测试数据,如果小然能用 $K$ 点魔法力量将魔法书的每一页的密码都修改成他想要的密码,输出 "YES";否则,输出 "NO"。
### 样例输入
```text
3
2 2
1 9
9 1
2 2
1 11
11 1
4 1
22 13 12 89
28 98 21 31
```
### 样例输出
```text
YES
NO
YES
```
### 说明
对于第一组测试数据,小然可以使用 **魔法一** 交换第一页和第二页的密码,这样就能得到他想要的密码,而且不需要消耗魔法力量。
对于第二组测试数据,小然无论如何都无法得到他想要的密码。
对于第三组测试数据,小然可以通过一次 **魔法二** 和若干次 **魔法一** ,将魔法书的每一页的密码都修改成他想要的密码。
### 评测数据范围
$1 \leq T \leq 1000$
$2 \leq N \leq 10^5$,$1 \leq K \leq 10^{18}$,每页的密码长度 $1 \leq |A_i|, |B_i| \leq 19$。
保证密码只包含 $0$ 到 $9$ 的数字。
所有测试数据的 $N$ 之和不超过 $10^5$。