#include <bits/stdc++.h>
using namespace std;
const int PTN = 19;
pair<int, int> pts[] = {{0, 0}, {0, 1}, {0, 2}, {1, 0}, {1, 1}, {1, 2}, {1, 3},
                        {2, 0}, {2, 1}, {2, 2}, {2, 3}, {2, 4}, {3, 1}, {3, 2},
                        {3, 3}, {3, 4}, {4, 2}, {4, 3}, {4, 4}};
vector<int> msks;
int mem[1 << PTN];
bool dfs(int b) {
  if (b == 0) {
    return false;
  }
  int &res = mem[b];
  if (res != -1) {
    return res;
  }
  for (int m : msks) {
    if ((b & m) == m && !dfs((b & ~m))) {
      return res = true;
    }
  }
  return res = false;
}
map<pair<int, int>, int> ptm;
int mvx[] = {0, 1, 1};
int mvy[] = {1, 0, 1};
int main() {
  memset(mem, -1, sizeof(mem));
  int s = 0;
  for (int i = 0; i < PTN; ++i) {
    ptm[pts[i]] = i;
    char c;
    cin >> c;
    if (c == 'O') {
      s |= (1 << i);
    }
  }
  for (int i = 0; i < PTN; ++i) {
    for (int m = 0; m < 3; ++m) {
      pair<int, int> cur = pts[i];
      int t = 0;
      while (ptm.count(cur)) {
        t |= (1 << ptm[cur]);
        if ((s & t) == t) {
          msks.push_back(t);
        }
        cur.first += mvx[m];
        cur.second += mvy[m];
      }
    }
  }
  sort(msks.begin(), msks.end());
  msks.erase(unique(msks.begin(), msks.end()), msks.end());
  cout << (dfs(s) ? "Karlsson" : "Lillebror");
}
