def get_need_size_for_each_dimension(used_coordinates: list, num_dimensions) -> list:
    """
    Given a list of tuples, where each tuple is a 2N dimensional coordinate, get back a tuple of length 2N with the
    max value in each coordinate (plus 1 so the number is correct for sizing buffers)
    :param used_coordinates: The list of 2N coordinats
    :return: A 2N length list of max value in each dimension
    """
    max_coordinates = [0] * num_dimensions
    for coordinate in used_coordinates:
        for dimension in range(num_dimensions):
            max_coordinates[dimension] = max(max_coordinates[dimension], coordinate[dimension] + 1)
    return max_coordinates