题目背景
小 Fabian 喜欢玩拼图。
题目描述
小 Fabian 得到了一个由 $n$ 个部分组成的一维拼图游戏。他很快意识到每块拼图都属于以下类型之一:
另外,已知在这 $n$ 片拼图中,恰好有一个 $5$ 号拼图或 $6$ 号拼图(左边框)和一个 $7$ 号拼图或 $8$ 号拼图(右边框)。
小 Fabian 希望将所有块排列成一行,以使第一个(最左边的)拼图类型为 $5$ 号拼图或 $6$ 号拼图,而最后一个(最右边的)拼图类型为 $7$ 号拼图或 $8$ 号拼图。如果有两块拼图,则可以彼此相邻放置,并且仅当它们的相邻边框的形状不同时,即一个边框具有凹凸,而另一个边框具有一个凸出才可以相邻放置。
对于小 Fabian 来说,这个问题太简单了,因此他决定在每个部分上写一个唯一的正整数。现在,他想要寻找出字典序最小的方案。
注意:拼图不能旋转!
输入格式
输入数据共 $n + 1$ 行。
第一行,一个正整数 $n$。
接下来,$n$ 行,包含两个整数 $x_i$ 和 $a_i$,它们表示 $i$ 的类型,$x_i$ 拼图编号,$a_i$ 表示 Fabian 在上面写的数字。数据保证所有 $a_i$ 不重复。
输出格式
输出数据共一行。
第一行,如果小 Fabian 无法解决拼图游戏,输出 -1
。 否则,您应该输出拼图上数字按字典序排列最小的方案。
样例 #1
样例输入 #1
5
1 5
2 7
2 3
8 4
6 1
样例输出 #1
1 3 7 5 4
样例 #2
样例输入 #2
3
5 1
7 2
4 3
样例输出 #2
1 3 2
样例 #3
样例输入 #3
5
2 5
2 7
2 3
8 4
6 1
样例输出 #3
-1
提示
样例 #1 解释
只有 $2$ 种解法,如下:
可以看出,第二种解法的字典序较小,所以输出 1 3 7 5 4
。
数据规模及约定
对于 $100\%$ 的数据,$2 \le n \le 10^5, 1 \le x_i \le 8, 1 \le a_i \le 10^9$。