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