class Idiom9
{
	static class BinTree<T extends Comparable<T>> {
        T value;
        BinTree<T> left;
        BinTree<T> right;

        BinTree(T value) {
            this.value = value;
        }
 
		@Override
		public String toString() {
			StringBuilder sb = new StringBuilder();
			sb.append("(");
            sb.append(value);
			sb.append(" ");
            sb.append(left==null ? "()" : left);
            sb.append(right==null ? "()" : right);
			sb.append(")");
			return sb.toString();
		}
	}
 
	public static void main (String[] args)
	{
        BinTree<Integer> five = new BinTree<>(5);
        BinTree<Integer> one = new BinTree<>(1);
        BinTree<Integer> eight = new BinTree<>(8);
		BinTree<Integer> six = new BinTree<>(6);
        five.left = one;
        five.right = eight;
        eight.left = six;

        System.out.println(five);
	}
}