CTDL - set6 - Tìm kiếm trên set
Point: 100.0
Time limit: 1.0s
Memory limit: 977 M
Input: stdin
Output: stdout
Author:  
Problem type
Ngôn ngữ cho phép
C#, C++, Java, Python

Cho 1 dãy \(N\) số nguyên \(a_1, a_2, ... , a_N\).

Cho \(T\) truy vấn, mỗi truy vấn chứa 1 số nguyên \(k\).

Yêu cầu

Với mỗi truy vấn, in ra giá trị nhỏ nhất mà lớn hơn \(k\) trong dãy. Nếu không tồn tại giá trị lớn hơn \(k\), in ra −1.

Input

  • Dòng đầu tiên chứa 2 số nguyên dương \(N, T\) \((1 ≤ N, T ≤ 10^5)\).
  • Dòng tiếp theo chứa \(N\) số nguyên \(a_1, a_2, ... , a_N\) \((|a_i| ≤ 10^9)\).
  • \(T\) dòng tiếp theo, mỗi dòng chứa 1 số nguyên \(k\) \((|k| ≤ 10^9\)).

Output

In ra trên \(T\) dòng, mỗi dòng là kết quả của từng truy vấn tương ứng.

Example

INPUT OUTPUT
\(5\) \(1\)
\(1\) \(2\) \(3\) \(4\) \(5\)
\(4\)
\(5\)
\(5\) \(2\)
\(1\) \(2\) \(3\) \(4\) \(5\)
\(2\)
\(5\)
\(3\)
-\(1\)

Gợi ý: Sử dụng tính năng upper_bound của Set để xử lý bài toán.