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)

process.stdin.resume();
process.stdin.setEncoding('utf8');
var lines = [];
var reader = require('readline').createInterface({
    input: process.stdin,
    output: process.stdout,
    terminal: false
});
reader.on('line', (line) => {
    lines.push(line);
});
reader.on('close', () => {
    const [n, k] = lines[0].split(" ").map(e => parseInt(e));
    let K = BigInt(k);
    const a = lines[1].split(" ").map(e => parseInt(e));
    let s = [];
    let ord = new Array(n + 1).fill(-1);

    let v = 1;
    while (ord[v] === -1) {
        ord[v] = s.length;
        s.push(v);
        v = a[v - 1];
    }
    let l = ord[v];
    let c = s.length - l;
    if (K < l) {
        console.log(s[k]);
    } else {
        K -= BigInt(l);
        const mod = parseInt(K % BigInt(c));
        console.log(s[l+mod]);
    }
});