Trạng thái

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.

Thông tin
Thông tin bài tập
Gửi bài giải
Điểm
100
Giới hạn thời gian:
1.0s
Giới hạn bộ nhớ:
977 M
I/O
stdin -> stdout
Tác giả
Loại đề bài
C - Cấu trúc dữ liệu nâng cao: 05 - Set
Ngôn ngữ cho phép
C#, C++, Java, Python