#include <bits/stdc++.h>
using namespace std;
const int maxn = 5050;
const int M = (int)1e9 + 7;
char a[maxn], b[maxn];
int s[maxn];
void add(int &a, int b) {
  a += b;
  if (a >= M) a -= M;
}
int main() {
  while (~scanf("%s %s", a + 1, b + 1)) {
    int n = strlen(a + 1);
    int m = strlen(b + 1);
    memset(s, 0, sizeof(s));
    int ans = 0;
    for (int i = 1; i <= m; i++) {
      for (int j = n; j >= 1; j--)
        if (a[j] == b[i]) {
          int t = (1 + s[j - 1]) % M;
          add(s[j], t);
          add(ans, t);
        }
    }
    printf("%d\n", ans);
  }
}
