#include<bits/stdc++.h>
using namespace std;
char a[1010],b[1010];
int n,m;
long long dp[1010][1010][2],mod=998244353,ans=0,w1[1010],w2[1010];
long long MOD(long long p)
{
	return (p%mod+mod)%mod;
}
int main()
{
	//freopen("xf.in","r",stdin);
	//freopen("xf.out","w",stdout);
	scanf("%s",a+1);
	scanf("%s",b+1);
	n=strlen(a+1);
	m=strlen(b+1);
	dp[0][1][1]=1;dp[1][0][0]=1;
	if(a[1]!=b[1])
	{
		dp[1][1][0]=1;
		dp[1][1][1]=1;
	}
	for(int i=1;i<=n;i++)
	if(a[i]!=a[i-1])w1[i]=w1[i-1]+1;
	else w1[i]=1;
	for(int i=1;i<=m;i++)
	if(b[i]!=b[i-1])w2[i]=w2[i-1]+1;
	else w2[i]=1;
	for(int i=1;i<=n;i++)
	{
		for(int j=1;j<=m;j++)
		{
			if(i==1&&j==1)continue;
			/*if(a[i]!=a[i-1])
			dp[i][0][0]=dp[i-1][0][0]+1;
			else dp[i][0][0]=1;
			
			if(b[j]!=b[j-1])
			dp[0][j][1]=dp[0][j-1][1]+1;
			else dp[0][j][1]=1;
			*/
			if(a[i]!=a[i-1])
			dp[i][j][0]+=dp[i-1][j][0];
			if(a[i]!=b[j])
			dp[i][j][0]+=dp[i-1][j][1]+w2[j];
			if(b[j]!=a[i])
			dp[i][j][1]+=dp[i][j-1][0]+w1[i];
			if(b[j]!=b[j-1])
			dp[i][j][1]+=dp[i][j-1][1];
			dp[i][j][0]=MOD(dp[i][j][0]);
			dp[i][j][1]=MOD(dp[i][j][1]);
		}
	}
	for(int i=1;i<=n;i++)
	{
		for(int j=1;j<=m;j++)
		{
			ans+=dp[i][j][0];
			ans+=dp[i][j][1];
			ans=MOD(ans);
		}
	}
	printf("%lld\n",ans);
	return 0;
}

