func_code_string: #include <bits/stdc++.h>   using namespace std;   int dp[1 << 20];   int arr[][5] = {{1, 2, -1},       {2, -1},      {-1},     {4, 5, 6, -1},                   {5, 6, -1},       {6, -1},      {-1},     {8, 9, 10, 11, -1},                   {9, 10, 11, -1},  {10, 11, -1}, {11, -1}, {-1},                   {13, 14, 15, -1}, {14, 15, -1}, {15, -1}, {-1},                   {17, 18, -1},     {18, -1},     {-1}};   int arc[][5] = {{3, 7, -1},                   {4, 8, 12, -1},                   {5, 9, 13, 16, -1},                   {7, -1},                   {8, 12, -1},                   {9, 13, 16, -1},                   {10, 14, 17, -1},                   {-1},                   {12, -1},                   {13, 16, -1},                   {14, 17, -1},                   {15, 18, -1},                   {-1},                   {16, -1},                   {17, -1},                   {18, -1},                   {-1},                   {-1},                   {-1}};   int ard[][5] = {{4, 9, 14, 18, -1},                   {5, 10, 15, -1},                   {6, 11, -1},                   {8, 13, 17, -1},                   {9, 14, 18, -1},                   {10, 15, -1},                   {11, -1},                   {12, 16, -1},                   {13, 17, -1},                   {14, 18, -1},                   {15, -1},                   {-1},                   {16, -1},                   {17, -1},                   {18, -1},                   {-1},                   {-1},                   {-1},                   {-1}};   int gao(int st) {     int &res = dp[st];     if (res != -1) return res;     if (st == 0) return res = 0;     for (int i = 0; i < 19; i++) {       if ((st & (1 << i)) == 0) continue;       int now = i;       int tmp = now;       int fk = st;       if (gao(st ^ (1 << i)) == 0) {         return res = 1;       }       fk = st ^ (1 << i);       int j = 0;       while (arr[now][j] != -1) {         if ((st & (1 << arr[now][j])) == 0) break;         fk ^= (1 << arr[now][j]);         if (gao(fk) == 0) {           return res = 1;         }         j++;       }       fk = st ^ (1 << i);       j = 0;       while (arc[now][j] != -1) {         if ((st & (1 << arc[now][j])) == 0) break;         fk ^= (1 << arc[now][j]);         if (gao(fk) == 0) {           return res = 1;         }         j++;       }       fk = st ^ (1 << i);       j = 0;       while (ard[now][j] != -1) {         if ((st & (1 << ard[now][j])) == 0) break;         fk ^= (1 << ard[now][j]);         if (gao(fk) == 0) {           return res = 1;         }         j++;       }     }     return res = 0;   }   int main() {     int i, j, k, n, f = 0;     for (i = 0; i < 19; i++) {       char rr[5];       scanf( %s , rr);       if (rr[0] ==  O ) f |= (1 << i);     }     memset(dp, -1, sizeof(dp));     int ch = gao(f);     if (ch == 1)       puts( Karlsson );     else       puts( Lillebror );     return 0;   }   