#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
int n,arr[6005][6005];
int pd(int i){
	for(int j=1;j<=n;j++){
		if(arr[i][j]!=arr[i-1][j]) return 0;
	}
	return 1;
}
int main(){
	std::ios::sync_with_stdio(false);//加速
	cin>>n;
	char c;
	int a;
	for(int i=1;i<=n;i++){
		for(int j=1;j<=n;j+=4){
			cin>>c;
			if(c<='9'&&c>='0')a=c-'0';
			else a=10+c-'A';
			for(int k=3;k>=0;k--){
			 	arr[i][j+(3-k)]=(a>>k)&1;
			}       
		}
	}
		int ans=0,tmp=1;
		for(int i=2;i<=n;i++){
			if(pd[i])tmp++;
			else if(ans==0){
				ans=tmp;tmp=1;
			}
			else{
				ans=__gcd(ans,tmp);
				tmp=1;
			}
		}
		for(int i=1;i<=n;i++){
			for(int j=i+1;j<=n;j++){
				swap(arr[i][j],arr[j][i]);
			}
		}
		tmp=1;
		for(int i=2;i<=n;i++){
			if(pd(i))tmp++;
			else{
				ans=__gcd(ans,tmp);
				tmp=1;
			}
		}	
	int kkk=__gcd(ans,tmp);	
	cout<<kkk<<endl;
	return 0;
}
