#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; }