Benelux Artistic Pottery Consortium 正在为奈梅亨的一家画廊筹备其最珍贵的骨灰瓮和花瓶的展览。由于需要展出的花瓶数量众多,画廊很难为每一个花瓶找到尺寸合适的底座。他们现有的底座既可以正放也可以倒放,每个底座的特征由其顶部和底部表面的直径决定。此外,顶部和底部的直径相差最多不超过一个单位长度。
出于艺术原因,花瓶底部的直径必须与其所放置的底座表面的直径相匹配。你需要找到一种方法,将所有花瓶放置在现有的底座上。为了实现这一点,你可能需要将一些底座倒置。例如,图 H.1 展示了样例输入 1 的一种可能的底座与花瓶分配方案。请编写一个程序来计算出这样一种分配方案。
图 H.1:样例输入 1 的解。
输入格式
- 第一行包含两个整数 $0 \le p, v \le 10^4$,分别表示底座的数量和花瓶的数量。
- 接下来 $p$ 行,第 $i$ 行包含两个整数 $1 \le a_i, b_i \le 10^4$,表示底座 $i$ 不同侧面的直径。已知 $|a_i - b_i| \le 1$。
- 最后一行包含 $v$ 个整数 $1 \le c_1, \dots, c_v \le 10^4$,其中 $c_i$ 表示花瓶 $i$ 的直径。
输出格式
- 输出 $v$ 个不同的整数 $1 \le x_1, \dots, x_v \le p$,使得花瓶 $i$ 可以放置在底座 $x_i$ 上;如果不存在这样的分配方案,则输出
impossible。
如果有多种可能的解,你可以输出其中任意一种。
样例
样例输入 1
4 3 1 2 4 5 2 3 2 2 1 2 3
样例输出 1
1 4 3
样例输入 2
2 2 1 1 2 3 1 1
样例输出 2
impossible
样例输入 3
2 3 9 8 4 5 4 9 5
样例输出 3
impossible