class BinarySearchTree(
    private var value: Int,
    private var leftNode: BinarySearchTree? = null,
    private var rightNode: BinarySearchTree? = null,
) {
    fun addNumber(number: Int): Boolean {
        if (number > this.value) {
            if (this.rightNode == null) {
                this.rightNode = BinarySearchTree(value = number)
            } else {
                this.rightNode?.addNumber(number)
            }
        } else {
            if (this.leftNode == null) {
                this.leftNode = BinarySearchTree(value = number)
            } else {
                this.leftNode?.addNumber(number)
            }
        }
        return true
    }
 
    fun getSmallestNumber(): Int  = when {
        this.leftNode == null -> this.value
        else -> this.leftNode!!.getSmallestNumber()
    }
 
    fun getLargestNumber(): Int {
        return -1
    }
 
    fun printTree() {
 
    }
 
    fun convertArrayToTree(array: Array<Int>): Boolean {
        return true
    }
 
}