#include <bits/stdc++.h>
using namespace std;
const int N = 4e5 + 6;
int n, k;
vector<int> idx[3];
int leftMost[2];
int rightMost[2];
int closestToRight[2][N];
int main() {
  cin >> n >> k;
  string s;
  cin >> s;
  s = '.' + s;
  for (int i = 1; i < s.length(); i++) {
    idx[s[i] - '0'].push_back(i);
  }
  leftMost[0] = INT_MAX;
  rightMost[0] = -1;
  leftMost[1] = INT_MAX;
  rightMost[1] = -1;
  for (int i = 1; i < s.length(); i++) {
    leftMost[s[i] - '0'] = min(leftMost[s[i] - '0'], i);
    rightMost[s[i] - '0'] = max(rightMost[s[i] - '0'], i);
  }
  if (idx[0].size() == 0 or idx[1].size() == 0) {
    cout << "tokitsukaze";
    return 0;
  }
  if ((idx[1].back() - idx[1][0] + 1 <= k) or
      (idx[0].back() - idx[0][0] + 1 <= k)) {
    cout << "tokitsukaze";
    return 0;
  }
  int len = s.length();
  int draw_game = 0;
  for (int i = len + 1; i <= len + k + 45; i++) {
    closestToRight[0][i] = len + 4;
    closestToRight[1][i] = len + 4;
  }
  closestToRight[0][len] = len + 4;
  closestToRight[1][len] = len + 4;
  for (int i = len - 1; i > 0; --i) {
    closestToRight[0][i] = closestToRight[0][i + 1];
    closestToRight[1][i] = closestToRight[1][i + 1];
    closestToRight[s[i] - '0'][i] = i;
  }
  for (int i = 0; i <= 1; i++) {
    for (int j = 1; j + k <= len; j++) {
      int right_bound = j + k - 1;
      if ((leftMost[i ^ 1] < j) and (rightMost[i ^ 1] > j + k - 1)) {
        draw_game = 1;
      } else if (closestToRight[i ^ 1][j + k] < len) {
        int nxtIdx = closestToRight[i ^ 1][j + k];
        if (closestToRight[i ^ 1][k + nxtIdx] < len) {
          draw_game = 1;
        }
      }
    }
  }
  if (draw_game) {
    puts("once again");
    return 0;
  }
  puts("quailty");
}
