#include<bits/stdc++.h>
#define N 205
#define oo 2147483647
#define R read()
#define W(x) write(x)
#define P(x) putchar(x)
#define G getchar()
using namespace std;
inline int read(){int x=0,f=1;char ch=G;while(ch<'0'||ch>'9'){if(ch=='-') f=-1;ch=G;}while(ch>='0'&&ch<='9'){x=(x<<1)+(x<<3)+(ch^48);ch=G;}return x*f;}
inline void write(int x){if(x<0){P('-');x=-x;}if(x>9) write(x/10);P(48+x%10);}
int n,a[N],fax[N][N],fin[N][N],ans,maxx[N];
bool op[N];
int main(){
n=R;
for(int i=1;i<=n;i++){
char ch;
scanf("%c",&ch);
if(ch=='t') op[i]=1;
a[i]=R;
a[i+n]=a[i];
op[i+n]=op[i];
}
memset(fax,0,sizeof(fax));
for(int i=1;i<=(n<<1);i++) for(int j=1;j<=(n<<1);j++) fin[i][j]=oo;
for(int i=1;i<=(n<<1);i++){fax[i][i]=a[i];fin[i][i]=a[i];}
for(int l=2;l<=n;l++){
for(int i=1;i+l-1<=(n<<1);i++){
int j=i+l-1;
for(int k=i;k<j;k++){
if(op[k+1]){
fax[i][j]=max(fax[i][j],fax[i][k]+fax[k+1][j]);
fin[i][j]=min(fin[i][j],fin[i][k]+fin[k+1][j]);
}else{
fax[i][j]=max(max(fax[i][j],fax[i][k]*fax[k+1][j]),max(max(fax[i][k]*fin[k+1][j],fin[i][k]*fin[k+1][j]),fin[i][k]*fax[k+1][j]));
fin[i][j]=min(min(fin[i][j],fax[i][k]*fax[k+1][j]),min(min(fax[i][k]*fin[k+1][j],fin[i][k]*fin[k+1][j]),fin[i][k]*fax[k+1][j]));
}
}
}
}
for(int i=1;i<=n;i++) ans=max(fax[i][n+i-1],ans);
W(ans);P('\n');
for(int i=1;i<=n;i++) if(fax[i][n+i-1]==ans){W(i);P(' ');}
return 0;
}