func_code_string: #include <bits/stdc++.h>   using namespace std;   const int maxn = 100501;   struct bor {     int a[27];   };   bor q[maxn];   int free1 = 0;   void add(string &s, int pos, int i) {     if (pos == (int)s.size()) {       return;     }     if (q[i].a[s[pos] -  a  + 1] == 0) {       free1++;       q[i].a[s[pos] -  a  + 1] = free1;     }     add(s, pos + 1, q[i].a[s[pos] -  a  + 1]);     return;   }   bool u[2 * maxn];   bool was[2 * maxn];   bool dfs(int i) {     u[i] = true;     was[i] = false;     int y = 0;     int t = 0;     for (int j = 1; j < 27; j++) {       int r = q[i].a[j];       if (r != 0) {         y++;         if (dfs(r) == true) {           t++;         }         if (was[r] == false) {           was[i] = true;           if (i == 0) {           }         }       }     }     if (y == 0) {       was[i] = true;     }     if (t == y) {       u[i] = false;     }     return u[i];   }   int main() {     int n, k;     cin >> n >> k;     for (int i = 0; i < n; i++) {       string s;       cin >> s;       add(s, 0, 0);     }     bool q = dfs(0);     if (q == false) {       cout <<  Second ;     } else {       if (was[0] == true) {         cout <<  First ;       } else if (k % 2 == 0) {         cout <<  Second ;       } else         cout <<  First ;     }     return 0;   }   