#include <bits/stdc++.h>
#include <set>
#include <iterator>
using namespace std;

#define ft first
#define sd second
#define pb push_back
#define all(x) x.begin(),x.end()

#define ll long long int
#define vi vector<int>
#define vii vector<pair<int,int> >
#define pii pair<int,int>
#define plii pair<pair<ll, int>, int>
#define piii pair<pii, int>
#define viii vector<pair<pii, int> >
#define vl vector<ll>
#define vll vector<pair<ll,ll> >
#define pll pair<ll,ll>
#define pli pair<ll,int>
#define mp make_pair
#define ms(x, v) memset(x, v, sizeof x)
#define pr_vec(v) for(int i=0;i<v.size();i++) cout << v[i] << " " ;

#define f_in(st) freopen(st,"r",stdin)
#define f_out(st) freopen(st,"w",stdout)

#define fr(i, a, b) for(i=a; i<=b; i++)
#define fb(i, a, b) for(i=a; i>=b; i--)
#define ASST(x, l, r) assert( x <= r && x >= l )
const int  p=31,po=1,N=2e5+1, M=(ll)1e9+1 ;
const int mod = 998244353 ;
// struct node{
//   ll prefixsum,suffixsum,bettersum,totalsum;
//   void create(ll val){
//     prefixsum=suffixsum=bettersum=val;
//   }
//   void Merge(node& a,node &b){
//     prefixsum=max(a.prefixsum,a.totalsum+b.prefixsum);
//     suffixsum=max(b.suffixsum,a.suffixsum+b.sum);
//     totalsum=a.totalsum+b.totalsum;
    
//   }
// }
//ll dp[2][100];
vl compute(string s){
        vl has(s.length());
        ll i;

        for(i=0;i<s.length();i++){
            if(i==0){
                has[i]=((s[i]-'a'+1))%mod;
            }
            else
                has[i]=(has[i-1]*p + (s[i]-'a'+1))%mod;
        }
        return has;
}
// ll g[N][N],keep[N*N];
vl g[N],a(N),gc(N),dist(N,1),vis(N,0);

// ll solve(ll l,ll r){
//   if(l==r)
//     return l;
//   ll n1=solve(l,(l+r)/2);
//   ll n2=solve((l+r)/2 +1,r);
//   if(g[n1][n2]>0){
//     keep[g[n1][n2]]=true;
//     return n1;
//   }
//   else{
//     keep[g[n2][n1]]=true;
//     return n2;
//   }
  
// }
ll ma=0;
void dfs(ll x){
  vis[x]=1;
  // cout << x << " ";
  for(auto &it:g[x]){
    if(vis[it])
      continue;
    dfs(it);
    if(__gcd(a[x],gc[it])!=1){
      if(dist[x]<1+dist[it]){
        dist[x]=1+dist[it];
        gc[x]=__gcd(a[x],gc[it]);
      }
    }
  }
  // if(a[x]!=1)
    ma=max(ma,dist[x]);
  // return ma;
}
int main(){
 ios_base::sync_with_stdio(0);
  string s;
  cin >> s;
  ll i,l=s.length(),j=0,ok=0,f=0;
  string c="keyence";
  for(i=0;i<l;i++){
    if(j==c.length())
        break;
    if(s[i]==c[j]){
      j++;
      f=0;
    }
    else if(f==0){
      ok++;
      f=1;
    }
  }
  // cout << j << endl;
  if(j==c.length() && ok<=1)
    cout << "YES";
  else
    cout << "NO";
    return 0;
}