#include #define popc(x) __builtin_popcount(x) using namespace std; const int N=1e6+5,mod=998244353; inline void add(int &x,int v){ x=(x+v)%mod; } int n,a[N],s[N],f[N],nxt[N][8],tmp[8]; int main(){ ios::sync_with_stdio(0); cin.tie(0); string str; cin>>str; n = str.size(); for(int i=1;i<=n;i++) a[i]=(str[i-1]-'A'); int fl=1; for(int i=1;i<=n;i++) fl&=(a[i]==a[1]); if(fl){ cout<<1<<"\n"; return 0; } for(int i=1;i<=n;i++){ s[i]=s[i-1]^(1<=1;i--){ for(int k=0;k<8;k++) nxt[i][k]=nxt[i+1][k]; nxt[i][s[i]]=i; } for(int i=n+1,j=n+1;i>=1;i--){ if(((s[i-1]^s[n])==0 || (s[i-1]^s[n])==7) && i>1) f[i]=1; for(int k=1;k<4;k++){ int x=(k^s[i-1]),y=(7^k^s[i-1]); add(f[i],f[min(nxt[i][x],nxt[i][y])+1]); } } cout<