add kmp search