← Home
```go
package main

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

func grundyOdd(n int) int {
	if n == 0 {
		return 0
	}
	if n == 1 {
		return 1
	}
	if n == 2 {
		return 0
	}
	if n == 3 {
		return 1
	}
	if n == 4 {
		return 2
	}
	if n%2 != 0 {
		return 0
	}
	g := grundyOdd(n / 2)
	if g == 1 {
		return 2
	}
	return 1
}

func grundyEven(n int) int {
	if n == 0 {
		return 0
	}
	if n == 1 {
		return 1
	}
	if n == 2 {
		return 2
	}
	if n%2 != 0 {
		return 0
	}
	return 1
}

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

	if !scanner.Scan() {
		return
	}
	n, _ := strconv.Atoi(scanner.Text())

	if !scanner.Scan() {
		return
	}
	k, _ := strconv.Atoi(scanner.Text())

	xorSum := 0
	for i := 0; i < n; i++ {
		scanner.Scan()
		a, _ := strconv.Atoi(scanner.Text())
		if k%2 == 0 {
			xorSum ^= grundyEven(a)
		} else {
			xorSum ^= grundyOdd(a)
		}
	}

	if xorSum != 0 {
		fmt.Println("Kevin")
	} else {
		fmt.Println("Nicky")
	}
}
```