← Home
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)
}