
    Develop an algorithm to calculate the number of possible patient risk assessment patterns across n sequential checkpoints, where each checkpoint must be classified into one of k risk categories, with the constraint that no more than 2 consecutive checkpoints can be assigned the same risk level. This pattern analysis helps identify valid sequences of risk assessments that avoid prolonged periods of unchanged risk status, ensuring more dynamic patient monitoring.
    

    
def count_no_of_ways(n, k):
    """
    Develop an algorithm to calculate the number of possible patient risk assessment patterns across n sequential checkpoints, where each checkpoint must be classified into one of k risk categories, with the constraint that no more than 2 consecutive checkpoints can be assigned the same risk level. This pattern analysis helps identify valid sequences of risk assessments that avoid prolonged periods of unchanged risk status, ensuring more dynamic patient monitoring.
    

    """
def count_no_of_ways(n, k):
    """
    Develop an algorithm to calculate the number of possible patient risk assessment patterns across n sequential checkpoints, where each checkpoint must be classified into one of k risk categories, with the constraint that no more than 2 consecutive checkpoints can be assigned the same risk level. This pattern analysis helps identify valid sequences of risk assessments that avoid prolonged periods of unchanged risk status, ensuring more dynamic patient monitoring.
    

    """
    dp = [0] * (n + 1)
    total = k
    mod = 1000000007
    dp[1] = k
    dp[2] = k * k
    for i in range(3, n + 1):
        dp[i] = (k - 1) * (dp[i - 1] + dp[i - 2]) % mod
    return dp[n]