H,W=gets.split.map &:to_i
S=$<.map &:chop

def find(si,sj)
  cnt=0
  vis=(0...H).map{[false]*W}
  que=[[si,sj]]
  vis[si][sj]=true
  until que.empty?
    ti,tj=que.shift
    if S[ti][tj]==?.
      cnt+=1
    end
    [[0,1],[0,-1],[1,0],[-1,0]].map{|di,dj|
      if 0<=ti+di&&ti+di<H&&0<=tj+dj&&tj+dj<W
        if not vis[ti+di][tj+dj]
          vis[ti+di][tj+dj]=true
          if S[ti+di][tj+dj]!=S[ti][tj]
            que.push([ti+di,tj+dj])
          end
        end
      end
    }
  end
  return cnt
end

res=0
H.times{|i|
  W.times{|j|
    if S[i][j]==?#
      res+=find(i,j)
    end
  }
}
p res
