#include <bits/stdc++.h>
using namespace std;
struct obj {
  long long zr;
  long long zl;
  long long orr;
  long long ol;
};
bool first(vector<long long>& a, vector<obj>& pos, long long st, long long en,
           long long k, long long val) {
  bool f3 = 0, f4 = 0;
  if (val == 0) {
    bool k1 = 0, k2 = 0, k3 = 0;
    k1 = (pos[st - 1].orr <= en);
    k2 = ((pos[en + 1].ol - pos[st - 1].orr + 1) <= k);
    k3 = (pos[pos[pos[en + 1].ol].zr].orr > en);
    f3 = (k1 && k2 && k3);
  }
  if (val == 1) {
    bool k1 = 0, k2 = 0, k3 = 0;
    k1 = (pos[st - 1].zr <= en);
    k2 = ((pos[en + 1].zl - pos[st - 1].zr + 1) <= k);
    k3 = (pos[pos[pos[en + 1].zl].orr].zr > en);
    f4 = (k1 && k2 && k3);
  }
  return (f3 || f4);
}
long long same(vector<long long>& a, vector<obj>& pos, long long st,
               long long en) {
  if (a[st] == 0) {
    if (pos[st].orr > en) {
      return 0;
    }
    return -1;
  }
  if (pos[st].zr > en) {
    return 1;
  }
  return -1;
}
bool second(vector<long long>& a, vector<obj>& pos, long long k) {
  long long sz = a.size() - 2;
  for (long long i = 1; i <= sz - k + 1; ++i) {
    bool flag = 0;
    long long sameV = -1;
    if (i == 1) {
      sameV = 0;
    } else {
      sameV = same(a, pos, 1, i - 1);
    }
    if ((i != sz - k + 1) && (sameV == 0)) {
      if (first(a, pos, i + k, sz, k, sameV)) {
        flag = 1;
      }
    }
    if (i == sz - k + 1) {
      sameV = 0;
    } else {
      sameV = same(a, pos, i + k, sz);
    }
    if ((i != 1) && (sameV == 0)) {
      if (first(a, pos, 1, i - 1, k, sameV)) {
        flag = 1;
      }
    }
    if (!flag) {
      return 0;
    }
    flag = 0;
    sameV = -1;
    if (i == 1) {
      sameV = 1;
    } else {
      sameV = same(a, pos, 1, i - 1);
    }
    if ((i != sz - k + 1) && (sameV == 1)) {
      if (first(a, pos, i + k, sz, k, sameV)) {
        flag = 1;
      }
    }
    if (i == sz - k + 1) {
      sameV = 1;
    } else {
      sameV = same(a, pos, i + k, sz);
    }
    if ((i != 1) && (sameV == 1)) {
      if (first(a, pos, 1, i - 1, k, sameV)) {
        flag = 1;
      }
    }
    if (!flag) {
      return 0;
    }
  }
  return true;
}
int main() {
  ios_base::sync_with_stdio(0), cin.tie(0), cout.tie(0);
  long long n, k;
  cin >> n >> k;
  string s;
  cin >> s;
  long long sz = s.size();
  sz += 2;
  vector<long long> a(sz);
  vector<obj> pos(sz);
  a[0] = a[n + 1] = 2;
  pos[0].ol = pos[0].zl = 0;
  pos[n + 1].zr = pos[n + 1].orr = n + 1;
  for (long long i = 1; i <= n; ++i) {
    a[i] = s[i - 1] - '0';
  }
  long long ol, zl, orr, zr;
  ol = zl = 0;
  orr = zr = n + 1;
  for (long long i = 1; i <= n; ++i) {
    pos[i].ol = ol;
    pos[i].zl = zl;
    pos[n - i + 1].orr = orr;
    pos[n - i + 1].zr = zr;
    if (a[i] == 0) {
      zl = i;
    } else {
      ol = i;
    }
    if (a[n - i + 1] == 0) {
      zr = n - i + 1;
    } else {
      orr = n - i + 1;
    }
  }
  pos[0].orr = orr;
  pos[0].zr = zr;
  pos[n + 1].ol = ol;
  pos[n + 1].zl = zl;
  if ((same(a, pos, 1, n) != -1) || first(a, pos, 1, n, k, 1) ||
      first(a, pos, 1, n, k, 0)) {
    cout << "tokitsukaze";
    return 0;
  }
  if (second(a, pos, k)) {
    cout << "quailty";
    return 0;
  }
  cout << "once again";
  return 0;
}
