Magnus decided to play a classic chess game. Though what he saw in his locker shocked him! His favourite chessboard got broken into 4 pieces, each of size n by n, n is always odd. And what's even worse, some squares were of wrong color. j-th square of the i-th row of k-th piece of the board has color ak, i, j; 1 being black and 0 being white. 

Now Magnus wants to change color of some squares in such a way that he recolors minimum number of squares and obtained pieces form a valid chessboard. Every square has its color different to each of the neightbouring by side squares in a valid board. Its size should be 2n by 2n. You are allowed to move pieces but not allowed to rotate or flip them.

Input

The first line contains odd integer n (1 ≤ n ≤ 100) — the size of all pieces of the board. 

Then 4 segments follow, each describes one piece of the board. Each consists of n lines of n characters; j-th one of i-th line is equal to 1 if the square is black initially and 0 otherwise. Segments are separated by an empty line.

Output

Print one number — minimum number of squares Magnus should recolor to be able to obtain a valid chessboard.

Examples

Input

1
0

0

1

0


Output

1


Input

3
101
010
101

101
000
101

010
101
011

010
101
010


Output

2
n = int(input())
k1 = []
k2 = []
k3 = []
k4 = []
for i in range(n):
    k1.append(input())
s = input()
for i in range(n):
    k2.append(input())
s = input()
for i in range(n):
    k3.append(input())
s = input()
for i in range(n):
    k4.append(input())
A = []
B = []
for i in range(n):
    if i % 2 == 0:
        A.append("0" + "10" * ((n - 1) // 2))
    else:
        A.append("1" + "01" * ((n - 1) // 2))
for i in range(n):
    if i % 2 == 1:
        B.append("0" + "10" * ((n - 1) // 2))
    else:
        B.append("1" + "01" * ((n - 1) // 2))
D1 = [0] * 2
D2 = [0] * 2
D3 = [0] * 2
D4 = [0] * 2
for i in range(n):
    s = A[i]
    s1 = B[i]
    sk = k1[i]
    for i in range(n):
        if s1[i] != sk[i]:
            D1[0] += 1
        if s[i] != sk[i]:
            D1[1] += 1
for i in range(n):
    s = A[i]
    s1 = B[i]
    sk = k2[i]
    for i in range(n):
        if s1[i] != sk[i]:
            D2[0] += 1
        if s[i] != sk[i]:
            D2[1] += 1
for i in range(n):
    s = A[i]
    s1 = B[i]
    sk = k3[i]
    for i in range(n):
        if s1[i] != sk[i]:
            D3[0] += 1
        if s[i] != sk[i]:
            D3[1] += 1
for i in range(n):
    s = A[i]
    s1 = B[i]
    sk = k4[i]
    for i in range(n):
        if s1[i] != sk[i]:
            D4[0] += 1
        if s[i] != sk[i]:
            D4[1] += 1
min_o = 10000000000000000
if min_o > D1[0] + D2[0] + D3[1] + D4[1]:
    min_o = D1[0] + D2[0] + D3[1] + D4[1]
if min_o > D1[0] + D2[1] + D3[0] + D4[1]:
    min_o = D1[0] + D2[1] + D3[0] + D4[1]
if min_o > D1[0] + D2[1] + D3[1] + D4[0]:
    min_o = D1[0] + D2[1] + D3[1] + D4[0]
if min_o > D1[1] + D2[0] + D3[0] + D4[1]:
    min_o = D1[1] + D2[0] + D3[0] + D4[1]
if min_o > D1[1] + D2[0] + D3[1] + D4[0]:
    min_o = D1[1] + D2[0] + D3[1] + D4[0]
if min_o > D1[1] + D2[1] + D3[0] + D4[0]:
    min_o = D1[1] + D2[1] + D3[0] + D4[0]    
print(min_o)