func_code_string: #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 