#!/usr/bin/python3

import sys

class Node:
    def __init__(self,value):
        self.key = value
        self.left = None
        self.right = None

def print_in_order(t):
    if t != None:
        print_in_order(t.left)
        print(t.key)
        print_in_order(t.right)

def bst_size(t):
    if t == None:
        return 0
    else:
        return bst_size(t.left) + 1 + bst_size(t.right)

def bst_height(t):
    if t == None:
        return 0
    else:
        return 1 + max(bst_height(t.left), bst_height(t.right))

def bst_min(t):                 # minimum key in t
    if t == None:
        return None
    while t.left != None:
        t = t.left
    return t.key

def bst_max(t):                 # maximum key in t
    if t == None:
        return None
    while t.right != None:
        t = t.right
    return t.key
