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")
}