
    Given n delivery routes affected by varying traffic and weather conditions, determine the number of different ways these routes can be grouped into distinct sets, where each route must belong to exactly one group and empty groups are not allowed. Each possible grouping represents a unique fleet deployment strategy that considers routes with similar conditions together, helping optimize the overall delivery efficiency.
    

    
def bell_number(n):
    """
    Given n delivery routes affected by varying traffic and weather conditions, determine the number of different ways these routes can be grouped into distinct sets, where each route must belong to exactly one group and empty groups are not allowed. Each possible grouping represents a unique fleet deployment strategy that considers routes with similar conditions together, helping optimize the overall delivery efficiency.
    

    """
def bell_number(n):
    """
    Given n delivery routes affected by varying traffic and weather conditions, determine the number of different ways these routes can be grouped into distinct sets, where each route must belong to exactly one group and empty groups are not allowed. Each possible grouping represents a unique fleet deployment strategy that considers routes with similar conditions together, helping optimize the overall delivery efficiency.
    

    """
    bell = [[0 for i in range(n + 1)] for j in range(n + 1)]
    bell[0][0] = 1
    for i in range(1, n + 1):
        bell[i][0] = bell[i - 1][i - 1]
        for j in range(1, i + 1):
            bell[i][j] = bell[i - 1][j - 1] + bell[i][j - 1]
    return bell[n][0]