def nC2(n): return n * (n - 1) // 2 N = 26 li = [chr(ord('a') + i) for i in range(N)] c = [int(input()) for i in range(N)] chrs = set("helloworld") dic = {} for x in chrs: dic[x] = c[ord(x) - ord('a')] ans = 1 for x, n in dic.items(): if x == 'l': if n < 3: print(0) exit() t = 1 rest = n - 3 for i in range(rest + 1): # 余ったlをどう割り振るか t = max(t, nC2(i + 2) * (1 + rest - i)) ans *= t elif x == 'o': if n < 2: print(0) exit() t = 1 rest = n - 2 for i in range(rest + 1): # 余ったlをどう割り振るか t = max(t, (i + 1) * (1 + rest - i)) ans *= t else: if n < 1: print(0) exit() ans *= n print(ans)