Problem:
Score : 200 points

Problem Statement

A string is called a KEYENCE string when it can be changed to keyence by removing its contiguous substring (possibly empty) only once.

Given a string S consisting of lowercase English letters, determine if S is a KEYENCE string.

Constraints

The length of S is between 7 and 100 (inclusive).

S consists of lowercase English letters.

Input

Input is given from Standard Input in the following format:

S

Output

If S is a KEYENCE string, print YES; otherwise, print NO.

Sample Input 1

keyofscience

Sample Output 1

YES

keyence is an abbreviation of key of science.

Sample Input 2

mpyszsbznf

Sample Output 2

NO

Sample Input 3

ashlfyha

Sample Output 3

NO

Sample Input 4

keyence

Sample Output 4

YES

Solution in C++14 (GCC 5.4.1) (judge verdict: Accepted)

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

#define rep(i,n) for(int i=0;i<(int)(n);i++)
#define repi(i,a,b) for(int i=int(a);i<int(b);i++)
#define all(x) (x).begin(),(x).end()
#define pb push_back
#define mp make_pair

typedef long long ll;
typedef pair<int, int> pii;
typedef vector<int> vi;
typedef vector<vi> vvi;
typedef pair<ll, ll> pll;
typedef vector<ll> vl;

const int inf = 1e9;
const ll linf = 1e18;
const ll mod = 1e9 + 7;

int cnt[10];

int main()
{
  string s;
  cin >> s;

  if(s == "keyence"){
    cout << "YES" << endl;
    return 0;
  }

  int n = s.size();
  string t = "keyence";

  rep(i, n){
    repi(j, i, n){
      int cnt = 0;
      int k;
      for(k = 0; k < n; k++){
        if(k < i or j < k){
          if(s[k] != t[cnt]){
            break;
          }else{
            cnt++;
          }
        }
      }
      if(t.size() == cnt and s.size() == k){
        cout << "YES" << endl;
        return 0;
      }
    }
  }
  
  cout << "NO" << endl;

  return 0;
}