#include <bits/stdc++.h>
using namespace std;
int findMax(int n, int value, int len, int maxOld) {
  int ma = 0;
  if (value + n <= len) {
    ma = n + value;
    return max(maxOld, ma);
  } else if (value + n > len) {
    int temp = n + value - len;
    if (value == len) {
      if (temp == 1)
        ma = len - 1;
      else
        ma = len;
    } else
      ma = len;
    return max(maxOld, ma);
  }
  return 0;
}
int main() {
  long long n;
  string a, b, c;
  cin >> n >> a >> b >> c;
  int arrA[256], arrB[256], arrC[256];
  string win[4] = {"Kuro", "Shiro", "Katie", "Draw"};
  int indexWin = 0;
  int maxA = 0, maxB = 0, maxC = 0;
  for (int i = 0; i < 256; i++) {
    arrA[i] = 0;
    arrB[i] = 0;
    arrC[i] = 0;
  }
  for (int i = 0; i < a.length(); i++) {
    arrA[a[i]]++;
    arrB[b[i]]++;
    arrC[c[i]]++;
  }
  for (int i = 0; i < 256; i++) {
    maxA = findMax(n, arrA[i], a.length(), maxA);
    maxB = findMax(n, arrB[i], b.length(), maxB);
    maxC = findMax(n, arrC[i], c.length(), maxC);
  }
  if (maxC > maxB && maxC > maxA)
    indexWin = 2;
  else if (maxA > maxB && maxA > maxC)
    indexWin = 0;
  else if (maxB > maxA && maxB > maxC)
    indexWin = 1;
  else
    indexWin = 3;
  cout << win[indexWin];
  return 0;
}
