kmp.cpp