import java.util.*;
public class qd{
    public static void main(String args[]){
        Scanner sc=new Scanner(System.in);
        int n=sc.nextInt();
        int n4=n/4;
        boolean a[][]=new boolean[n][n];
        for(int i=0;i<n;i++){
            String s=sc.next();
            for(int j=0;j<n4;j++){
                int x=0;
                 if(s.charAt(j)>='A'){
                     x=s.charAt(j)-55;
                 }
                 else x=s.charAt(j)-48;
                for(int k=0;k<4;k++){
                    a[i][j*4+k]=((x>>(3-k))&1)==1?true:false;
                   // x=x>>1;
                }
            }
        }
        // for(int i=0;i<n;i++){
        //     for(int j=0;j<n;j++){
        //         System.out.print(a[i][j]?1:0); 
        //     }
        //     System.out.println();
        // }
        int k=n;
        int curk=1;
        for(int i=0;i<n;i++){
            for(int j=1;j<n;j++){
                 if(a[i][j]==a[i][j-1])curk++;
                 else{
                     if(curk<k)
                     k=curk;
                     curk=1;
                 }
            }
        }
        curk=1;
        for(int i=1;i<n;i++){
            for(int j=0;j<n;j++){
                 if(a[i][j]==a[i-1][j])curk++;
                 else{
                     if(curk<k)
                     k=curk;
                     curk=1;
                 }
            }
        }
        System.out.println(k);
    }
}