#include <bits/stdc++.h>
using namespace std;
const int MX = 2e5;
long long acum[MX];
long long getAcum(long long l, long long r) { return acum[r + 1] - acum[l]; }
bool same(long long l, long long r, long long c) {
  if (l > r) return true;
  return getAcum(l, r) == (r - l + 1) * c;
}
int getVal(int l, int r) {
  if (l > r) return 0;
  if (same(l, r, 0)) return 0;
  if (same(l, r, 1)) return 1;
  return -1;
}
bool same(long long l1, long long r1, long long l2, long long r2) {
  for (int c = 0; c <= 1; c++) {
    if (same(l1, r1, c) && same(l2, r2, c)) {
      return true;
    }
  }
  return false;
}
bool simulateFirst(string &s, long long k) {
  long long n = s.size();
  for (long long i = 0; i < (long long)n; i++) {
    acum[i + 1] = acum[i] + s[i] - '0';
  }
  for (int i = 0; i <= n - k; i++) {
    if (same(0, i - 1, i + k, n - 1)) {
      return true;
    }
  }
  return false;
}
void update(string &s, long long l, long long r, char c) {
  for (int i = l; i <= r; i++) {
    s[i] = c;
  }
}
int main() {
  ios_base::sync_with_stdio(false);
  cin.tie(NULL);
  cout.tie(NULL);
  long long n, k;
  cin >> n >> k;
  string s;
  cin >> s;
  for (long long i = 0; i < (long long)n; i++) {
    acum[i + 1] = acum[i] + s[i] - '0';
  }
  for (int i = 0; i <= n - k; i++) {
    if (same(0, i - 1, i + k, n - 1)) {
      cout << "tokitsukaze\n";
      return 0;
    }
  }
  for (long long i = 1; i < n - k; i++) {
    if (getVal(0, i - 1) == -1 || getVal(i + k, n - 1) == -1) {
      cout << "once again\n";
      return 0;
    }
    long long maxLen = max(i, n - (i + k));
    if (maxLen > k) {
      cout << "once again\n";
      return 0;
    }
  }
  for (char c = '0'; c <= '1'; c++) {
    string aux = s;
    update(aux, 0, k - 1, c);
    if (!simulateFirst(aux, k)) {
      cout << "once again\n";
      return 0;
    }
    aux = s;
    update(aux, n - k, n - 1, c);
    if (!simulateFirst(aux, k)) {
      cout << "once again\n";
      return 0;
    }
  }
  cout << "quailty\n";
  return 0;
}
