#include <bits/stdc++.h>
using namespace std;
using vi = vector<long long>;
using pint = pair<long long, long long>;
struct io {
  io() {
    cin.tie(0);
    ios::sync_with_stdio(false);
    cout.tie(0);
    cout << fixed << setprecision(20);
  }
} io;
template <class T>
istream &operator>>(istream &is, vector<T> &v) {
  for (T &e : v) is >> e;
  return is;
}
template <class T>
ostream &operator<<(ostream &os, vector<T> v) {
  os << "{";
  for (T &e : v)
    os << e << (v.size() - (long long)(&e - &v[0]) > 1 ? ", " : "");
  os << "}";
  return os;
}
void _DEBUG() {}
template <typename H, typename... T>
void _DEBUG(H a, T... b) {
  cerr << a << (sizeof...(b) ? "," : "\n");
  _DEBUG(b...);
}
inline void in() {}
template <typename H, typename... T>
void in(H &a, T &...b) {
  cin >> a;
  in(b...);
}
inline void out() {}
template <typename H, typename... T>
void out(H a, T... b) {
  cout << a << (sizeof...(b) ? " " : "\n");
  out(b...);
}
template <class T>
void resz(long long n, T &v) {
  v.resize(n);
}
template <class H, class... T>
void resz(long long n, H &a, T &...b) {
  a.resize(n);
  resz(n, b...);
}
const long long INF = 1LL << 55;
const long long MOD = 1000000007;
const double EPS = 1e-8;
string s;
string a, b, tgt = "keyence";
signed main() {
  in(s);
  for (long long i = (true) ? 1 : tgt.size() - 1;
       (true) ? i < tgt.size() : i >= 1; (true) ? ++i : --i) {
    a = tgt.substr(0, i);
    b = tgt.substr(i, tgt.size() - 1);
    if (s.find(a) == string::npos || s.find(b) == string::npos) continue;
    if (s.find(a) < s.find(b)) {
      puts("YES");
      return 0;
    }
  }
  puts("NO");
  return 0;
}
