Problem:
Score: 400 points

Problem Statement

The Kingdom of Takahashi has N towns, numbered 1 through N.

There is one teleporter in each town. The teleporter in Town i (1 \leq i \leq N) sends you to Town A_i.

Takahashi, the king, loves the positive integer K. The selfish king wonders what town he will be in if he starts at Town 1 and uses a teleporter exactly K times from there.

Help the king by writing a program that answers this question.

Constraints

2 \leq N \leq 2 \times 10^5

1 \leq A_i \leq N

1 \leq K \leq 10^{18}

Input

Input is given from Standard Input in the following format:

N K
A_1 A_2 \dots A_N

Output

Print the integer representing the town the king will be in if he starts at Town 1 and uses a teleporter exactly K times from there.

Sample Input 1

4 5
3 2 4 1

Sample Output 1

4

If we start at Town 1 and use the teleporter 5 times, our travel will be as follows: 1 \to 3 \to 4 \to 1 \to 3 \to 4.

Sample Input 2

6 727202214173249351
6 5 2 5 3 2

Sample Output 2

2

Solution in JavaScript (Node.js 12.16.1) (judge verdict: Wrong Answer)

"use strict";
    
const main = arg => {
    arg = arg.trim().split("\n");
    const N = parseInt(arg[0].split(" ")[0]);
    const K = parseInt(arg[0].split(" ")[1]);

    const A = arg[1].split(" ").map(n=>parseInt(n-1));
    
    let array = [0];
    let loopStart;
    
    let usedIndex = [];
    
    let next = 0;
    
    while(true) {
        if(usedIndex.indexOf(A[next]) !== -1) {
            loopStart = A[next];
            array.push(A[next]);
            break;
        }
        
        usedIndex.push(next);
        array.push(A[next]);
        // console.log("A[next]:" + A[next]);
        
        next = A[next];
        // console.log("next:" + next);
    }
    
    // console.log(loopStart)
    
    const loop = array.slice(loopStart+1);
    array.shift();
    
    // console.log(loop);
    // console.log(array);
    
    if(K <= array.length) {
        console.log(array[K-1]+1);
    } else {
        //console.log((K-array.length) % loop.length);
        let temp = (K-array.length) % loop.length;
        // console.log(temp)
        
        if(temp === 0) {
            console.log(loop[loop.length-1] + 1);
        } else {
            console.log(loop[temp - 1] + 1);
        }
    }
}
main(require('fs').readFileSync('/dev/stdin', 'utf8'));