#include #define ll long long using namespace std; int n, m, sol = 0; string mat[1005]; set chars; void solve(int dx, int dy) { set> prvi[101], drugi[101]; for (int i = 0; i < n; i++) { for (int j = 0; j < m; j++) { prvi[mat[i][j] - 33].insert({i, j}); } } for (auto c : chars) { while (prvi[c].size()) { drugi[c].clear(); for (auto pos : prvi[c]) { int x = pos.first; int y = pos.second; if (prvi[c].count({x + dx, y}) && prvi[c].count({x, y + dy})) { drugi[c].insert({x + dx, y + dy}); } } prvi[c] = drugi[c]; sol += prvi[c].size(); } } } int main() { ios_base::sync_with_stdio(false); cin.tie(NULL); cin >> n >> m; for (int i = 0; i < n; i++) { cin >> mat[i]; for (auto c : mat[i]) { chars.insert(c - 33); } } vector px = {1, 1, -1, -1}; vector py = {1, -1, 1, -1}; for (int i = 0; i < 4; i++) { solve(px[i], py[i]); } cout << sol << '\n'; return 0; }