
    Design a system to determine the number of possible safe medication combinations for a patient's prescription regimen, where n represents the total number of medications needed and k represents the available drug classes, ensuring that no more than 2 consecutive medications from the same drug class are prescribed to minimize adverse interactions. The system must evaluate all possible combinations while adhering to this safety constraint to prevent potentially harmful drug interactions.
    

    
def count_no_of_ways(n, k):
    """
    Design a system to determine the number of possible safe medication combinations for a patient's prescription regimen, where n represents the total number of medications needed and k represents the available drug classes, ensuring that no more than 2 consecutive medications from the same drug class are prescribed to minimize adverse interactions. The system must evaluate all possible combinations while adhering to this safety constraint to prevent potentially harmful drug interactions.
    

    """
def count_no_of_ways(n, k):
    """
    Design a system to determine the number of possible safe medication combinations for a patient's prescription regimen, where n represents the total number of medications needed and k represents the available drug classes, ensuring that no more than 2 consecutive medications from the same drug class are prescribed to minimize adverse interactions. The system must evaluate all possible combinations while adhering to this safety constraint to prevent potentially harmful drug interactions.
    

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