#include <iostream>
#include <cstdio>
#include <cstring>
using namespace std;
//英语 看博友分析 抄博友程序 动态规划 背
int dp[10008];
char da[10008];
int main()
{
while(1)
{
cin>>da+1;
if(da[1]=='0')
{
break;
}
int n=strlen(da+1);
dp[0]=1;
//dp[1]=1;
for(int i=1;i<=n;i++)
{
dp[i]=0;
if(da[i]!='0')
{
dp[i]=dp[i-1];
}
if((da[i]<='6' && da[i-1]=='2')||da[i-1]=='1')//抄博友程序
{
dp[i]=dp[i]+dp[i-2];//背
}
}
cout<<dp[n]<<endl;
}
return 0;
}