-->

## Concert Tickets Cses Problem set solution-

### Porblem statement-

• Time limit: 1.00 s
•
• Memory limit: 512 MB
There are $n$ concert tickets available, each with a certain price. Then, $m$ customers arrive, one after another.

Each customer announces the maximum price he or she is willing to pay for a ticket, and after this, they will get a ticket with the nearest possible price such that it does not exceed the maximum price.

Input

The first input line contains integers $n$ and $m$: the number of tickets and the number of customers.

The next line contains $n$ integers ${h}_{1},{h}_{2},\dots ,{h}_{n}$: the price of each ticket.

The last line contains $m$ integers ${t}_{1},{t}_{2},\dots ,{t}_{m}$: the maximum price for each customer.

Output

Print, for each customer, the price that they will pay for their ticket. After this, the ticket cannot be purchased again.

If a customer cannot get any ticket, print $-1$.

Constraints
• $1\le n,m\le 2\cdot {10}^{5}$
• $1\le {h}_{i},{t}_{i}\le {10}^{9}$
Example

Input:
5 35 3 7 8 54 8 3

Output:
38-1

### Concert Tickets Cses Problem set solution-

In this problem we will use multiset stl. Multisets are a type of associative containers similar to set, with an exception that multiple elements can have same values.

Multisets are containers that store elements following a specific order, and where multiple elements can have equivalent values.
In a multiset, the value of an element also identifies it (the value is itself the key, of type T). The value of the elements in a multiset cannot be modified once in the container (the elements are always const), but they can be inserted or removed from the container.
Internally, the elements in a multiset are always sorted following a specific strict weak ordering criterion indicated by its internal comparison object (of type Compare).
multiset containers are generally slower than unordered_multiset containers to access individual elements by their key, but they allow the direct iteration on subsets based on their order.
Multisets are typically implemented as binary search trees. ref-
http://www.cplusplus.com/reference/set/multiset/

### multiset lower_bound() in C++

The multiset::lower_bound() is a built-in function in C++ STL which returns an iterator pointing to the first element in the container which is equivalent to k passed in the parameter. In case k is not present in the set container, the function returns an iterator pointing to the immediate next element which is just greater than k. If the key passed in the parameter exceeds the maximum value in the container, then the iterator returned prints the number of elements in the container.

Syntax:

multiset_name.lower_bound(key)

Join Telegram channel most important programming material - https://t.me/competitiveProgrammingDiscussion

Code Solution -