#include<bits/stdc++.h>
long long int len;
long long int dp[5001];
char str[5001];
long long int solve(int i)
{
	if(str[i]=='0')
		return 0;
	if(i+1>=len)
		return 1;
	if(dp[i])
		return dp[i];
	long long int ans=0;
	ans+=solve(i+1);
	if(i+1<len && 10*(str[i]-'0')+(str[i+1]-'0')<=26)
		ans+=solve(i+2);
	return dp[i]=ans;
}
int main()
{
	while(1)
	{
		scanf("%s",str);
		if(str[0]=='0')
			break;
		memset(dp,0,5001);
		len=strlen(str);
		printf("%lld\n",solve(0));
	}
	return 0;
}
