#include <iostream>
#include <bits/stdc++.h>
using namespace std;
long long int dp[5002],len;
string s;
int solve(int i){
if(i==0 || i==1) return 1;
if(!dp[i]){
if(s[i-1]-'0' >0) dp[i]+=solve(i-1);
if(s[i-2]-'0' <2 || (s[i-1]-'0'<=6)) dp[i]+=solve(i-2);
}
return dp[i];
}
int main() {
cin>>s;
while(s[0]-'0'){
// cout<<s[0]-'0'<<endl;
len=s.length();
memset(dp,0,sizeof(dp));
cout<<solve(len-1)<<endl;
cin>>s;
}
// your code goes here
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8Yml0cy9zdGRjKysuaD4KdXNpbmcgbmFtZXNwYWNlIHN0ZDsKbG9uZyBsb25nIGludCBkcFs1MDAyXSxsZW47CnN0cmluZyBzOwppbnQgc29sdmUoaW50IGkpewoJaWYoaT09MCB8fCBpPT0xKSByZXR1cm4gMTsKCWlmKCFkcFtpXSl7CgkJaWYoc1tpLTFdLScwJyA+MCkgZHBbaV0rPXNvbHZlKGktMSk7CgkJaWYoc1tpLTJdLScwJyA8MiB8fCAoc1tpLTFdLScwJzw9NikpIGRwW2ldKz1zb2x2ZShpLTIpOwoJfQoJcmV0dXJuIGRwW2ldOwp9CmludCBtYWluKCkgewoJY2luPj5zOwoJd2hpbGUoc1swXS0nMCcpewoJICAgLy8gY291dDw8c1swXS0nMCc8PGVuZGw7CgkJbGVuPXMubGVuZ3RoKCk7CgkJbWVtc2V0KGRwLDAsc2l6ZW9mKGRwKSk7CgkJY291dDw8c29sdmUobGVuLTEpPDxlbmRsOwoJCWNpbj4+czsKCX0KCS8vIHlvdXIgY29kZSBnb2VzIGhlcmUKCXJldHVybiAwOwp9