def nCk(n,k): ret = 1 for i in range(n,n - k,-1): ret *= i for i in range(k,1,-1): ret //= i return ret C = {} for i in range(ord('a'),ord('z') + 1): C[chr(i)] = int(input()) if C['h'] < 1 or C['e'] < 1 or C['l'] < 3 or C['o'] < 2 or C['w'] < 1 or C['r'] < 1 or C['d'] < 1: print(0) else: ans = 1 ans *= C['h'] * C['e'] * C['w'] * C['r'] * C['d'] ans *= (C['o'] // 2) * (C['o'] - C['o'] // 2) m = 1 for i in range(1,C['l'] // 2 + 1): m = max(m,nCk(C['l'] - i,2) * i) print(ans * m)