3448 - 奇怪的二叉树遍历
描述

给定一棵二叉树,节点编号从 1 到 n,根节点为 1。  

我们定义一种 **“奇偶后序遍历”**:


- 从根节点开始,根节点的深度记为 **1**。

- 对于深度为 **奇数** 的节点,遍历其子树时采用 **“左-右-根”** 的顺序(即先遍历左子树,再遍历右子树,最后访问该节点本身)。

- 对于深度为 **偶数** 的节点,遍历其子树时采用 **“右-左-根”** 的顺序(即先遍历右子树,再遍历左子树,最后访问该节点本身)。


请你按照上述规则,输出整棵树的遍历序列(即节点的访问顺序)。


输入

第一行一个整数 n,表示二叉树的节点数(1 \le n \le 10^5)。  

接下来 n 行,第 i 行(1 \le i \le n)包含两个整数 l_i, r_i,分别表示节点 i 的左孩子编号和右孩子编号。  

若孩子不存在,则对应编号为 0。  

保证给出的结构是一棵合法的二叉树,且根节点为 1。


输出

输出一行,包含 n 个整数,表示按规则遍历得到的节点编号序列,相邻整数之间用一个空格隔开。


样例

输入

3
2 3
0 0
0 0

输出

2 3 1

输入

4
2 3
4 0
0 0
0 0

输出

4 2 3 1

输入

7
2 3
4 5
6 7
0 0
0 0
0 0
0 0

输出

5 4 2 7 6 3 1
提示

70%的数据: 1 \le n \le 100。

100%的数据::1 \le n \le 10^5。


标签
题目参数
时间限制 1 秒
内存限制 128 MB
提交次数 27
通过次数 9