#include <iostream>
#include <map>
#include <cstdio>
#include <cstring>
#include <vector>
#include <cmath>
using namespace std;
#define B __int128
#define mod 998244353
map<B,int>mp[111];
int dfs(int l,B S){
if(!l) return 1;
if(mp[l].count(S)) return mp[l][S];
int sum = dfs(l - 1,S / 2) * (S % 2 + 1) % mod;
B x = 0,y;
for(int i = 1;i <= l;i++){
x = x << 1 | 1;y = S & x;
for(int j = i + 1;j <= l;j += i){
sum = (sum + 111 * dfs(i,y &= S >> j - i) * dfs(l - j,S >> j)) % mod;
}
}
return mp[l][S] = sum;
}
char s[111];int l;
signed main(){
cin>>s;l = strlen(s);
B S = 0;for(int i = l;i--;) S = S << 1 | (s[i] == 'l');
cout<<dfs(l,S);
return 0;
}