#include<bits/stdc++.h>
using namespace std;
char s[50001];
int len;
int dp[99][50001];
int rec(int val,int pos)
{
if(val<1||val>26)
return 0;
if(pos>=len-1)
return 1;
if(dp[val][pos]!=-1)
return dp[val][pos]=rec(s[pos]-48,pos+1)+rec((s[pos]-48)*10+(s[pos+1]-48),pos+2);
}
int main()
{
while(1){
scanf("%s",s);
if(s[0]=='0')
break;
for(int i=0;i<99;i++)
{
for(int j=0;j<50001;j++)
dp[i][j]=-1;
}
len=strlen(s);
int ans=rec(1,0);
cout<<ans<<"\n";
}
return 0;
}
I2luY2x1ZGU8Yml0cy9zdGRjKysuaD4KdXNpbmcgbmFtZXNwYWNlIHN0ZDsKY2hhciBzWzUwMDAxXTsKaW50IGxlbjsKaW50IGRwWzk5XVs1MDAwMV07CmludCByZWMoaW50IHZhbCxpbnQgcG9zKQp7CgogaWYodmFsPDF8fHZhbD4yNikKICByZXR1cm4gMDsKIGlmKHBvcz49bGVuLTEpCiAgICByZXR1cm4gMTsKIGlmKGRwW3ZhbF1bcG9zXSE9LTEpCiByZXR1cm4gZHBbdmFsXVtwb3NdPXJlYyhzW3Bvc10tNDgscG9zKzEpK3JlYygoc1twb3NdLTQ4KSoxMCsoc1twb3MrMV0tNDgpLHBvcysyKTsKfQoKaW50IG1haW4oKQp7CndoaWxlKDEpewogIHNjYW5mKCIlcyIscyk7CiBpZihzWzBdPT0nMCcpCiAgICBicmVhazsKIGZvcihpbnQgaT0wO2k8OTk7aSsrKQogewogICAgIGZvcihpbnQgaj0wO2o8NTAwMDE7aisrKQogICAgICAgIGRwW2ldW2pdPS0xOwogfQogIGxlbj1zdHJsZW4ocyk7CiAgIGludCBhbnM9cmVjKDEsMCk7CgogIAoKICBjb3V0PDxhbnM8PCJcbiI7Cgp9CnJldHVybiAwOwp9Cg==