CSL 的拼图
时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 512 M,其他语言1024 M
64bit IO Format: %lld

题目描述

众所周知 CSL 不仅玩魔方很强,打麻将也很强。今天他打魔法麻将的时候,在路上撞到了一个被打乱的 n 维魔法拼图。每一块拼图的位置用一个 n 维的坐标 来表示。将拼图的任意两块交换位置称为一步。CSL 赶着打魔法麻将时间很紧,对步数和时间也很严格,所以需要用恰好 t 步把拼图复原。请问他能做到吗?

输入描述:

第一行有一个整数 n,表示拼图的维数。

第二行有 n 个整数 ,分别表示每一维的大小。

下面 行,每行有 n 个整数:第 行表示 第 i 块拼图的初始位置 ,第 行表示第 i 块拼图的目标位置 ,保证不会有多个拼图在同一初始位置或目标位置。

最后一行有一个整数 t,表示 CSL 要求的步数。





输出描述:

如果 CSL 可以用恰好 t 步复原,在一行输出 "YES",否则输出 "NO"。
示例1

输入

复制
1
1
1
1
1

输出

复制
NO
示例2

输入

复制
2
2 2
1 2
2 1
1 1
2 2
2 1
1 2
2 2
1 1
2

输出

复制
YES