#include <bits/stdc++.h>
//#include <ext/pb_ds/tree_policy.hpp>
//#include <ext/pb_ds/assoc_container.hpp>
//using namespace __gnu_pbds;
//template<typename key, typename val>
//using ordered_tree = 
//  tree<key, val, less<key>, rb_tree_tag, tree_order_statistics_node_update>;
using namespace std;
typedef long long int64;
typedef complex<double> comp;
const double pi = 3.14159265358979323846;
const int inf = (int)1e+9 + 2;
const int64 inf64 = (int64)1e+18 + 2;
const double dinf = 1e+20;
const int mod = /*1'000'000'007;*/998244353;
const int base = 2187;
const double eps = 1e-8;
const int N = 200'000;

int n, m, k;
int a[11];

void solve(int test)
{
  string s = "keyence";
  string t; cin >> t;
  n = (int)t.size();
  m = 7;
  int p1 = 0, p2 = 0;
  while (p1 < n && p2 < m && t[p1] == s[p2]) {
    ++p1;
    ++p2;
  }
  while (p1 < n && p2 < m && t[p1] != s[p2])
    ++p1;
  while (p1 < n && p2 < m && t[p1] == s[p2]) {
    ++p1;
    ++p2;
  }
  if (p1 == n && p2 == m || t.substr(0, 7) == s || t.substr(n - 7, 7) == s) {
    cout << "YES\n";
    return;
  }
  cout << "NO\n";
}

void precalc()
{
}

int main()
{
  ios::sync_with_stdio(0);
  cin.tie(0), cout.tie(0);
  precalc();
  int test = 1;
  //cin >> test;
  //auto start = chrono::high_resolution_clock::now();
  for (int i = 1; i <= test; ++i)
      solve(i);
  //cerr << endl << chrono::duration_cast<chrono::milliseconds>(chrono::high_resolution_clock::now() - start).count();
  return 0;
}
