#include <bits/stdc++.h>
int gud[256], a[4];
int f[256];
int main() {
  FILE *fi, *fo;
  fi = stdin;
  fo = stdout;
  for (int i = 'a'; i <= 'z'; i++) gud[i] = i;
  for (int i = 'A'; i <= 'Z'; i++) gud[i] = i;
  long long n;
  fscanf(fi, "%lld", &n);
  char c = fgetc(fi);
  for (int i = 1; i <= 3; i++) {
    while (!gud[c]) c = fgetc(fi);
    memset(f, 0, sizeof(f));
    int max = 0, cnt = 0;
    while (gud[c]) {
      cnt++;
      f[gud[c]]++;
      if (f[gud[c]] > max) max = f[gud[c]];
      c = fgetc(fi);
    }
    if (max != cnt)
      a[i] = std::min(1LL * cnt, 1LL * max + n);
    else if (n == 1)
      a[i] = cnt - 1;
    else
      a[i] = cnt;
  }
  if (a[1] > a[2] && a[1] > a[3])
    fprintf(fo, "Kuro");
  else if (a[2] > a[1] && a[2] > a[3])
    fprintf(fo, "Shiro");
  else if (a[3] > a[1] && a[3] > a[2])
    fprintf(fo, "Katie");
  else
    fprintf(fo, "Draw");
  return 0;
}
