#include <bits/stdc++.h>
using namespace std;
list<long long> tree[1000001];
bool visited[1000001];
void dfs();
void solve();
bool ispalindrome(string s);
void solvediff() {
  long long n, i, ans = 0;
  cin >> n;
  vector<long long> v(2 * n), v1(2 * n - 1);
  for (i = 0; i < 2 * n; ++i) cin >> v[i];
  sort(v.begin(), v.end());
  for (i = 1; i < 2 * n; ++i) {
    v1[i - 1] = v[i] - v[i - 1];
  }
  sort(v1.begin(), v1.end());
  for (i = 0; i < 2 * n - 3; ++i) ans += v1[i];
  cout << ans << '\n';
}
long long h[2 * 1000001];
void probA() {
  long long a[10000], b[10000];
  memset(h, 0, sizeof h);
  long long n, i, j;
  cin >> n;
  for (i = 0; i < n; ++i) {
    cin >> a[i];
    h[a[i]] = 1;
  }
  for (i = 0; i < n; ++i) {
    cin >> b[i];
    h[b[i]] = 1;
  }
  long long c = 0;
  for (i = 0; i < n; ++i) {
    for (j = 0; j < n; ++j) {
      if (h[a[i] ^ b[j]]) c++;
    }
  }
  if (c & 1)
    cout << "Koyomi\n";
  else
    cout << "Karen\n";
}
int main() {
  probA();
  return 0;
}
void traverse(int v) {
  if (visited[v]) return;
  cout << v << ' ';
  list<long long>::iterator li;
  visited[v] = 1;
  for (li = tree[v].begin(); li != tree[v].end(); ++li) {
    if (!visited[*li]) {
      traverse(*li);
    }
  }
}
bool ispalindrome(string s) {
  int i = 0, j = s.size();
  while (s[j - 1] == '0') --j;
  while (i < j / 2) {
    if (s[i] != s[j - i - 1]) return 0;
    i++;
  }
  return 1;
}
void dfs(int v) {}
void solve() {
  long long n, i, x, y;
  cin >> n;
  for (i = 1; i < n; ++i) {
    cin >> x >> y;
    tree[x].push_back(y);
    tree[y].push_back(x);
  }
  memset(visited, 0, sizeof visited);
  traverse(1);
}
