#include <bits/stdc++.h>
using namespace std;
const int INF = 1 << 30;
const double EPS = 1e-8;
bool is_man(string s) {
  if (s.size() >= 4 && s.substr(s.size() - 4, 4) == "lios")
    return true;
  else if (s.size() >= 3 && s.substr(s.size() - 3, 3) == "etr")
    return true;
  else if (s.size() >= 6 && s.substr(s.size() - 6, 6) == "initis")
    return true;
  return false;
}
bool is_adj(string s) {
  if (s.size() >= 4 && s.substr(s.size() - 4, 4) == "lios")
    return true;
  else if (s.size() >= 5 && s.substr(s.size() - 5, 5) == "liala")
    return true;
  return false;
}
bool is_verb(string s) {
  if (s.size() >= 6 && s.substr(s.size() - 6, 6) == "initis")
    return true;
  else if (s.size() >= 6 && s.substr(s.size() - 6, 6) == "inites")
    return true;
  return false;
}
bool is_noun(string s) {
  if (s.size() >= 4 && s.substr(s.size() - 4, 4) == "etra")
    return true;
  else if (s.size() >= 3 && s.substr(s.size() - 3, 3) == "etr")
    return true;
  return false;
}
int main() {
  string str;
  bool man;
  int state = 0;
  int cnt = 0;
  bool good = true;
  bool good2 = true;
  while (cin >> str && good) {
    cnt++;
    if (!is_verb(str) && !is_noun(str) && !is_adj(str)) good = false;
    if (cnt == 1)
      man = is_man(str);
    else if (is_man(str) != man)
      good = false;
    switch (state) {
      case 0:
        if (is_adj(str))
          state = 0;
        else if (is_noun(str))
          state = 1;
        else {
          if (!good2 || cnt > 1)
            good = false;
          else
            good2 = false;
        }
        break;
      case 1:
        if (is_noun(str) || is_adj(str))
          good = false;
        else
          state = 2;
        break;
      case 2:
        if (!is_verb(str)) good = false;
        break;
    }
  }
  if ((good && cnt == 1) || (good && good2 && state > 0))
    cout << "YES";
  else
    cout << "NO";
  return 0;
}
