import java.util.Random;
public class BinTreeProg {
public static void main (String [] argv) {
int i;
BinTree2 root = new BinTree2 (argv[0]);
for (i = 1; i < argv.length; i++)
root.insertBinTree2 (argv[i]);
root.printBinTree2(root.root);
}
static class BinTree <T> {
T v;
BinTree <T> l;
BinTree <T> r;
BinTree (T v) {
this.v = v;
this.l = null;
this.r = null;
}
void insertBinTree (T v) {
Random rnd = new Random();
int i = rnd.nextInt(2);
if (i == 1) {
if (this.l == null)
this.l = new BinTree (v);
else
this.l.insertBinTree(v);
}
else {
if (this.r == null)
this.r = new BinTree (v);
else
this.r.insertBinTree (v);
}
}
BinTree getleftBinTree () {
return this.l;
}
BinTree getrightBinTree () {
return this.r;
}
T getvalBinTree () {
return this.v;
}
}
static class BinTree2 {
BinTree root;
BinTree2 (String v) {
root = new BinTree <String> (v);
}
void printBinTree2 (BinTree root) {
if (root.getleftBinTree() != null)
printBinTree2(root.getleftBinTree());
System.out.println(root.getvalBinTree());
if (root.getrightBinTree() != null)
printBinTree2(root.getrightBinTree());
}
void insertBinTree2 (String v) {
root.insertBinTree (v);
}
}
}