#include<bits/stdc++.h>
#define ll long long
#define heap priority_queue
using namespace std;
const ll maxn=1000+5,inf=9e17,mod=998244353;
ll ans,dp[maxn][maxn][2],ra[maxn],rb[maxn];
string a,b;
ll n,m;
int main()
{
	cin>>a>>b;
	n=a.size();
	m=b.size();
	a="%"+a;
	b="%"+b;
	for(int i=1;i<=n;i++)
		ra[i]=(a[i]!=a[i-1]?ra[i-1]:0ll)+1;
	for(int i=1;i<=m;i++)
		rb[i]=(b[i]!=b[i-1]?rb[i-1]:0ll)+1;
	for(int i=1;i<=n;i++)
		for(int j=1;j<=m;j++)
		{
			dp[i][j][0]=((a[i]!=b[j]?rb[j]:0ll)+(a[i-1]!=a[i]?dp[i-1][j][0]:0ll)+(b[j]!=a[i]?dp[i-1][j][1]:0ll))%mod;
			dp[i][j][1]=((b[j]!=a[i]?ra[i]:0ll)+(b[j-1]!=b[j]?dp[i][j-1][1]:0ll)+(a[i]!=b[j]?dp[i][j-1][0]:0ll))%mod;
		}
	for(int i=1;i<=n;i++)
		for(int j=1;j<=m;j++)
			ans=(ans+dp[i][j][0]+dp[i][j][1])%mod;
	cout<<ans<<"\n";
	return 0;
}