program main
  implicit none

  character(len=100) :: s
  character(len=7) :: c
  integer :: n, i

  read(*,*) s

  n = len_trim(s)
  c = 'keyence'

  if(index(s,c) /= 0) then
     if (index(s,c) == 1 .or. index(s,c, back=.true.) == n-6) then
        write(*,*) 'YES'
     else
        write(*,*) 'NO'
     end if
     stop
  else
     do i = 1, 7
        if(index(s,c(1:i)) == 1 .and. index(s,c(i+1:7), back=.true.) == n-(6-i)) then
           write(*,*) 'YES'
           stop
        end if
     end do
     
     write(*,*) 'NO'
  end if
end program main

; ModuleID = 'FIRModule'
source_filename = "FIRModule"
target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128"
target triple = "x86_64-pc-linux-gnu"

@_QFEs = internal global [100 x i8] undef
@_QQcl.f5dcd0dd904886f9375fbbc896669ce8 = linkonce constant [73 x i8] c"/home/ubuntu/Downloads/TheStack_IR/Collated/Fortran/Source_5114/source.f\00"
@_QQcl.6B6579656E6365 = linkonce local_unnamed_addr constant [7 x i8] c"keyence"
@_QQcl.594553 = linkonce constant [3 x i8] c"YES"
@_QQcl.4E4F = linkonce constant [2 x i8] c"NO"
@_QQEnvironmentDefaults = local_unnamed_addr constant ptr null

define void @_QQmain() local_unnamed_addr {
  %1 = alloca [7 x i8], align 1
  %2 = tail call ptr @_FortranAioBeginExternalListInput(i32 -1, ptr nonnull @_QQcl.f5dcd0dd904886f9375fbbc896669ce8, i32 8)
  %3 = tail call i1 @_FortranAioInputAscii(ptr %2, ptr nonnull @_QFEs, i64 100)
  %4 = tail call i32 @_FortranAioEndIoStatement(ptr %2)
  br label %5

5:                                                ; preds = %0, %5
  %6 = phi i64 [ 99, %0 ], [ %10, %5 ]
  %7 = getelementptr [100 x [1 x i8]], ptr @_QFEs, i64 0, i64 %6
  %8 = load i8, ptr %7, align 1, !tbaa !3
  %9 = icmp eq i8 %8, 32
  %10 = add nsw i64 %6, -1
  %11 = icmp ne i64 %6, 0
  %12 = and i1 %9, %11
  br i1 %12, label %5, label %13

13:                                               ; preds = %5
  %14 = trunc i64 %6 to i32
  %15 = add i32 %14, 1
  %16 = select i1 %9, i32 0, i32 %15
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 1 dereferenceable(7) %1, ptr noundef nonnull align 1 dereferenceable(7) @_QQcl.6B6579656E6365, i64 7, i1 false)
  %17 = call i64 @_FortranAIndex1(ptr nonnull @_QFEs, i64 100, ptr nonnull %1, i64 7, i1 false)
  %18 = and i64 %17, 4294967295
  %.not = icmp eq i64 %18, 0
  br i1 %.not, label %.preheader, label %28

.preheader:                                       ; preds = %13
  %19 = call i64 @_FortranAIndex1(ptr nonnull @_QFEs, i64 100, ptr nonnull %1, i64 1, i1 false)
  %20 = and i64 %19, 4294967295
  %21 = icmp eq i64 %20, 1
  %22 = getelementptr inbounds [7 x [1 x i8]], ptr %1, i64 0, i64 1
  %23 = call i64 @_FortranAIndex1(ptr nonnull @_QFEs, i64 100, ptr nonnull %22, i64 6, i1 true)
  %24 = trunc i64 %23 to i32
  %25 = add i32 %16, -5
  %26 = icmp eq i32 %25, %24
  %27 = and i1 %21, %26
  br i1 %27, label %104, label %41

28:                                               ; preds = %13
  %29 = call i64 @_FortranAIndex1(ptr nonnull @_QFEs, i64 100, ptr nonnull %1, i64 7, i1 false)
  %30 = and i64 %29, 4294967295
  %31 = icmp eq i64 %30, 1
  %32 = call i64 @_FortranAIndex1(ptr nonnull @_QFEs, i64 100, ptr nonnull %1, i64 7, i1 true)
  %33 = trunc i64 %32 to i32
  %34 = add i32 %16, -6
  %35 = icmp eq i32 %34, %33
  %36 = or i1 %31, %35
  %. = select i1 %36, i32 15, i32 17
  %.18 = select i1 %36, i64 3, i64 2
  %_QQcl.594553._QQcl.4E4F = select i1 %36, ptr @_QQcl.594553, ptr @_QQcl.4E4F
  %37 = call ptr @_FortranAioBeginExternalListOutput(i32 -1, ptr nonnull @_QQcl.f5dcd0dd904886f9375fbbc896669ce8, i32 %.)
  %38 = call i1 @_FortranAioOutputAscii(ptr %37, ptr nonnull %_QQcl.594553._QQcl.4E4F, i64 %.18)
  %39 = call i32 @_FortranAioEndIoStatement(ptr %37)
  %40 = call {} @_FortranAStopStatement(i32 0, i1 false, i1 false)
  unreachable

41:                                               ; preds = %.preheader
  %42 = call i64 @_FortranAIndex1(ptr nonnull @_QFEs, i64 100, ptr nonnull %1, i64 2, i1 false)
  %43 = and i64 %42, 4294967295
  %44 = icmp eq i64 %43, 1
  %45 = getelementptr inbounds [7 x [1 x i8]], ptr %1, i64 0, i64 2
  %46 = call i64 @_FortranAIndex1(ptr nonnull @_QFEs, i64 100, ptr nonnull %45, i64 5, i1 true)
  %47 = trunc i64 %46 to i32
  %48 = add i32 %16, -4
  %49 = icmp eq i32 %48, %47
  %50 = and i1 %44, %49
  br i1 %50, label %104, label %51

51:                                               ; preds = %41
  %52 = call i64 @_FortranAIndex1(ptr nonnull @_QFEs, i64 100, ptr nonnull %1, i64 3, i1 false)
  %53 = and i64 %52, 4294967295
  %54 = icmp eq i64 %53, 1
  %55 = getelementptr inbounds [7 x [1 x i8]], ptr %1, i64 0, i64 3
  %56 = call i64 @_FortranAIndex1(ptr nonnull @_QFEs, i64 100, ptr nonnull %55, i64 4, i1 true)
  %57 = trunc i64 %56 to i32
  %58 = add i32 %16, -3
  %59 = icmp eq i32 %58, %57
  %60 = and i1 %54, %59
  br i1 %60, label %104, label %61

61:                                               ; preds = %51
  %62 = call i64 @_FortranAIndex1(ptr nonnull @_QFEs, i64 100, ptr nonnull %1, i64 4, i1 false)
  %63 = and i64 %62, 4294967295
  %64 = icmp eq i64 %63, 1
  %65 = getelementptr inbounds [7 x [1 x i8]], ptr %1, i64 0, i64 4
  %66 = call i64 @_FortranAIndex1(ptr nonnull @_QFEs, i64 100, ptr nonnull %65, i64 3, i1 true)
  %67 = trunc i64 %66 to i32
  %68 = add i32 %16, -2
  %69 = icmp eq i32 %68, %67
  %70 = and i1 %64, %69
  br i1 %70, label %104, label %71

71:                                               ; preds = %61
  %72 = call i64 @_FortranAIndex1(ptr nonnull @_QFEs, i64 100, ptr nonnull %1, i64 5, i1 false)
  %73 = and i64 %72, 4294967295
  %74 = icmp eq i64 %73, 1
  %75 = getelementptr inbounds [7 x [1 x i8]], ptr %1, i64 0, i64 5
  %76 = call i64 @_FortranAIndex1(ptr nonnull @_QFEs, i64 100, ptr nonnull %75, i64 2, i1 true)
  %77 = trunc i64 %76 to i32
  %78 = add i32 %16, -1
  %79 = icmp eq i32 %78, %77
  %80 = and i1 %74, %79
  br i1 %80, label %104, label %81

81:                                               ; preds = %71
  %82 = call i64 @_FortranAIndex1(ptr nonnull @_QFEs, i64 100, ptr nonnull %1, i64 6, i1 false)
  %83 = and i64 %82, 4294967295
  %84 = icmp eq i64 %83, 1
  %85 = getelementptr inbounds [7 x [1 x i8]], ptr %1, i64 0, i64 6
  %86 = call i64 @_FortranAIndex1(ptr nonnull @_QFEs, i64 100, ptr nonnull %85, i64 1, i1 true)
  %87 = trunc i64 %86 to i32
  %88 = icmp eq i32 %16, %87
  %89 = and i1 %84, %88
  br i1 %89, label %104, label %90

90:                                               ; preds = %81
  %91 = call i64 @_FortranAIndex1(ptr nonnull @_QFEs, i64 100, ptr nonnull %1, i64 7, i1 false)
  %92 = and i64 %91, 4294967295
  %93 = icmp eq i64 %92, 1
  %94 = getelementptr inbounds [7 x [1 x i8]], ptr %1, i64 0, i64 7
  %95 = call i64 @_FortranAIndex1(ptr nonnull @_QFEs, i64 100, ptr nonnull %94, i64 0, i1 true)
  %96 = trunc i64 %95 to i32
  %97 = add i32 %16, 1
  %98 = icmp eq i32 %97, %96
  %99 = and i1 %93, %98
  br i1 %99, label %104, label %100

100:                                              ; preds = %90
  %101 = call ptr @_FortranAioBeginExternalListOutput(i32 -1, ptr nonnull @_QQcl.f5dcd0dd904886f9375fbbc896669ce8, i32 28)
  %102 = call i1 @_FortranAioOutputAscii(ptr %101, ptr nonnull @_QQcl.4E4F, i64 2)
  %103 = call i32 @_FortranAioEndIoStatement(ptr %101)
  ret void

104:                                              ; preds = %90, %81, %71, %61, %51, %41, %.preheader
  %105 = call ptr @_FortranAioBeginExternalListOutput(i32 -1, ptr nonnull @_QQcl.f5dcd0dd904886f9375fbbc896669ce8, i32 23)
  %106 = call i1 @_FortranAioOutputAscii(ptr %105, ptr nonnull @_QQcl.594553, i64 3)
  %107 = call i32 @_FortranAioEndIoStatement(ptr %105)
  %108 = call {} @_FortranAStopStatement(i32 0, i1 false, i1 false)
  unreachable
}

declare ptr @_FortranAioBeginExternalListInput(i32, ptr, i32) local_unnamed_addr

declare i1 @_FortranAioInputAscii(ptr, ptr, i64) local_unnamed_addr

declare i32 @_FortranAioEndIoStatement(ptr) local_unnamed_addr

declare i64 @_FortranAIndex1(ptr, i64, ptr, i64, i1) local_unnamed_addr

declare ptr @_FortranAioBeginExternalListOutput(i32, ptr, i32) local_unnamed_addr

declare i1 @_FortranAioOutputAscii(ptr, ptr, i64) local_unnamed_addr

declare {} @_FortranAStopStatement(i32, i1, i1) local_unnamed_addr

; Function Attrs: nocallback nofree nounwind willreturn memory(argmem: readwrite)
declare void @llvm.memcpy.p0.p0.i64(ptr noalias nocapture writeonly, ptr noalias nocapture readonly, i64, i1 immarg) #0

attributes #0 = { nocallback nofree nounwind willreturn memory(argmem: readwrite) }

!llvm.module.flags = !{!0, !1, !2}

!0 = !{i32 2, !"Debug Info Version", i32 3}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{!4, !4, i64 0}
!4 = !{!"any data access", !5, i64 0}
!5 = !{!"any access", !6, i64 0}
!6 = !{!"Flang Type TBAA Root"}
