← Home
package main

import (
	"bufio"
	"fmt"
	"os"
)

func main() {
	var n, m int
	reader := bufio.NewReader(os.Stdin)
	fmt.Fscan(reader, &n, &m)

	var s, t string
	fmt.Fscan(reader, &s)
	fmt.Fscan(reader, &t)

	L := make([]int, m)
	R := make([]int, m)

	j := 0
	for i := 0; i < m; i++ {
		for s[j] != t[i] {
			j++
		}
		L[i] = j
		j++
	}

	j = n - 1
	for i := m - 1; i >= 0; i-- {
		for s[j] != t[i] {
			j--
		}
		R[i] = j
		j--
	}

	maxDiff := 0
	for i := 0; i < m-1; i++ {
		diff := R[i+1] - L[i]
		if diff > maxDiff {
			maxDiff = diff
		}
	}

	fmt.Println(maxDiff)
}