You have n gifts and you want to give all of them to children. Of course, you don't want to offend anyone, so all gifts should be equal between each other. The i-th gift consists of a_i candies and b_i oranges.

During one move, you can choose some gift 1 ≤ i ≤ n and do one of the following operations:

  * eat exactly one candy from this gift (decrease a_i by one); 
  * eat exactly one orange from this gift (decrease b_i by one); 
  * eat exactly one candy and exactly one orange from this gift (decrease both a_i and b_i by one). 



Of course, you can not eat a candy or orange if it's not present in the gift (so neither a_i nor b_i can become less than zero).

As said above, all gifts should be equal. This means that after some sequence of moves the following two conditions should be satisfied: a_1 = a_2 = ... = a_n and b_1 = b_2 = ... = b_n (and a_i equals b_i is not necessary).

Your task is to find the minimum number of moves required to equalize all the given gifts.

You have to answer t independent test cases.

Input

The first line of the input contains one integer t (1 ≤ t ≤ 1000) — the number of test cases. Then t test cases follow.

The first line of the test case contains one integer n (1 ≤ n ≤ 50) — the number of gifts. The second line of the test case contains n integers a_1, a_2, ..., a_n (1 ≤ a_i ≤ 10^9), where a_i is the number of candies in the i-th gift. The third line of the test case contains n integers b_1, b_2, ..., b_n (1 ≤ b_i ≤ 10^9), where b_i is the number of oranges in the i-th gift.

Output

For each test case, print one integer: the minimum number of moves required to equalize all the given gifts.

Example

Input


5
3
3 5 6
3 2 3
5
1 2 3 4 5
5 4 3 2 1
3
1 1 1
2 2 2
6
1 1000000000 1000000000 1000000000 1000000000 1000000000
1 1 1 1 1 1
3
10 12 8
7 5 4


Output


6
16
0
4999999995
7

Note

In the first test case of the example, we can perform the following sequence of moves:

  * choose the first gift and eat one orange from it, so a = [3, 5, 6] and b = [2, 2, 3]; 
  * choose the second gift and eat one candy from it, so a = [3, 4, 6] and b = [2, 2, 3]; 
  * choose the second gift and eat one candy from it, so a = [3, 3, 6] and b = [2, 2, 3]; 
  * choose the third gift and eat one candy and one orange from it, so a = [3, 3, 5] and b = [2, 2, 2]; 
  * choose the third gift and eat one candy from it, so a = [3, 3, 4] and b = [2, 2, 2]; 
  * choose the third gift and eat one candy from it, so a = [3, 3, 3] and b = [2, 2, 2]. 
# def seg_tree(arr,l,r,seg,ind):
#     if l==r:
#         seg[ind] = arr[l]

#     else:
#         mid = (l+r)//2

#         seg_tree(arr,l,mid,seg,2*ind+1)
#         seg_tree(arr,mid+1,r,seg,2*ind+2)

#         seg[ind] = seg[2*ind+1]+seg[2*ind+2]

# def get_sum(l1,r1,l2,r2,seg,ind):
    
#     if l1==l2 and r1==r2:
#         return seg[ind]
#     elif l1 > r1:
#         return 0
#     else:
#         mid = (l2+r2)//2
#         return get_sum(l1,min(r1,mid),l2,mid,seg,2*ind+1) + get_sum(max(l1,mid+1),r1,mid+1,r2,seg,2*ind+2)

# def modify(l,r,seg,arr,pos,val,ind):
#     if l==r:
#         seg[ind] = val
#         arr[pos] = val
#     else:
#         mid = (l+r)//2

#         if pos <= mid:
#             modify(l,mid,seg,arr,pos,val,2*ind+1)
#         else:
#             modify(mid+1,r,seg,arr,pos,val,2*ind+2)

#         seg[ind] = seg[2*ind+1]+seg[2*ind+2]


# n,q = map(int,input().split())

# arr = [0]*n

# seg = [None]*(4*len(arr))

# seg_tree(arr,0,len(arr)-1,seg,0)

# for i in range(q):
#     a,b,c = input().split()

#     if a=="a":
#         modify(0,len(arr)-1,seg,arr,int(b)-1,(arr[int(b)-1]+int(c))%2,0)
#     else:
#         print(int(c)+1-int(b) - get_sum(int(b)-1,int(c)-1,0,len(arr)-1,seg,0))

# def dijksta(graph,edge,n):

#     Unvisit = {(0,0)}
#     dist = [0]*n
#     for i in range(1,n):
#         Unvisit.add((10000000000,i))
#         dist[i] = 10000000000


#     while  Unvisit:

#         x = min(Unvisit)
#         Unvisit.remove(x)

#         u = x[1]
#         d = x[0]

#         for v in graph[u]:
#             if dist[u] + edge[u][v] < dist[v]:
#                 Unvisit.remove((dist[v],v))
#                 dist[v] =  dist[u] + edge[u][v]
#                 Unvisit.add((dist[v],v))
#     return dist[n-1]

    

for _ in range(int(input())):
    n = int(input())

    arr1 = list(map(int,input().split()))
    arr2 = list(map(int,input().split()))
    
    x = min(arr1)
    y = min(arr2)

    moves = 0
    for i in range(n):
        a,b = arr1[i],arr2[i]

        moves +=  max(a-x,b-y)
    print(moves)
