#include <bits/stdc++.h> 
using namespace std;
int dis(vector<vector<char>> v,int x,int y,int p)
{
    if(x>=v.size() || y>=v[0].size())
    return INT_MAX-5;
    
    if(v[x][y]=='*')
    return p;
    
    return min(dis(v,x+1,y,p+1),dis(v,x,y+1,p+1));
    
    
    
}


int call(vector<vector<char>> v,int x,int y)
{  //cout<<x<<" "<<y<<endl;
    //0->down
    if(x>=v.size() || y>=v[0].size())
    return 0;
    
    int ans=0;
   
    
    if(v[x][y]=='*')
    ans++;
  
    int dis1=dis(v,x,y+1,1),dis2=dis(v,x+1,y,1);//r,d
  
    if(dis1==dis2)
        ans+=call(v,x,y+1);
    
    if(dis1>dis2)
        ans+=call(v,x+1,y);
    
    if(dis1<dis2)
        ans+=call(v,x,y+1);
    
  
    return ans;
    
    
}
int main() {
 int i,j,k,n,m,t;
 int h,w;
 cin>>h>>w;
vector<vector<char>>v(h,vector<char>(w,'.'));
 vector<vector<bool>>visited(h,vector<bool>(w,false));
 for(i=0;i<h;i++)
 {
     for(j=0;j<w;j++)
     {
         cin>>v[i][j];
      //   cout<<v[i][j];
         
         
     }
   //  cout<<endl;
     
 }
 
 
   cout<<call(v,0,0);
 
 
  
}
