#include <bits/stdc++.h>
using namespace std;
const int MOD=998244353;
map<string, int> f,g;
int solve(string s) {
	if(s=="1") return f[s]=g[s]=2;
	if(s=="0") return f[s]=g[s]=1;
	if(f.count(s)) return f[s];
	int len=s.length();
	int ans=0;
	for(int i=1;i<len;i++){
		solve(s.substr(0,i));
		solve(s.substr(i,len-i));
		ans=(ans+1LL*g[s.substr(0,i)]*f[s.substr(i,len-i)]%MOD)%MOD;
	}
	for(int i=1;i<len;i++)if(len%i==0){
		bool f[102]={0};
		for(int j=0;j<len;j++){
			if(s[j]=='0') f[j%i]=1;
		}
		string str="";
		for(int j=0;j<i;j++){
			str+=(f[j]?'0':'1');
		}
		ans=(ans+solve(str))%MOD;
		(g[s]+=solve(str))%=MOD;
	}
	return f[s]=ans;
}
int main() {
	string s; cin>>s;
	cout<<solve(s)<<endl;
}


