三目运算

题目描述

三目运算是一种比较特殊的运算,功能类似于 `if` 语句,其语法格式如下: `条件?数值1:数值2`,三目运算得到的结果也是数值。当条件成立时得到的结果是数值 1,不成立时得到的结果为数值 2。 例如,`x>5?8:6` 就是一种三目运算表达式(也是分段常数表达式,见下文)。当 $x=7$ 时,该表达式的结果为 $8$,而 $x=3$ 时,该表达式的结果为 $6$。 --- 本题中,称满足下列条件中**至少一条**的字符串 $S$ 是**分段常数表达式**: - 十进制正整数 $a$,如 `243`,是分段常数表达式。 - 如果 $a$ 为一个十进制正整数,$p,q$ 为两个分段常数表达式,则 $\texttt{x>}a\texttt{?}p\texttt{:}q$ 是分段常数表达式。 - 如果 $a$ 为一个十进制正整数,$p,q$ 为两个分段常数表达式,则 $\texttt{x<}a\texttt{?}p\texttt{:}q$ 是分段常数表达式。 (后两条条件中, $x>a$ 和 $x<a$ 是条件,$p,q$ 为数值,该表达式是三目运算表达式。) 例如,`x>154?220:x<37?16:10` 是一个分段常数表达式,因为 `220` 和 `x<37?16:10` 都是分段常数表达式,从而整个表达式由第 2 条规则也是分段常数表达式。 --- 给出一个分段常数表达式 $S$,保证出现的正整数均不超过 $m$。 yummy 有 $q$ 个询问,每次给出一个自然数 $x$ 的值,希望你求出分段常数表达式的值。

输入输出格式

输入格式


输入的第一行有两个正整数 $m,q$,分别表示表达式出现数字的最大可能值和询问个数。 第二行有一个字符串 $S$,表示这个分段常数表达式。 之后有 $q$ 行,每行有一个自然数 $x$,表示一次询问。

输出格式


对于每个询问输出一行一个正整数,表示表达式的结果。

输入输出样例

输入样例 #1

20 5
x>12?x<15?4:10:x<12?14:7
15
12
14
7
1000000

输出样例 #1

10
7
4
14
10

输入样例 #2

参见 expr/expr2.in

输出样例 #2

参见 expr/expr2.ans

输入样例 #3

参见 expr/expr3.in

输出样例 #3

参见 expr/expr3.ans

输入样例 #4

参见 expr/expr4.in

输出样例 #4

参见 expr/expr4.ans

说明

【样例 1 解释】 如果我们进行适当的换行和缩进可以得到: ```cpp x>12? //如果 x>12 x<15? //那么判断 x<15 是否成立 4 //如果是则得到 4 :10 //如果不是则得到 10 :x<12? //否则(如果 x<=12) 判断 x<12 是否成立 14 //如果是则返回 14 :7 //如果不是则返回 7 ``` 按照这个思路模拟即可得到样例输出。 【样例 2 解释】 该样例满足测试点 $6$ 的性质。 【样例 3 解释】 该样例满足测试点 $10$ 的性质。 【样例 4 解释】 该样例满足测试点 $19$ 的性质。 【数据范围】 设 $n$ 为 $S$ 中三目运算符的个数。(选手可以通过 $n$ 来估计 $S$ 的串长。) 对于全体数据,保证 $0\le n\le 10^5$,$1\le m\le 10^5$,$1\le q\le 10^5​$,$1\le x\le 10^9$,且 $S$ 是分段常数表达式。 | 测试点编号 | $n\le$ | $m\le$ | $q\le$ | |:-:|:-:|:-:|:-:| | $1$ | $0$ | $10^5$ | $10$ | | $2$ | $1$ | $10^5$ | $10$ | | $3\sim 5$ | $100$ | $9$ | $10$ | | $6\sim 9$ | $100$ | $10^5$ | $10$ | | $10\sim 12$ | $10^5$ | $9$ | $10$ | | $13\sim 16$ | $10^5$ | $10^5$ | $10$ | | $17\sim 18$ | $10^5$ | $9$ | $10^5$ | | $19\sim 25$ | $10^5$ | $10^5$ | $10^5$ |