class BST {

    public Key floor(Key key) {
        if (key == null)
            throw new IllegalArgumentException("key not null");
        Node tar = floor(root, key);
        return tar == null ? null : tar.key;
    }

}