Wa on test 3,4
/*
Name: Polygon
Copyright: IOI1998
Author: Isshiki Iroha
Date: 17/10/21 09:35
Description: Dp
*/
#include<bits/stdc++.h>
#define ll long long
using namespace std;
const int maxn=55;
int n;
ll ans=-114514114514;
ll a[maxn<<1];
int op[maxn<<1];
ll dp[maxn<<1][maxn<<1];
ll dp1[maxn<<1][maxn<<1];
char t;
template<typename T>
inline T Max(T a,T b){
return a>b?a:b;
}
template <typename T,typename... Args>
inline T Max(T x,T y,Args... args) {
return Max(Max(x,y),Max(y,args...));
}
template<typename T>
inline T Min(T a,T b){
return a<b?a:b;
}
template <typename T,typename... Args>
inline T Min(T x,T y,Args... args) {
return Min(Min(x,y),Min(y,args...));
}
int main() {
ios::sync_with_stdio(false);
cin>>n;
for(int i(1);i<=n;++i){
cin>>t>>a[i];
a[n+i]=a[i];
if(t=='t')op[n+i]=op[i]=1;
else op[n+i]=op[i]=2;
}
int N=n<<1;
for(int i(1);i<=N;++i){
dp[i][i]=a[i];
dp1[i][i]=a[i];
}
for(int len(2);len<=n;++len){
for(int i(1);i<=N-len+1;++i){
int j=i+len-1;
for(int k(i+1);k<=j;++k){
if(op[k]==1){//1
dp[i][j]=Max(dp[i][j],dp[i][k-1]+dp[k][j]);
dp1[i][j]=Min(dp1[i][j],dp1[i][k-1]+dp1[k][j]);
}
else {
dp[i][j]=Max(dp[i][j],dp1[i][k-1]*dp[k][j],dp[i][k-1]*dp1[k][j],dp[i][k-1]*dp[k][j],dp1[i][k-1]*dp1[k][j]);
dp1[i][j]=Min(dp1[i][j],dp1[i][k-1]*dp[k][j],dp[i][k-1]*dp1[k][j],dp[i][k-1]*dp[k][j],dp1[i][k-1]*dp1[k][j]);
}
}
}
}
for(int i(1);i<=n;++i){
ans=max(ans,dp[i][i+n-1]);
}
cout<<ans<<"\n";
for(int i(1);i<=n;++i){
if(dp[i][i+n-1]==ans){
cout<<i<<" ";
}
}
return 0;
}