#include <bits/stdc++.h>
using namespace std;
void pl(long long a) { printf("%lld\n", a); }
void pll(long long a, long long b) { printf("%lld %lld\n", a, b); }
void plll(long long a, long long b, long long c) {
  printf("%lld %lld %lld ", a, b, c);
}
void sss(string s) { cout << s, printf("\n"); }
long long string_to_ll(string s) {
  stringstream ss;
  ss << s;
  long long n;
  ss >> n;
  return n;
}
string ll_to_string(long long n) {
  stringstream ss;
  ss << n;
  string s;
  ss >> s;
  return s;
}
vector<pair<int, string> > v;
void solve(string s) {
  string s1[] = {"vaporeon", "jolteon", "flareon", "espeon",
                 "umbreon",  "leafeon", "glaceon", "sylveon"};
  int i, j, p = 0;
  for (int i = 0; i < (int)s.size(); i++)
    if (s[i] == '.') p++;
  if (p == s.size()) {
    for (int i = 0; i < (int)8; i++) {
      if (s1[i].size() == p) {
        sss(s1[i]);
        break;
      }
    }
  } else {
    for (int i = 0; i < (int)8; i++) {
      string ss = s1[i];
      int c = 0;
      for (int j = 0; j < (int)s.size(); j++) {
        if (ss[j] == s[j]) c++;
      }
      v.push_back(make_pair(c, ss));
    }
    sort((v).begin(), (v).end());
    reverse((v).begin(), (v).end());
    for (int i = 0; i < (int)v.size(); i++) {
      if (v[i].second.size() == s.size()) {
        sss(v[i].second);
        break;
      }
    }
    (v).clear();
  }
}
int main() {
  int n, i;
  string s, s1;
  cin >> n >> s;
  solve(s);
  return 0;
}
