
    Determine the number of different ways maintenance tasks for a transit fleet can be organized into concurrent service groups, where each task must be assigned to exactly one service group and the order within groups doesn't matter. Given n maintenance tasks (such as brake inspection, engine diagnostics, and tire rotation), calculate how many unique ways these tasks can be distributed across different maintenance schedules while ensuring all tasks are covered.
    

    
def bell_number(n):
    """
    Determine the number of different ways maintenance tasks for a transit fleet can be organized into concurrent service groups, where each task must be assigned to exactly one service group and the order within groups doesn't matter. Given n maintenance tasks (such as brake inspection, engine diagnostics, and tire rotation), calculate how many unique ways these tasks can be distributed across different maintenance schedules while ensuring all tasks are covered.
    

    """
def bell_number(n):
    """
    Determine the number of different ways maintenance tasks for a transit fleet can be organized into concurrent service groups, where each task must be assigned to exactly one service group and the order within groups doesn't matter. Given n maintenance tasks (such as brake inspection, engine diagnostics, and tire rotation), calculate how many unique ways these tasks can be distributed across different maintenance schedules while ensuring all tasks are covered.
    

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