小 Bitie 和他的朋友们昨天在幼儿园玩了一整天的彩色积木。起初他们用积木搭建模型,但很快就觉得无聊了。于是他们决定把积木排成一排。为了避免看起来单调,他们尽量不把颜色相同的两块积木放在一起。经过很长一段时间,他们终于在遵守这一规则的前提下排好了所有的积木。随后托儿所放学了,孩子们跟着父母回家了。
今天,Bitie 很早就来到了幼儿园。他很高兴地看到他们昨天的作品还立在那里。但随后他不幸被绊倒,正好摔在积木排上,积木全乱成了一堆。男孩迅速按颜色将它们分好类,并思考如何才能最快地重新拼出完美的队列。他设法回忆起了队列两端积木的颜色。
请帮助小 Bitie,告诉他如何将积木排成一排,使得没有两块颜色相同的积木相邻,且队列两端的积木颜色与他回忆的一致。请注意,Bitie 可能记错了这两种颜色,或者在摔倒后没有找到所有的积木,因此重建可能是不可能的。
输入格式
第一行包含三个整数 $k$、$p$ 和 $q$($1 \le k \le 1\,000\,000$,$1 \le p,q \le k$),分别表示积木的颜色种类数,以及期望排列中第一块和最后一块积木的颜色,整数间用空格分隔。第二行包含 $k$ 个整数 $i_{1}, i_{2}, \dots, i_{k}$($1 \le i_{j} \le 1\,000\,000$),整数间用空格分隔。数字 $i_{j}$ 表示 Bitie 拥有颜色为 $j$ 的积木恰好 $i_{j}$ 块。你可以假设积木总数不超过一百万,即 $n=i_{1}+i_{2}+\dots+i_{k} \le 1\,000\,000$。
输出格式
你的程序应输出 $n$ 个整数,用空格分隔,表示满足上述约束的积木排列中各积木的颜色。如果不存在这样的排列,你的程序应仅输出一个整数:0。
如果有多种正确的答案,你的程序可以任意选择其中一种。
样例
样例输入 1
3 3 1 2 3 3
样例输出 1
3 2 1 3 2 3 2 1
样例输入 2
3 3 1 2 4 2
样例输出 2
0
说明
在第一个样例中,另一个正确的排列是 "3 1 2 3 2 3 2 1"。在第二个样例中,Bitie 一定是记错了——不可能在满足约束的情况下排列这些积木。