</>
unordered_setst;
int dp[5001];
void store(){
for(int i=1;i<=26;i++)st.insert(to_string(i));
}
int get(int index,string &s){
if(index>=s.length())
return 1;
if(dp[index]!=-1)return dp[index];
int ans=0;
for(int i=index;i<s.length();i++){
string a=s.substr(index,i-index+1);
if(st.find(a)!=st.end())
ans+=get(i+1,s);
}
return dp[index]=ans;
}
void solve()
{
string s;cin>>s;memset(dp,-1,sizeof(dp));
cout<<get(0,s)<<’\n’;
}
</>