Lets wish Horsbug98 on his birthday and jump right into the question.
In Chefland, $6$ new mobile brands have appeared each providing a range of smartphones. For simplicity let the brands be represented by numbers $1$ to $6$. All phones are sold at the superstore. 
There are total $N$ smartphones. Let $P_i$ & $B_i$ be the price and the brand of the $i^{th}$ smartphone. The superstore knows all the price and brand details beforehand. 
Each customer has a preference for brands. The preference is a subset of the brands available (i.e $1$ to $6$). Also, the customer will buy the $K^{th}$ costliest phone among all the phones of his preference.
You will be asked $Q$ queries. Each query consists of the preference of the customer and $K$.
Find the price the customer has to pay for his preference. If no such phone is available, print $-1$
Note that for each query the total number of smartphones is always $N$ since, after each purchase, the phones are replaced instantly.

-----Input:-----
- First Line contains $N$ and $Q$
- Second-line contains $N$ integers $P_1,P_2,...,P_N$ (Price)
- Third line contains $N$ integers $B_1,B_2,...,B_N$ (Brand)
- Each of the next Q lines contains a query, the query is describes below
- First line of each quey contains $b$ and $K$ where $b$ is the size of the preference subset.
- Second line of each query contains $b$ integers, describing the preference subset.

-----Output:-----
For each query, print the price to be paid.

-----Constraints-----
- $1 \leq N, Q, P_i \leq 10^5$
- $1 \leq B_i, b \leq 6$
- $1 \leq K \leq N$

-----Sample Input:-----
4 2
4 5 6 7 
1 2 3 4 
3 3
1 2 3
3 4
4 5 6 

-----Sample Output:-----
4

-1

-----Explaination-----
Query 1: The preference subset is {1, 2, 3}, The prices of phones available of these brands are {4, 5, 6}. The third costliest phone is 4.
Query 2: The preference subset is {4, 5, 6}, The prices of phones available of these brands are {7}.
Fouth costliest phone is required, which is not available. Hence, answer is $-1$.

Source: codechef | Difficulty: UNKNOWN_DIFFICULTY


Solutions:
import sys
from collections import defaultdict
from copy import copy
R = lambda t=int: t(eval(input()))
RL = lambda t=int: [t(x) for x in input().split()]
RLL = lambda n, t=int: [RL(t) for _ in range(n)]

def solve():
	(N, Q) = RL()
	P = RL()
	B = RL()
	phones = sorted(zip(P, B))
	S = defaultdict(lambda : [])
	for (p, b) in phones:
		for i in range(2 ** 7):
			if i >> b & 1:
				S[i] += [p]
	B = set(B)
	I = [0] * len(B)
	for _ in range(Q):
		(b, K) = RL()
		s = RL()
		x = 0
		for b in s:
			x += 1 << b
		if len(S[x]) < K:
			print(-1)
		else:
			print(S[x][-K])
T = 1
for t in range(1, T + 1):
	solve()


from itertools import combinations
ps = []
for i in range(1, 6 + 1):
	ps.extend(combinations(list(range(6)), i))
(n, q) = list(map(int, input().split()))
p = list(map(int, input().split()))
b = list(map(int, input().split()))
x = [[] for _ in range(6)]
for (i, j) in zip(p, b):
	x[j - 1].append(i)
ts = {i: sorted(sum((x[j] for j in i), []), reverse=True) for i in ps}
for _ in range(q):
	(t, k) = list(map(int, input().split()))
	f = tuple([int(x) - 1 for x in input().split()])
	try:
		print(ts[f][k - 1])
	except:
		print(-1)