#include<bits/stdc++.h>
using namespace std;
const int N=110;
const int mod=998244353;
int gi() {
    int x=0,o=1;char ch=getchar();
    while((ch<'0'||ch>'9')&&ch!='-') ch=getchar();
    if(ch=='-') o=-1,ch=getchar();
    while(ch>='0'&&ch<='9') x=x*10+ch-'0',ch=getchar();
    return x*o;
}
string s;
map<string,int> f,g;
int F(string s);
int G(string s);
int G(string s) {
    if(g.count(s)) return g[s];
    int n=s.length(),ret=0;
    if(n==1) return g[s]=s[0]-'0'+1;
    for(int i=1;i<n;i++)
        if(n%i==0) {
            string nxt;
            for(int j=0;j<i;j++) {
                int t=1;
                for(int k=j;k<n;k+=i) t&=(s[k]-'0');
                nxt+=char(t+'0');
            }
            ret=(ret+F(nxt))%mod;
        }
    return g[s]=ret;
}
int F(string s) {
    if(f.count(s)) return f[s];
    int ret=0,n=s.length();
    if(!n) return 1;
    for(int i=1;i<=n;i++) ret=(ret+1ll*G(s.substr(0,i))*F(s.substr(i,n))%mod)%mod;
    return f[s]=ret;
}
int main() {
    cin>>s;
    cout<<F(s);
    return 0;
}
