
    Given n delivery zones affected by varying traffic and weather conditions, determine the number of different ways these zones can be grouped into separate dispatch clusters, where each zone must belong to exactly one cluster and empty clusters are not allowed. Each unique clustering arrangement represents a distinct strategy for rerouting delivery trucks based on real-time conditions.
    

    
def bell_number(n):
    """
    Given n delivery zones affected by varying traffic and weather conditions, determine the number of different ways these zones can be grouped into separate dispatch clusters, where each zone must belong to exactly one cluster and empty clusters are not allowed. Each unique clustering arrangement represents a distinct strategy for rerouting delivery trucks based on real-time conditions.
    

    """
def bell_number(n):
    """
    Given n delivery zones affected by varying traffic and weather conditions, determine the number of different ways these zones can be grouped into separate dispatch clusters, where each zone must belong to exactly one cluster and empty clusters are not allowed. Each unique clustering arrangement represents a distinct strategy for rerouting delivery trucks based on real-time conditions.
    

    """
    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]