#include <iostream>
using namespace std;
long long f(string s){
if (s.length() == 1) {
return 1;
}
if (s.length() == 2) {
if (s[0] > '0' && s[0] < '3') {
if (s[1] > '0' && s[1] < '7') {
return 2;
}
else if(s[1] == '0'){
return 1;
}
else{
return 1;
}
}
else{
return 1;
}
}
if (s[0] > '0' && s[0] < '3') {
if (s[1] > '0' && s[1] < '7') {
return f(string(s.begin() + 1, s.end())) + f(string(s.begin() + 2, s.end()));
}
else if(s[1] == '0'){
return f(string(s.begin() + 2, s.end()));
}
else{
return f(string(s.begin() + 1, s.end()));
}
}
else{
return f(string(s.begin() + 1, s.end()));
}
}
int main() {
while (true) {
string s;
cin >> s;
if (s == "0") {
break;
}
cout << f(s) << endl;
}
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKbG9uZyBsb25nIGYoc3RyaW5nIHMpewogICAgaWYgKHMubGVuZ3RoKCkgPT0gMSkgewogICAgICAgIHJldHVybiAxOwogICAgfQogICAgCiAgICBpZiAocy5sZW5ndGgoKSA9PSAyKSB7CiAgICAgICAgaWYgKHNbMF0gPiAnMCcgJiYgc1swXSA8ICczJykgewogICAgICAgICAgICBpZiAoc1sxXSA+ICcwJyAmJiBzWzFdIDwgJzcnKSB7CiAgICAgICAgICAgICAgICByZXR1cm4gMjsKICAgICAgICAgICAgfQogICAgICAgICAgICBlbHNlIGlmKHNbMV0gPT0gJzAnKXsKICAgICAgICAgICAgICAgIHJldHVybiAxOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGVsc2V7CiAgICAgICAgICAgICAgICByZXR1cm4gMTsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgICAgICBlbHNlewogICAgICAgICAgICByZXR1cm4gMTsKICAgICAgICB9CiAgICB9CiAgICAKICAgIGlmIChzWzBdID4gJzAnICYmIHNbMF0gPCAnMycpIHsKICAgICAgICBpZiAoc1sxXSA+ICcwJyAmJiBzWzFdIDwgJzcnKSB7CiAgICAgICAgICAgIHJldHVybiBmKHN0cmluZyhzLmJlZ2luKCkgKyAxLCBzLmVuZCgpKSkgKyBmKHN0cmluZyhzLmJlZ2luKCkgKyAyLCBzLmVuZCgpKSk7CiAgICAgICAgfQogICAgICAgIGVsc2UgaWYoc1sxXSA9PSAnMCcpewogICAgICAgICAgICByZXR1cm4gZihzdHJpbmcocy5iZWdpbigpICsgMiwgcy5lbmQoKSkpOwogICAgICAgIH0KICAgICAgICBlbHNlewogICAgICAgICAgICByZXR1cm4gZihzdHJpbmcocy5iZWdpbigpICsgMSwgcy5lbmQoKSkpOwogICAgICAgIH0KICAgIH0KICAgIGVsc2V7CiAgICAgICAgcmV0dXJuIGYoc3RyaW5nKHMuYmVnaW4oKSArIDEsIHMuZW5kKCkpKTsKICAgIH0KfQoKaW50IG1haW4oKSB7CiAgICB3aGlsZSAodHJ1ZSkgewogICAgICAgIHN0cmluZyBzOwogICAgICAgIGNpbiA+PiBzOwogICAgICAgIGlmIChzID09ICIwIikgewogICAgICAgICAgICBicmVhazsKICAgICAgICB9CiAgICAgICAgY291dCA8PCBmKHMpIDw8IGVuZGw7CiAgICB9CgogICAgcmV0dXJuIDA7Cn0=