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: Wrong Answer)

#include <iostream>
#include <vector>
#include <string>
#include <algorithm>

using namespace std;

int main()
{
    string s;
    bool fl, fm, fr;

    cin >> s;

    int key = (int)s.find("key");
    int ence = (int)s.find("ence");

    if (key == -1 || ence == -1) {
        cout << "NO" << endl;
        return (0);
    }

    if (key != 0) {
        fl = true;
    }
    if (ence - key != 3) {
        fm = true;
    }
    if ((ence+3) != s.size()-1) {
        fr = true;
    }

    if (fl == true && fm == false && fr == false ||
        fl == false && fm == true && fr == false ||
        fl == false && fm == false && fr == true) {
        cout << "Yes" << endl;
    }
    else cout << "NO" << endl;
}