#include<iostream>
#include<cstdio>
#include<algorithm>
//#include<limits.h>
#include<vector>
#include<set>
using namespace std;
const int N = 55;
char op[2*N];
int arr[2*N];
int dpmax[2*N][2*N];
int dpmin[2*N][2*N];
int main()
{
int n;
while(cin>>n)
{
for(int i = 0; i < n; i++)
{
cin>>op[i];
op[i+n] = op[i];
cin>>arr[i];
arr[i+n] = arr[i];
}
for(int i = 0; i < 2 * n; i++)
{
dpmin[i][i] = arr[i];
dpmax[i][i] = arr[i];
}
for(int len = 1; len < n; len++)
{
for(int i = 0; i + len < 2 * n; i++)
{
dpmin[i][i+len] = INT_MAX;
dpmax[i][i+len] = INT_MIN;
for(int k = i; k < i + len; k++)
{
if(op[k+1] == 't')
{
dpmin[i][i+len] = min(dpmin[i][i+len], dpmin[i][k] + dpmin[k+1][i+len]);
dpmax[i][i+len] = max(dpmax[i][i+len], dpmax[i][k] + dpmax[k+1][i+len]);
}
else if(op[k+1] == 'x')
{
int num1 = dpmin[i][k] * dpmin[k+1][i+len];
int num2 = dpmin[i][k] * dpmax[k+1][i+len];
int num3 = dpmax[i][k] * dpmax[k+1][i+len];
int num4 = dpmax[i][k] * dpmin[k+1][i+len];
dpmin[i][i+len] = min(dpmin[i][i+len],
min(min(num1,num2), min(num3,num4)) );
dpmax[i][i+len] = max(dpmax[i][i+len],
max(max(num1,num2), max(num3,num4)) );
}
}
}
}
int maxv = dpmax[0][n-1];
for(int i = 0; i < n; i++)
{
maxv = max(maxv, dpmax[i][i+n-1]);
}
cout<<maxv<<endl;
vector<int> vec;
for(int i = 0; i < n; i++)
{
if(dpmax[i][i+n-1] == maxv)
{
vec.push_back(i+1);
}
}
for(int i = 0; i < vec.size(); i++)
{
cout<<vec[i];
if( i< vec.size() - 1) cout<<" ";
else cout<<endl;
}
}
return 0;
}