import heapq class Candidate: def __init__(self, a, b, party, j): self.a = a self.b = b self.party = party self.j = j def __lt__(self, other): val1 = self.a * other.b val2 = other.a * self.b if val1 > val2: return True elif val1 < val2: return False else: return self.party < other.party def main(): import sys input = sys.stdin.read().split() ptr = 0 N, M = int(input[ptr]), int(input[ptr+1]) ptr += 2 A_list = list(map(int, input[ptr:ptr+N])) ptr += N B = list(map(int, input[ptr:ptr+M])) ptr += M # Initialize A as 1-based array A = [0] * (N + 1) for i in range(1, N + 1): A[i] = A_list[i - 1] heap = [] # Push initial candidates (j=1 for each party) for party in range(1, N + 1): a = A[party] b = B[0] heapq.heappush(heap, Candidate(a, b, party, 1)) # Process M elections for _ in range(M): current = heapq.heappop(heap) print(current.party) j_next = current.j + 1 if j_next <= M: next_b = B[j_next - 1] next_candidate = Candidate(current.a, next_b, current.party, j_next) heapq.heappush(heap, next_candidate) if __name__ == '__main__': main()