← Home
package main

import (
	"fmt"
	"io"
	"os"
)

func nextToken(data []byte, idx *int) []byte {
	n := len(data)
	for *idx < n && data[*idx] <= 32 {
		*idx++
	}
	start := *idx
	for *idx < n && data[*idx] > 32 {
		*idx++
	}
	return data[start:*idx]
}

func main() {
	data, _ := io.ReadAll(os.Stdin)
	idx := 0
	s := nextToken(data, &idx)
	t := nextToken(data, &idx)

	n := len(s)
	m := len(t)

	pref := make([]bool, m+1)
	j := 0
	for i := 0; i < m; i++ {
		if j < n && t[i] == s[j] {
			j++
		}
		if j == n {
			pref[i+1] = true
		}
	}

	suf := make([]bool, m+1)
	j = n - 1
	for i := m - 1; i >= 0; i-- {
		if j >= 0 && t[i] == s[j] {
			j--
		}
		if j < 0 {
			suf[i] = true
		}
	}

	ans := 0
	for i := 0; i <= m; i++ {
		if pref[i] && suf[i] {
			ans++
		}
	}

	fmt.Print(ans)
}