#include using namespace std; typedef long long ll; int main(){ string S; cin >> S; int N = S.size(); int M = 0; int L = 0; for(int i = 0; i < N; i++){ M += (S[i] - '0'); L += (S[i] - '0') * (i + 1); } vector>dp(M + 1, vector(L + 1, 0)); dp[0][0] = 1; for(int i = 1; i <= M; i++){ for(int j = 0; j <= L; j++){ if(j - N - 1 >= 0) dp[i][j] -= dp[i - 1][j - N - 1]; if(j - i >= 0) dp[i][j] += dp[i][j - i] + dp[i - 1][j - i]; } } cout << dp[M][L] << endl; return 0; }