#include <cstdio>
# include <cstring>
char Input[5001] = "";
unsigned long long DP[5001];
int main()
{
scanf ("%s", Input);
while (strcmp(Input, "0"))
{
int Len = strlen (Input), Index = 1;
memset (DP, 0, sizeof DP);
DP[0] = 1;
while (Index < Len)
{
int temp = 0;
temp = (Input[Index-1]-'0') * 10;
temp += (Input[Index] -'0');
if (Input[Index]-'0') DP[Index] = DP[Index-1];
if (temp <= 26 && temp > 9) DP[Index] += DP[Index-2 < 0?0:Index-2];
//printf ("%d\t%llu\n",Index, DP[Index]);
Index++;
}
//printf ("%llu\t%s\n", DP[Len-1], Input);
printf ("%llu\n", DP[Len-1]);
scanf ("%s", Input);
}
}
I2luY2x1ZGUgPGNzdGRpbz4KIyBpbmNsdWRlIDxjc3RyaW5nPgpjaGFyIElucHV0WzUwMDFdID0gIiI7CnVuc2lnbmVkIGxvbmcgbG9uZyBEUFs1MDAxXTsKaW50IG1haW4oKQp7CiBzY2FuZiAoIiVzIiwgSW5wdXQpOwogd2hpbGUgKHN0cmNtcChJbnB1dCwgIjAiKSkKIHsKICBpbnQgTGVuID0gc3RybGVuIChJbnB1dCksIEluZGV4ID0gMTsKICBtZW1zZXQgKERQLCAwLCBzaXplb2YgRFApOwogIERQWzBdID0gMTsKICB3aGlsZSAoSW5kZXggPCBMZW4pCiAgewogICBpbnQgdGVtcCA9IDA7CiAgIHRlbXAgPSAoSW5wdXRbSW5kZXgtMV0tJzAnKSAqIDEwOwogICB0ZW1wICs9IChJbnB1dFtJbmRleF0gLScwJyk7CiAgIGlmIChJbnB1dFtJbmRleF0tJzAnKSBEUFtJbmRleF0gPSBEUFtJbmRleC0xXTsKICAgaWYgKHRlbXAgPD0gMjYgJiYgdGVtcCA+IDkpIERQW0luZGV4XSArPSBEUFtJbmRleC0yIDwgMD8wOkluZGV4LTJdOwogICAvL3ByaW50ZiAoIiVkXHQlbGx1XG4iLEluZGV4LCBEUFtJbmRleF0pOwogICBJbmRleCsrOwogIH0KICAvL3ByaW50ZiAoIiVsbHVcdCVzXG4iLCBEUFtMZW4tMV0sIElucHV0KTsKICBwcmludGYgKCIlbGx1XG4iLCBEUFtMZW4tMV0pOwogIHNjYW5mICgiJXMiLCBJbnB1dCk7CiB9Cn0=
MTIzMTIzMTMxMzUxNjU0OTg0NjUxMzIxMjExNjU1NjQ4NDExMzEyMzMxNTE2ODQ5ODQ2MTMyMTMyMTM1NDY0ODQ4MTEyMzEyMzEzMTM1MTY1NDk4NDY1MTMyMTIxMTY1NTY0ODQxMTMxMjMzMTUxNjg0OTg0NjEzMjEzMjEzNTQ2NDg0ODY4NDk4NDYxMzIxMzIxMzU0NjQ4NDgxMTIzMTIzMTMxMzUxNjU0OTg0NjUxMzIxMjExNjU1NjQ4NDExMzEyMzMxNTE2ODQ5ODQ2MTMyMTMyMTM1NDY0ODQ4MTMzCjI1MTE0CjExMTExMTExMTEKMzMzMzMzMzMzMwoxMjMxMjMxMzEzNTE2NTQ5ODQ2NTEzMjEyMTE2NTU2NDg0MTEzMTIzMzE1MTY4NDk4NDYxMzIxMzIxMzU0NjQ4NDgxMTIzMTIzMTMxMzUxNjU0OTg0NjUxMzIxMjExNjU1NjQ4NDExMzEyMzMxNTE2ODQ5ODQ2MTMyMTMyMTM1NDY0ODQ4Njg0OTg0NjEzMjEzMjEzNTQ2NDg0ODExMjMxMjMxMzEzNTE2NTQ5ODQ2NTEzMjEyMzEzMTM1MTY1NDk4NDY1MTMyMTIxMTY1NTY0ODQxMTMxMjMzMTUxNjg0OTg0NjEzMjEzMjEzNTQ2NDg0ODExMjMxMjMxMzEzNTE2NTQ5ODQ2NTEzMjEyMTE2NTU2NDg0MTEzMTIzMzE1MTY4NDk1MTY1NDk4NDY1MTMyMTIxMTY1NTY0ODQxMTMxMjMzMTUxNjg0OTg0NjEzMjEzMjEzNTQ2NDg0ODExMjMxMjMxMzEzNTE2NTQ5ODQ2NTEzMjEyMTE2NTU2NDg0MTEzMTIzMzE1MTY4NDk4NDYxMzIxMzIxMzU0NjQ4NDg2ODQ5ODQ2MTMyMTMyMTM1NDY0ODQ4MTEyMzEyMzEzMTM1MTY1NDk4NDY1MTMyMTIxMTY1NTY0ODQxMTMxMjMzMTUxNjg0OTg0NjEzMjEzMjEzNTQ2NDg0ODEzMzg0NjEzMjEzMjEzNTQ2NDg0ODY4NDk4NDYxMzIxMzIxMzU0NjQ4NDgxMTIzMTIzMTMxMzUxNjU0OTg0NjUxMzIxCjA=
123123131351654984651321211655648411312331516849846132132135464848112312313135165498465132121165564841131233151684984613213213546484868498461321321354648481123123131351654984651321211655648411312331516849846132132135464848133
25114
1111111111
3333333333
1231231313516549846513212116556484113123315168498461321321354648481123123131351654984651321211655648411312331516849846132132135464848684984613213213546484811231231313516549846513212313135165498465132121165564841131233151684984613213213546484811231231313516549846513212116556484113123315168495165498465132121165564841131233151684984613213213546484811231231313516549846513212116556484113123315168498461321321354648486849846132132135464848112312313135165498465132121165564841131233151684984613213213546484813384613213213546484868498461321321354648481123123131351654984651321
0