import sys
case_num = int(sys.stdin.readline().strip())
for i in range(0, case_num):
kids = int(sys.stdin.readline().strip())
candies = [int(x) for x in sys.stdin.readline().strip().split()]
is_not_same = True
count = 0
while is_not_same:
# print(count)
# print("yea")
sent_candies = []
left_candies = []
if kids <= 1:
count = 0
break
for i in range(0,kids):
if candies[i]%2 != 0:
candies[i] += 1
prev = candies[0]
is_same = True
for i in candies:
if prev != i:
is_same = False
prev = i
if is_same:
break
for i in range(0, kids):
sent_candies.append(candies[i]//2)
left_candies.append(candies[i]-sent_candies[i])
# print(sent_candies)
add_candies = []
add_candies = sent_candies[:-1]
add_candies.insert(0, sent_candies[-1])
# print(add_candies)
rlt = []
for i in range(0, kids):
hoho = left_candies[i] + add_candies[i]
rlt.append(hoho if hoho % 2 == 0 else (hoho + 1))
count += 1
prev = rlt[0]
is_same = True
for i in rlt:
# print("hohoho")
if prev != i:
is_same = False
prev = i
if is_same:
break
candies = rlt
# print("haha")
print(count)
def check(N, candy):
for i in range(N):
if candy[i] % 2 == 1:
candy[i] += 1
return len(set(candy)) == 1
def teacher(N, candy):
tmp_list = [0 for i in range(N)]
for idx in range(N):
if candy[idx] % 2:
candy[idx] += 1
candy[idx] //= 2
# 이 부분이 포인트! 익숙해지자!
# (0+1)%5 => 1
# (1+1)%5 => 2
# (4+1)%5 => 0
tmp_list[(idx + 1) % N] = candy[idx]
for idx in range(N):
candy[idx] += tmp_list[idx]
return candy
def process():
N, candy = int(input()), list(map(int, input().split()))
cnt = 0
while not check(N, candy):
cnt += 1
candy = teacher(N, candy)
# 배열을 갱신하는 작업을 하면 시간복잡도가 올라감!
# 시간복잡도를 줄이기 위해서 글로벌 변수를 사용하는 등의 방법이 있지만
# 이번 문제는 수가 작기때문에 그냥 배열을 갱신하는 방법으로 품!
print(cnt)
for i in range(int(input())):
process()