#3098. 二分查找左端点

二分查找左端点

题目描述

注意:不建议使用 std::lower_bound()std::upper_bound() 等函数。

给定一个长为 nn 的数列 {an}\{a_n\},保证数列非严格单调递增,即 aiai+1(1i<n)a_i\leqslant a_{i+1}(1\le i<n)

接下来有 mm 次询问,每次询问一个数 uu,请你输出 uu 在它在数列中第一次出现的位置。如果在数列 {an}\{a_n\} 中存在这样的 uu,则输出它第一次出现的位置,否则输出 1-1

输入

输入共 m+2m+2 行。

第一行两个正整数 n,mn,m,代表数列长度和询问次数。

接下来一行 nn 个正整数,表示非严格单调递增的数列 {an}\{a_n\}

接下来 mm 行,每行一个正整数 uu,输出它的第一次出现的位置。

输出

输出共 mm 行,表示每次询问的答案。

样例

5 3
1 2 2 5 5
1
3
5
1
-1
4

Limitation

1n1051\le n\le 10^51m1051\le m\le 10^51ai1091\le a_i\le 10^9