#include<iostream>
#include<vector>
using namespace std;
string S;
vector<int>ids;
const int off=30*30;
long dp[61][61][off*2+1];
main()
{
	cin>>S;
	for(int i=0;i<S.size();i++)if(S[i]=='1')ids.push_back(i);
	dp[0][0][off]=1;
	for(int i=0;i<S.size();i++)for(int j=0;j<=ids.size();j++)
	{
		for(int k=0;k<=off*2;k++)
		{
			dp[i+1][j][k]+=dp[i][j][k];
			if(j<ids.size())
			{
				int nk=k+i-ids[j];
				if(nk>=0&&nk<=off*2)dp[i+1][j+1][nk]+=dp[i][j][k];
			}
		}
	}
	cout<<dp[S.size()][ids.size()][off]<<endl;
}