include[HTML_REMOVED]
include[HTML_REMOVED]
include[HTML_REMOVED]
include[HTML_REMOVED]
include[HTML_REMOVED]
using namespace std;
queue[HTML_REMOVED] q[110];
stack[HTML_REMOVED] s;
int n, m, maxsize;
//int stsize = 0;
int main() {
cin >> n >> m >> maxsize;
char x ;
for (int i = 1; i <= n; i) {
for (int j = 1; j <= m; j) {
//cout << j << endl;
cin >> x;
//scanf_s(“%c”, &x);
q[i].push(x);
}
}
int com = 0;
//cout << “debug” << endl;
while (1) {
cin >> com;
//cout << com << endl;
if (com == -1) {
break;
}
if (s.size() == 0 && com == 0) {//如果输入为0 且栈中没有元素
continue;
}
if (s.size() == maxsize&&com!=0&&!q[com].empty()) {//如果栈满了 且要继续添加物品
char a = s.top();
s.pop();
cout << a;
s.push(q[com].front());
q[com].pop();
continue;
}
if (s.size() != 0 && com == 0) { //如果栈中有元素 并且要从中取元素时
cout << s.top();
s.pop();
continue;
}
if (s.size() < maxsize) {//当栈未满时 向栈内添加物品 必须确保队列中有物品
if (q[com].empty()) {
continue;
}
s.push(q[com].front());
q[com].pop();
}
}
return 0;
}