#include <bits/stdc++.h>
using namespace std;
using i32 = int;
using i64 = long long;
using f80 = long double;
using vi32 = vector<i32>;
using vi64 = vector<i64>;
using vf80 = vector<f80>;
using vstr = vector<string>;
inline void yes() {
  cout << "YES" << '\n';
  exit(0);
}
inline void no() {
  cout << "NO" << '\n';
  exit(0);
}
inline i64 gcd(i64 a, i64 b) {
  if (min(a, b) == 0) return max(a, b);
  if (a % b == 0) return b;
  return gcd(b, a % b);
}
inline i64 lcm(i64 a, i64 b) { return a / gcd(a, b) * b; }
void solve();
int main() {
  ios::sync_with_stdio(0);
  cin.tie(0);
  cout << fixed << setprecision(16);
  solve();
  return 0;
}
template <typename T>
class pqasc : public priority_queue<T, vector<T>, greater<T>> {};
template <typename T>
class pqdesc : public priority_queue<T, vector<T>, less<T>> {};
template <typename T>
inline void amax(T &x, T y) {
  if (x < y) x = y;
}
template <typename T>
inline void amin(T &x, T y) {
  if (x > y) x = y;
}
template <typename T>
inline T power(T x, i64 n, T e = 1) {
  T r = e;
  while (n > 0) {
    if (n & 1) r *= x;
    x *= x;
    n >>= 1;
  }
  return r;
}
template <typename T>
istream &operator>>(istream &is, vector<T> &v) {
  for (auto &x : v) is >> x;
  return is;
}
template <typename T>
ostream &operator<<(ostream &os, const vector<T> &v) {
  for (int i = 0; i < int(v.size()); i++) {
    if (i) os << ' ';
    os << v[i];
  }
  return os;
}
void solve() {
  string s;
  cin >> s;
  string t = "keyence";
  for (int i = 1; i <= int(7 - 1); i++) {
    string b = t.substr(0, i);
    string a = t.substr(i, 7);
    bool f = false;
    for (int j = 0; j < int(s.size()); j++) {
      if (!f) {
        if (j + b.size() <= s.size() && s.substr(j, b.size()) == b) {
          f = true;
          j += b.size() - 1;
        }
      } else {
        if (j + a.size() <= s.size() && s.substr(j, a.size()) == a) {
          yes();
        }
      }
    }
  }
  for (int i = 0; i <= int(s.size() - 7); i++) {
    if (s.substr(i, 7) == t) yes();
  }
  no();
}
