from collections import defaultdict import heapq num_to_index=defaultdict(list) N,M=map(int,input().split()) A=list(map(int,input().split())) for i in range(N): num_to_index[A[i]].append(i) c=0 sortedindex_to_index=[] index_to_sortedindex=[0]*N A.sort(reverse=True) pre=-1 for i in range(N): if(pre!=A[i]): c=0 sortedindex_to_index.append(num_to_index[A[i]][c]) index_to_sortedindex[num_to_index[A[i]][c]]=i c+=1 pre=A[i] # print(A) # print(sortedindex_to_index) # print(index_to_sortedindex) seen=defaultdict(bool) B=list(map(int,input().split())) k=-10**100 for i in range(N): A[i]*=k ans=[] def score(a,b): return A[a]//B[b]*10**12-(N-sortedindex_to_index[a])*10**6-b pre_ans=[score(0,0)] seen["0"+"_"+"0"]=True heapq.heapify(ans) while len(ans)