mod = 10**9 + 7 def sgn(v): return (v > 0) - (v < 0) def compute_answer(): v.sort(key=abs, reverse=True) prod = 1 sg = 1 for a in xrange(k): prod *= v[a] prod %= mod sg *= sgn(v[a]) if sg >= 0: return prod if max(v) <= 0: prod = 1 for a in xrange(-k,0): prod *= v[a] prod %= mod return prod def find_pair(comp): i = k-1 while i >= 0 and comp(v[i]): i -= 1 j = k while j < n and not comp(v[j]): j += 1 if j == n: j = i return i, j i, j = find_pair(lambda w: w >= 0) I, J = find_pair(lambda w: w <= 0) if I >= 0 and v[j] * v[I] < v[i] * v[J]: i = I j = J prod = v[j] for a in xrange(k): if a != i: prod *= v[a] prod %= mod return prod for cas in xrange(input()): n, k = map(int, raw_input().strip().split()) v = map(int, raw_input().strip().split()) print compute_answer()