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 JavaScript (node.js v5.12) (judge verdict: Accepted)

"use strict";
process.stdin.resume();
process.stdin.setEncoding("utf8");

var reader = require("readline").createInterface({
  input: process.stdin,
  output: process.stdout
});

reader.on("line", line => {
  let word = line;
  let len = word.length - 1;
  let arr = ["k", "e", "y", "e", "n", "c", "e"];
  let keyence = "keyence";

  if (word.indexOf("keyence") == 0 || word.lastIndexOf("keyence") == len - 6) {
    console.log("YES");
    return;
  }
  
  let str = "";
  let ans = false;
  for (let i = 0; i < 6; i++) {
    str += arr.shift();
    let tmp = keyence.slice(i + 1);
    let index = word.indexOf(str)
    
    if (index == 0 && word.lastIndexOf(tmp) == len - (tmp.length - 1)) {
     ans = true;
     break;
    }
  }

  if (ans) console.log("YES");
  else console.log("NO");
});