package main
import (
"bufio"
"fmt"
"os"
)
func main() {
reader := bufio.NewReader(os.Stdin)
var n, m int
fmt.Fscan(reader, &n, &m)
var s, t string
fmt.Fscan(reader, &s, &t)
L := make([]int, m)
pos := 0
for i := 0; i < m; i++ {
for s[pos] != t[i] {
pos++
}
L[i] = pos
pos++
}
R := make([]int, m)
pos = n - 1
for i := m - 1; i >= 0; i-- {
for s[pos] != t[i] {
pos--
}
R[i] = pos
pos--
}
ans := 0
for i := 0; i < m-1; i++ {
if R[i+1]-L[i] > ans {
ans = R[i+1] - L[i]
}
}
fmt.Println(ans)
}