add kmp.c