class BST {

    public Val find(Key key) {
        if (key == null)
            throw new IllegalArgumentException("key not null");
        Node cur = find(root, key);
        if (cur == null) return null;
        return cur.val;
    }

}