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# (Mono 4.6.2.0) (judge verdict: Wrong Answer)

using System;
using System.Linq;
using System.Collections;
using System.Collections.Generic;
using System.Text;


class Program
{
    static void Main(string[] args)
    {
        // 入力
        var s = Console.ReadLine();
        //var n = int.Parse(Console.ReadLine());
        //int[] n = Console.ReadLine().Split().Select(int.Parse).ToArray();

        var ans = "YES";
        var list = new List<bool>();

        if (s[0] == 'k')
        {
            var flag = true;
            var i = 0;
            foreach (char item in "keyence")
            {
                while (i < s.Length)
                {
                    if (s[i] != item)
                    {
                        if (flag)
                        {
                            while (i < s.Length)
                            {
                                flag = false;
                                if (s[i] == item)
                                {
                                    break;
                                }
                                i++;
                            }
                        }
                        else
                        {
                            ans = "NO";
                            Console.WriteLine(ans);
                            return;
                        }
                    }
                    else
                    {
                        i++;
                        list.Add(true);
                        break;
                    }
                }

            }

            if (list.Count != 7)
            {
                ans = "NO";
                Console.WriteLine(ans);
                return;
            }
        }
        else
        {
            var flag = true;
            for (int i = 0; i < s.Length; i++)
            {
                while (i < s.Length)
                {
                    if (s[i] == 'k')
                    {
                        flag = false;
                        list.Add(true);
                        i++;
                        foreach (char item in "eyence")
                        {
                            if (s[i] != item)
                            {
                                ans = "NO";
                                break;
                            }
                            else
                            {
                                i++;
                                list.Add(true);
                            }
                        }
                        if (i < s.Length)
                        {
                            ans = "NO";
                            Console.WriteLine(ans);
                            return;
                        }

                        if (list.Count != 7)
                        {
                            ans = "NO";
                            Console.WriteLine(ans);
                            return;
                        }
                    }
                    else
                    {
                        i++;
                    }
                }
            }

            if (flag) ans = "NO";
        }

        // 出力
        Console.WriteLine(ans);
    }
}