#include<iostream>
#include<vector>
#include<stack>
#include<queue>
using namespace std;
struct Queue {
queue<char> que;
};
int main() {
stack<char> arr;
int N,M,S;
string s;
cin>>N>>M>>S;
struct Queue num[N+1];
for (int i = 1; i <= N; i++) {
cin>>s;
for (int j = 0; j < M; j++) {
num[i].que.push(s[j]);
}
}
int x;
while(1) {
cin>>x;
if (x == -1) break;
if (arr.size() < S && x) {
if (!num[x].que.empty())// 筐子未满,轨道有物品的操作。
{
arr.push(num[x].que.front());
num[x].que.pop();
continue;
}
}
if (!x && !arr.empty()) {
cout<<arr.top();// 按钮 0 的操作
arr.pop();
continue;
}
if (arr.size() == S && x ) {
if (num[x].que.empty()) continue;// 轨道上没有物品,不进行任何操作。
cout<<arr.top();
arr.pop();
if (!num[x].que.empty()) {
arr.push(num[x].que.front());//轨道上有物品,筐子里物品已经满了,先取出筐子了物品,再
//将轨道上的物品放入筐中
num[x].que.pop();
}
}
}
}