Monocarp had a sequence a consisting of n + m integers a_1, a_2, ..., a_{n + m}. He painted the elements into two colors, red and blue; n elements were painted red, all other m elements were painted blue.

After painting the elements, he has written two sequences r_1, r_2, ..., r_n and b_1, b_2, ..., b_m. The sequence r consisted of all red elements of a in the order they appeared in a; similarly, the sequence b consisted of all blue elements of a in the order they appeared in a as well.

Unfortunately, the original sequence was lost, and Monocarp only has the sequences r and b. He wants to restore the original sequence. In case there are multiple ways to restore it, he wants to choose a way to restore that maximizes the value of 

$$$f(a) = max(0, a_1, (a_1 + a_2), (a_1 + a_2 + a_3), ..., (a_1 + a_2 + a_3 + ... + a_{n + m}))$$$

Help Monocarp to calculate the maximum possible value of f(a).

Input

The first line contains one integer t (1 ≤ t ≤ 1000) — the number of test cases. Then the test cases follow. Each test case consists of four lines.

The first line of each test case contains one integer n (1 ≤ n ≤ 100).

The second line contains n integers r_1, r_2, ..., r_n (-100 ≤ r_i ≤ 100).

The third line contains one integer m (1 ≤ m ≤ 100).

The fourth line contains m integers b_1, b_2, ..., b_m (-100 ≤ b_i ≤ 100).

Output

For each test case, print one integer — the maximum possible value of f(a).

Example

Input


4
4
6 -5 7 -3
3
2 3 -4
2
1 1
4
10 -3 2 2
5
-1 -2 -3 -4 -5
5
-1 -2 -3 -4 -5
1
0
1
0


Output


13
13
0
0

Note

In the explanations for the sample test cases, red elements are marked as bold.

In the first test case, one of the possible sequences a is [6, 2, -5, 3, 7, -3, -4].

In the second test case, one of the possible sequences a is [10, 1, -3, 1, 2, 2].

In the third test case, one of the possible sequences a is [-1, -1, -2, -3, -2, -4, -5, -3, -4, -5].

In the fourth test case, one of the possible sequences a is [0, 0].
#THIS CODE IS MADE BY "harshest2020"
from sys import *
ws=lambda:map(int,stdin.readline().strip().split())
li=lambda:list(map(int,stdin.readline().strip().split()))
mod=1000000007
def ncr(n, r, p): 
    num = den = 1 
    for i in range(r): 
        num = (num * (n - i)) % p 
        den = (den * (i + 1)) % p 
    return (num * pow(den, p - 2, p)) % p
 
def gcd(a,b):
    if (b == 0): 
         return a 
    return gcd(b, a%b)
def prod(l):
    ans=1
    for i in range(len(l)):
        ans=ans*l[i]
    return ans
def sortindex(l,a):
    c=[]
    if(a==-1):
        rev=True
    else:
        rev=False
    for i in range(len(l)):
        c.append([l[i],i])
    x=sorted(c,reverse=rev)
    print(x)
    c=[]
    for i in range(len(l)):
        c.append(x[i][1])
    return c
#CODE STARTS HERE
for _ in range(int(input())):
    n=int(input())
    red=li()
    m=int(input())
    blue=li()
    dp=[0]
    ans=0
    for x in red:
        ans+=x
        dp.append(ans)
    pp=[0]
    ans=0
    for x in blue:
        ans+=x
        pp.append(ans)
    print(max(dp)+max(pp))
