
    Design an algorithm to determine the number of valid diagnostic pattern combinations across sequential medical scan segments, where each segment must be classified into one of the available diagnostic categories, with the constraint that no more than two consecutive segments can be assigned the same classification to minimize false pattern detection. The input parameters are the number of scan segments to be analyzed and the number of possible diagnostic classifications available.
    

    
def count_no_of_ways(n, k):
    """
    Design an algorithm to determine the number of valid diagnostic pattern combinations across sequential medical scan segments, where each segment must be classified into one of the available diagnostic categories, with the constraint that no more than two consecutive segments can be assigned the same classification to minimize false pattern detection. The input parameters are the number of scan segments to be analyzed and the number of possible diagnostic classifications available.
    

    """
def count_no_of_ways(n, k):
    """
    Design an algorithm to determine the number of valid diagnostic pattern combinations across sequential medical scan segments, where each segment must be classified into one of the available diagnostic categories, with the constraint that no more than two consecutive segments can be assigned the same classification to minimize false pattern detection. The input parameters are the number of scan segments to be analyzed and the number of possible diagnostic classifications available.
    

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