rt
#include <bits/stdc++.h>
using namespace std;
string a , b;
map <pair <string , int> , int> mp; //mp[make_pair(a , b)]表示a[b]
map <string , int> len; //mp[a]表示数组a的长度
bool is_num(string s)
{
for(int i = 0;i < s.size();i ++)
{
if(!(s[i] >= '0' && s[i] <= '9')) return false;
}
return true;
}
int getv(string s)
{
if(is_num(s))
{
int aa = 0;
for(int i = 0;i < s.size();i ++)
{
aa = aa * 10 + (s[i] - '0');
}
return aa;
}
int p = 0;
string ss;
string id;
while(p < s.size() && s[p] != '[')
{
ss += s[p];
p ++;
}
p ++;
while(p < s.size() && s[p] != ']')
{
id += s[p];
p ++;
}
if(!len.count(ss)) return -1;
int id2 = 0;
if(is_num(id))
{
for(int i = 0;i < id.size();i ++)
{
id2 = id2 * 10 + (id[i] - '0');
}
}
else
{
id2 = getv(id);
}
if(id2 >= len[ss]) return -1;
return mp[make_pair(ss , id2)];
}
int main()
{
while(cin >> a >> b)
{
if(a == "int")
{
int p = 0;
string s;
string ln;
while(p < b.size() && b[p] != '[')
{
s += b[p];
p ++;
}
p ++;
while(p < b.size() && b[p] != ']')
{
ln += b[p];
p ++;
}
int tmp = getv(ln);
if(tmp == -1)
{
cout << -1;
return 0;
}
len[s] = tmp;
}
else if(a == "cout")
{
int tmp = getv(b);
cout << tmp << endl;
if(tmp == -1)
{
return 0;
}
}
else
{
int p = 0;
string s;
string ln;
while(p < a.size() && a[p] != '[')
{
s += a[p];
p ++;
}
p ++;
while(p < a.size() && a[p] != ']')
{
ln += a[p];
p ++;
}
int ll = getv(ln);
if(ll >= len[s])
{
cout << -1;
return 0;
}
int bb = getv(b);
mp[make_pair(s , ll)] = bb;
}
}
return 0;
}