2021/03/03
2020KB
0ms
#include <iostream>
#include <vector>
int N, M;
int ans;
std::vector<std::string> sq;
void input_faster()
{
std::ios_base::sync_with_stdio(false);
std::cin.tie(0);
std::cout.tie(0);
}
void input()
{
input_faster();
std::cin >> N >> M;
sq.resize(N);
for (size_t i = 0 ; i < N ; i++)
std::cin >> sq[i];
ans = 0;
}
int find_sq(int sq_size)
{
for (int i = 0 ; i < N ; i++)
{
if (i + sq_size >= N)
break;
for (int j = 0 ; j < M ; j++)
{
if (j + sq_size >= M)
break;
if (sq[i][j] == sq[i + sq_size][j]&& sq[i][j] == sq[i][j + sq_size] && sq[i][j] == sq[i+sq_size][j+sq_size])
return (1);
}
}
return (0);
}
void solve()
{
int i = 0;
while (i <= N && i <= M)
{
if(find_sq(i))
ans = (i + 1) * (i + 1);
i++;
}
}
void print_val()
{
std::cout << ans;
}
int main()
{
input();
solve();
print_val();
return (0);
}