#include<stdio.h>
#define ll long long
ll flag[200005];
ll town[200005];
int main()
{
    ll N,K;ll i;
    scanf("%lld %lld",&N,&K);
    
    for(i=1;i<=N;i++)
        scanf("%lld",&town[i]);
    
    for(i=1;i<=N;i++)
        flag[i]=0;

    /***********************************************寻找第一个重复出现的镇************************************************/
    flag[1]=1;ll now=1;
    for(i=1;i<=K;i++)
    {
        if(flag[town[now]]==1)    //到达第一个重复的镇，走了i步；
            break;
        flag[town[now]]=1;         //将经历i步首次到达的镇标1 ；
        now=town[now];
    }
    ll SpTown=town[now];           //记录此镇编号，注意now指代其上一个镇；
    ll pre_sum=i;    // 记录已完成第一次循环加开头的步数；
    /***********************************************计算第一次走到该特殊镇的步数及环步数************************************************/
    i=0;now=1;
    while(now!=SpTown)
    {
        now=town[now];
        i++;
    }
    ll pre=i;ll y;//y指代一次循环的步数；
    y=pre_sum-pre;
/***********************************************分情况计算结果************************************************/
    now=1;
    if(K<=pre)       //所走K步未达到第一次环；
         while(K--)
            now=town[now];
    else             //至少进入第一个环；
    {
        K-=pre;
        K%=y;
        now=SpTown;
        while(K--)
            now=town[now];
    }
/***********************************************输出结果************************************************/

    printf("%lld",now);
    return 0;
}



