const string ALPHA = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";
string NAME[3] = { "Kuro", "Shiro", "Katie" };
int main() {
ios::sync_with_stdio(false);
cin.tie(0);
cout << fixed << setprecision(20);
ll N;
cin >> N;
vector<string> S(3);
vll ma(3);
rep(a, 3) {
cin >> S[a];
for (char b : ALPHA) {
ll x = 0;
each(c, S[a]) {
if (b == c)x++;
}
if (N > sz(S[a]) - x) {
ll p = N - sz(S[a]) + x;
if(p==1 && x == sz(S[a])) smax(ma[a], sz(S[a]) - p);
else smax(ma[a], (ll)sz(S[a]));
} else {
smax(ma[a], N + x);
}
}
}
ll m = -1, cnt = 0, cat=-1;
rep(a, 3) {
if (m < ma[a]) {
cat = a;
m = ma[a];
}
}
rep(a, 3)if (m == ma[a])cnt++;
if (cnt > 1)cout << "Draw" << endl;
else cout << NAME[cat] << endl;
}