#2447. 落叶

落叶

Background

Special for beginners, ^_^

Description

一棵字母二叉树如下图所示。

熟悉二叉树的读者可以跳过字母二叉树、二叉树树叶和字母二叉搜索树的定义,直接看问题描述。 image 一棵字母二叉树可以是两者之一:①空树;②有一个根节点,每个节点都以一个字母作为数据,并且有指向左子树和右子树的指针,左右子树也是字母二叉树。

二叉树的树叶是一个左右子树都为空的节点。在上图的实例中有5个树叶节点,分别为B、D、H、P和Y。

字母二叉搜索树是每个节点满足下述条件的字母二叉树:

(1)按字母序,根节点的数据在左子树的所有节点的数据之后;

(2)根节点的数据在右子树的所有节点的数据之前。

在一棵字母二叉搜索树上删除树叶,并将被删除的树叶列出;重复这一过程,直到树为空。例如,从左边的树开始,产生树的序列如下图所示,最后产生空树。 image 删除的树叶序列如下: image 给定一个字母二叉搜索树的树叶删除序列,输出树的先序遍历。

Format

Input

输入包含多个测试用例。每个测试用例都是一行或多行大写字母序列,每行都给出按上述描述步骤从二叉搜索树中删除的树叶,每行给出的字母都按字母升序排列。

在测试用例之间以一行分隔,该行仅包含一个星号“*”。在最后一个测试用例后给出一行,该行仅给出一个符号“$”。在输入中没有空格或空行。

Output

One integer, the sum of x and y.

Samples

BDHPY
CM
GQ
K
*
AC
B
$
KGCBDHQMPY
BAC

来源

POJ1577 or UVA1525