#include #define N 100 long long comb[N + 1][N + 1]; using namespace std; int main(){ for (int i = 0; i <= N; i++){ comb[i][0] = 1; for (int j = 1; j <= i; j++){ comb[i][j] = comb[i - 1][j] + comb[i - 1][j - 1]; } } int C['z' - 'a' + 1]; char hw[] = { 'h', 'e', 'l', 'o', 'w', 'r', 'd', -1 }; int c[] = { 1, 1, 3, 2, 1, 1, 1, -1 }; int c2[] = { 1, 1, 2, 1, 1, 1, 1 }; for (int i = 'a'; i <= 'z'; i++){ cin >> C[i - 'a']; } long long ans = 1; for (int i = 0; c[i] != -1; i++){ if (C[hw[i] - 'a'] - c[i] < 0){ ans = 0; break; } if (c[i] == c2[i]){ ans *= comb[C[hw[i] - 'a']][c2[i]]; } else{ long long t2 = c[i] - c2[i]; long long t1 = C[hw[i] - 'a'] - t2; long long max = -1; //cout << t1 << "," << t2 << endl; while (t1 >= c2[i]){ //cout << comb[t1][c2[i]] << "|" << comb[t2][c[i] - c2[i]] << endl; if (max