
    Design a function for the bank's fraud detection system that determines the number of possible ways to group n distinct transaction patterns into behavioral clusters, where each transaction pattern must belong to exactly one cluster, and clusters can contain one or more patterns. The total number of possible grouping arrangements will help the system evaluate all potential fraud pattern combinations for thorough analysis.
    

    
def bell_number(n):
    """
    Design a function for the bank's fraud detection system that determines the number of possible ways to group n distinct transaction patterns into behavioral clusters, where each transaction pattern must belong to exactly one cluster, and clusters can contain one or more patterns. The total number of possible grouping arrangements will help the system evaluate all potential fraud pattern combinations for thorough analysis.
    

    """
def bell_number(n):
    """
    Design a function for the bank's fraud detection system that determines the number of possible ways to group n distinct transaction patterns into behavioral clusters, where each transaction pattern must belong to exactly one cluster, and clusters can contain one or more patterns. The total number of possible grouping arrangements will help the system evaluate all potential fraud pattern combinations for thorough 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]