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 Java8 (OpenJDK 1.8.0) (judge verdict: Runtime Error)

package dd;

import java.util.Scanner;

public class Main {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
				Scanner scan = new Scanner(System.in);
				String str = "keyence";
				String test = scan.next();
				char[] strArray = str.toCharArray();
				
				char[] testArray = test.toCharArray();
				
				int strpointer = 0;
				int testpointer = 0;
				int times = 0;
				boolean end = false;
				if(testArray.length != 0) {
					for(;strpointer < strArray.length;) {
						
						for(; testpointer<testArray.length;) {
							if(strArray[strpointer]== testArray[testpointer]) {
								
								testpointer++;
								strpointer++;
								break;
							}else {
								testpointer++;
								times++;
							}
							
							if(testpointer == testArray.length) {
								end = true;
							}
						}
						
						if(end) {
							break;
						}
						
					}
				}else {
					System.out.println("NO");
				}
				
				
				if(strpointer == strArray.length && times < 2) {
					System.out.println("YES");
				}else {
					System.out.println("NO");
				}
		
	}

}