from typing import Union


def fibonacci_k_n_term(n: int, k: int) -> Union[int, NotImplementedError]:
    """
    Returns the nth fibonacci_k number.
    Where F_{k,n+1} = k*F_{k,n} + F_{k,n−1} for n ≥ 1
    """
    if n < 0:
        return NotImplementedError('negative n is not implemented')
    if n in [0, 1]:
        return n

    root = (k+(k**2 + 4)**0.5) / 2
    return round((root**n - (-root)**(-n)) / (root + 1/root))