← Home
package main

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

func main() {
	in := bufio.NewReader(os.Stdin)
	var s, t string
	fmt.Fscan(in, &s)
	fmt.Fscan(in, &t)

	mod := int64(1000000007)
	n, m := len(s), len(t)
	sb := []byte(s)
	tb := []byte(t)

	prevPref := make([]int64, m+1)
	var ans int64

	for i := 0; i < n; i++ {
		cur := make([]int64, m)
		curPref := make([]int64, m+1)
		for j := 0; j < m; j++ {
			if sb[i] == tb[j] {
				val := prevPref[j] + 1
				if val >= mod {
					val -= mod
				}
				cur[j] = val
			}
			curPref[j+1] = curPref[j] + cur[j]
			if curPref[j+1] >= mod {
				curPref[j+1] -= mod
			}
		}
		ans += curPref[m]
		if ans >= mod {
			ans -= mod
		}
		prevPref = curPref
	}

	fmt.Println(ans % mod)
}