#include <fstream>
#include <cstring>
#define MOD 3210121
using namespace std;
ifstream fin("iv.in");
ofstream fout("iv.out");
int sol,l1,l2,i,j,D[2][501][501];
char a[501],b[501];
int main(){
fin>>(a+1);
fin>>(b+1);
l1=strlen(a+1);
l2=strlen(b+1);
if(a[1]==a[l1])
D[1][1][1]=1;
if(a[1]==b[l2])
D[1][1][0]=1;
if(b[1]==b[l2])
D[1][0][0]=1;
if(a[l1]==b[1])
D[1][0][1]=1;
for(int p=2;p<=(l1+l2)/2;p++){
for(i=0;i<=l1&&i<=p;i++){
for(j=0;j+i<=l1&&j<=p;j++){
if(a[i]==a[l1-j+1]&&i>=1&&j>=1){
D[0][i][j]+=D[1][i-1][j-1];
D[0][i][j]%=MOD;
}
if(a[i]==b[l2-p+j+1]&&i>=1&&j<p){
D[0][i][j]+=D[1][i-1][j];
D[0][i][j]%=MOD;
}
if(b[p-i]==b[l2-p+j+1]&&i<p&&j<p){
D[0][i][j]+=D[1][i][j];
D[0][i][j]%=MOD;
}
if(a[l1-j+1]==b[p-i]&&i<p&&j>=1){
D[0][i][j]+=D[1][i][j-1];
D[0][i][j]%=MOD;
}
}
}
for(i=0;i<=p;i++)
for(j=0;j<=p;j++){
D[1][i][j]=D[0][i][j];
D[0][i][j]=0;
}
}
if((l1+l2)%2){
for(i=0;i<l1;i++){
sol+=(D[1][i][l1-i-1]+D[1][i][l1-i])%MOD;
sol%=MOD;
}
}else{
for(i=0;i<=l1;i++){
sol+=D[1][i][l1-i];
sol%=MOD;
}
}
fout<<sol;
return 0;
}