func_code_string: #include <bits/stdc++.h>   using namespace std;   int n, m, hd, el;   char s[1000];   struct E {     char tag;     int p[26];   } e[1000000];   void ins() {     int i, j, k, l;     for (i = 0, l = hd; s[i]; i++) {       if (!e[l].p[s[i] -  a ]) e[l].p[s[i] -  a ] = el++;       l = e[l].p[s[i] -  a ];     }   }   void dfs(int ei) {     int i, j, c[5] = {0, 0, 0, 0, 0};     for (i = j = 0; i < 26; i++) {       if (e[ei].p[i]) {         j = 1;         dfs(e[ei].p[i]);         c[e[e[ei].p[i]].tag]++;       }     }     if (!j)       e[ei].tag = 1;     else if (c[4] || (c[1] && c[2]))       e[ei].tag = 3;     else if (c[1])       e[ei].tag = 2;     else if (c[2])       e[ei].tag = 1;     else       e[ei].tag = 4;   }   void init() {     int i, j, k, l;     hd = el = 0;     el++;     scanf( %d%d , &n, &m);     for (i = 0; i < n; i++) {       scanf( %s , s);       ins();     }     dfs(hd);   }   void solve() {     if (e[hd].tag == 1 || e[hd].tag == 4)       puts( Second );     else if (e[hd].tag == 3)       puts( First );     else if (m & 1)       puts( First );     else       puts( Second );   }   int main() {     init();     solve();     return 0;   }   