#include<bits/stdc++.h>
using namespace std;
int a[101][101],path[4][4]={{-1,0},{1,0},{0,-1},{0,1}};
bool used[101][101];
struct Node
{
int x,y,num;
};
int main()
{
queue<Node>ans;
int numb=0,n,m;
cin>>n>>m;
for(int i=1;i<=n;i++)
for(int j=1;j<=m;j++)
{
scanf("%1d",&a[i][j]);
}
Node firstt;
firstt.x=1;
firstt.y=1;
firstt.num=a[1][1];
used[1][1]=1;
ans.push(firstt);
while(!ans.empty())
{
Node kind=ans.front();
ans.pop();
for(int i=1;i<=4;i++)
{
int xx=kind.x,yy=kind.y;
xx+=path[i][0];
yy+=path[i][1];
if(xx<=n&&xx>=1&&yy<=m&&yy>=1&&!used[xx][yy])
{
Node newnode;
used[xx][yy]=1;
newnode.x=xx;
newnode.y=yy;
newnode.num=a[xx][yy];
if(a[xx][yy]!=kind.num&&a[xx][yy]!=0)
numb++;
ans.push(newnode);
}
}
}
cout<<numb;
}