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 Rust (1.15.1) (judge verdict: Accepted)

fn main() {
    let mut buf = String::new();
    let handle = std::io::stdin();
    handle.read_line(&mut buf).unwrap();
    let mut s: String = buf.trim().to_string();
    let k: String = "keyence".to_string();
    let mut k_index: Vec<usize> = vec![];
    
    let mut left = 0;
    let mut right = s.len() - k.len();
    let mut find = false;
    loop {
        let mut target = s[0..left].to_string();
        target.push_str(&s[right..]);
        if target == k {
            find = true;
            break;
        }
        if right == s.len() {
            break;
        }
        left += 1;
        right += 1;
    }
    if find {
        println!("{}", "YES");
    } else {
        println!("{}", "NO");
    }
}