const main = (input) => {
  input = input.trim().split('\n')

  let [, k] = input[0].split(' ').map(BigInt)
  const cities = input[1].split(' ').map(v => parseInt(v, 10) - 1)

  let loop_size = null
  let before_loop = null

  for (let his=[0], i=0; true;) {
    const head = his.indexOf(cities[i])
    if (head !== -1) {
      before_loop = head
      loop_size = his.length
      break
    }

    his.push(cities[i])
    i = cities[i]
  }

  let start = 0
  let move = k

  if (loop_size < k) {
    start = before_loop
    k -= BigInt(before_loop)
    move = k % BigInt(loop_size)
  }

  let ans = start
  for (let c=0n; c<move; c++) {
    ans = cities[ans]
  }

  return console.log(ans + 1)
}

process.env.MYTEST
  ? (process.env.MYTEST === 'test' ? test() : main(require('fs').readFileSync('dev/stdin', 'utf8')))
  : main(require('fs').readFileSync('/dev/stdin', 'utf8'))