#include <iostream>
#include <cstdio>
#include <string>
#include <map>
#include <vector>
#include <algorithm>
#include <cstdlib>
using namespace std;
map<string,vector<int> > MAP;
vector<int> vecs[100];
int vecIdx = 0;
int main(int argc, char** argv) {
int T;
scanf("%d", &T);
while (T--) {
int N;
vecIdx = 0;
MAP.clear();
scanf("%d", &N);
for (int i = 0; i < N; ++i) vecs[i].clear();
for (int i = 0; i < N; ++i) {
char row[50];
scanf("%s", row);
string rowStr = row;
if (rowStr.find("=") != string::npos) { // a=[]
string name = rowStr.substr(0, rowStr.find("="));
if (MAP.find(name) == MAP.end()) {
MAP[name] = vecs[vecIdx++];
} else {
MAP[name].clear();
}
} else if (rowStr.find('.', 0) == string::npos) { // L[id]
string name = rowStr.substr(0, rowStr.find('[', 0));
int numLen = rowStr.find(']', 0) - rowStr.find('[', 0) - 1;
string num = rowStr.substr(rowStr.find('[', 0) + 1, numLen);
int numIdx = atoi(num.c_str());
if (numIdx < 0 || numIdx >= MAP[name].size()) printf("ERROR\n");
else printf("%d\n", MAP[name][numIdx]);
} else {
string name = rowStr.substr(0, rowStr.find('.', 0));
int optLen = rowStr.find('(', 0) - rowStr.find('.', 0) - 1;
string opt = rowStr.substr(rowStr.find('.', 0) + 1, optLen);
if (opt == "sort") { // L.sort()
sort(MAP[name].begin(), MAP[name].end());
} else { // L.append(x)
int numLen = rowStr.find(')', 0) - rowStr.find('(', 0) - 1;
string num = rowStr.substr(rowStr.find('(', 0) + 1, numLen);
MAP[name].push_back(atoi(num.c_str()));
}
}
}
}
return 0;
}