func_code_string: #include <bits/stdc++.h>   using namespace std;   const int MAX_BUF_SIZE = 16384;   char BUFOR[MAX_BUF_SIZE];   int BUF_SIZE, BUF_POS;   char ZZZ;   const int MXN = 100010;   const int C = 262144;   const int INF = 1000000001;   string a[MXN];   int aa;   int typ[MXN], gender[MXN];   string fem[3] = { liala ,  etra ,  inites };   string masc[3] = { lios ,  etr ,  initis };   string mowa[6] = { lios ,  etr ,  initis ,  liala ,  etra ,  inites };   int n;   void test() {     string tmp;     while (cin >> tmp) a[aa++] = tmp;     n = aa;     bool czy = 1;     for (int i = 0; i < aa; i++) {       int dec = -1;       gender[i] = -1;       for (int j = 0; j < 3; j++) {         string w = masc[j];         if (w.length() <= a[i].length() &&             w == string(a[i], (int)(a[i]).size() - (int)(w).size(),                         (int)(w).size()))           dec = 1;         gender[i] = dec;       }       dec = -1;       for (int j = 0; j < 3; j++) {         string w = fem[j];         if (w.length() <= a[i].length() &&             w == string(a[i], (int)(a[i]).size() - (int)(w).size(),                         (int)(w).size()))           dec = 0;         if (gender[i] == -1) gender[i] = dec;       }       for (int j = 0; j < 6; j++) {         string w = mowa[j];         typ[i] = -1;         if (w.length() <= a[i].length() &&             w == string(a[i], (int)(a[i]).size() - (int)(w).size(),                         (int)(w).size())) {           typ[i] = j % 3;           break;         }       }       if (gender[i] == -1 || typ[i] == -1) czy = 0;     }     int iter = 0;     while (iter < n && typ[iter] == 0) iter++;     if (typ[iter] == 1)       iter++;     else if (n > 1)       czy = 0;     while (czy && iter < n)       if (typ[iter++] != 2) czy = 0;     for (int i = 1; i < n; i++)       if (gender[0] != gender[i]) czy = 0;     if (czy)       printf( YES n );     else       printf( NO n );   }   int main() {     int te = 1;     while (te--) test();   }   