#include <iostream>
#include <vector>
#include <string>
using namespace std;
long long check(vector<long long> &ans,int i,string st)
{
if(i<=0) return 1;
if(ans[i]==-1)
{
long long b1,b2;b1=0;b2=0;
if(st[i]!='0')
b1=check(ans,i-1,st);
if(i!=0)
{
if(st[i-1]=='1')
b2=check(ans,i-2,st);
else if(st[i-1]=='2'&&(st[i]>='0'&&st[i]<='6'))
b2=check(ans,i-2,st);
}
ans[i]=b1+b2;
}
return ans[i];
}
int main() {
string st;
cin>>st;
int n=st.length();
vector<long long> ans;
for(int i=0;i<n;i++)
ans.push_back(-1);
long long a=check(ans,n-1,st);
cout<<a;
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8dmVjdG9yPgojaW5jbHVkZSA8c3RyaW5nPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwpsb25nIGxvbmcgY2hlY2sodmVjdG9yPGxvbmcgbG9uZz4gJmFucyxpbnQgaSxzdHJpbmcgc3QpCnsKCWlmKGk8PTApIHJldHVybiAxOwoJaWYoYW5zW2ldPT0tMSkKCXsKCQlsb25nIGxvbmcgYjEsYjI7YjE9MDtiMj0wOwoJCWlmKHN0W2ldIT0nMCcpCgkJYjE9Y2hlY2soYW5zLGktMSxzdCk7CgkJaWYoaSE9MCkKCQl7CgkJCWlmKHN0W2ktMV09PScxJykKCQkJYjI9Y2hlY2soYW5zLGktMixzdCk7CgkJCWVsc2UgaWYoc3RbaS0xXT09JzInJiYoc3RbaV0+PScwJyYmc3RbaV08PSc2JykpCgkJCWIyPWNoZWNrKGFucyxpLTIsc3QpOwoJCX0KCQlhbnNbaV09YjErYjI7Cgl9CglyZXR1cm4gYW5zW2ldOwp9CmludCBtYWluKCkgewoJc3RyaW5nIHN0OwoJY2luPj5zdDsKCWludCBuPXN0Lmxlbmd0aCgpOwoJdmVjdG9yPGxvbmcgbG9uZz4gYW5zOwoJZm9yKGludCBpPTA7aTxuO2krKykKCWFucy5wdXNoX2JhY2soLTEpOwoJbG9uZyBsb25nIGE9Y2hlY2soYW5zLG4tMSxzdCk7Cgljb3V0PDxhOwoJcmV0dXJuIDA7Cn0=