N, K = list(map(int, input().split()))

A = [[-1] * (N + 1) for i in range(100)]

A[0] = [0] + list(map(int, input().split()))





# nowから2**i先まで移動したとこ

def double(now, i):

    global A

    if A[i][now] != -1:

        return A[i][now]

    # nowから2**(i-1)移動して、そこからさらに2**(i-1)移動する

    A[i][now] = double(double(now, i - 1), i - 1)

    return A[i][now]





# nowからk移動した場所を求める

def rec(now, k):

    if k == 0:

        return now

    log2k = len(bin(k)) - 3

    return rec(double(now, log2k), k - 2 ** log2k)



print((rec(1, K)))

n, k = list(map(int, input().split()))

A = [0] + list(map(int, input().split()))



# 訪問順

B = [1]



# 訪問済み

C = [False] * (n + 1)

C[1] = True





while True:

    B.append(A[B[-1]])

    if C[B[-1]]:

        break

    C[B[-1]] = True



s = B.index(B[-1])



if k < s:

    print((B[k]))

    exit()



B = B[B.index(B[-1]):-1]

print((B[(k - s) % len(B)]))
N, K = list(map(int, input().split()))
A = [[-1] * (N + 1) for i in range(100)]
A[0] = [0] + list(map(int, input().split()))
# nowから2**i先まで移動したとこ
def double(now, i):
    global A
    if A[i][now] != -1:
        return A[i][now]
    # nowから2**(i-1)移動して、そこからさらに2**(i-1)移動する
    A[i][now] = double(double(now, i - 1), i - 1)
    return A[i][now]


# nowからk移動した場所を求める
def rec(now, k):
    if k == 0:
        return now
    log2k = len(bin(k)) - 3
    return rec(double(now, log2k), k - 2**log2k)


print((rec(1, K)))

n, k = list(map(int, input().split()))
A = [0] + list(map(int, input().split()))
# 訪問順
B = [1]
# 訪問済み
C = [False] * (n + 1)
C[1] = True
while True:
    B.append(A[B[-1]])
    if C[B[-1]]:
        break
    C[B[-1]] = True
s = B.index(B[-1])
if k < s:
    print((B[k]))
    exit()
B = B[B.index(B[-1]) : -1]
print((B[(k - s) % len(B)]))

-N, K = list(map(int, input().split())) -A = [[-1] * (N + 1) for i in range(100)] -A[0] = [0] + list(map(int, input().split())) -# nowから2**i先まで移動したとこ -def double(now, i): -    global A -    if A[i][now] != -1: -        return A[i][now] -    # nowから2**(i-1)移動して、そこからさらに2**(i-1)移動する -    A[i][now] = double(double(now, i - 1), i - 1) -    return A[i][now] - - -# nowからk移動した場所を求める -def rec(now, k): -    if k == 0: -        return now -    log2k = len(bin(k)) - 3 -    return rec(double(now, log2k), k - 2**log2k) - - -print((rec(1, K))) +n, k = list(map(int, input().split())) +A = [0] + list(map(int, input().split())) +# 訪問順 +B = [1] +# 訪問済み +C = [False] * (n + 1) +C[1] = True +while True: +    B.append(A[B[-1]]) +    if C[B[-1]]: +        break +    C[B[-1]] = True +s = B.index(B[-1]) +if k < s: +    print((B[k])) +    exit() +B = B[B.index(B[-1]) : -1] +print((B[(k - s) % len(B)]))