#include <bits/stdc++.h>
#define ll long long
using namespace std;
int n;
ll ans=-0x7fffffff+1;
ll a[120];
char c[120];
vector<int> ar;
ll dp1[120][120],dp2[120][120];
int main()
{
scanf("%d",&n);
for(int i=1;i<=n;i++)
{
cin>>c[i];
c[i+n]=c[i];
scanf("%lld",&a[i]);
a[i+n]=a[i];
}
int m=2*n-1;
memset(dp1,-0x3f3f3f3f+1,sizeof(dp1));
memset(dp2,0x3f3f3f3f,sizeof(dp2));
for(int i=1;i<=2*n;i++)
dp1[i][i]=dp2[i][i]=a[i];
for(int len=2;len<=m;len++)
{
for(int l=1;l+len-1<=m;l++)
{
int r=l+len-1;
for(int k=l;k<r;k++)
{
if(c[k+1]=='t')
{
dp1[l][r]=max(dp1[l][r],dp1[l][k]+dp1[k+1][r]);
dp2[l][r]=min(dp2[l][r],dp2[l][k]+dp2[k+1][r]);
}
else
{
dp1[l][r]=max(max(max(max(dp1[l][r],dp1[l][k]*dp1[k+1][r]),dp2[l][k]*dp2[k+1][r]),dp1[l][k]*dp2[k+1][r]),dp2[l][k]*dp1[k+1][r]);
dp2[l][r]=min(min(min(min(dp1[l][r],dp1[l][k]*dp1[k+1][r]),dp2[l][k]*dp2[k+1][r]),dp1[l][k]*dp2[k+1][r]),dp2[l][k]*dp1[k+1][r]);
}
}
}
}
for(int t=1;t<=n;t++)
{
if(dp1[t][t+n-1]>ans)
{
ans=dp1[t][t+n-1];
ar.clear();
ar.push_back(t);
}
else if(dp1[t][t+n-1]==ans)
ar.push_back(t);
}
cout<<ans<<endl;
for(int i=0;i<ar.size();i++)
printf("%d ",ar[i]);
}```