#include using namespace std; int main(){ int N; cin >> N; vector A(N); for (int i = 0; i < N; i++){ cin >> A[i]; } sort(A.begin(), A.end()); string dummy; getline(cin, dummy); string line; getline(cin, line); unordered_map S; istringstream iss(line); string token; while(iss >> token){ S[token]++; } if(S["add"] == N){ long long total = accumulate(A.begin(), A.end(), 0LL); cout << total << endl; return 0; } else if(S["max"] == N){ cout << A.back() << endl; return 0; } else if(S["min"] == N){ cout << 0 << endl; return 0; } int countMin = S["min"]; int index = N - countMin - 1; long long ans = A[index]; A.erase(A.begin() + index); if(S["add"] > 0){ S["add"]--; } else { S["max"]--; } for (int a : A){ if(S["add"] > 0){ ans += a; S["add"]--; } else if(S["max"] > 0){ ans = max(ans, (long long)a); S["max"]--; } else { ans = min(ans, (long long)a); break; } } cout << ans << endl; return 0; }