func_code_string: #include <bits/stdc++.h>   using namespace std;   template <typename T>   istream &operator>>(istream &is, vector<T> &arr);   template <typename T>   ostream &operator<<(ostream &os, vector<T> &arr);   int INF = 1e9 + 5;   long long C(int n, int m) {     long long ans = 1;     for (int i = 1; i <= m; i++) {       ans *= n;       ans /= i;       n--;     }     return ans;   }   int main() {     int n;     cin >> n;     vector<pair<int, string>> scores = {{0,  Kuro }, {0,  Shiro }, {0,  Katie }};     vector<string> tr(3);     cin >> tr;     for (int i = 0; i < 3; i++) {       map<char, int> charMap;       for (int j = 0; j < tr[i].length(); j++) {         charMap[tr[i][j]]++;       }       for (auto ca : charMap) {         int sc = ca.second;         int l = tr[i].length();         if (n == 1 && sc == l)           scores[i].first = max(scores[i].first, sc - 1);         else           scores[i].first = max(scores[i].first, min(sc + n, l));       }     }     sort(scores.begin(), scores.end());     if (scores[2].first == scores[1].first)       cout <<  Draw  << endl;     else       cout << scores[2].second << endl;   }   template <typename T>   istream &operator>>(istream &is, vector<T> &arr) {     typename vector<T>::iterator a;     for (a = arr.begin(); a != arr.end(); a++) {       is >> *a;     }     return is;   }   template <typename T>   ostream &operator<<(ostream &os, vector<T> &arr) {     typename vector<T>::iterator a;     for (a = arr.begin(); a != arr.end(); a++) {       os << *a <<    ;     }     os << endl;     return os;   }   