#include <bits/stdc++.h>
using namespace std;
const int N = 2005;
string s[N];
int n, m, cnt1[N][26], cnt2[N][26];
bool f1[N], f2[N];
signed main()
{
ios::sync_with_stdio(0);
cin.tie();cout.tie();
cin >> n >> m;
for (int i = 0; i < n; i++)
{
cin >> s[i];
for (int j = 0; j < m; j++)
{
cnt1[i][s[i][j]-'a']++;
cnt2[j][s[i][j]-'a']++;
}
}
while (1)
{
vector<int> r, c;
for (int i = 0; i < n; i++)
{
if (f1[i] == 0)
{
int cnt = 0, sum = 0;
for (int j = 0; j < 26; j++)
{
if (cnt1[i][j])
{
cnt++;
sum += cnt1[i][j];
}
}
if (cnt == 1 && sum >= 2)
{
r.push_back(i);
}
}
}
for (int i = 0; i < m; i++)
{
if (f2[i] == 0)
{
int cnt = 0, sum = 0;
for (int j = 0; j < 26; j++)
{
if (cnt2[i][j])
{
cnt++;
sum += cnt2[i][j];
}
}
if (cnt == 1 && sum >= 2)
{
c.push_back(i);
}
}
}
int lenr = r.size();
int lenc = c.size();
if (r.size() == 0 && c.size() == 0)
{
break;
}
for (int i = 0; i < r.size(); i++)
{
f1[i] = 1;
for (int j = 0; j < m; j++)
{
if (s[i][j] != '#')
{
s[i][j] = '#';
cnt1[i][s[i][j]-'a']--;
}
}
}
for (int i = 0; i < c.size(); i++)
{
f2[i] = 1;
for (int j = 0; j < n; j++)
{
if (s[j][i] != '#')
{
s[j][i] = '#';
cnt1[i][s[j][i]-'a']--;
}
}
}
r.clear();
c.clear();
}
int ans = 0;
for (int i = 0; i < n; i++)
{
for (int j = 0; j < m; j++)
{
if (s[i][j] != '#')
{
ans++;
}
}
}
cout << ans;
return 0;
}