/*多边形游戏*/
#include<stdio.h>
void MinMax(int n,int i,int s,int j,__int64& minf,__int64& maxf,__int64 m[101][101][2],char b[101]);
__int64 PolyMax(int n,__int64 m[101][101][2],char b[101]);
int main(){
int a[101];
char b[101];
int n;
while(scanf("%d",&n)!=EOF){
for(int i=1;i<=n;i++){
getchar();
scanf("%c",&b[i]);
scanf("%d",&a[i]);
}
__int64 m[101][101][2]={0};
for(int ii=1;ii<=n;ii++){
m[ii][1][0]=m[ii][1][1]=a[ii];
}
__int64 sum=PolyMax(n,m,b);
printf("%I64d\n",sum);
for(int kk=0,jj=1;jj<=n;jj++){
if(sum==m[jj][n][1]){
if(kk!=0)
putchar(' ');
printf("%d",jj);
kk=1;
}
}
putchar('\n');
}
return 0;
}
__int64 PolyMax(int n,__int64 m[101][101][2],char b[101]){
__int64 minf,maxf;
for(int j=2;j<=n;j++){
for(int i=1;i<=n;i++){
for(int k=1;k<j;k++){
MinMax(n,i,k,j,minf,maxf,m,b);
if(k==1){
m[i][j][0]=minf;
m[i][j][1]=maxf;
continue;
}
if(m[i][j][0]>minf)m[i][j][0]=minf;
if(m[i][j][1]<maxf)m[i][j][1]=maxf;
}
}
}
__int64 temp = m[1][n][1];
for(int i=2;i<=n;i++){
if(temp<m[i][n][1]){
temp=m[i][n][1];
}
}
return temp;
}
void MinMax(int n,int i,int s,int j,__int64& minf,__int64& maxf,__int64 m[101][101][2],char op[101]){
minf = 0x7fffffff;
maxf = -0x7fffffff;
__int64 e[4];
__int64 a=m[i][s][0],b=m[i][s][1],r=(i+s-1)%n+1;
__int64 c=m[r][j-s][0],d=m[r][j-s][1];
if(op[r] == 't'){
minf=a+c;
maxf=b+d;
}
else{
e[0]=a*c;
e[1]=a*d;
e[2]=b*c;
e[3]=b*d;
minf=e[0];
maxf=e[0];
for(int r=1;r<4;r++){
if(minf>e[r])
minf=e[r];
if(maxf<e[r])
maxf=e[r];
}
}
}