func_code_string: #include <bits/stdc++.h>   using namespace std;   int k[5] = {3, 4, 5, 4, 3};   int st[5] = {0, 0, 0, 1, 2};   int dx[] = {0, -1, -1, 0, 1, 1};   int dy[] = {-1, -1, 0, 1, 1, 0};   int x[32], y[32];   int id[32][32];   char a[32][32];   char f[1 << 20];   int prep() {     memset(id, 0xff, sizeof(id));     int n = 0;     for (int i = 0; i < (5); ++i)       for (int j = 0; j < (k[i]); ++j)         x[n] = i, y[n] = st[i] + j, id[i][st[i] + j] = n++;     int res = 0;     for (int i = 0; i < (5); ++i)       for (int j = 0; j < (k[i]); ++j)         if (a[i][st[i] + j] ==  O ) res |= 1 << id[i][st[i] + j];     return res;   }   int main() {     for (int i = 0; i < (5); ++i) {       gets(a[i]);       for (int j = 0; j < (k[i]); ++j) a[i][st[i] + j] = a[i][2 * j + 5 - k[i]];       a[i][st[i] + k[i]] = 0;     }     int need = prep();     for (int m = 0; m < ((1 << 19)); ++m) {       for (int i = 0; i < (19); ++i)         if (m & (1 << i)) {           for (int q = 0; q < (6); ++q) {             int xx = x[i], yy = y[i], d = 1 << i;             for (;;) {               f[m] |= 1 - f[m ^ d];               if (f[m]) goto end;               xx += dx[q], yy += dy[q];               if (xx < 0 || xx >= 5 || yy - st[xx] < 0 || yy - st[xx] >= k[xx] ||                   (~m & (1 << id[xx][yy])))                 break;               d |= 1 << id[xx][yy];             }           }         }     end:;     }     if (f[need])       puts( Karlsson );     else       puts( Lillebror );     return 0;   }   