#include<iostream> #include<sstream> #include<cstdio> #include<cstring> #include<algorithm> #include<string> #include<vector> #include<cmath> #include<set> #include<map> #include<stack> #include<queue> #include<numeric> #include<functional> #include<complex> using namespace std; #define BET(a,b,c) ((a)<=(b)&&(b)<(c)) #define FOR(i,n) for(int i=0,i##_end=(int(n));i<i##_end;i++) #define SZ(x) (int)(x.size()) #define ALL(x) (x).begin(),(x).end() #define MP make_pair #define FOR_EACH(it,v) for(__typeof(v.begin()) it=v.begin(),it_end=v.end() ; it != it_end ; it++) typedef vector<int> VI; typedef vector<VI> VVI; int main() { VI h(26); FOR(i,26) { int x; cin>>x; h[i] = x; } long long ans = 1; for(auto c : string("hewrd")){ ans *= h[c - 'a']; } int oNum = h['o' - 'a']; if(oNum < 2) ans = 0 ; else { long long a = oNum / 2; long long b = oNum - a; ans *= a; ans *= b; } int lNum = h['l' - 'a']; if(lNum < 3) ans = 0 ; else{ long long maxv = 0 ; FOR(i,lNum){ int a = i; int b = lNum - i; long long sub = a * (a - 1) / 2 * b; maxv = max(maxv, sub); } ans *= maxv; } cout<<ans<<endl; return 0; }