#include<bits/stdc++.h>
using namespace std;
int x;
string san(string s) {
int num = 0;
int ii = 0;
for (int i=2;s[i] >= '0' && s[i] <= '9';i++) {
num = num * 10 + (s[i]-'0');
ii = i;
}
bool jie;
if (s[1] == '>') {
jie = (x>num);
} else {
jie = (x<num);
}
string num1 = "",num2 = "";
for (int i=ii+2;s[i] >= '0' && s[i] <= '9';i++) {
num1 = num1 + s[i];
ii = i;
}
for (int i=ii+2;s[i] >= '0' && s[i] <= '9';i++) {
num2 = num2 + s[i];
ii = i;
}
if (jie) {
return num1;
} else {
return num2;
}
}
string suan(string s) {
stack<string> l;
string pin = "";
for (int i=0;i<s.size();i++) {
if (s[i] == '?') {
l.push(pin+"?");
pin = "";
} else if (s[i] == ':') {
string u = l.top();
l.pop();
if (u[u.size()-1] == ':') {
u = u + pin;
u = san(u);
while (l.size() && l.top()[l.top().size()-1] == ':') {
string o = l.top();
o = o + u;
u = san(o);
l.pop();
}
if (l.size()) {
string o = l.top();
l.pop();
o = o + u + ':';
l.push(o);
} else {
l.push(u);
}
} else {
u = u + pin + ":";
l.push(u);
}
pin = "";
} else {
pin = pin + s[i];
}
}
if (!l.size()) {
return pin;
}
string u = l.top();
l.pop();
u = u + pin;
u = san(u);
while (l.size() && l.top()[l.top().size()-1] == ':') {
string o = l.top();
o = o + u;
u = san(o);
l.pop();
}
if (l.size()) {
string o = l.top();
l.pop();
o = o + u + ':';
l.push(o);
} else {
l.push(u);
}
return l.top();
}
int main() {
int m,t;
cin >> m >> t;
string shi;
cin >> shi;
for (int i=1;i<=t;i++) {
cin >> x;
cout << suan(shi) << endl;
}
}