#include <bits/stdc++.h>
using namespace std;
const int N = 1e5 + 1;
int a[N];
int main() {
  int n, k;
  cin >> n >> k;
  for (int i = 0; i < n; ++i) {
    char x;
    cin >> x;
    a[i] = x - '0';
  }
  int fst[2] = {N, N}, lst[2] = {-1, -1};
  for (int i = 0; i < n; ++i) {
    fst[a[i]] = min(fst[a[i]], i);
    lst[a[i]] = max(lst[a[i]], i);
  }
  if (min(lst[0] - fst[0], lst[1] - fst[1]) < k) {
    cout << "tokitsukaze\n";
    return 0;
  }
  multiset<int> pos[2];
  for (int i = k; i < n; ++i) pos[a[i]].insert(i);
  char can = 0;
  for (int l = 0; !can && l + k <= n; ++l) {
    for (int col = 0; !can && col < 2; ++col) {
      pos[col].insert(l);
      pos[col].insert(l + k - 1);
      char cur = 1;
      if (pos[0].size()) {
        int len = *prev(pos[0].end()) - *pos[0].begin() + 1;
        cur &= len > k;
      }
      if (pos[1].size()) {
        int len = *prev(pos[1].end()) - *pos[1].begin() + 1;
        cur &= len > k;
      }
      can |= cur;
      pos[col].erase(pos[col].find(l));
      pos[col].erase(pos[col].find(l + k - 1));
    }
    pos[a[l]].insert(l);
    if (l + k < n) {
      pos[a[l + k]].erase(pos[a[l + k]].find(l + k));
    }
  }
  if (can) {
    cout << "once again\n";
    return 0;
  }
  cout << "quailty\n";
  return 0;
}
