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 (GCC 5.4.1) (judge verdict: Wrong Answer)

#include<stdio.h>
#include<string.h>

int main(){
  int ans = 0, l = 0, i, ba = 0, p = 0;
  char s[101], k[] = "keyence";
  char *ret;
  scanf("%s", s);
  if((ret = strstr(s, k)) != NULL) ans = 1;
  while(1){
    for(i = p; i < strlen(s); ++i){
      if(s[i] == k[0]) {
        l = i;
        break;
      }
      if(i == strlen(s) - 8) ba = 1;
    }
    p = i + 1;
    for(i = 0;;++i){
      if(s[l] == k[i]) {
        l++;
        continue;
      }
      break;
    }
    if((ret = strstr(&s[l], &k[i + 1])) != NULL) ans = 1;
    if(ans) break;
    if(ba) break;
  }
  if(ans) puts("YES");
  else puts("NO");
  return 0;
}