int N, M, S[2000], T[2000];
mint dp[2][2001][2001];

{
  int i, j, k;
  mint res;
  rd(N,M,S(N),T(M));

  dp[0][0][0] = 1;
  rep(i,N+1) rep(j,M+1){
    if(i<N) dp[0][i+1][j] += dp[0][i][j];
    if(j<M) dp[1][i][j+1] += dp[0][i][j] + dp[1][i][j];
    if(i<N && j<M && S[i]==T[j]) dp[0][i+1][j+1] += dp[0][i][j] + dp[1][i][j];
  }

  res = dp[0][N][M] + dp[1][N][M];
  wt(res);
}
