Hamed has recently found a string $*t*$ and suddenly became quite fond of it. He spent several days trying to find all occurrences of $*t*$ in other strings he had. Finally he became tired and started thinking about the following problem. Given a string $*s*$ how many ways are there to extract $*k* ≥ 1$ non-overlapping substrings from it such that each of them contains string $*t*$ as a substring? More formally, you need to calculate the number of ways to choose two sequences $*a*_{1}, *a*_{2}, ..., *a*_{*k*}$ and $*b*_{1}, *b*_{2}, ..., *b*_{*k*}$ satisfying the following requirements:
$*k* ≥ 1$


$*t*$is a substring of string$*s*_{*a*_{*i*}}*s*_{*a*_{*i*} + 1}... *s*_{*b*_{*i*}}$(string$*s*$is considered as$1$-indexed).
As the number of ways can be rather large print it modulo $10^{9} + 7$.
Input
Input consists of two lines containing strings $*s*$ and $*t*$ ($1 ≤ |*s*|, |*t*| ≤ 10^{5}$). Each string consists of lowercase Latin letters.
Output
Print the answer in a single line.
样例
ababa
aba
5
welcometoroundtwohundredandeightytwo
d
274201
ddd
d
12
题面与样例版权归 Codeforces 及出题人所有;中文翻译由 AI 生成(CI 管线),如有出入请以原文为准。