#include<iostream>
using namespace std;
int recur(string str,int i,int l){
int a,b,count;
if((i+1>l)&&(i+2>l))
{
count=count+1;
return count;
}
else{
if(i+1<=l)
count=count+recur(str,i+1,l);
if(i+2<=l){
a=str[i+1]-'0';
a=a*10;
b=str[i+2]-'0';
b=a+b;
if((b>=1)&&(b<=26))
count=count+recur(str,i+2,l);
}
}
return count;
}
int main(){
int i;
string str1,str2;
cin>>str1;
// cout<<str1.length();
for(i=0;i<str1.length();i++)
str2[i+1]=str1[i];
int l=str1.length();
if(str1=="0")
return 0;
else
{
i=0;
int count =0;
count=recur(str2,i,l);
cout<<count<<"\n";
}
return 0;
}
I2luY2x1ZGU8aW9zdHJlYW0+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CgppbnQgIHJlY3VyKHN0cmluZyBzdHIsaW50IGksaW50IGwpewoJaW50IGEsYixjb3VudDsKCQoJaWYoKGkrMT5sKSYmKGkrMj5sKSkKCXsKCQljb3VudD1jb3VudCsxOwoJCXJldHVybiBjb3VudDsKCX0KCWVsc2V7CgkKCWlmKGkrMTw9bCkKCWNvdW50PWNvdW50K3JlY3VyKHN0cixpKzEsbCk7CglpZihpKzI8PWwpewoJCWE9c3RyW2krMV0tJzAnOwoJCWE9YSoxMDsKCQliPXN0cltpKzJdLScwJzsKCQliPWErYjsKCQlpZigoYj49MSkmJihiPD0yNikpCgkJY291bnQ9Y291bnQrcmVjdXIoc3RyLGkrMixsKTsKCgl9Cn0KcmV0dXJuIGNvdW50OwoKfQppbnQgbWFpbigpewoJaW50IGk7Cgkgc3RyaW5nIHN0cjEsc3RyMjsKCSBjaW4+PnN0cjE7CgkvLyBjb3V0PDxzdHIxLmxlbmd0aCgpOwoJZm9yKGk9MDtpPHN0cjEubGVuZ3RoKCk7aSsrKQoJc3RyMltpKzFdPXN0cjFbaV07CglpbnQgbD1zdHIxLmxlbmd0aCgpOwoJCWlmKHN0cjE9PSIwIikKCQlyZXR1cm4gMDsKCQllbHNlCgkJewkKCQkJaT0wOwoJCQlpbnQgY291bnQgPTA7CgkJCWNvdW50PXJlY3VyKHN0cjIsaSxsKTsKCQkJY291dDw8Y291bnQ8PCJcbiI7CgkJfQoJCgkKCQoJcmV0dXJuIDA7Cn0=