def find_maximum_remainder(N, A, k):
evens = [x for x in A if x % 2 == 0]
odds = [x for x in A if x % 2 == 1]
max_rem = 0
for e in evens:
for o in odds:
rem = (e + o) % k
if rem > max_rem:
max_rem = rem
print(max_rem)
T = int(input())
for _ in range(T):
N = int(input())
A = list(map(int, input().split()))
k = int(input())
find_maximum_remainder(N, A, k)
ZGVmIGZpbmRfbWF4aW11bV9yZW1haW5kZXIoTiwgQSwgayk6CiAgICBldmVucyA9IFt4IGZvciB4IGluIEEgaWYgeCAlIDIgPT0gMF0KICAgIG9kZHMgPSBbeCBmb3IgeCBpbiBBIGlmIHggJSAyID09IDFdCiAgICBtYXhfcmVtID0gMAogICAgZm9yIGUgaW4gZXZlbnM6CiAgICAgICAgZm9yIG8gaW4gb2RkczoKICAgICAgICAgICAgcmVtID0gKGUgKyBvKSAlIGsKICAgICAgICAgICAgaWYgcmVtID4gbWF4X3JlbToKICAgICAgICAgICAgICAgIG1heF9yZW0gPSByZW0KICAgIHByaW50KG1heF9yZW0pCgpUID0gaW50KGlucHV0KCkpCmZvciBfIGluIHJhbmdlKFQpOgogICAgTiA9IGludChpbnB1dCgpKQogICAgQSA9IGxpc3QobWFwKGludCwgaW5wdXQoKS5zcGxpdCgpKSkKICAgIGsgPSBpbnQoaW5wdXQoKSkKICAgIGZpbmRfbWF4aW11bV9yZW1haW5kZXIoTiwgQSwgaykK