美丽的乌托邦土地曾一度饱受战争蹂躏。当敌对行动平息后,该国被一条经线(南北向线)和一条纬线(东西向线)分成了四个区域。这些线的交点被称为点 $(0,0)$。
所有四个部分都自称为乌托邦,但随着时间的推移,它们通常被称为乌托邦 1(东北)、乌托邦 2(西北)、乌托邦 3(西南)和乌托邦 4(东南)。任何区域中的点都可以通过它到 $(0,0)$ 的东向距离和北向距离来确定。这些距离可以是负数;因此,乌托邦 2 中的点由(负,正)数对表示,乌托邦 3 中由(负,负)数对表示,乌托邦 4 中由(正,负)数对表示,而乌托邦 1 中由一对正数表示。
一个主要的问题是居民不被允许跨越边界。幸运的是,一些聪明的来自乌托邦的 IOI 参赛者开发了一种安全的传送方式。该传送装置需要使用代码数,每个代码数只能使用一次。现在,团队以及你面临的挑战是,引导传送装置从其初始位置 $(0,0)$ 开始,按照要求的顺序传送到乌托邦的各个区域。你不需要关心落在区域内的具体位置,但你会得到一个由 $N$ 个区域编号组成的序列,指定了传送装置每次需要降落的区域。你可能会被要求在连续的两次或多次传送中降落在同一个区域。在离开初始点 $(0,0)$ 之后,你绝不能降落在边界上。
你将获得 $2N$ 个代码数作为输入,并需要将它们写成 $N$ 个代码对的序列,在每个数字前加上加号或减号。如果你当前位于点 $(x,y)$ 并且使用代码对 $(+u, -v)$,你将被传送到点 $(x+u, y-v)$。你拥有这 $2N$ 个数字,你可以按任何你喜欢的顺序使用它们,每个数字前面带有加号或减号。
假设你拥有的代码数为 $7, 5, 6, 1, 3, 2, 4, 8$,并且需要根据区域编号序列 $4, 1, 2, 1$ 来引导传送装置。代码对序列 $(+7, -1)$,$(-5, +2)$,$(-4, +3)$,$(+8, +6)$ 可以实现这一目标,因为它将你从 $(0,0)$ 依次传送到位置 $(7, -1)$、$(2, 1)$、$(-2, 4)$ 和 $(6, 10)$。这些点分别位于乌托邦 4、乌托邦 1、乌托邦 2 和乌托邦 1。
任务
给你 $2N$ 个互不相同的代码数和一个包含 $N$ 个区域编号的序列,表示传送装置需要降落的区域。利用给定的数字构建一个代码对序列,引导传送装置依次通过给定的区域序列。
输入格式
你的程序需要从标准输入读取数据。
第一行包含一个正整数 $N$($1 \le N \le 10000$)。
第二行包含 $2N$ 个互不相同的整数代码数($1 \le \text{code number} \le 100000$),用单个空格分隔。
最后一行包含一个由 $N$ 个区域编号组成的序列,每个编号为 1、2、3 或 4。
输出格式
你的程序需要写入到标准输出。
输出包含 $N$ 行,每行包含一对代码数,每个代码数前面都有一个符号字符(+ 或 -)。这些代码对将引导传送装置通过给定的区域序列。
注意,符号后面不能有空格,但在第一个代码数之后必须有一个空格(例如 +7 -1)。
如果存在多个解,你的程序可以输出其中任意一个。如果无解,你的程序应该输出单个整数 0。
样例
输入样例 1
4 7 5 6 1 3 2 4 8 4 1 2 1
输出样例 1
+7 -1 -5 +2 -4 +3 +8 +6
输入样例 2
4 2 5 4 1 7 8 6 3 4 2 2 1
输出样例 2
+3 -2 -4 +5 -6 +1 +8 +7
子任务
如果你的程序在时间限制内对某个测试用例输出了正确答案,你将获得该测试用例的满分,否则你将获得 0 分。