#include<stdio.h>
int main()
{
int i , n , j , k , t , max , count;
int a[31][31] , b[31][31] , c[31][31];
while(scanf("%d", &n)!=EOF)
{
max = 0 ;
if(n==0) break;
for(i = 0 ; i < n ; i++)
for(j = 0 ; j < n ; j++)
scanf("%d", &a[i][j]);
for(i = 0 ; i < n ; i++)
for(j = 0 ; j < n ; j++)
scanf("%d", &b[i][j]);
for(k = 1 ; k <= 4 ; k++)
{
count = 0 ;
for(i = 0 ; i < n ; i++)
for(j = 0 ; j < n ; j++)
if(a[i][j]==b[i][j])
count++;
if(count> max) max = count ;
for(i = 0 ; i < n ; i++)
for(j = 0 ; j < n ; j++)
c[n-1-j][i] = a[i][j];
for(i = 0 ; i < n ; i++)
for(j = 0 ; j < n ; j++)
a[i][j] = c[i][j];
}
printf("%d\n", max);
}
return 0 ;
}
int main()
{
int i , n , j , k , t , max , count;
int a[31][31] , b[31][31] , c[31][31];
while(scanf("%d", &n)!=EOF)
{
max = 0 ;
if(n==0) break;
for(i = 0 ; i < n ; i++)
for(j = 0 ; j < n ; j++)
scanf("%d", &a[i][j]);
for(i = 0 ; i < n ; i++)
for(j = 0 ; j < n ; j++)
scanf("%d", &b[i][j]);
for(k = 1 ; k <= 4 ; k++)
{
count = 0 ;
for(i = 0 ; i < n ; i++)
for(j = 0 ; j < n ; j++)
if(a[i][j]==b[i][j])
count++;
if(count> max) max = count ;
for(i = 0 ; i < n ; i++)
for(j = 0 ; j < n ; j++)
c[n-1-j][i] = a[i][j];
for(i = 0 ; i < n ; i++)
for(j = 0 ; j < n ; j++)
a[i][j] = c[i][j];
}
printf("%d\n", max);
}
return 0 ;
}