#include<bits/stdc++.h>

using namespace std;
#define show(x) cout<< #x << "= " << x << " \n" ;
#define mod 998244353
#define INF 1000000000000000000
#define pie 3.14159265358979323846
#define ll long long int
#define pb push_back
#define popcnt __builtin_popcount
#define mp make_pair
#define pii pair<ll,ll>
#define prod(a,b) ((a*b)%mod)
#define set0(x) memset(x,0,sizeof(x))
#define setm1(x) memset(x,-1,sizeof(x))
#define printlist(arr) for(auto lstelem :arr) cout<< lstelem << " ";cout<<" \n" 
#define all(a) a.begin(),a.end()
#define sqre(a) ((a)*(a))

//maths stuff
ll powr(ll a,ll b){
    ll res=1;
    while(b){
        if(b%2)
            res=(a*res)%mod;
        a=(a*a)%mod;
        b/=2;
    }
    return res;
}

void extentded_eucledian(ll a,ll b,ll &ex,ll &ey){
    if(b==0){
        ex=1;
        ey=0;
        return;
    }
    extentded_eucledian(b,a%b,ex,ey);
    swap(ex,ey);
    ey-= (a/b)*ex;//gcd= x*a+y*b
}

ll dp[1002][1002][2];

int main(){ 
    #ifdef ONLINE_JUDGE
        //onlinesubmission
    #else
    freopen("input.txt","r",stdin);
    #endif
    ios_base::sync_with_stdio(0);cin.tie(0);cout.tie(0);
    string x,y; cin>> x >> y ;
    ll n=x.size(),m=y.size();
    set0(dp);
    ll ans=0;
    for(ll i=0;i<=n;++i){
        for(ll j=0;j<=m;++j){
            if(i>0) dp[i][j][0]=(dp[i][j][0]+1)%mod;
            if(j>0) dp[i][j][1]=(dp[i][j][1]+1)%mod;
            if(i>1){
                if(x[i-1]!=x[i-2]) dp[i][j][0]=(dp[i][j][0]+dp[i-1][j][0])%mod;
            }
            if(i>0 && j>0){
                if(x[i-1]!=y[j-1]){
                    dp[i][j][0]=(dp[i][j][0]+dp[i-1][j][1])%mod;
                    dp[i][j][1]=(dp[i][j][1]+dp[i][j-1][0])%mod;
                }
            }
            if(j>1){
                if(y[j-1]!=y[j-2]) dp[i][j][1]=(dp[i][j][1]+dp[i][j-1][1])%mod;
            }
            ans=(ans+dp[i][j][0]+dp[i][j][1])%mod;
        }
    }
    for(ll i=0;i<n;++i){
        ll j=i;
        while(j+1<n) if(x[j]!=x[j+1]) ++j; else break;
        ll l=(j-i+1),v=(( ((l+1)*l/2)%mod )*(m+1))%mod;
        ans=(ans-v+mod)%mod;
        i=j;
    }
    for(ll i=0;i<m;++i){
        ll j=i;
        while(j+1<m) if(y[j]!=y[j+1]) ++j; else break;
        ll l=(j-i+1),v=((((l+1)*l/2)%mod)*(n+1))%mod;
        ans=(ans-v+mod)%mod;
        i=j;
    }
    cout<< ans ;
    return 0;
}

//might1331 pratapSingh:"Try Kr raha hu mai bc, timer laga rakha h"