func_code_string: #include <bits/stdc++.h>   using namespace std;   int N, K;   long long A[100100], sol;   map<long long, long long> M;   long long __grundy(long long n) {     if (n == 0) return 0;     if (((M).find(n) != (M).end())) return M[n];     long long r = __grundy(n - 1);     if (n % 2 != 0) return M[n] = ((r == 0) ? 1 : 0);     long long c = __grundy(n / 2);     if (r != 0 && K > 0 && c != 0) return M[n] = 0;     if (r != 1 && (K == 0 || c != 1)) return M[n] = 1;     return M[n] = 2;   }   long long g0(long long n) {     if (n == 0) return 0;     if (n == 1) return 1;     if (n == 2) return 2;     return ((n % 2) == 0) ? 1 : 0;   }   long long g1(long long n) {     if (n == 0) return 0;     if (n == 1) return 1;     if (n == 2) return 0;     if (n == 3) return 1;     if (n == 4) return 2;     if ((n % 2) == 1) return 0;     if (g1(n / 2) == 1) return 2;     return 1;   }   long long grundy(long long n) {     if (K)       return g1(n);     else       return g0(n);   }   int main() {     ios_base::sync_with_stdio(0);     cin.tie(0);     K = 0;     for (int I = 1; I <= 160; I++) {       assert(grundy(I) == __grundy(I));     }     M.clear();     K = 1;     for (int I = 1; I <= 160; I++) {       assert(grundy(I) == __grundy(I));     }     cin >> N >> K;     K %= 2;     for (long long I = 0; I < N; I++) {       cin >> A[I];       sol ^= grundy(A[I]);     }     if (sol == 0)       cout <<  Nicky  << endl;     else       cout <<  Kevin  << endl;   }   