import sys,random from itertools import permutations from collections import deque input = lambda :sys.stdin.readline().rstrip() mi = lambda :map(int,input().split()) li = lambda :list(mi()) N,M = mi() A = li() B = li() A_val = [a for a in A] A_val.sort() def cond(x): res = 0 lower = 0 for b in B: while lower!=N and A_val[lower] < x * b: lower += 1 res += N - lower return res >= M ok = 0 ng = 10**9+1 for _ in range(60): mid = (ok+ng)/2 if cond(mid): ok = mid else: ng = mid select = [] for i,a in enumerate(A): for j in range(M): b = B[j] if a/b >= ok: select.append((i,j)) else: break def comp(a,b): if A[a[0]] * B[b[1]] < A[b[0]] * B[a[1]]: return True if A[a[0]] * B[b[1]] > A[b[0]] * B[a[1]]: return False return a[0] > b[0] def merge_sort(A,B): pos_A,pos_B = 0,0 n,m = len(A),len(B) res = [] while pos_A < n and pos_B < m: a,b = A[pos_A],B[pos_B] if comp(a,b): res.append(a) pos_A += 1 else: res.append(b) pos_B += 1 res += A[pos_A:] res += B[pos_B:] return res def sort_by_comp(_A): A = [a for a in _A] if len(A) == 1: return A n = len(A) left = sort_by_comp(A[:n//2]) right = sort_by_comp(A[n//2:]) return merge_sort(left,right) select = sort_by_comp(select)[::-1] for i,j in select[:M]: print(i+1)