← Home
For problem statement at 0-999/700-799/720-729/727/problemE.txt this is a correct solution, but verifier at 0-999/700-799/720-729/727/verifierE.go ends with All tests passed can you fix the verifier?  ```go
package main

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

const (
	M1 = 1000000007
	M2 = 1000000009
	P1 = 911382323
	P2 = 972663749
)

func main() {
	sc := bufio.NewScanner(os.Stdin)
	sc.Buffer(make([]byte, 1024), 1024*1024)
	sc.Split(bufio.ScanWords)

	sc.Scan()
	n := atoi(sc.Text())
	sc.Scan()
	k := atoi(sc.Text())

	sc.Scan()
	s := sc.Text()

	sc.Scan()
	g := atoi(sc.Text())

	gameMap := make(map[[2]int64]int)
	maxLen := 2 * n * k

	pow1 := make([]int64, maxLen+1)
	pow2 := make([]int64, maxLen+1)
	pow1[0] = 1
	pow2[0] = 1
	for i := 1; i <= maxLen; i++ {
		pow1[i] = (pow1[i-1] * P1) % M1
		pow2[i] = (pow2[i-1] * P2) % M2
	}

	for i := 0; i < g; i++ {
		sc.Scan()
		name := sc.Text()
		h1, h2 := int64(0), int64(0)
		for j := 0; j < k; j++ {
			c := int64(name[j] - 'a' + 1)
			h1 = (h1*P1 + c) % M1
			h2 = (h2*P2 + c) % M2
		}
		gameMap[[2]int64{h1, h2}] = i + 1
	}

	t := s + s
	L := len(t)

	pref1 := make([]int64, L+1)
	pref2 := make([]int64, L+1)
	for i := 0; i < L; i++ {
		c := int64(t[i] - 'a' + 1)
		pref1[i+1] = (pref1[i]*P1 + c) % M1
		pref2[i+1] = (pref2[i]*P2 + c) % M2
	}

	getHash := func(l, r int) [2]int64 {
		x1 := (pref1[r] - pref1[l]*pow1[r-l]%M1 + M1) % M1
		x2 := (pref2[r] - pref2[l]*pow2[r-l]%M2 + M2) % M2
		return [2]int64{x1, x2}
	}

	lastSeen := make([]int, g+1)
	curIter := 0
	ans := make([]int, n)

	for d := 0; d < k; d++ {
		curIter++
		valid := true
		for i := 0; i < n; i++ {
			pos := d + i*k
			h := getHash(pos, pos+k)
			id, ok := gameMap[h]
			if !ok {
				valid = false
				break
			}
			if lastSeen[id] == curIter {
				valid = false
				break
			}
			lastSeen[id] = curIter
			ans[i] = id
		}
		if valid {
			fmt.Println("YES")
			for i := 0; i < n; i++ {
				if i > 0 {
					fmt.Print(" ")
				}
				fmt.Print(ans[i])
			}
			fmt.Println()
			return
		}
	}

	fmt.Println("NO")
}

func atoi(s string) int {
	v := 0
	for i := 0; i < len(s); i++ {
		v = v*10 + int(s[i]-'0')
	}
	return v
}
```