#include <iostream>
#include <cstdlib>

class nodo {
	private:
		int	 info;
		nodo *izq;
		nodo *der;
	public:
		nodo(int inf, nodo *iz=NULL, nodo *de=NULL);
		~nodo(void);
		void enorden(void);
		void preorden(void);
		void postorden(void);
};

nodo::nodo(int inf, nodo *iz, nodo *de)
{
	info= inf;
	izq= iz;
	der= de;
}

nodo::~nodo(void)
{
	if (der!=NULL)
		delete der;
	if (izq!=NULL)
		delete izq;
}

void nodo::enorden(void)
{
	if (izq!=NULL)
		izq->enorden();
	std::cout << char(info);
	if (der!=NULL)
		der->enorden();
}

void nodo::preorden(void)
{
	std::cout << char(info);
	if (izq!=NULL)
		izq->preorden();
	if (der!=NULL)
		der->preorden();
}

void nodo::postorden(void)
{
	if (izq!=NULL)
		izq->postorden();
	if (der!=NULL)
		der->postorden();
	std::cout << char(info);
}

nodo* Leer(void)
{
	int c= std::cin.get();
	if (c=='.')
		return NULL;
	else {
		nodo *iz= Leer();
		nodo *de= Leer();
		return new nodo(c, iz, de);
	}
}

int main(int argc, char *argv[])
{
	nodo *p= Leer();
	p->enorden();
	std::cout << std::endl;
	p->preorden();
	std::cout << std::endl;
	p->postorden();
	std::cout << std::endl;
	delete p;
	return EXIT_SUCCESS;
}







