#include using namespace std; #define mp make_pair #define fs first #define sc second #define pob pop_back #define pub push_back #define eps 1E-7 #define sz(a) a.size() #define count_one __builtin_popcount; #define count_onell __builtin_popcountll; #define fastIO ios_base::sync_with_stdio(false) #define PI (acos(-1.0)) #define linf (1LL<<62)//>4e18 #define inf (0x7f7f7f7f)//>2e9 #define MAXN 100 #ifndef ONLINE_JUDGE ifstream f("D:/C++/in"); ofstream g("D:/C++/out"); #endif char type[20]; char in[110], last[110]; int base, res, res2; int i; int getDigit() { int res = 0; while(in[i] >= '0' && in[i] <= '9') { res = res * 10 + in[i] - '0'; i++; } return res; } int main() { while(!cin.eof()) { cin >> type; if(strcmp(type, "unsigned") == 0) cin >> type; if(strcmp(type, "char") == 0) base = 1; else if(strcmp(type, "short") == 0) base = 2; else if(strcmp(type, "int") == 0) base = 4; cin >> in; if(strcmp(in, last) == 0) break; strcpy(last, in); int sz = strlen(in); res = 0; for(i = 0; i <= sz; ++i) { while(in[i] >= 'a' && in[i] <= 'z') i++; if(in[i] == ',' || i >= sz) { res += base, i++; continue; } res2 = base; while(in[i] == '[') { i++; res2 *= getDigit(); i++; } if(in[i] == ',') i++; res += res2; } cout << res << "\n"; } return 0; }