#include <bits/stdc++.h>
using namespace std;
const int Maxn = 5e3 + 100;
const int Mode = 1e9 + 7;
long long Dp[Maxn][Maxn];
string s, t;
void Add(long long &x, long long y) { x = (x + y + Mode) % Mode; }
int main() {
  ios_base::sync_with_stdio(false);
  string ss;
  cin >> ss;
  s = "0" + ss;
  cin >> ss;
  t = "0" + ss;
  for (int i = 1; i < ((int)(s).size()); i++)
    for (int j = 1; j < ((int)(t).size()); j++) {
      if (s[i] == t[j]) Add(Dp[i][j], Dp[i - 1][j - 1] + 1);
      Add(Dp[i][j], Dp[i][j - 1]);
    }
  long long Res = 0;
  for (int i = 1; i < ((int)(s).size()); i++)
    Add(Res, Dp[i][((int)(t).size()) - 1]);
  cout << Res << endl;
}
