
    Design a function that determines the number of possible ways to group suspicious credit card transactions into distinct behavioral patterns, where each transaction must belong to exactly one pattern group and no pattern group can be empty. Given n unique transaction characteristics (such as location, amount, and frequency), calculate how many different ways these characteristics can be organized into behavioral clusters for fraud detection analysis.
    

    
def bell_number(n):
    """
    Design a function that determines the number of possible ways to group suspicious credit card transactions into distinct behavioral patterns, where each transaction must belong to exactly one pattern group and no pattern group can be empty. Given n unique transaction characteristics (such as location, amount, and frequency), calculate how many different ways these characteristics can be organized into behavioral clusters for fraud detection analysis.
    

    """
def bell_number(n):
    """
    Design a function that determines the number of possible ways to group suspicious credit card transactions into distinct behavioral patterns, where each transaction must belong to exactly one pattern group and no pattern group can be empty. Given n unique transaction characteristics (such as location, amount, and frequency), calculate how many different ways these characteristics can be organized into behavioral clusters for fraud detection analysis.
    

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