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