Mocha 的二元关系
题号:NC218974
时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 256 M,其他语言512 M
64bit IO Format: %lld

题目描述

Mocha 喜欢二元关系,她选定了一个  上的二元关系 ,两个正整数  和  ,以及两个长度为  的正整数序列  和 ,且有 
Mocha 不擅长构造排列,因此请你构造一个  到  的排列 ,满足对于每一个 b_i,第一个可以和它匹配的 a_j 满足 ,形式化地说:
当然,有可能不存在满足上述条件的排列,此时你需要告知 Mocha 不存在;此外,有可能存在多个排列满足上述条件,Mocha 需要你输出字典序最小的那个排列。

输入描述:

第一行三个正整数  (),表示二元关系  的大小,以及 Mocha 选定的两个正整数。
接下来  行,每行两个正整数 x_i,y_i (),表示 。保证 
接下来一行  个正整数  (),表示 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 1 4 5 3
示例2

输入

复制
5 5 5
5 2
2 4
1 5
4 1
1 3
4 4 1 4 4
4 5 1 5 3

输出

复制
-1