#include <bits/stdc++.h>
using namespace std;
const int Maxn = 525000;
vector<int> Move;
int arr[6][6];
int node[110];
int sz[6] = {3, 4, 5, 4, 3};
int st[6] = {0, 3, 7, 12, 16};
int ch1[19] = {7, 3, 0,  12, 8,  4, 1,  16, 13, 9,
               5, 2, 17, 14, 10, 6, 18, 15, 11};
int ch2[19] = {16, 12, 7,  17, 13, 8, 3,  18, 14, 9,
               4,  0,  15, 10, 5,  1, 11, 6,  2};
int r;
bool Mark[Maxn];
bool winner[(1 << 19) + 10];
void build_move() {
  int x1, x2, x3;
  for (int i = 0; i < 5; i++)
    for (int j = 0; j < sz[i]; j++)
      for (int k = j + 1; k < sz[i]; k++) {
        x1 = x2 = x3 = 0;
        for (int l = j + st[i]; l <= k + st[i]; l++) {
          x1 += (1 << l);
          x2 += (1 << ch1[l]);
          x3 += (1 << ch2[l]);
        }
        Move.push_back(x1);
        Move.push_back(x2);
        Move.push_back(x3);
      }
  for (int i = 0; i < 19; i++) Move.push_back(1 << i);
}
bool dfs(int v) {
  Mark[v] = true;
  for (int i = 0; i < (int)Move.size(); i++) {
    if ((v & Move[i]) == Move[i]) {
      if (!Mark[v ^ Move[i]]) dfs(v ^ Move[i]);
      if (!winner[v ^ Move[i]]) return winner[v] = 1;
    }
  }
  return 0;
}
int main() {
  char c;
  for (int i = 0; i < 19; i++) {
    cin >> c;
    if (c == 'O') r += (1 << i);
  }
  build_move();
  sort(Move.begin(), Move.end());
  winner[0] = 0;
  Mark[0] = true;
  if (dfs(r))
    cout << "Karlsson" << endl;
  else
    cout << "Lillebror" << endl;
  return 0;
}
