
    Given a fleet's sensor data categorized into n distinct maintenance patterns, determine the number of different ways these patterns can be grouped into maintenance schedules, where each pattern must be assigned to exactly one schedule and no schedule can be empty. Each grouping represents a unique maintenance planning strategy that covers all sensor patterns.
    

    
def bell_number(n):
    """
    Given a fleet's sensor data categorized into n distinct maintenance patterns, determine the number of different ways these patterns can be grouped into maintenance schedules, where each pattern must be assigned to exactly one schedule and no schedule can be empty. Each grouping represents a unique maintenance planning strategy that covers all sensor patterns.
    

    """
def bell_number(n):
    """
    Given a fleet's sensor data categorized into n distinct maintenance patterns, determine the number of different ways these patterns can be grouped into maintenance schedules, where each pattern must be assigned to exactly one schedule and no schedule can be empty. Each grouping represents a unique maintenance planning strategy that covers all sensor patterns.
    

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