asdasdasd
asd
KMP explanation