import sys input = lambda : sys.stdin.readline().rstrip() write = lambda x: sys.stdout.write(x+"\n") debug = lambda x: sys.stderr.write(x+"\n") writef = lambda x: print("{:.12f}".format(x)) # list 多重リスト生成 def dlist(*l, fill=None): if len(l)==1: return [fill]*l[0] ll = l[1:] return [dlist(*ll, fill=fill) for _ in range(l[0])] s = list(map(int, input())) n = len(s) total = 0 num = 0 for i,c in enumerate(s): if c: total += i num += 1 dp = dlist(total+1, n+1, fill=0) dp[0][0] = 1 for i in range(num): ndp = dlist(total+1, n+1, fill=0) for j in range(total+1): for p in range(n): val = dp[j][p] for k in range(p+1, n+1): if (k-1)+j > total: break ndp[k-1+j][k] += val dp = ndp ans = sum(dp[total]) print(ans)