← Home
For problem statement at 0-999/600-699/680-689/683/problemH.txt this is a correct solution, but verifier at 0-999/600-699/680-689/683/verifierH.go ends with all tests passed can you fix the verifier? ```go
package main

import (
	"bufio"
	"fmt"
	"os"
	"strconv"
)

func main() {
	scanner := bufio.NewScanner(os.Stdin)
	scanner.Split(bufio.ScanWords)

	scanner.Scan()
	n, _ := strconv.Atoi(scanner.Text())
	scanner.Scan()
	k, _ := strconv.ParseInt(scanner.Text(), 10, 64)

	a := make([]int, n+1)
	for i := 1; i <= n; i++ {
		scanner.Scan()
		val, _ := strconv.Atoi(scanner.Text())
		a[i] = val
	}

	next := make([]int, n+1)
	for i := 1; i <= n; i++ {
		next[a[i]] = i
	}

	visited := make([]bool, n+1)
	result := make([]int, n+1)

	for i := 1; i <= n; i++ {
		if !visited[i] {
			cycle := []int{}
			cur := i
			for !visited[cur] {
				visited[cur] = true
				cycle = append(cycle, cur)
				cur = next[cur]
			}
			L := len(cycle)
			shift := int(k % int64(L))
			for idx, node := range cycle {
				targetIdx := (idx + shift) % L
				result[node] = cycle[targetIdx]
			}
		}
	}

	for i := 1; i <= n; i++ {
		if i > 1 {
			fmt.Print(" ")
		}
		fmt.Print(result[i])
	}
	fmt.Println()
}
```