import java.util.*;
import java.lang.*;
import java.io.*;
class Node {
int value;
Node left, right, parent;
public Node(int value) {
this.value = value;
}
public void setLeft(Node left) {
this.left = left;
left.parent = this;
}
public void setRight(Node right) {
this.right = right;
right.parent = this;
}
public Node first() {
Node n = this;
while (n.left != null) n = n.left;
return n;
}
public Node next() {
if (right != null) return right.first();
for (Node n = this; ; n = n.parent) {
if (n.parent == null) return null;
if (n == n.parent.left) return n.parent;
}
}
}
class Ideone
{
{
// 8
// / \
// / \
// / \
// 3 10
// / \ \
// / \ \
// 1 6 14
// / \ /
// 4 7 13
Node n8 = new Node(8),
n3 = new Node(3), n10 = new Node(10),
n1 = new Node(1), n6 = new Node(6), n14 = new Node(14),
n4 = new Node(4), n7 = new Node(7), n13 = new Node(13);
Node root = n8;
n8.setLeft(n3); n8.setRight(n10);
n3.setLeft(n1); n3.setRight(n6);
n6.setLeft(n4); n6.setRight(n7);
n10.setRight(n14);
n14.setLeft(n13);
Node n = root.first();
while (n != null) {
System.
out.
printf("%d ", n.
value); n = n.next();
}
}
}
aW1wb3J0IGphdmEudXRpbC4qOwppbXBvcnQgamF2YS5sYW5nLio7CmltcG9ydCBqYXZhLmlvLio7CgpjbGFzcyBOb2RlIHsKCWludCB2YWx1ZTsKCU5vZGUgbGVmdCwgcmlnaHQsIHBhcmVudDsKCglwdWJsaWMgTm9kZShpbnQgdmFsdWUpIHsKCQl0aGlzLnZhbHVlID0gdmFsdWU7Cgl9CgoJcHVibGljIHZvaWQgc2V0TGVmdChOb2RlIGxlZnQpIHsKCQl0aGlzLmxlZnQgPSBsZWZ0OwoJCWxlZnQucGFyZW50ID0gdGhpczsKCX0KCglwdWJsaWMgdm9pZCBzZXRSaWdodChOb2RlIHJpZ2h0KSB7CgkJdGhpcy5yaWdodCA9IHJpZ2h0OwoJCXJpZ2h0LnBhcmVudCA9IHRoaXM7Cgl9CgoJcHVibGljIE5vZGUgZmlyc3QoKSB7CgkJTm9kZSBuID0gdGhpczsKCQl3aGlsZSAobi5sZWZ0ICE9IG51bGwpIG4gPSBuLmxlZnQ7CgkJcmV0dXJuIG47Cgl9CgoJcHVibGljIE5vZGUgbmV4dCgpIHsKCQlpZiAocmlnaHQgIT0gbnVsbCkgcmV0dXJuIHJpZ2h0LmZpcnN0KCk7CgkJZm9yIChOb2RlIG4gPSB0aGlzOyA7IG4gPSBuLnBhcmVudCkgewoJCQlpZiAobi5wYXJlbnQgPT0gbnVsbCkgcmV0dXJuIG51bGw7CgkJCWlmIChuID09IG4ucGFyZW50LmxlZnQpIHJldHVybiBuLnBhcmVudDsKCQl9Cgl9Cn0KCmNsYXNzIElkZW9uZQp7CglwdWJsaWMgc3RhdGljIHZvaWQgbWFpbiAoU3RyaW5nW10gYXJncykgdGhyb3dzIGphdmEubGFuZy5FeGNlcHRpb24KCXsKCQkvLyAgICAgICAgICAgICA4CgkJLy8gICAgICAgICAgICAvIFwKCQkvLyAgICAgICAgICAgLyAgIFwKCQkvLyAgICAgICAgICAvICAgICBcCgkJLy8gICAgICAgICAzICAgICAgIDEwCgkJLy8gICAgICAgIC8gXCAgICAgICBcCgkJLy8gICAgICAgLyAgIFwgICAgICAgXAoJCS8vICAgICAgMSAgICAgNiAgICAgICAxNAoJCS8vICAgICAgICAgICAvIFwgICAgICAvCgkJLy8gICAgICAgICAgNCAgIDcgICAxMwoJCU5vZGUgbjggPSBuZXcgTm9kZSg4KSwKCQkJbjMgPSBuZXcgTm9kZSgzKSwgbjEwID0gbmV3IE5vZGUoMTApLAoJCQluMSA9IG5ldyBOb2RlKDEpLCBuNiA9IG5ldyBOb2RlKDYpLCBuMTQgPSBuZXcgTm9kZSgxNCksCgkJCW40ID0gbmV3IE5vZGUoNCksIG43ID0gbmV3IE5vZGUoNyksIG4xMyA9IG5ldyBOb2RlKDEzKTsKCQlOb2RlIHJvb3QgPSBuODsKCQluOC5zZXRMZWZ0KG4zKTsgbjguc2V0UmlnaHQobjEwKTsKCQluMy5zZXRMZWZ0KG4xKTsgbjMuc2V0UmlnaHQobjYpOwoJCW42LnNldExlZnQobjQpOyBuNi5zZXRSaWdodChuNyk7CgkJbjEwLnNldFJpZ2h0KG4xNCk7CgkJbjE0LnNldExlZnQobjEzKTsKCQkKCQlOb2RlIG4gPSByb290LmZpcnN0KCk7CgkJd2hpbGUgKG4gIT0gbnVsbCkgewoJCQlTeXN0ZW0ub3V0LnByaW50ZigiJWQgIiwgbi52YWx1ZSk7CgkJCW4gPSBuLm5leHQoKTsKCQl9Cgl9Cn0=