← Home
package main

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

func winNow(pos []int, k int) bool {
	if len(pos) == 0 {
		return true
	}
	return pos[len(pos)-1]-pos[0]+1 <= k
}

func spanAfter(pos []int, l, r, k int, same bool) int {
	m := len(pos)
	if m == 0 {
		if same {
			return k
		}
		return 0
	}

	lo := sort.SearchInts(pos, l)
	hi := sort.SearchInts(pos, r+1)
	outside := m - (hi - lo)

	if outside == 0 {
		if same {
			return k
		}
		return 0
	}

	var left, right int
	if lo > 0 {
		left = pos[0]
	} else {
		left = pos[hi]
	}
	if hi < m {
		right = pos[m-1]
	} else {
		right = pos[lo-1]
	}

	if same {
		if l < left {
			left = l
		}
		if r > right {
			right = r
		}
	}

	return right - left + 1
}

func main() {
	in := bufio.NewReaderSize(os.Stdin, 1<<20)

	var n, k int
	var s string
	fmt.Fscan(in, &n, &k)
	fmt.Fscan(in, &s)

	pos := make([][]int, 2)
	for i := 0; i < n; i++ {
		pos[int(s[i]-'0')] = append(pos[int(s[i]-'0')], i)
	}

	if winNow(pos[0], k) || winNow(pos[1], k) {
		fmt.Print("tokitsukaze")
		return
	}

	for l := 0; l+k <= n; l++ {
		r := l + k - 1

		span0 := spanAfter(pos[0], l, r, k, true)
		span1 := spanAfter(pos[1], l, r, k, false)
		if span0 > k && span1 > k {
			fmt.Print("once again")
			return
		}

		span0 = spanAfter(pos[0], l, r, k, false)
		span1 = spanAfter(pos[1], l, r, k, true)
		if span0 > k && span1 > k {
			fmt.Print("once again")
			return
		}
	}

	fmt.Print("quailty")
}