题号:NC218974
时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 256 M,其他语言512 M
64bit IO Format: %lld
题目描述
Mocha 喜欢二元关系,她选定了一个

上的二元关系

,两个正整数

和

,以及两个长度为

的正整数序列

和

,且有

。
Mocha 不擅长构造排列,因此
她请你构造一个

到

的排列

,满足对于每一个

,第一个可以和它匹配的

满足

,形式化地说:

。
当然,有可能不存在满足上述条件的排列,此时你需要告知 Mocha 不存在;此外,有可能存在多个排列满足上述条件,Mocha 需要你输出字典序最小的那个排列。
输入描述:
第一行三个正整数

(

,

),表示二元关系

的大小,以及 Mocha 选定的两个正整数。
接下来

行,每行两个正整数

(

),表示

。保证

。
接下来一行

个正整数

(

),表示 Mocha 选定的第一个序列。
接下来一行

个正整数

(

),表示 Mocha 选定的第二个序列。
输出描述:
如果不存在满足条件的排列,输出

;否则输出一个

到

的排列,表示满足条件且
字典序最小的排列。
示例1
输入
复制
5 5 5
4 1
2 2
5 3
1 5
2 5
1 1 4 5 1
4 4 2 5 4
示例2
输入
复制
5 5 5
5 2
2 4
1 5
4 1
1 3
4 4 1 4 4
4 5 1 5 3