
    Determine the number of different ways suspicious banking transactions can be grouped into distinct monitoring patterns, where each transaction must belong to exactly one pattern group and the total number of possible transaction patterns is n. Each grouping represents a unique way to partition and monitor potentially related fraudulent activities, helping the bank's fraud detection system identify connected suspicious behaviors.
    

    
def bell_number(n):
    """
    Determine the number of different ways suspicious banking transactions can be grouped into distinct monitoring patterns, where each transaction must belong to exactly one pattern group and the total number of possible transaction patterns is n. Each grouping represents a unique way to partition and monitor potentially related fraudulent activities, helping the bank's fraud detection system identify connected suspicious behaviors.
    

    """
def bell_number(n):
    """
    Determine the number of different ways suspicious banking transactions can be grouped into distinct monitoring patterns, where each transaction must belong to exactly one pattern group and the total number of possible transaction patterns is n. Each grouping represents a unique way to partition and monitor potentially related fraudulent activities, helping the bank's fraud detection system identify connected suspicious behaviors.
    

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