#include <bits/stdc++.h>
const int N = 5010;
using namespace std;
int chu[200],shu[200][200],suan[200][200],dp[2][200][200];
int ji1(int bian,int l1,int r1)
{
return max(dp[0][bian][bian]*dp[0][l1][r1],max(dp[1][bian][bian]*dp[1][l1][r1],max(dp[0][bian][bian]*dp[1][l1][r1],dp[1][bian][bian]*dp[0][l1][r1])));
}
int ji2(int bian,int l1,int r1)
{
return min(dp[0][bian][bian]*dp[0][l1][r1],min(dp[1][bian][bian]*dp[1][l1][r1],min(dp[0][bian][bian]*dp[1][l1][r1],dp[1][bian][bian]*dp[0][l1][r1])));
}
int main()
{
ios::sync_with_stdio(false), cin.tie(0), cout.tie(0);
int n;
cin>>n;
for(int i=1;i<=2*n;i+=2)
{
char f;
int e,F;
cin>>f>>e;
if(f=='t') F=1;
else F=2;
chu[i]=F;
chu[i+1]=e;
}
for(int i=1;i<=2*n;i+=2)
{
int cnt=1;
for(int j=i-1;j>1;j-=2)
{
shu[i/2+1][cnt]=chu[j];
suan[i/2+1][cnt]=chu[j-1];
cnt++;
}
for(int j=2*n;j>i;j-=2)
{
shu[i/2+1][cnt]=chu[j];
if(j-1>i) suan[i/2+1][cnt]=chu[j-1];
cnt++;
}
}
map<int,int>p;
int Max=-1e7;
for(int cnt=1;cnt<=n;cnt++)
{
for(int i=1;i<=n;i++)
{
for(int j=1;j<=n;j++)
{
if(i==j) dp[0][i][j]=dp[1][i][j]=shu[cnt][i];
else
{
dp[0][i][j]=0;
dp[1][i][j]=0;
}
}
}
for(int len=2;len<=n;len++)
{
for(int l=1;l+len-1<=n;l++)
{
int r=l+len-1;
int e1,e2;
if(suan[cnt][l]==1) e1=dp[1][l][l]+dp[1][l+1][r];
else e1=ji1(l,l+1,r);
if(suan[cnt][r-1]==1) e2=dp[1][l][r-1]+dp[1][r][r];
else e2=ji1(r,l,r-1);
dp[1][l][r]=max(e1,e2);
int e3,e4;
if(suan[cnt][l]==1) e3=dp[0][l][l]+dp[0][l+1][r];
else e3=ji2(l,l+1,r);
if(suan[cnt][r-1]==1) e4=dp[0][l][r-1]+dp[0][r][r];
else e4=ji2(r,l,r-1);
dp[0][l][r]=min(e3,e4);
}
}
p[cnt]=dp[1][1][n];
Max=max(Max,dp[1][1][n]);
}
cout<<Max<<endl;
for(auto it:p)
{
if(it.second==Max) cout<<it.first<<" ";
}
}