
    Given n distinct credit risk factors from a loan application, determine the total number of unique ways these factors can be grouped into risk assessment categories, where each factor must belong to exactly one category and empty categories are not allowed. Each possible grouping represents a different approach to evaluating the loan's overall risk profile, and the goal is to calculate all possible valid categorization schemes.
    

    
def bell_number(n):
    """
    Given n distinct credit risk factors from a loan application, determine the total number of unique ways these factors can be grouped into risk assessment categories, where each factor must belong to exactly one category and empty categories are not allowed. Each possible grouping represents a different approach to evaluating the loan's overall risk profile, and the goal is to calculate all possible valid categorization schemes.
    

    """
def bell_number(n):
    """
    Given n distinct credit risk factors from a loan application, determine the total number of unique ways these factors can be grouped into risk assessment categories, where each factor must belong to exactly one category and empty categories are not allowed. Each possible grouping represents a different approach to evaluating the loan's overall risk profile, and the goal is to calculate all possible valid categorization schemes.
    

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