#include<stdio.h>
#define min(A,B) ((A) < (B) ? (A) : (B))
#define max(A,B) ((A) > (B) ? (A) : (B))
int a[1500][1500];
int main()
{
int n;
freopen("INPUT.TXT", "r", stdin);
freopen("OUTPUT.TXT", "w", stdout);
scanf("%d\n",&n);
int i,j,result = 0;
for(i=1;i<=n;i++)
{
for(j=1;j<=n;j++)
{
char k;
scanf("%c", &k);
if(k == '1')
{
int m = min(a[i][j-1],a[i-1][j]);
m = min(m,a[i-1][j-1]);
a[i][j] = m + 1;
result = max(result, a[i][j]);
}
}
scanf("\n");
}
printf("%d\n",result*result);
fclose(stdin);
fclose(stdout);
return 0;
}