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 PHP7 (7.0.15) (judge verdict: Wrong Answer)

<?php

$sc = new Scanner();

$S = $sc->next();

$ans = 'keyence';

if ($S === $ans) {
    echo 'YES' . PHP_EOL;
    exit;
}
$S_len = strlen($S);
$index = 0;
$flag = false;
$_ans = '';
for($i = 0; $i < $S_len; $i++) {
    $c = $S[$i];
    if ($c !== $ans[$index]) {
        if ($flag) {
            break;
        }
        $flag = true;
        $pos = strpos($S, $ans[$index], $i);
        if ($pos === false) {
            break;
        }
        $i = $pos - 1;
    } else {
        $_ans .= $c;
        $index++;
    }
    if ($_ans === $ans) break;
}
if ($_ans === $ans) {
    echo 'YES' . PHP_EOL;
} else {
    echo 'NO' . PHP_EOL;
}


class Scanner {
    private $arr = [];
    private $count = 0;
    private $pointer = 0;
    public function next() {
        if($this->pointer >= $this->count) {
            $str = trim(fgets(STDIN));
            $this->arr = explode(' ', $str);
            $this->count = count($this->arr);
            $this->pointer = 0;
        }
        $result = $this->arr[$this->pointer];
        $this->pointer++;
        return $result;
    }
    public function hasNext() {
        return $this->pointer < $this->count;
    }
    public function nextInt() {
        return (int)$this->next();
    }
    public function nextDouble() {
        return (double)$this->next();
    }
}